You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support alternate memory system via '+is_discrete_debug_module' opt
When passing +is_discrete_debug_module to 'sim_opts' in the riscv-dv testlist
(dv/uvm/core_ibex/riscv_dv_extension/testlist.yaml), this now results in the test
being compiled and loaded into the simulation memory models in a way that mimics
a discrete debug module mapped away from the main processor memory. Up to this
point, the riscv-dv binaries generate debug rom sections which are simply placed
within a single monolithic code section.
This requires a bit of machinery to achieve:
- A new linker script to compile our test software for this layout
(riscv_dv_extension/link.ld
- Test binaries output into multiple binaries which are loaded seperately to
initialize the sparse memory space. Two regions are supported, 'main' and 'dm'.
- Initialize more testbench parameters via CLI args. This allows their values
to be chosen dynamically in the future and to be test-dependent. For now, the
various address / mask parameters are still set to fixed values for all tests.
One slightly unclean implementation detail is that the cosimulation model's
memory is loaded via binary .bin files, while the simulator's memory model is
loaded via verilog .vmem memory files. Ideally we would use .vmem files for
both, but the interface to the cosimulation model via DPI only implements
byte-writes, so loading a raw binary file is more convenient for that interface.
Signed-off-by: Harry Callahan <hcallahan@lowrisc.org>
0 commit comments