I am trying to familiarize myself with the RISC-V ISA and Rocket Chip. I have set the CONFIG=DefaultSmallConfig
and generated Verilog code using make verilog
command in vsim
directory. I have a few questions about the outputs and how to synthesize the system using Design Compiler (DC).
How can I remove the ports and wires that are related to debugging? I only need to synthesize the core and its peripherals, not the debugging related modules/wires.
Is the top-level module
ExampleRocketSystem
? I have to setcurrent_design
in DC and need to know what the top-level module is.Other than the
freechips.rocketchip.system.DefaultSmallConfig.v
output file, what do I need in order to run a full DC synthesis?Assuming that I use the output Verilog file and no other files for DC synthesis, I get a lot of unresolved references and registers that are removed due to being constant. What am I missing here?
1) Its difficult to remove the debugging ports in general and I'm not sure how to do it cleanly. Its also worth noting that if you don't include a peripheral to boot off you will want to keep the debug port to help you load test programs.
2) Yes
ExampleRocketSystem
is the top level module3) You will need an implementation of the memories used in your design as well. By default you should have a
*.behav_srams.v
file in generated-src that have a simple verilog behavior model of rams you can include that should turn into a bunch of flip-flops in DC. If you have access to SRAMs you would likely replace these flip-flops with those.4) You should not get unresolved references but it is reasonable to get registers being removed due to being constant.