Skip to content

Create bus errors (obi/rvfi) scoreboard for 40x

Created by: silabs-robin

This PR adds a scoreboard that intends to check that OBI transactions with "err" bus faults becomes visible on RVFI. The in-code "NaturalDocs" comment describes how it works.

I have tested with the directed tests data_bus_error and instr_bus_error and those work as expected. corev_rand_data_obi_err, corev_rand_data_obi_err_debug, corev_rand_instr_obi_err, corev_rand_instr_obi_err_debug were also tried, and they did pass before pulling latest cv32e40x/dev and now I get ISS miscompares and infinite loops (should not be this scoreboard's fault). Note that corev_rand_instr_obi_err_debug did give a warning as it completed with one pending bus fault that hadn't seen its handler yet. Passed ci_check when it ran during the VTG today.

If anyone thinks there could be a better way of checking this, please just let me know. This is what I managed to come up with, but I don't have a strong feeling about how good it is. It is not a big class, but I found that some of the logic is a bit tricky. I would like to test this more but I don't think we have any additional bus error tests than those mentioned above? @silabs-hfegran, since we discussed a little bit, if you have time to review that would be appreciated.

Merge request reports

Loading