Skip to content
This repository has been archived by the owner on Nov 22, 2023. It is now read-only.

Read-modify-write (RMW) module #152

Closed
zarubaf opened this issue Jun 14, 2021 · 0 comments
Closed

Read-modify-write (RMW) module #152

zarubaf opened this issue Jun 14, 2021 · 0 comments
Assignees

Comments

@zarubaf
Copy link
Contributor

zarubaf commented Jun 14, 2021

In order to be able to protect an SRAM using ECC, only full-word accesses can be made as the parity word is assembled over the entire word. It is still beneficial to allow for byte-wise accesses though.

The idea is to create a module that contains the following interface on the in-side (minus atop):

.mem_req_o(spm_req),
.mem_gnt_i(spm_req), // always granted - it's an SPM.
.mem_addr_o(spm_addr),
.mem_wdata_o(spm_wdata),
.mem_strb_o(spm_strb),
.mem_atop_o(),
.mem_we_o(spm_we),
.mem_rvalid_i(spm_rvalid),
.mem_rdata_i(spm_rdata)

If the module detects a write access without the full write mask set a state machine should do a read access, followed by a partial merge (dependent on the write mask) and a consecutive write. The output interface of the module looks similar to the input interface minus the write-mask (which is implicitly set to '1).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants