clash-protocols
Safe HaskellNone
LanguageGHC2021

Protocols.Experimental.Axi4.WriteResponse

Description

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

Synopsis

Documentation

newtype M2S_WriteResponse Source #

See Table A2-4 "Write response channel signals"

Constructors

M2S_WriteResponse 

Fields

Instances

Instances details
BitPack M2S_WriteResponse Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

NFDataX M2S_WriteResponse Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

ShowX M2S_WriteResponse Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

Generic M2S_WriteResponse Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

Associated Types

type Rep M2S_WriteResponse 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

type Rep M2S_WriteResponse = D1 ('MetaData "M2S_WriteResponse" "Protocols.Experimental.Axi4.WriteResponse" "clash-protocols-0.1-inplace" 'True) (C1 ('MetaCons "M2S_WriteResponse" 'PrefixI 'True) (S1 ('MetaSel ('Just "_bready") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))
Show M2S_WriteResponse Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

Eq M2S_WriteResponse Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

type BitSize M2S_WriteResponse Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

type Rep M2S_WriteResponse Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

type Rep M2S_WriteResponse = D1 ('MetaData "M2S_WriteResponse" "Protocols.Experimental.Axi4.WriteResponse" "clash-protocols-0.1-inplace" 'True) (C1 ('MetaCons "M2S_WriteResponse" 'PrefixI 'True) (S1 ('MetaSel ('Just "_bready") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))

data S2M_WriteResponse (conf :: Axi4WriteResponseConfig) userType Source #

See Table A2-4 "Write response channel signals"

Constructors

S2M_NoWriteResponse 
S2M_WriteResponse 

Fields

Instances

Instances details
(KnownAxi4WriteResponseConfig conf, BitPack userType) => BitPack (S2M_WriteResponse conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

Associated Types

type BitSize (S2M_WriteResponse conf userType) 
Instance details

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))

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

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

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

Defined in Protocols.Experimental.Axi4.WriteResponse

Associated Types

type Rep (S2M_WriteResponse conf userType) 
Instance details

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))))

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

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

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

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

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

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 (Axi4WriteResponse dom conf userType) Source # 
Instance details

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

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

Defined in Protocols.Experimental.Axi4.WriteResponse

Associated Types

type Fwd (Axi4WriteResponse dom conf userType) 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

type Fwd (Axi4WriteResponse dom conf userType) = Signal dom (S2M_WriteResponse conf userType)
type Bwd (Axi4WriteResponse dom conf userType) 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

type Bwd (Axi4WriteResponse dom conf userType) = Signal dom M2S_WriteResponse
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 (Axi4WriteResponse dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

type Bwd (Axi4WriteResponse dom conf userType) = Signal dom M2S_WriteResponse
type Fwd (Axi4WriteResponse dom conf userType) Source # 
Instance details

Defined in Protocols.Experimental.Axi4.WriteResponse

type Fwd (Axi4WriteResponse dom conf userType) = Signal dom (S2M_WriteResponse conf userType)

configuration

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