-
Notifications
You must be signed in to change notification settings - Fork 0
Data Link
An I/O Bundle containing valid
and ready
signals that handshake the transfer of data stored in the 'bits' subfield.
The base protocol implied by the directionality is that the consumer uses the flipped interface.
Note: ready/valid are enforced via use of concrete subclasses.
A concrete subclass of ReadyValidIO signaling that the user expects a "decoupled" interface:
'valid'
indicates that the producer has put valid data in 'bits', and 'ready' indicates that the consumer is ready to accept the data this cycle.
No requirements are placed on the signaling of ready or valid.
Note 1: data transfer is deemed to occur whenever the 'valid' signal is asserted.
Note 2: Internal 'Producer.State' signal is for illustrative purposes only. Internal logic will vary.
A concrete subclass of ReadyValidIO that promises: Not change the value of 'bits' after a cycle where 'valid' is high and 'ready' is low. Additionally, once 'valid' is raised it will never be lowered until after 'ready' has also been raised.
Note 1: data transfer is deemed to occur only when both the 'valid' and 'ready' signals are asserted.
Note 2: Internal 'Producer.State' signal is for illustrative purposes only. Internal logic will vary.
Note 3: Only safe to cast consumed Decoupled bits to Irrevocable. It means IrrevocableIO restrication apply on producer and it doesn't effect the consumer logic.