Skip to content

Conversation

@yvantor
Copy link

@yvantor yvantor commented Jun 23, 2025

It might happen (especially with HWPEs driving part of the byte enable to zero) that sometimes a write happens with be_i = '0 but with a non-zero data on the wdata_i bus. In this particular case, the RMW FSM in the ecc_bank will still detect a RMW case, leading to either write of unproer data into the TCDM, or to deadlock conditions. This PR introduces a new signal that makes the write enable bus asserted only if the be_i is not all zero during a write operation, and use this to decide if we need to make a RMW or not.
Also, the ecc_error was not driven in the gen_ecc_input case making the {single/multi}_error_o go to x quite often.

@yvantor yvantor changed the title Yt/rmw Link RMW to non-zero byte enable conditions. Jun 23, 2025
@yvantor yvantor requested a review from micprog June 23, 2025 21:57
@yvantor
Copy link
Author

yvantor commented Jun 24, 2025

This is linked to HCI #58, but I believe making a dedicated check into the RMW logic in the ecc_sram still makes sense.

Copy link
Member

@micprog micprog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@micprog micprog merged commit 5103104 into master Aug 7, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants