3. AxiStream Package¶
3.1. AXI Stream Interfaces¶
-
interface
AxiStream::
AxiStreamMaster
(numeric type dataWidth)¶ AXI stream source with dataWidth data bits.
-
tdata
→ Bit#(dsz)¶ Returns the data from this beat if tvalid is asserted, otherwise returns undefined.
-
tkeep
→ Bit#(TDiv#(dsz,8))¶ Returns the byte enables from this beat if tvalid is asserted, otherwise returns undefined.
-
tlast
→ Bit#(1)¶ Indicates if this is the last data beat of this transaction tvalid is asserted, otherwise returns undefined.
-
tready
(Bit#(1) v) → Action¶ When tvalid and tready are both asserted the current data is consumed. The value passed to tready may not depend on the output of tvalid.
-
tvalid
→ Bit#(1)¶ Asserted when the data is valid.
-
-
interface
AxiStream::
AxiStreamSlave
(numeric type dataWidth)¶ AXI stream sink with dataWidth data bits.
-
tdata
(Bit#(dsz) data) → Action¶ The data passed from the source if tvalid is asserted, otherwise undefined..
-
tkeep
(Bit#(TDiv#(dsz, 8)) keep) → Action¶ The byte enables passed from the source if tvalid is asserted, otherwise undefined.
-
tlast
(Bit#(1) last) → Action¶ Indicates if this is the last data beat of this transaction tvalid is asserted, otherwise returns undefined.
-
tready
→ Bit#(1)¶ Return 1 if ready to receive data, 0 otherwise.
When tvalid and tready are both asserted the current data is consumed. The value passed to tready may not depend on the output of tvalid.
-
tvalid
(Bit#(1) v) → Action¶ Indicates the data from the source is valid.
-
3.2. Connectable Type Instances¶
-
instance
AxiStream::
Connectable
(AxiStreamMaster#(dataWidth), AxiStreamSlave#(dataWidth))¶
-
instance
AxiStream::
ToGetM
(AxiStreamMaster#(asz), Bit#(asz))¶
-
instance
AxiStream::
ToPutM
(AxiStreamSlave#(asz), Bit#(asz))¶
3.3. AXI Stream Type Classes and Instances¶
-
typeclass
AxiStream::
ToAxiStream
(type atype, type btype)¶ -
function
toAxiStream
(btype b) → atype¶ Convert to an AXI stream interface.
-
function
-
typeclass
AxiStream::
MkAxiStream
(type atype, type btype)¶ -
module
mkAxiStream
(btype b) → (atype¶ Create a module with an AXI Stream interface.
-
module
-
instance
AxiStream::
MkAxiStream
(AxiStreamMaster#(dsize), FIFOF#(Bit#(dsize))) -
module
mkAxiStream
(FIFOF#(Bit#(dsize)) f) → (AxiStreamMaster#(dsize))
Create an AXI Stream master from a FIFOF of bits
-
module
-
instance
AxiStream::
MkAxiStream
(AxiStreamSlave#(dsize), FIFOF#(Bit#(dsize))) -
module
mkAxiStream
(FIFOF#(Bit#(dsize)) f) → (AxiStreamSlave#(dsize)) Create an AXI Stream slave from a FIFOF of bits
-
module
-
instance
AxiStream::
MkAxiStream
(AxiStreamMaster#(dsize), FIFOF#(Bit#(dsize))) -
module
mkAxiStream
(FIFOF#(Bit#(dsize)) f) → (AxiStreamMaster#(dsize))
Create an AXI Stream master from a FIFOF of MemDataF
-
module
-
instance
AxiStream::
MkAxiStream
(AxiStreamSlave#(dsize), FIFOF#(MemDataF#(dsize))) -
module
mkAxiStream
(FIFOF#(MemDataF#(dsize)) f) → (AxiStreamSlave#(dsize)) Create an AXI Stream slave from a FIFOF of MemDataF
-
module
-
instance
AxiStream::
MkAxiStream
(AxiStreamMaster#(dsize), PipeOut#(dtype)) -
module
mkAxiStream
(PipeOut#(dtype) f) → (AxiStreamMaster#(dsize))
Create an AXI Stream master from a PipeOut#(dtype)
-
module
-
instance
AxiStream::
MkAxiStream
(AxiStreamSlave#(dsize), FIFOF#(PipeIn#(dtype)) -
module
mkAxiStream
(PipeIn#(dtype) f) → (AxiStreamSlave#(dsize)) Create an AXI Stream slave from a PipeIn#(dtype)
-
module