-
Notifications
You must be signed in to change notification settings - Fork 22
Description
I'm a bit confused to how the StreamIO interface is supposed to be used.
The doc says
The protocol
implemented in the handshake is identical to the Ready/Valid
protocol from the AXI spec for channels.
So I assume:
data.is_some()is the equivalent of AXI'svalidsignalreadyis AXI's counterpart- a 'transfer' occurs when
data.is_some() && ready data.is_some()andreadycan be independently setdata.is_some()andreadycan be driven however you like (including in async), so long as they don't depend on each other
Is that correct?
The doc also mentions
The stream cores
all have registered inputs and outputs, so as to avoid
combinatorial pathways between the input and output.
AFAIU, the current IPs (widgets?) respect that convention but the choice of a sync or async stream is up to the designer.
Is there a plan to enforce StreamIO interfaces to be always sync, is is that just a convention?
Also in the doc:
A generic Stream IO type that holds a data and ready
signal. Note that in a Stream interface, these
signals are generally in opposite directions.
In AXI stream they are always in opposite direction.
Is that a typo or is there intent to support other type of streams?