clash-protocols
Safe HaskellNone
LanguageGHC2021

Protocols.Experimental.Axi4.WriteData

Description

Defines WriteData channel of full AXI4 protocol with port names corresponding to the AXI4 specification.

Synopsis

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

Instances details
(KnownAxi4WriteDataConfig conf, BitPack userType) => BitPack (M2S_WriteData conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

Associated Types

type BitSize (M2S_WriteData conf userType) 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

type BitSize (M2S_WriteData conf userType) = CLog 2 (GConstructorCount (Rep (M2S_WriteData conf userType))) + GFieldSize (Rep (M2S_WriteData conf userType))

Methods

pack :: M2S_WriteData conf userType -> BitVector (BitSize (M2S_WriteData conf userType)) #

unpack :: BitVector (BitSize (M2S_WriteData conf userType)) -> M2S_WriteData conf userType #

(KnownAxi4WriteDataConfig conf, NFDataX userType) => NFDataX (M2S_WriteData conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

Methods

deepErrorX :: String -> M2S_WriteData conf userType #

hasUndefined :: M2S_WriteData conf userType -> Bool #

ensureSpine :: M2S_WriteData conf userType -> M2S_WriteData conf userType #

rnfX :: M2S_WriteData conf userType -> () #

(KnownAxi4WriteDataConfig conf, ShowX userType) => ShowX (M2S_WriteData conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

Methods

showsPrecX :: Int -> M2S_WriteData conf userType -> ShowS #

showX :: M2S_WriteData conf userType -> String #

showListX :: [M2S_WriteData conf userType] -> ShowS #

Generic (M2S_WriteData conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

Associated Types

type Rep (M2S_WriteData conf userType) 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

type Rep (M2S_WriteData conf userType) = D1 ('MetaData "M2S_WriteData" "Protocols.Experimental.Axi4.WriteData" "clash-protocols-0.1-inplace" 'False) (C1 ('MetaCons "M2S_NoWriteData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "M2S_WriteData" 'PrefixI 'True) (S1 ('MetaSel ('Just "_wdata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StrictStrobeType (WNBytes conf) (WKeepStrobe conf))) :*: (S1 ('MetaSel ('Just "_wlast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "_wuser") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 userType))))

Methods

from :: M2S_WriteData conf userType -> Rep (M2S_WriteData conf userType) x #

to :: Rep (M2S_WriteData conf userType) x -> M2S_WriteData conf userType #

(KnownAxi4WriteDataConfig conf, Show userType) => Show (M2S_WriteData conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

Methods

showsPrec :: Int -> M2S_WriteData conf userType -> ShowS #

show :: M2S_WriteData conf userType -> String #

showList :: [M2S_WriteData conf userType] -> ShowS #

(KnownAxi4WriteDataConfig conf, Eq userType) => Eq (M2S_WriteData conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

Methods

(==) :: M2S_WriteData conf userType -> M2S_WriteData conf userType -> Bool #

(/=) :: M2S_WriteData conf userType -> M2S_WriteData conf userType -> Bool #

type BitSize (M2S_WriteData conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

type BitSize (M2S_WriteData conf userType) = CLog 2 (GConstructorCount (Rep (M2S_WriteData conf userType))) + GFieldSize (Rep (M2S_WriteData conf userType))
type Rep (M2S_WriteData conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

type Rep (M2S_WriteData conf userType) = D1 ('MetaData "M2S_WriteData" "Protocols.Experimental.Axi4.WriteData" "clash-protocols-0.1-inplace" 'False) (C1 ('MetaCons "M2S_NoWriteData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "M2S_WriteData" 'PrefixI 'True) (S1 ('MetaSel ('Just "_wdata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StrictStrobeType (WNBytes conf) (WKeepStrobe conf))) :*: (S1 ('MetaSel ('Just "_wlast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "_wuser") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 userType))))

newtype S2M_WriteData Source #

See Table A2-3 "Write data channel signals"

Constructors

S2M_WriteData 

Fields

Instances

Instances details
BitPack S2M_WriteData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

NFDataX S2M_WriteData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

Generic S2M_WriteData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

Associated Types

type Rep S2M_WriteData 
Instance details

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)))
Show S2M_WriteData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

type BitSize S2M_WriteData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

type Rep S2M_WriteData Source # 
Instance details

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

Instances details
(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 # 
Instance details

Defined in Protocols.Experimental.DfConv

Associated Types

type Dom (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) 
Instance details

Defined in Protocols.Experimental.DfConv

type Dom (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) = dom
type BwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) 
Instance details

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 FwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) 
Instance details

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)

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

Associated Types

type Fwd (Axi4WriteData dom conf userType) 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

type Fwd (Axi4WriteData dom conf userType) = Signal dom (M2S_WriteData conf userType)
type Bwd (Axi4WriteData dom conf userType) 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

type Bwd (Axi4WriteData dom conf userType) = Signal dom S2M_WriteData
type BwdPayload (Axi4WriteAddress dom confAW userAW, Axi4WriteData dom confW userW, Reverse (Axi4WriteResponse dom confB userB)) Source # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

type Bwd (Axi4WriteData dom conf userType) = Signal dom S2M_WriteData
type Fwd (Axi4WriteData dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteData

type Fwd (Axi4WriteData dom conf userType) = Signal dom (M2S_WriteData conf userType)

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