Consume Crossbar inputs during prologue - #303
Conversation
6663a41 to
9c79689
Compare
|
This PR is the isolated Crossbar part from the earlier prologue discussion. Concrete example: if ctrl addr 0 has |
6663a41 to
c556b0d
Compare
889a5be to
2177f78
Compare
2177f78 to
74013d2
Compare
|
Concrete example: input token A arrives Before: After: |
|
yyan7223
left a comment
There was a problem hiding this comment.
Sorry I cannot understand the changes.
| s.recv_data[i].rdy @= reduce_and(s.recv_valid_vector) & \ | ||
| # Prologued inputs are still required so the skipped token is | ||
| # consumed; send_required_vector decides whether it is forwarded. | ||
| s.recv_data[i].rdy @= reduce_and(s.recv_valid_or_prologue_allowing_vector) & \ |
There was a problem hiding this comment.
Why crossbar is allowed to perform routing during prologue?
+1, I thought prologue shouldn't consume input token. I thought prologue (iirc about my own design/motivation) is used to proceed even without caring about input, i.e.:
|
Summary
Addresses #292 with a minimized Crossbar prologue-consume fix. This PR only updates
CrossbarRTL.pyand its focused test.Changes
No new ports or interfaces are introduced.