This module helps to deal with stream-sources that do not support
backpressure i.e. cannot handle the case where the sink is not ready to
accept a value. In constrast to a FIFO that queues the transactions, this IP
just drops them. That is, the currently stalled in-flight transaction is just
updated with the new data sent by the input. Therefore the input of this
module is always ready but there is no guarantee that every transaction is
sent to the output. The module will just keep the valid_o signal asserted
until a transaction is acceted by the output side which at this point
receives whatever data the input last deposited.
The stream_deposit module is helpful to connect configuration registers with
IPs that could cause back pressure. In this case we might not care how long
it takes for the config value to be sent to the IP but if we change the
config value we want the latest value to be used regardless wether the
previous transaction was still in-fligth or not.
This module helps to deal with stream-sources that do not support backpressure i.e. cannot handle the case where the sink is not ready to accept a value. In constrast to a FIFO that queues the transactions, this IP just drops them. That is, the currently stalled in-flight transaction is just updated with the new data sent by the input. Therefore the input of this module is always ready but there is no guarantee that every transaction is sent to the output. The module will just keep the valid_o signal asserted until a transaction is acceted by the output side which at this point receives whatever data the input last deposited.
The stream_deposit module is helpful to connect configuration registers with IPs that could cause back pressure. In this case we might not care how long it takes for the config value to be sent to the IP but if we change the config value we want the latest value to be used regardless wether the previous transaction was still in-fligth or not.