-
Notifications
You must be signed in to change notification settings - Fork 58
Description
Currently there is a significant amount of duplication between CPU interface testbench library components
Specifically:
tb_inst.svtemplates contain a lot of common boilerplate*_driver.svfiles all implement the exact sameassert_readmethods, among other things
For the tb_inst.sv template, see if it makes sense to autogenerate more of it. Or possibly use a hierarchical Jinja template using blocks & inheritance to make it less verbose. Important: Be careful to not sacrifice clarity. This TB infrastructure is already pretty non-traditional and can be confusing to newcomers.
For drivers, migrate the driver API to live inside SV classes so that they can use proper inheritance.
Or a different wild idea: migrate ALL testbench infrastructure to something like cocotb. SystemVerilog is nice, but much of the verilator compatibility issues are due to fancy things being done in the testbench code and not the generated RTL.