姓名:徐铭伟 学号:21011210001 学院:通信工程学院
【嵌牛导读】Uubuntu下使用NCverilog仿真Verilog工程
【嵌牛鼻子】Uubuntu下使用NCverilog仿真Verilog工程
【嵌牛提问】如何在Uubuntu下使用NCverilog仿真Verilog工程
【嵌牛正文】
0x01 NCverilog 简介
NCverilog 是国际 EDA 巨头 Cadence 旗下的仿真软件。NCverilog 有 shell 和 GUI 两种版本,GUI 版本的叫做 NClaunch ,本文仅说 shell 版本的。
与 Windows 下的常用 EDA 软件 Modelsim/QuestaSim 不同,Linux 下的 EDA 软件通常是仿真和波形查看功能是分离的,比如 Synopsys 旗下的 VCS 和 Verdi 、以及轻量级开源 EDA 工具 Icarus-verilog 和 GTKwave。Cadence 的波形查看器称为 Simvision 。
0x02 NCverilog 仿真自动化
NCverilog 的三步命令模式有ncvlog(编译)、ncelab(建立snapshot文件)、ncsim(对snapshot进行仿真);同时也支持单命令模式,下面使用单命令编写 Makefile 实现自动化仿真:
# This is a Makefile for NCsim
TbFileName += "testbench"
SimFileList += "SimFileList"
RtlFileList += "RtlFileList"
all:
@echo "Start NCverilog......"
ncverilog \
+access+wrc \
+nctimescale+1ns/1ps \
-f SimFileList \
-f RtlFileList
@echo "NCverilog is Over!!!"
clean:
rm -rf ./INCA_libs ./*.shm
因为最终需要生成 Simvision 所支持的波形文件,即 .shm 文件,所以在 testbench 文件中需要加入以下语句;其中 TESTwave.shm 为 shm 文件名称,testbench 为顶层 tb module 的名称。
// generate shm File
initial begin
$shm_open("TESTwave.shm"); // 打开波形保存文件wave.shm
$shm_probe(testbench,"AS"); // 设置探针
end
0x03 执行仿真 & 查看结果
在 Makefile 所在目录执行 make 即可调用 NCsim 内核对 tb 文件进行仿真,仿真结束后停留在 NC 的命令行界面,此时可以使用 NC 的指令对仿真进行进一步操作,或者输入exit 退出 NCverilog 命令行界面。
再打开一个终端输入simvision将会打开 simvision 界面,点击左上角的 File -> Open Database 选择生成的 .shm 文件,点击 Open 即可打开波形。
当更改设计或仿真文件后可以点击左上角 File->Reload Database 重新加载波形。
姓名:徐铭伟 学号:21011210001 学院:通信工程学院