amaranth icon indicating copy to clipboard operation
amaranth copied to clipboard

docs/stdlib/stream: correct comment in example code about discarded data

Open purdeaandrei opened this issue 1 year ago • 1 comments

In the example code the condition done & self.stream.valid & ~self.stream.ready is not sufficient to cause the payload to be discarded. That is because the done bit remains high. In case of a very slow stream, the first two quickly arriving serial transactions will never be lost, even if the first transaction has not been processed yet, when the second one arrives. However if a 3rd transaction arrives as well, then the 2nd transaction will be discarded.

See here for the done bit being sticky, and the 2nd transaction (out of two) not being lost: image

See here for the case when the 3rd transaction causes the 2nd transaction to be discared: image

purdeaandrei avatar Aug 04 '24 07:08 purdeaandrei

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 90.89%. Comparing base (cde68fb) to head (74a6cf3). Report is 7 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1474      +/-   ##
==========================================
- Coverage   91.12%   90.89%   -0.24%     
==========================================
  Files          43       43              
  Lines       10990    11150     +160     
  Branches     2665     2712      +47     
==========================================
+ Hits        10015    10135     +120     
- Misses        805      849      +44     
+ Partials      170      166       -4     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Aug 04 '24 07:08 codecov[bot]