riscv-note-Nov012018
brief summary
update to Nov 1st, 2018 by Pt.
1. Rocket Chip Generator
首先,注意这个项目名字是“generator”,它只是用来生成RocketChip的一系列文件,其源代码用Chisel3(Chisel3基于Scala,Scala基于Java)所写,而这个Chisel3程序可以生成
- C语言仿真代码
- Verilog FPGA代码
- Verilog ASIC代码
2. riscv-tools
根据RocketChip在Github上的主页说明而clone到本地的riscv-tools文件夹其实是riscv一系列工具的源文件所在(也可以认为是安装文件),当在这个文件夹里成功执行 ./build.sh 后,将会把所有工具安装到 $RISCV 所指向的路径。关于riscv-tools,应该查看 https://github.com/riscv/riscv-tools/blob/master/README.md
3. Synopsys VCS仿真
(1) VCS 仿真一般流程
假设有 verilog 源文件:
- tb.v
- file1.v
- file2.v
- file3.v
假设目录结构如下:
1 | test |
那么list.f的内容应该是:
1 | ./src/tb.v |
使用VCS仿真的指令是:
1 | # 在test目录里 |
将会生成可执行文件 simv
执行这个文件
1 | ./simv -gui |
将会打开dve。
RochekChipGenerator
在 rocketchip/vism 文件夹内,应该只有三个文件:
- Makefile
- Makefrag
- Makefrag-verilog
如果有多的文件,那是多余的,可以执行 make clean 清理。目前我对于Makefile的理解是,它其实是一个可以用 make 命令执行的脚本。它有不同的选项,为了查看波形,应该执行 make debug ,然后会生成可执行文件
1 | simv-freechips.rocketchip.system-DefaultConfig-debug |
如果已经安装了riscv-tests, 从 $RISCV/share/riscv-tests/isa 选择测试文件作为参数,执行上面生成的可执行文件。例如:
1 | ./simv-freechips.rocketchip.system-DefaultConfig-debug $RISCV/share/riscv-tests/isa/rv64ui-p-and |
就会在当前目录(vsim)生成文件 vcdplus.vpd ,使用dve打开vpd文件:
dve -full64 -vpd ./vcdplus.vpd
4. RocketChip测试文件的生成
目前已知测试文件的汇编源码在 rocket-chip/riscv-tools/riscv-tests/ 里,其余不详。