| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Protocols.Experimental.Axi4.ReadData
Contents
Description
Defines ReadData channel of full AXI4 protocol with port names corresponding to the AXI4 specification.
Synopsis
- newtype M2S_ReadData = M2S_ReadData {}
- data S2M_ReadData (conf :: Axi4ReadDataConfig) userType dataType
- = S2M_NoReadData
- | S2M_ReadData {
- _rid :: BitVector (RIdWidth conf)
- _rdata :: dataType
- _rresp :: ResponseType (RKeepResponse conf)
- _rlast :: Bool
- _ruser :: userType
- data Axi4ReadData (dom :: Domain) (conf :: Axi4ReadDataConfig) userType dataType
- data Axi4ReadDataConfig = Axi4ReadDataConfig {
- _rKeepResponse :: Bool
- _rIdWidth :: Nat
- type KnownAxi4ReadDataConfig (conf :: Axi4ReadDataConfig) = (KeepTypeClass (RKeepResponse conf), KnownNat (RIdWidth conf), Show (ResponseType (RKeepResponse conf)), ShowX (ResponseType (RKeepResponse conf)), Eq (ResponseType (RKeepResponse conf)), NFDataX (ResponseType (RKeepResponse conf)), BitPack (ResponseType (RKeepResponse conf)))
- type family RKeepResponse (conf :: Axi4ReadDataConfig) :: Bool where ...
- type family RIdWidth (conf :: Axi4ReadDataConfig) :: Nat where ...
- forceResetSanity :: forall (dom :: Domain) (conf :: Axi4ReadDataConfig) userType dataType. (KnownDomain dom, HiddenReset dom) => Circuit (Axi4ReadData dom conf userType dataType) (Axi4ReadData dom conf userType dataType)
Documentation
newtype M2S_ReadData Source #
See Table A2-6 "Read data channel signals"
Constructors
| M2S_ReadData | |
Instances
data S2M_ReadData (conf :: Axi4ReadDataConfig) userType dataType Source #
See Table A2-6 "Read data channel signals"
Constructors
| S2M_NoReadData | |
| S2M_ReadData | |
Fields
| |
Instances
| (KnownAxi4ReadDataConfig conf, NFDataX userType, NFDataX dataType) => NFDataX (S2M_ReadData conf userType dataType) Source # | |||||
Defined in Protocols.Experimental.Axi4.ReadData Methods deepErrorX :: String -> S2M_ReadData conf userType dataType # hasUndefined :: S2M_ReadData conf userType dataType -> Bool # ensureSpine :: S2M_ReadData conf userType dataType -> S2M_ReadData conf userType dataType # rnfX :: S2M_ReadData conf userType dataType -> () # | |||||
| (KnownAxi4ReadDataConfig conf, ShowX userType, ShowX dataType) => ShowX (S2M_ReadData conf userType dataType) Source # | |||||
Defined in Protocols.Experimental.Axi4.ReadData Methods showsPrecX :: Int -> S2M_ReadData conf userType dataType -> ShowS # showX :: S2M_ReadData conf userType dataType -> String # showListX :: [S2M_ReadData conf userType dataType] -> ShowS # | |||||
| Generic (S2M_ReadData conf userType dataType) Source # | |||||
Defined in Protocols.Experimental.Axi4.ReadData Associated Types
Methods from :: S2M_ReadData conf userType dataType -> Rep (S2M_ReadData conf userType dataType) x # to :: Rep (S2M_ReadData conf userType dataType) x -> S2M_ReadData conf userType dataType # | |||||
| (KnownAxi4ReadDataConfig conf, Show userType, Show dataType) => Show (S2M_ReadData conf userType dataType) Source # | |||||
Defined in Protocols.Experimental.Axi4.ReadData Methods showsPrec :: Int -> S2M_ReadData conf userType dataType -> ShowS # show :: S2M_ReadData conf userType dataType -> String # showList :: [S2M_ReadData conf userType dataType] -> ShowS # | |||||
| (KnownAxi4ReadDataConfig conf, Eq userType, Eq dataType) => Eq (S2M_ReadData conf userType dataType) Source # | |||||
Defined in Protocols.Experimental.Axi4.ReadData Methods (==) :: S2M_ReadData conf userType dataType -> S2M_ReadData conf userType dataType -> Bool # (/=) :: S2M_ReadData conf userType dataType -> S2M_ReadData conf userType dataType -> Bool # | |||||
| type Rep (S2M_ReadData conf userType dataType) Source # | |||||
Defined in Protocols.Experimental.Axi4.ReadData type Rep (S2M_ReadData conf userType dataType) = D1 ('MetaData "S2M_ReadData" "Protocols.Experimental.Axi4.ReadData" "clash-protocols-0.1-inplace" 'False) (C1 ('MetaCons "S2M_NoReadData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "S2M_ReadData" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_rid") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BitVector (RIdWidth conf))) :*: S1 ('MetaSel ('Just "_rdata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 dataType)) :*: (S1 ('MetaSel ('Just "_rresp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ResponseType (RKeepResponse conf))) :*: (S1 ('MetaSel ('Just "_rlast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "_ruser") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 userType))))) | |||||
data Axi4ReadData (dom :: Domain) (conf :: Axi4ReadDataConfig) userType dataType Source #
AXI4 Read Data channel protocol
Instances
| (KnownAxi4ReadAddressConfig confAR, KnownAxi4ReadDataConfig confR, NFDataX userR, NFDataX dat, ARIdWidth confAR ~ RIdWidth confR) => DfConv (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) Source # | |||||||||||||
Defined in Protocols.Experimental.DfConv Associated Types
Methods toDfCircuit :: Proxy (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) -> Circuit (Df (Dom (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat))) (FwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat))), Reverse (Df (Dom (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat))) (BwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat))))) (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) Source # fromDfCircuit :: Proxy (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) -> Circuit (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) (Df (Dom (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat))) (FwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat))), Reverse (Df (Dom (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat))) (BwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat))))) Source # | |||||||||||||
| Backpressure (Axi4ReadData dom conf userType dataType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.ReadData Methods boolsToBwd :: Proxy (Axi4ReadData dom conf userType dataType) -> [Bool] -> Bwd (Axi4ReadData dom conf userType dataType) Source # | |||||||||||||
| IdleCircuit (Axi4ReadData dom conf userType dataType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.ReadData Methods idleFwd :: Proxy (Axi4ReadData dom conf userType dataType) -> Fwd (Axi4ReadData dom conf userType dataType) Source # idleBwd :: Proxy (Axi4ReadData dom conf userType dataType) -> Bwd (Axi4ReadData dom conf userType dataType) Source # | |||||||||||||
| Protocol (Axi4ReadData dom conf userType dataType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.ReadData Associated Types
| |||||||||||||
| type BwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) Source # | |||||||||||||
Defined in Protocols.Experimental.DfConv type BwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) = (dat, userR, ResponseType (RKeepResponse confR)) | |||||||||||||
| type Dom (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) Source # | |||||||||||||
Defined in Protocols.Experimental.DfConv | |||||||||||||
| type FwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) Source # | |||||||||||||
Defined in Protocols.Experimental.DfConv type FwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) = Axi4ReadAddressInfo confAR dataAR | |||||||||||||
| type Bwd (Axi4ReadData dom conf userType dataType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.ReadData | |||||||||||||
| type Fwd (Axi4ReadData dom conf userType dataType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.ReadData type Fwd (Axi4ReadData dom conf userType dataType) = Signal dom (S2M_ReadData conf userType dataType) | |||||||||||||
configuration
data Axi4ReadDataConfig Source #
Configuration options for Axi4ReadData.
Constructors
| Axi4ReadDataConfig | |
Fields
| |
type KnownAxi4ReadDataConfig (conf :: Axi4ReadDataConfig) = (KeepTypeClass (RKeepResponse conf), KnownNat (RIdWidth conf), Show (ResponseType (RKeepResponse conf)), ShowX (ResponseType (RKeepResponse conf)), Eq (ResponseType (RKeepResponse conf)), NFDataX (ResponseType (RKeepResponse conf)), BitPack (ResponseType (RKeepResponse conf))) Source #
Shorthand for a "well-behaved" read data 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.
type family RKeepResponse (conf :: Axi4ReadDataConfig) :: Bool where ... Source #
Grab _rKeepResponse from Axi4ReadDataConfig at the type level.
This boolean value determines whether to keep the _rresp field
in S2M_ReadData.
Equations
| RKeepResponse ('Axi4ReadDataConfig a _1) = a |
type family RIdWidth (conf :: Axi4ReadDataConfig) :: Nat where ... Source #
Grab _rIdWidth from Axi4ReadDataConfig at the type level.
This nat value determines the size of the _rid field
in S2M_ReadData.
Equations
| RIdWidth ('Axi4ReadDataConfig _1 a) = a |
helpers
forceResetSanity :: forall (dom :: Domain) (conf :: Axi4ReadDataConfig) userType dataType. (KnownDomain dom, HiddenReset dom) => Circuit (Axi4ReadData dom conf userType dataType) (Axi4ReadData dom conf userType dataType) Source #
Force a nack on the backward channel and no data on the forward channel if reset is asserted.