姓名:徐銘偉? ?學(xué)號(hào):21011210001? ?學(xué)院:通信工程學(xué)院
【嵌牛導(dǎo)讀】Uubuntu下使用NCverilog仿真Verilog工程
【嵌牛鼻子】Uubuntu下使用NCverilog仿真Verilog工程
【嵌牛提問(wèn)】如何在Uubuntu下使用NCverilog仿真Verilog工程
【嵌牛正文】
0x01 NCverilog 簡(jiǎn)介
NCverilog 是國(guó)際 EDA 巨頭 Cadence 旗下的仿真軟件。NCverilog 有 shell 和 GUI 兩種版本,GUI 版本的叫做 NClaunch ,本文僅說(shuō) shell 版本的。
與 Windows 下的常用 EDA 軟件 Modelsim/QuestaSim 不同,Linux 下的 EDA 軟件通常是仿真和波形查看功能是分離的,比如 Synopsys 旗下的 VCS 和 Verdi 、以及輕量級(jí)開(kāi)源 EDA 工具 Icarus-verilog 和 GTKwave。Cadence 的波形查看器稱為 Simvision 。
0x02 NCverilog 仿真自動(dòng)化
NCverilog 的三步命令模式有ncvlog(編譯)、ncelab(建立snapshot文件)、ncsim(對(duì)snapshot進(jìn)行仿真);同時(shí)也支持單命令模式,下面使用單命令編寫 Makefile 實(shí)現(xiàn)自動(dòng)化仿真:
# 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
因?yàn)樽罱K需要生成 Simvision 所支持的波形文件,即 .shm 文件,所以在 testbench 文件中需要加入以下語(yǔ)句;其中 TESTwave.shm 為 shm 文件名稱,testbench 為頂層 tb module 的名稱。
// generate shm File
initial begin
? ? $shm_open("TESTwave.shm");? ? // 打開(kāi)波形保存文件wave.shm
? ? $shm_probe(testbench,"AS");? ? // 設(shè)置探針
end
0x03 執(zhí)行仿真 & 查看結(jié)果
在 Makefile 所在目錄執(zhí)行 make 即可調(diào)用 NCsim 內(nèi)核對(duì) tb 文件進(jìn)行仿真,仿真結(jié)束后停留在 NC 的命令行界面,此時(shí)可以使用 NC 的指令對(duì)仿真進(jìn)行進(jìn)一步操作,或者輸入exit 退出 NCverilog 命令行界面。

再打開(kāi)一個(gè)終端輸入simvision將會(huì)打開(kāi) simvision 界面,點(diǎn)擊左上角的 File -> Open Database 選擇生成的 .shm 文件,點(diǎn)擊 Open 即可打開(kāi)波形。


當(dāng)更改設(shè)計(jì)或仿真文件后可以點(diǎn)擊左上角 File->Reload Database 重新加載波形。
姓名:徐銘偉? ?學(xué)號(hào):21011210001? ?學(xué)院:通信工程學(xué)院