| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Protocols.Experimental.Axi4.WriteResponse
Contents
Description
Defines WriteResponse channel of full AXI4 protocol with port names corresponding to the AXI4 specification.
Synopsis
- newtype M2S_WriteResponse = M2S_WriteResponse {}
- data S2M_WriteResponse (conf :: Axi4WriteResponseConfig) userType
- = S2M_NoWriteResponse
- | S2M_WriteResponse {
- _bid :: BitVector (BIdWidth conf)
- _bresp :: ResponseType (BKeepResponse conf)
- _buser :: userType
- data Axi4WriteResponse (dom :: Domain) (conf :: Axi4WriteResponseConfig) userType
- data Axi4WriteResponseConfig = Axi4WriteResponseConfig {
- _bKeepResponse :: Bool
- _bIdWidth :: Nat
- type KnownAxi4WriteResponseConfig (conf :: Axi4WriteResponseConfig) = (KeepTypeClass (BKeepResponse conf), KnownNat (BIdWidth conf), Eq (ResponseType (BKeepResponse conf)), Show (ResponseType (BKeepResponse conf)), ShowX (ResponseType (BKeepResponse conf)), NFDataX (ResponseType (BKeepResponse conf)), BitPack (ResponseType (BKeepResponse conf)))
- type family BKeepResponse (conf :: Axi4WriteResponseConfig) :: Bool where ...
- type family BIdWidth (conf :: Axi4WriteResponseConfig) :: Nat where ...
Documentation
newtype M2S_WriteResponse Source #
See Table A2-4 "Write response channel signals"
Constructors
| M2S_WriteResponse | |
Instances
data S2M_WriteResponse (conf :: Axi4WriteResponseConfig) userType Source #
See Table A2-4 "Write response channel signals"
Constructors
| S2M_NoWriteResponse | |
| S2M_WriteResponse | |
Fields
| |
Instances
| (KnownAxi4WriteResponseConfig conf, BitPack userType) => BitPack (S2M_WriteResponse conf userType) Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteResponse Associated Types
Methods pack :: S2M_WriteResponse conf userType -> BitVector (BitSize (S2M_WriteResponse conf userType)) # unpack :: BitVector (BitSize (S2M_WriteResponse conf userType)) -> S2M_WriteResponse conf userType # | |||||
| (KnownAxi4WriteResponseConfig conf, NFDataX userType) => NFDataX (S2M_WriteResponse conf userType) Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteResponse Methods deepErrorX :: String -> S2M_WriteResponse conf userType # hasUndefined :: S2M_WriteResponse conf userType -> Bool # ensureSpine :: S2M_WriteResponse conf userType -> S2M_WriteResponse conf userType # rnfX :: S2M_WriteResponse conf userType -> () # | |||||
| (KnownAxi4WriteResponseConfig conf, ShowX userType) => ShowX (S2M_WriteResponse conf userType) Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteResponse Methods showsPrecX :: Int -> S2M_WriteResponse conf userType -> ShowS # showX :: S2M_WriteResponse conf userType -> String # showListX :: [S2M_WriteResponse conf userType] -> ShowS # | |||||
| Generic (S2M_WriteResponse conf userType) Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteResponse Associated Types
Methods from :: S2M_WriteResponse conf userType -> Rep (S2M_WriteResponse conf userType) x # to :: Rep (S2M_WriteResponse conf userType) x -> S2M_WriteResponse conf userType # | |||||
| (KnownAxi4WriteResponseConfig conf, Show userType) => Show (S2M_WriteResponse conf userType) Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteResponse Methods showsPrec :: Int -> S2M_WriteResponse conf userType -> ShowS # show :: S2M_WriteResponse conf userType -> String # showList :: [S2M_WriteResponse conf userType] -> ShowS # | |||||
| (KnownAxi4WriteResponseConfig conf, Eq userType) => Eq (S2M_WriteResponse conf userType) Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteResponse Methods (==) :: S2M_WriteResponse conf userType -> S2M_WriteResponse conf userType -> Bool # (/=) :: S2M_WriteResponse conf userType -> S2M_WriteResponse conf userType -> Bool # | |||||
| type BitSize (S2M_WriteResponse conf userType) Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteResponse type BitSize (S2M_WriteResponse conf userType) = CLog 2 (GConstructorCount (Rep (S2M_WriteResponse conf userType))) + GFieldSize (Rep (S2M_WriteResponse conf userType)) | |||||
| type Rep (S2M_WriteResponse conf userType) Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteResponse type Rep (S2M_WriteResponse conf userType) = D1 ('MetaData "S2M_WriteResponse" "Protocols.Experimental.Axi4.WriteResponse" "clash-protocols-0.1-inplace" 'False) (C1 ('MetaCons "S2M_NoWriteResponse" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "S2M_WriteResponse" 'PrefixI 'True) (S1 ('MetaSel ('Just "_bid") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BitVector (BIdWidth conf))) :*: (S1 ('MetaSel ('Just "_bresp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ResponseType (BKeepResponse conf))) :*: S1 ('MetaSel ('Just "_buser") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 userType)))) | |||||
data Axi4WriteResponse (dom :: Domain) (conf :: Axi4WriteResponseConfig) userType Source #
AXI4 write response channel protocol
Instances
| (KnownAxi4WriteAddressConfig confAW, KnownAxi4WriteDataConfig confW, KnownAxi4WriteResponseConfig confB, NFDataX userAW, NFDataX userB, AWIdWidth confAW ~ BIdWidth confB) => DfConv (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) Source # | |||||||||||||
Defined in Protocols.Experimental.DfConv Associated Types
Methods toDfCircuit :: Proxy (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) -> Circuit (Df (Dom (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB))) (FwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB))), Reverse (Df (Dom (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB))) (BwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB))))) (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) Source # fromDfCircuit :: Proxy (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) -> Circuit (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) (Df (Dom (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB))) (FwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB))), Reverse (Df (Dom (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB))) (BwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB))))) Source # | |||||||||||||
| Backpressure (Axi4WriteResponse dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.WriteResponse Methods boolsToBwd :: Proxy (Axi4WriteResponse dom conf userType) -> [Bool] -> Bwd (Axi4WriteResponse dom conf userType) Source # | |||||||||||||
| IdleCircuit (Axi4WriteResponse dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.WriteResponse Methods idleFwd :: Proxy (Axi4WriteResponse dom conf userType) -> Fwd (Axi4WriteResponse dom conf userType) Source # idleBwd :: Proxy (Axi4WriteResponse dom conf userType) -> Bwd (Axi4WriteResponse dom conf userType) Source # | |||||||||||||
| Protocol (Axi4WriteResponse dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.WriteResponse Associated Types
| |||||||||||||
| type BwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) Source # | |||||||||||||
Defined in Protocols.Experimental.DfConv type BwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) = (ResponseType (BKeepResponse confB), userB) | |||||||||||||
| type Dom (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) Source # | |||||||||||||
Defined in Protocols.Experimental.DfConv type Dom (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) = dom | |||||||||||||
| type FwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) Source # | |||||||||||||
Defined in Protocols.Experimental.DfConv type FwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) = (Axi4WriteAddressInfo confAW userAW, BurstLengthType (AWKeepBurstLength confAW), BurstType (AWKeepBurst confAW), StrictStrobeType (WNBytes confW) (WKeepStrobe confW), userW) | |||||||||||||
| type Bwd (Axi4WriteResponse dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.WriteResponse | |||||||||||||
| type Fwd (Axi4WriteResponse dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.WriteResponse | |||||||||||||
configuration
data Axi4WriteResponseConfig Source #
Configuration options for Axi4WriteResponse.
Constructors
| Axi4WriteResponseConfig | |
Fields
| |
type KnownAxi4WriteResponseConfig (conf :: Axi4WriteResponseConfig) = (KeepTypeClass (BKeepResponse conf), KnownNat (BIdWidth conf), Eq (ResponseType (BKeepResponse conf)), Show (ResponseType (BKeepResponse conf)), ShowX (ResponseType (BKeepResponse conf)), NFDataX (ResponseType (BKeepResponse conf)), BitPack (ResponseType (BKeepResponse conf))) Source #
Shorthand for a "well-behaved" write response 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 BKeepResponse (conf :: Axi4WriteResponseConfig) :: Bool where ... Source #
Grab _bKeepResponse from Axi4WriteResponseConfig at the type level.
This boolean value determines whether to keep the _bresp field
in S2M_WriteResponse.
Equations
| BKeepResponse ('Axi4WriteResponseConfig a _1) = a |
type family BIdWidth (conf :: Axi4WriteResponseConfig) :: Nat where ... Source #
Grab _bIdWidth from Axi4WriteResponseConfig at the type level.
This nat value determines the size of the _bid field
in S2M_WriteResponse.
Equations
| BIdWidth ('Axi4WriteResponseConfig _1 a) = a |