Fix missing ND response to zero-length ND request #50
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
The
idma_nd_midend
module fails to generate a response to zero-length ND requests.How it arises
nd_rsp_valid_o
is never asserted due to thelast
signal in the burst response from the backend not being asserted:iDMA/src/midend/idma_nd_midend.sv
Line 208 in 5ebff11
This is in turn due to how the backend handles zero-length transfers, setting most of the response signals to zero:
iDMA/src/backend/tpl/idma_backend.sv.tpl
Lines 394 to 403 in 5ebff11
What it implies
As a consequence of the missing response from the
idma_nd_midend
, the frontend does not properly keep track of thecompleted_id
, as it never assertsretire_id
for zero-length transfers:iDMA/src/frontend/inst64/idma_inst64_top.sv
Lines 255 to 272 in 5ebff11
Fix
This PR proposes to correct this condition in the backend, by always asserting the
last
signal in response to zero-length transfers.