2022年modelsim和NCverilog的区别 .pdf
Modelsim 和 NCverilog 的比较集成电路的发展趋势是,单位面积集成的晶体管的数目越来越多,可靠性越来越越高、稳定性越来越好。现在芯片集成度已经超出可人们的想象,有的芯片内部集成了数百万的晶体管,已经远远超出了人的大脑可以分析的范围。这就对EDA 工具提出了更高的要求,不管是设计、仿真、综合软件的发展,都给集成电路工程师带来了巨大的便利。modelsim是 Mentor graphics公司推出的 HDL 代码仿真工具,也是业界最流行的 HDL 仿真工具之一。支持图形界面操作和脚本操作,常见的图形界面操作相对直观,但是由于重复性操作几率高、处理效率低、工程的非保存性,对于大规模的代码仿真不推荐使用;脚本操作完全可以克服以上的缺点,把常见的命令,比如库文件和 RTL 加载、仿真、波形显示等命令编辑成.do 脚本文件,只需要让Modelsim 运行.do 文件即可以完成仿真,智能化程度高。NCverilog 是 candence公司推出的 Verilog HDL 的仿真工具。NC-Verilog 是Verilog-XL 的升级版,它采用 Native-Compiled 技术,无论仿真速度,处理庞大设计能力,编辑能力,记忆体容量和侦错环境都以倍数升级。C-Verilog 是一个编译仿真器,它把 Verilog 代码编译成 Verilog 程序的定制仿真器。也就是它把 Verilog代码转换成一个C 程序,然后再把该C 程序编译成仿真器。因此它启动得稍微慢一些,但这样生成的编译仿真器运行得要比Verilog-XL 的解释仿真器快很多。Ncverilog 是 shell 版的,nclaunch是以图形界面为基础的,二者调用相同内核;Ncverilog 的执行有三步模式和单步模式,在 nclaunch中对应 multiple step和single step;Ncverilog 的三步模式为:ncvlog(编译)ncelab(建立 snapshot文件)ncsim(对snapshot文件进行仿真)基于 shell 的 ncverilog 操作(尤其是单步模式)更适合于大批量操作,hncverilog 的波形查看配套软件是simvision,其中包含原理图、波形、信号流等查看方式。Ncverilog命令使用库文件或库目录ex).ncverilog-f run.f-v lib/lib.v-y lib2+libext+.v /一般编译文件在 run.f中,库文件在 lib.v 中,lib2 目录中的.v 文件系统自动搜索使用库文件或库目录,只编译需要的模块而不必全部编译。Verilog Testbench信号记录的系统任务:1).SHM 数据库可以记录在设计仿真过程中信号的变化.它只在 probes有效的时间内记录你 set probe on的信号的变化。ex).$shm_open(waves.shm);/打开波形数据库$shm_probe(top,AS);/set probe on top 第二个参数:A-signals of the specific scrope 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 3 页 -S-Ports of the specified scope and below,excluding library cells;C-Ports of the specified scope and below,including library cells;AS-Signals of the specified scope and below,excluding library cells;AC-Signals of the specified scope and below,including library cells。还有一个M,表示当前 scope 的 memories,可以跟上面的结合使用,AM AMS AMC 什么都不加表示当前scope的 ports;$shm_close /关闭数据库2).VCD 数据库也可以记录在设计仿真过程中信号的变化.它只记录你选择的信号的变化。ex).$dumpfile(filename);/打开数据库$dumpvars(1,top.u1);/scope=top.u1,depth=1 第一个参数表示深度,为 0 时记录所有深度;第二个参数表示scope,省略时表当前的 scope。$dumpvars;/depth=all scope=all$dumpvars(0);/depth=all scope=current$dumpvars(1,top.u1);/depth=1 scope=top.u1$dumpoff /暂停记录数据改变,信号变化不写入库文件中$dumpon /重新恢复记录3).Debussy fsdb数据库也可以记录信号的变化,它的优势是可以跟 debussy结合,方便调试。如果要在 ncverilog 仿真时,记录信号,首先要设置 debussy:a.setenv LD_LIBRARY_PATH:$LD_LIBRARY_PATH(path for debpli.so file(/share/PLI/nc_xl/nc_loadpli1);b.while invoking ncverilog use the+ncloadpli1 option.ncverilog-f run.f+debug+ncloadpli1=debpli:deb_PLIPtr;fsdb数据库文件的记录方法,是使用$fsdbDumpfile 和$fsdbDumpvars系统函数。注意:在用 ncverilog 的时候,为了正确地记录波形,要使用参数:+access+rw,否则没有读写权限。ncverilog编译的顺序:ncverilog file2 file1.有时候这些文件存在依存关系,如在 file2 中要用到在 file1 中定义的变量,这时候就要注意其编译的顺序是从后到前,就先编译 file2 然后才是 file1。信号的强制赋值force 首先,force 语句只能在过程语句中出现,即要在 initial 或者 always 中间,去除 force 用 release 语句。initial begin force sig1=1b1;.;release sig1;end;force 可以对 wire 赋值,这时整个 net 都被赋值,也可以对 reg赋值。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 3 页 -Modelsim的仿真命令和库文件Modelsim 的仿真界面非常的便利,设计者可以根据modelsim 自己的程序设计流程,来设置自己的仿真需要,可以来说是很容易使用的。但是在编译和仿真的大的程序时,所需的时间相对来说比较长。Modelsim 还支持数据流的追踪模式,是一个入门学习Verilog 的不错的软件。设计流程是,首先建立一个物理库(modelsim 库),之后建立工程文件,之后向工程中添加我们自己所需的工程子文件,之后运行编译系统,编译通过后可以运行仿真器。在运行仿真器时,可以指定时间的精度和仿真时间的长度。等到仿真结束之后我们可以查看输入输出信号的波形。这只是modelsim 的最基本的功能,其中 modelsim 还可以波形追踪和代码覆盖等高级的功能。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 3 页 -