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.

typeclass AxiStream::MkAxiStream(type atype, type btype)
module mkAxiStream(btype b) → (atype

Create a module with an AXI Stream interface.

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

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

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

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

instance AxiStream::MkAxiStream(AxiStreamMaster#(dsize), PipeOut#(dtype))
module mkAxiStream(PipeOut#(dtype) f) → (AxiStreamMaster#(dsize))

Create an AXI Stream master from a PipeOut#(dtype)

instance AxiStream::MkAxiStream(AxiStreamSlave#(dsize), FIFOF#(PipeIn#(dtype))
module mkAxiStream(PipeIn#(dtype) f) → (AxiStreamSlave#(dsize))

Create an AXI Stream slave from a PipeIn#(dtype)