Hi RISC-V HW Developers,
This is my first post here. So as a quick introduction: I would say that I have good digital design experience. I had university courses on Processors and have designed simple processor core. I am new to processor SoC designs.
I am trying to understand Rocket-Chip so that I will be able to customize it, eventually to make it a part of a product idea we are evaluating.
I jumped straight to the generated verilog with Default configuration. I don't have vcs license; I took the verilog for implementation on to Xilinx Vivado. Following queries are from my implementation attempt-
1. plusarg_reader:
There are multiple instances of plusarg_reader module. The definition is missing. I commented it out for my implementation. What does this block do?
plusarg_reader #(.FORMAT("tilelink_timeout=%d"), .DEFAULT(0)) plusarg_reader (.out(plusarg_reader_out) );
2. module 'AsyncResetReg' not found
It seems resets are synchronous. Can you please clear the confusion here.
3. While synthesizing the ram-
reg [63:0] ram [33554431:0]
vivado complained that -
ERROR: [Synth 8-354] integer overflow when computing array size [src/freechips.rocketchip.system.DefaultConfig.behav_srams.v:248]
I have reduced the size by half and address bits by 1.
Any comments on this?
4. module 'SimDTM' not found
What is this module for?
The top module in generated-src is TestHarness. Is it a module that contains testbench?
My current top is 'ExampleRocketSystem'.
Other than the rocket wrapper tile there are many blocks. What is the best way for me to understand these blocks?
Any help is highly appreciated.
Regards
Chinmaya