Skip to content

SECDED errors from the SRAM can not be signalled for ReadModifyWrite operations. #179

Open
@ColinDBates

Description

@ColinDBates

As stated in sonata-system/vendor/lowrisc_ip/ip/tlul/rtl/tlul_adapter_sram.sv the SRAM adapter does not wait for a response from the SRAM before sending able the d_valid for write operations, see lines 474-477:

  //    interleaved. So, to make it in-order (even TL-UL allows out-of-order
  //    responses), storing the request is necessary. And if the read entry
  //    is write op, it is safe to return the response right away. If it is
  //    read reqeust, then D response is waiting until read data arrives.

But for SRAM's with RMW, required for byte writing to a ECC protected SRAM for instance, the SRAM can signal a Double-Error-Dectect error on a write operation.

The current implementation, does not wait for the SRAM to return rvalid_i/rerror_i on write operations before sending the d_valid on the TL interface, so any SECDED error on a RMW operation will be lost.

My suggestion is to require rvalid_i assertion before sending d_valid on write operations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions