| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Protocols.Experimental.Axi4.Stream
Contents
Description
Types and instance declarations for the AXI4-stream protocol.
Synopsis
- data Axi4StreamConfig = Axi4StreamConfig {
- _dataWidth :: Nat
- _idWidth :: Nat
- _destWidth :: Nat
- type family DataWidth (conf :: Axi4StreamConfig) :: Nat where ...
- type family IdWidth (conf :: Axi4StreamConfig) :: Nat where ...
- type family DestWidth (conf :: Axi4StreamConfig) :: Nat where ...
- type KnownAxi4StreamConfig (conf :: Axi4StreamConfig) = (KnownNat (DataWidth conf), KnownNat (IdWidth conf), KnownNat (DestWidth conf))
- data Axi4StreamM2S (conf :: Axi4StreamConfig) userType = Axi4StreamM2S {}
- newtype Axi4StreamS2M = Axi4StreamS2M {}
- data Axi4Stream (dom :: Domain) (conf :: Axi4StreamConfig) userType
- forceResetSanity :: forall (dom :: Domain) (conf :: Axi4StreamConfig) userType. (KnownDomain dom, HiddenReset dom) => Circuit (Axi4Stream dom conf userType) (Axi4Stream dom conf userType)
Documentation
data Axi4StreamConfig Source #
Configuration for AXI4 Stream protocol. Determines the width of some
fields in Axi4StreamM2S.
Constructors
| Axi4StreamConfig | |
Fields
| |
type family DataWidth (conf :: Axi4StreamConfig) :: Nat where ... Source #
Grab _dataWidth at the type level.
Equations
| DataWidth ('Axi4StreamConfig a _1 _2) = a |
type family IdWidth (conf :: Axi4StreamConfig) :: Nat where ... Source #
Grab _idWidth at the type level.
Equations
| IdWidth ('Axi4StreamConfig _1 a _2) = a |
type family DestWidth (conf :: Axi4StreamConfig) :: Nat where ... Source #
Grab _destWidth at the type level.
Equations
| DestWidth ('Axi4StreamConfig _1 _2 a) = a |
type KnownAxi4StreamConfig (conf :: Axi4StreamConfig) = (KnownNat (DataWidth conf), KnownNat (IdWidth conf), KnownNat (DestWidth conf)) Source #
Shorthand for a "well-behaved" config, so that we don't need to write out a bunch of type constraints later. Holds for every configuration; don't worry about implementing this class.
data Axi4StreamM2S (conf :: Axi4StreamConfig) userType Source #
Data sent from manager to subordinate. The tvalid field is left out: messages with tvalid = False
should be sent as a Nothing.
Constructors
| Axi4StreamM2S | |
Instances
newtype Axi4StreamS2M Source #
Data sent from subordinate to manager. A simple acknowledge message.
_tready may be on even when manager is sending Nothing.
Manager may not decide whether or not to send Nothing based on
the _tready signal.
Constructors
| Axi4StreamS2M | |
Instances
| Bundle Axi4StreamS2M Source # | |||||
Defined in Protocols.Experimental.Axi4.Stream Associated Types
Methods bundle :: forall (dom :: Domain). Unbundled dom Axi4StreamS2M -> Signal dom Axi4StreamS2M # unbundle :: forall (dom :: Domain). Signal dom Axi4StreamS2M -> Unbundled dom Axi4StreamS2M # | |||||
| NFDataX Axi4StreamS2M Source # | |||||
Defined in Protocols.Experimental.Axi4.Stream Methods deepErrorX :: String -> Axi4StreamS2M # hasUndefined :: Axi4StreamS2M -> Bool # ensureSpine :: Axi4StreamS2M -> Axi4StreamS2M # rnfX :: Axi4StreamS2M -> () # | |||||
| ShowX Axi4StreamS2M Source # | |||||
Defined in Protocols.Experimental.Axi4.Stream Methods showsPrecX :: Int -> Axi4StreamS2M -> ShowS # showX :: Axi4StreamS2M -> String # showListX :: [Axi4StreamS2M] -> ShowS # | |||||
| NFData Axi4StreamS2M Source # | |||||
Defined in Protocols.Experimental.Axi4.Stream Methods rnf :: Axi4StreamS2M -> () # | |||||
| Generic Axi4StreamS2M Source # | |||||
Defined in Protocols.Experimental.Axi4.Stream Associated Types
| |||||
| Show Axi4StreamS2M Source # | |||||
Defined in Protocols.Experimental.Axi4.Stream Methods showsPrec :: Int -> Axi4StreamS2M -> ShowS # show :: Axi4StreamS2M -> String # showList :: [Axi4StreamS2M] -> ShowS # | |||||
| Eq Axi4StreamS2M Source # | |||||
Defined in Protocols.Experimental.Axi4.Stream Methods (==) :: Axi4StreamS2M -> Axi4StreamS2M -> Bool # (/=) :: Axi4StreamS2M -> Axi4StreamS2M -> Bool # | |||||
| type Rep Axi4StreamS2M Source # | |||||
Defined in Protocols.Experimental.Axi4.Stream type Rep Axi4StreamS2M = D1 ('MetaData "Axi4StreamS2M" "Protocols.Experimental.Axi4.Stream" "clash-protocols-0.1-inplace" 'True) (C1 ('MetaCons "Axi4StreamS2M" 'PrefixI 'True) (S1 ('MetaSel ('Just "_tready") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) | |||||
| type Unbundled dom Axi4StreamS2M Source # | |||||
Defined in Protocols.Experimental.Axi4.Stream | |||||
data Axi4Stream (dom :: Domain) (conf :: Axi4StreamConfig) userType Source #
Type for AXI4 Stream protocol.
Instances
| (KnownAxi4StreamConfig conf, NFDataX userType) => DfConv (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream Associated Types
Methods toDfCircuit :: Proxy (Axi4Stream dom conf userType) -> Circuit (Df (Dom (Axi4Stream dom conf userType)) (FwdPayload (Axi4Stream dom conf userType)), Reverse (Df (Dom (Axi4Stream dom conf userType)) (BwdPayload (Axi4Stream dom conf userType)))) (Axi4Stream dom conf userType) Source # fromDfCircuit :: Proxy (Axi4Stream dom conf userType) -> Circuit (Axi4Stream dom conf userType) (Df (Dom (Axi4Stream dom conf userType)) (FwdPayload (Axi4Stream dom conf userType)), Reverse (Df (Dom (Axi4Stream dom conf userType)) (BwdPayload (Axi4Stream dom conf userType)))) Source # | |||||||||||||
| (KnownAxi4StreamConfig conf, NFDataX userType, NFData userType, ShowX userType, Show userType, Eq userType, KnownDomain dom) => Test (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream Methods expectN :: (HasCallStack, MonadTest m) => Proxy (Axi4Stream dom conf userType) -> ExpectOptions -> SimulateFwdType (Axi4Stream dom conf userType) -> m (ExpectType (Axi4Stream dom conf userType)) Source # | |||||||||||||
| Backpressure (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream Methods boolsToBwd :: Proxy (Axi4Stream dom conf userType) -> [Bool] -> Bwd (Axi4Stream dom conf userType) Source # | |||||||||||||
| (KnownAxi4StreamConfig conf, NFDataX userType, KnownDomain dom) => Drivable (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream Associated Types
Methods toSimulateType :: Proxy (Axi4Stream dom conf userType) -> ExpectType (Axi4Stream dom conf userType) -> SimulateFwdType (Axi4Stream dom conf userType) Source # fromSimulateType :: Proxy (Axi4Stream dom conf userType) -> SimulateFwdType (Axi4Stream dom conf userType) -> ExpectType (Axi4Stream dom conf userType) Source # driveC :: SimulationConfig -> SimulateFwdType (Axi4Stream dom conf userType) -> Circuit () (Axi4Stream dom conf userType) Source # sampleC :: SimulationConfig -> Circuit () (Axi4Stream dom conf userType) -> SimulateFwdType (Axi4Stream dom conf userType) Source # | |||||||||||||
| (KnownAxi4StreamConfig conf, NFDataX userType, KnownDomain dom) => Simulate (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream Associated Types
Methods simToSigFwd :: Proxy (Axi4Stream dom conf userType) -> SimulateFwdType (Axi4Stream dom conf userType) -> Fwd (Axi4Stream dom conf userType) Source # simToSigBwd :: Proxy (Axi4Stream dom conf userType) -> SimulateBwdType (Axi4Stream dom conf userType) -> Bwd (Axi4Stream dom conf userType) Source # sigToSimFwd :: Proxy (Axi4Stream dom conf userType) -> Fwd (Axi4Stream dom conf userType) -> SimulateFwdType (Axi4Stream dom conf userType) Source # sigToSimBwd :: Proxy (Axi4Stream dom conf userType) -> Bwd (Axi4Stream dom conf userType) -> SimulateBwdType (Axi4Stream dom conf userType) Source # stallC :: SimulationConfig -> Vec (SimulateChannels (Axi4Stream dom conf userType)) (StallAck, [Int]) -> Circuit (Axi4Stream dom conf userType) (Axi4Stream dom conf userType) Source # | |||||||||||||
| IdleCircuit (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream Methods idleFwd :: Proxy (Axi4Stream dom conf userType) -> Fwd (Axi4Stream dom conf userType) Source # idleBwd :: Proxy (Axi4Stream dom conf userType) -> Bwd (Axi4Stream dom conf userType) Source # | |||||||||||||
| Protocol (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream Associated Types
| |||||||||||||
| type BwdPayload (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream | |||||||||||||
| type Dom (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream | |||||||||||||
| type FwdPayload (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream | |||||||||||||
| type ExpectType (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream | |||||||||||||
| type SimulateBwdType (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream | |||||||||||||
| type SimulateChannels (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream | |||||||||||||
| type SimulateFwdType (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream | |||||||||||||
| type Bwd (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream | |||||||||||||
| type Fwd (Axi4Stream dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.Stream | |||||||||||||
forceResetSanity :: forall (dom :: Domain) (conf :: Axi4StreamConfig) userType. (KnownDomain dom, HiddenReset dom) => Circuit (Axi4Stream dom conf userType) (Axi4Stream dom conf userType) Source #
Force a nack on the backward channel and no data on the forward channel if reset is asserted.