cv32e40x icon indicating copy to clipboard operation
cv32e40x copied to clipboard

Documentation: load/store error

Open eroom1966 opened this issue 2 years ago • 2 comments

**Component:Doc **:

The documentation seems to use the same expression to determine a load or store error data_err_i = 1 and data_rvalid_i = 1 for load data_err_i = 1 and data_rvalid_i = 1 for store

I presume rvalid should be 0 in the store error case

eroom1966 avatar Aug 03 '22 16:08 eroom1966

The expressions are correct. The differentiation is made by the 'for load' or 'for store' part of the sentence. Every OBI transaction is either a read (data_we_o = 0) or a write (data_we_o = 1). These signals are only valid on the boundary of the core during the address phase of a data transaction. The core itself remembers internally if a data_rvalid_i that is eventually returned is 'for a load/read' or 'for a store/write) and it can classifiy the data errors correctly according to its internal state at the time that the error is received. This tracking logic can easily be build based on just external OBI signals as OBI response phase transfer remain in the same order as their corresponding address phase transactions.

Silabs-ArjanB avatar Aug 03 '22 18:08 Silabs-ArjanB

@silabs-hfegran Henrik, what is the proposed logic for telling the RM that either of the NMI bus errors have occurred to set either 1024/1025 as the cause

PilotAware avatar Aug 03 '22 20:08 PilotAware

@silabs-mateilga Can this issue be closed now?

Silabs-ArjanB avatar Mar 13 '23 07:03 Silabs-ArjanB

I can't see any issues with the doc in this now, closing.

silabs-mateilga avatar Mar 13 '23 08:03 silabs-mateilga