| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Protocols.Experimental.Axi4.WriteData
Contents
Description
Defines WriteData channel of full AXI4 protocol with port names corresponding to the AXI4 specification.
Synopsis
- data M2S_WriteData (conf :: Axi4WriteDataConfig) userType
- = M2S_NoWriteData
- | M2S_WriteData {
- _wdata :: StrictStrobeType (WNBytes conf) (WKeepStrobe conf)
- _wlast :: Bool
- _wuser :: userType
- newtype S2M_WriteData = S2M_WriteData {}
- data Axi4WriteData (dom :: Domain) (conf :: Axi4WriteDataConfig) userType
- data Axi4WriteDataConfig = Axi4WriteDataConfig {
- _wKeepStrobe :: Bool
- _wNBytes :: Nat
- type KnownAxi4WriteDataConfig (conf :: Axi4WriteDataConfig) = (KeepStrobeClass (WKeepStrobe conf), KnownNat (WNBytes conf), Eq (StrobeDataType (WKeepStrobe conf)), Show (StrobeDataType (WKeepStrobe conf)), ShowX (StrobeDataType (WKeepStrobe conf)), NFDataX (StrobeDataType (WKeepStrobe conf)), BitPack (StrobeDataType (WKeepStrobe conf)))
- type family WKeepStrobe (conf :: Axi4WriteDataConfig) :: Bool where ...
- type family WNBytes (conf :: Axi4WriteDataConfig) :: Nat where ...
Documentation
data M2S_WriteData (conf :: Axi4WriteDataConfig) userType Source #
See Table A2-3 "Write data channel signals". If strobing is kept, the data
will be a vector of Maybe bytes. If strobing is not kept, data will be a
BitVector.
Constructors
| M2S_NoWriteData | |
| M2S_WriteData | |
Fields
| |
Instances
newtype S2M_WriteData Source #
See Table A2-3 "Write data channel signals"
Constructors
| S2M_WriteData | |
Instances
| BitPack S2M_WriteData Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteData Associated Types
Methods pack :: S2M_WriteData -> BitVector (BitSize S2M_WriteData) # unpack :: BitVector (BitSize S2M_WriteData) -> S2M_WriteData # | |||||
| NFDataX S2M_WriteData Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteData Methods deepErrorX :: String -> S2M_WriteData # hasUndefined :: S2M_WriteData -> Bool # ensureSpine :: S2M_WriteData -> S2M_WriteData # rnfX :: S2M_WriteData -> () # | |||||
| Generic S2M_WriteData Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteData Associated Types
| |||||
| Show S2M_WriteData Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteData Methods showsPrec :: Int -> S2M_WriteData -> ShowS # show :: S2M_WriteData -> String # showList :: [S2M_WriteData] -> ShowS # | |||||
| type BitSize S2M_WriteData Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteData type BitSize S2M_WriteData = CLog 2 (GConstructorCount (Rep S2M_WriteData)) + GFieldSize (Rep S2M_WriteData) | |||||
| type Rep S2M_WriteData Source # | |||||
Defined in Protocols.Experimental.Axi4.WriteData type Rep S2M_WriteData = D1 ('MetaData "S2M_WriteData" "Protocols.Experimental.Axi4.WriteData" "clash-protocols-0.1-inplace" 'True) (C1 ('MetaCons "S2M_WriteData" 'PrefixI 'True) (S1 ('MetaSel ('Just "_wready") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) | |||||
data Axi4WriteData (dom :: Domain) (conf :: Axi4WriteDataConfig) userType Source #
AXI4 Write Data 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 (Axi4WriteData dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.WriteData Methods boolsToBwd :: Proxy (Axi4WriteData dom conf userType) -> [Bool] -> Bwd (Axi4WriteData dom conf userType) Source # | |||||||||||||
| IdleCircuit (Axi4WriteData dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.WriteData Methods idleFwd :: Proxy (Axi4WriteData dom conf userType) -> Fwd (Axi4WriteData dom conf userType) Source # idleBwd :: Proxy (Axi4WriteData dom conf userType) -> Bwd (Axi4WriteData dom conf userType) Source # | |||||||||||||
| Protocol (Axi4WriteData dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.WriteData 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 (Axi4WriteData dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.WriteData | |||||||||||||
| type Fwd (Axi4WriteData dom conf userType) Source # | |||||||||||||
Defined in Protocols.Experimental.Axi4.WriteData | |||||||||||||
configuration
data Axi4WriteDataConfig Source #
Configuration options for Axi4WriteData.
Constructors
| Axi4WriteDataConfig | |
Fields
| |
type KnownAxi4WriteDataConfig (conf :: Axi4WriteDataConfig) = (KeepStrobeClass (WKeepStrobe conf), KnownNat (WNBytes conf), Eq (StrobeDataType (WKeepStrobe conf)), Show (StrobeDataType (WKeepStrobe conf)), ShowX (StrobeDataType (WKeepStrobe conf)), NFDataX (StrobeDataType (WKeepStrobe conf)), BitPack (StrobeDataType (WKeepStrobe conf))) Source #
Shorthand for a "well-behaved" write 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 WKeepStrobe (conf :: Axi4WriteDataConfig) :: Bool where ... Source #
Grab _wKeepStrobe from Axi4WriteDataConfig at the type level.
This boolean value determines whether to keep strobe values in the _wdata field
in M2S_WriteData.
Equations
| WKeepStrobe ('Axi4WriteDataConfig a _1) = a |
type family WNBytes (conf :: Axi4WriteDataConfig) :: Nat where ... Source #
Grab _wNBytes from Axi4WriteDataConfig at the type level.
This nat value determines the size of the _wdata field
in M2S_WriteData.
Equations
| WNBytes ('Axi4WriteDataConfig _1 a) = a |