二、VCS仿真框架搭建
华工微电子学院”Verilog HDL“的贺老师推荐使用VCS进行仿真,为与课程内容契合,故在此讲解其仿真框架的搭建。同时VCS相比于iverilog,仿真速度更快,支持DPI-C,在后面的门级仿真中也支持导入sdf标准延迟文件。
为了方便仿真,在此使用了make工具(贺老师给出了使用shell脚本构建的仿真框架,这里的Makefile也是根据贺老师给出的shell脚本进行修改得到的,不过使用make会比单纯的shell脚本更好的完成编译和仿真工作)。如果你不知道make是什么,可上网查询。
1. 克隆代码
使用make来进行仿真,需要写一个Makefile文件,不过我已经写好了,并上传到了github仓库中:https://github.com/EPTansuo/vcs_template。
将仓库克隆到服务器上,你应该可以看到如下的目录结构:
├── Makefile
├── README.md
├── tb
│ └── demo_tb.v
└── vsrc
└── demo.v
如果你想编译并仿真,只需执行即可:
make sim
仿真后,示例工程会生成build文件夹,生成的波形文件便在其中。
你可以将tb和vsrc目录下的文件替换为自己的verilog代码,尝试进行仿真。
如果你想使用verdi进行交互式仿真:
编辑Makefile,在下面的代码中添加-verdi选项:
sim: $(BIN)
cd $(BUILD_DIR) && ./$(shell basename $^) -verdi\
-l $(abspath $(SIM_LOG))
2. 进一步尝试
如果你想在本地编写代码,并在本地执行
make remote_sim,即可实现在服务器上仿真,并把仿真结果拉取到本地,如何进行?(学习Makefile,并了解rsync,你就可以做到这一点。)示例代码中使用了
$dumpfile("wave.vcd")来生成波形,但是vcd文件没有进行压缩,当dump波形时间长,信号量多的情况下,会导致波形文件占用很多的磁盘空间,而fsdb波形文件就会好很多,那如何使用fsdb波形文件代替vcd文件呢?如何使用vscode进行远程开发呢?