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
2
3
4
5
6
7
test
+-- list.f
+-- src
+-- tb.v
+-- file1.v
+-- file2.v
+-- file3.v

那么list.f的内容应该是:

1
2
3
4
./src/tb.v
./src/file1.v
./src/file2.v
./src/file3.v

使用VCS仿真的指令是:

1
2
# 在test目录里
vcs -full64 -f list.f

将会生成可执行文件 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/ 里,其余不详。