clash-protocols
Safe HaskellNone
LanguageGHC2021

Protocols.Experimental.Axi4.ReadData

Description

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

Synopsis

Documentation

newtype M2S_ReadData Source #

See Table A2-6 "Read data channel signals"

Constructors

M2S_ReadData 

Fields

Instances

Instances details
BitPack M2S_ReadData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

NFDataX M2S_ReadData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

ShowX M2S_ReadData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

Generic M2S_ReadData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

Associated Types

type Rep M2S_ReadData 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

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

Defined in Protocols.Experimental.Axi4.ReadData

Eq M2S_ReadData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

type BitSize M2S_ReadData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

type Rep M2S_ReadData Source # 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

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

data S2M_ReadData (conf :: Axi4ReadDataConfig) userType dataType Source #

See Table A2-6 "Read data channel signals"

Constructors

S2M_NoReadData 
S2M_ReadData 

Fields

Instances

Instances details
(KnownAxi4ReadDataConfig conf, NFDataX userType, NFDataX dataType) => NFDataX (S2M_ReadData conf userType dataType) Source # 
Instance details

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

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

Defined in Protocols.Experimental.Axi4.ReadData

Associated Types

type Rep (S2M_ReadData conf userType dataType) 
Instance details

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

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

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

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

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

Instances details
(KnownAxi4ReadAddressConfig confAR, KnownAxi4ReadDataConfig confR, NFDataX userR, NFDataX dat, ARIdWidth confAR ~ RIdWidth confR) => DfConv (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) Source # 
Instance details

Defined in Protocols.Experimental.DfConv

Associated Types

type Dom (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) 
Instance details

Defined in Protocols.Experimental.DfConv

type Dom (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) = dom
type BwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) 
Instance details

Defined in Protocols.Experimental.DfConv

type BwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) = (dat, userR, ResponseType (RKeepResponse confR))
type FwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) 
Instance details

Defined in Protocols.Experimental.DfConv

type FwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) = Axi4ReadAddressInfo confAR dataAR

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

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

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

Defined in Protocols.Experimental.Axi4.ReadData

Associated Types

type Fwd (Axi4ReadData dom conf userType dataType) 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

type Fwd (Axi4ReadData dom conf userType dataType) = Signal dom (S2M_ReadData conf userType dataType)
type Bwd (Axi4ReadData dom conf userType dataType) 
Instance details

Defined in Protocols.Experimental.Axi4.ReadData

type Bwd (Axi4ReadData dom conf userType dataType) = Signal dom M2S_ReadData
type BwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) Source # 
Instance details

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

Defined in Protocols.Experimental.DfConv

type Dom (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) = dom
type FwdPayload (Axi4ReadAddress dom confAR dataAR, Reverse (Axi4ReadData dom confR userR dat)) Source # 
Instance details

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

Defined in Protocols.Experimental.Axi4.ReadData

type Bwd (Axi4ReadData dom conf userType dataType) = Signal dom M2S_ReadData
type Fwd (Axi4ReadData dom conf userType dataType) Source # 
Instance details

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 

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.