* feat: add ability to enable error output on the cpuif, when decoding errors occur (generate_cpuif_err in API). * fix: move signal to new place (after automatic vers) * feat: add info about new api (generate_cpuif_err) * fix: repair readback with latency * Adding generate_cpuif_err argument to peakrdl-regblock to generate cpuif error response, when the address is decoded incorrectly * add sw rd or/and wr attribure error response related and add error respone for external mem * add sw rd or/and wr error response test * add sw rd or/and wr error response for external register test and fix generation of rtl logic for external register * add sw rd or/and wr error response for external mem test * add sw rd or/and wr error response for apb3 imterfaces driver * add error response test for APB4, AXI4Lite and Avalon interfaces * rename --generate_cpuif_err to --generate-cpuif-err * style: minor typo fixes and test clean-up * refactor: move expected error check inside write/read functions * feat: add error response check to OBI testbench interface * feat: split generate-cpuif-err option into err-if-bad-addr and err-if-bad-rw options * feat: add err_if_bad_addr/rw to cfg_schema * feat: extend cpuif_err_rsp test to cover all combinations of bad_addr/bad_rw * style: lint fixes * fix: removed redundant if node.external condition to help coverage * Fix dangling hwif_in signals in testcase --------- Co-authored-by: Denis Trifonov <d.trifonov@yadro.com> Co-authored-by: Dominik Tanous <tanous@kandou.com> Co-authored-by: Sebastien Baillou <baillou@kandou.com> Co-authored-by: Alex Mykyta <amykyta3@users.noreply.github.com>
30 lines
829 B
Python
30 lines
829 B
Python
from parameterized import parameterized_class
|
|
|
|
from ..lib.sim_testcase import SimTestCase
|
|
from ..lib.test_params import get_permutations
|
|
from ..lib.cpuifs import ALL_CPUIF
|
|
|
|
@parameterized_class(
|
|
# To reduce the number of tests, cover all CPUIFs with both error injections enabled, and all
|
|
# combinations of bad_addr/bad_rw with the default CPUIF only.
|
|
get_permutations({
|
|
"cpuif": ALL_CPUIF,
|
|
"err_if_bad_addr": [True],
|
|
"err_if_bad_rw": [True],
|
|
}) +
|
|
get_permutations({
|
|
"err_if_bad_addr": [True, False],
|
|
"err_if_bad_rw": [True, False],
|
|
})
|
|
)
|
|
class Test(SimTestCase):
|
|
extra_tb_files = [
|
|
"../lib/external_reg.sv",
|
|
"../lib/external_block.sv",
|
|
]
|
|
init_hwif_in = False
|
|
clocking_hwif_in = False
|
|
|
|
def test_dut(self):
|
|
self.run_test()
|