ncverilog
modelsim和NCverilog的区别

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,其中包含原理图、波形、信号流等查看方式。
Cadence 实验系列10_Verilog设计平台_NC-Verilog

仿真器 (Simulator)
VI编辑器
选中所有 相关文件 后,点击 编译 RISC CPU 所有模块文 件及仿真文 件
编译成功
描述前进行 设定,Tools >elaborator
非所有代码 都加了时间, 为防止报错
Snapshot 文件
描述成功
控制窗口
设计浏览器
不报错,可以仿真
SimVision中你 可以存储个别目 标或者范围的仿 真数据,使得仿 真数据尽量少, 因此需要设定探 测类型。 选择顶层模块 ->Simulation ->Create Probe
优点:
业界第一的性能加快设计验证 64位机器上设计超过1亿门的芯片 用一体化的事务/信号视窗使效率最大化 集成化的代码覆盖保证全面的验证 通过完全兼容的升级到Incisive验证平台获得终极 的验证速度和效率 来自超过30家ASIC供应商的经过认证的库保证精 确性
缺点(个人认为):
NC-Verilog仿真器
NC-Verilog是Verilog-XL的升级版, 它采用NativeCompiled技术, 无论仿真速度, 处理庞大设计能力, 编辑能力, 记忆体容量和侦错环境都以倍数升级。 NC-Verilog是一个编译仿真器,它把Verilog代码 编译成Verilog程序的定制仿真器。也就是它把 Verilog代码转换成一个C程序,然后再把该C程序 编译成仿真器。因此它启动得稍微慢一些,但这 样生成的编译仿真器运行得要比Verilog-XL的解释 仿真器快很多。它也与Verilog-2001标准的大部分 兼容,并且一直被Cadence经常更新,因此包含 了越来越多的高级应用特点。
点击Apply后便可以得到想要的信号显示方式
cadence_ldv即ncverilog安装方法

安装:ftp上的share文件夹中有个CADENCE_LDV_V5.0文件夹,运行其中的setup程
序,选择第三项安装。
注意,安装可能需要管理员权限。
破解:CADENCE_LDV_V5.0文件夹中的crack文件夹中有个ldv.DAT文件,将这个文件
放在任一目录下,如“C:\Program Files\Cadence Design Systems\LDV”。
右击“我的电脑”,“高级”,“环境变量”,在“环境变量”对话框上方的选择区中找到其中的“LM_LICENSE_FILE”项(如没有可新建),选择“编辑”,在已有项后面加入ldv.DA T文件路径。
如“C:\Program Files\Cadence Design Systems\LDV\ldv.DAT”(将红字部分用你存放ldv.DAT文件的目录替代),注意,新项与之前项用分号隔开。
设置:右击“我的电脑”,“高级”,“环境变量”,在“环境变量”对话框下方的选择区中
找到其中的“Path”项(如没有可新建),选择“编辑”,在已有项后面加入bin文件夹文件路径。
如“C:\Program Files\Cadence Design Systems\LDV\tools\bin”(将红字部分用你安装时选择的安装目录替代),注意,新项与之前项用分号隔开。
运行:“开始”,“运行”,输入“cmd”打开命令行,在命令行中输入“ncverilog”即可运行nc_verilog。
如有问题可以在qq上问我。
NC-Verilog

SimVision让你控制和查询你的 设计仿真。SimVision中你可以 存储个别目标或者范围的仿真 数据,这可以使得仿真数据尽 量的小。 因此需要设置探测类型: 在设计窗口中,点击 test_drink _machine 图示旁边的加号,展开设计的 层次结构。选择顶层模块--> 选择菜单Simulation--〉 Create Probe
准备工作介绍
本例将演示如何在多步实现(multi-step) 的模式下使用NCLaunch。 文件路径: (ftp模式访问)网上邻居选项 访问服务器账户:stu707 访问密码:stu2016
启动NClaunch
在拷贝了源文件的文件夹下面启动 nclaunch -new & 多步模式(Multiple Step)使用ncvlog和 ncelab命令来编译和描述你的设计;单步模 式(Single Step)使用ncverilog命令。选 择多步模式。
DC综合生成标准延时文件(.Sdf文件)
SDF version 选1.0 文件名后缀为 .sdf
综合过程的操作参考DC 使用说明
谢谢!
按照上图所示进行修改即可,完成后点击表示确认
选择—〉File—〉Close Window关闭选项窗口
如果对源代码进行了修改,则要在重新生成一次snapshot, 然后在Console Window 点击simulationreinvoke simulator 出现图示对话在Console Window 点击simulationrun即可
NC-Verilog概述
在SimVision分析环境下进行对设计中的问 题的调试。 SimVision是一个candence 仿真器统一的 图形化的调试环境。SimVision可以用于调 试用verilog,vhdl,SystemC或者它们混合 写成的数字,仿真,或数模混合电路的设计。
Ncverilog命令使用详解

Ncverilog命令使用详解NCVerilog是一种用于模拟、调试和分析Verilog和SystemVerilog 代码的命令行工具。
以下是对NCVerilog命令使用的详细解释。
1. `ncverilog`命令:启动NCVerilog编译器。
语法如下:```ncverilog [options] <file_list>```- `options`:附加的编译选项,例如`-sv`表示编译SystemVerilog 代码。
- `file_list`:包含要编译的源文件的列表。
2. `+access+r`选项:允许模拟工具读取源代码中的注释。
这对于调试和分析时非常有用。
3. `+define+<macro>`选项:定义一个宏。
这可以用于在模拟期间改变代码的行为。
例如:```+define+DEBUG```4. `+incdir+<dir>`选项:指定包含库文件的目录。
这对于使用外部库或模块时非常有用。
5. `+define+<macro>={value}`选项:为宏指定一个值。
例如:```+define+WIDTH=8```6. `+libext+<ext>`选项:指定库文件的扩展名。
可以用于指定Verilog或SystemVerilog库文件的不同扩展名。
``````8. `+vcs`选项:指定使用VCS编译器的系统Verilog代码。
这对于一些特定的系统Verilog代码可能是必需的。
9. `-y <dir>`选项:指定一个目录,其中包含其他用户定义的Verilog或SystemVerilog库文件。
10. `-v <file>`选项:指定一个要编译的单独的库文件。
11. `-f <file>`选项:指定一个包含文件列表的文件。
这可以用于指定要编译的多个源文件。
12. `-fsmdebug`选项:在编译期间为FSM(有限状态机)创建调试信息。
IUS9.2_ncverilog安装

下载ius9.2解压后一共六个文件打开超级终端,进入到此六个文件目录下第一步:./SETUP.SH第二步:设定安装目录(即安装到哪里)第三步:输入y第四步:设定安装源文件的目录(即,一开始解压的六个文件的那个目录)第五步:【与第三步一样】输入y第六步:【与第四步一样】设定安装源文件的目录(即,一开始解压的六个文件的那个目录)第七步:第六步后会弹出窗口,路径就是刚才第四步与第六步设定的路径,不要改,点NEXT>第八步:点NEXT>第九步:路径就是刚才第二步设定的路径,不要改,点NEXT>第十步:全部勾选,点NEXT>第十一步:点install第十二步:等待(直到100%安完),点close第十三步:弹出窗口,点NO第十四步:关掉下面界面,就会回到终端第十五步,进入安装目录,即第二步的目录,在安装目录下给tools.lnx86建一个快捷方式叫tools(使用命令ln -s tools.lnx86 tools)第十六步:复制sfk和patch_cadence(这两个文件是破解文件,到下面网址能下载到,同时也能下载到IUS软件,感谢该网友的无私奉献,/viewthread.php?tid=304428&from=favorites)到IUS安装目录下,执行./patch_cadence第十七步:在windows上面制作license首先打开LicGen.exe软件,点击open,打开Cadence.lpd然后按下图填写,注意Custom后面的那一串是机器的MAC地址,如果是用虚拟机的话,在终端中运行/sbin/ifconfig -a Hwaddr 后面就是虚拟机的MAC!,点击Generate,然后Save成license.dat。
之后用记事本打开license.dat,第一行的SERVER 后面要改成虚拟机的主机名,虚拟机主机名一般默认是localhost.localdomain 。
数字电路设计与仿真_图文

Verilog-XL简介
Verilog-XL是一个交互式仿真器,过程如下: 读入Verilog描述,进行语义语法检查,处理编译指导
(compiler directive) 在内存中将设计编译为中间格式,将所有模块和实例组装成层
次结构(设计数据结构)。源代码中的每个元件都被重新表示并 能在产生的数据结构找到。 决定仿真的时间精度,在内存中构造一个事件队列的时间数据 结构(时轮) 。 读入、调度并根据事件执行每一个语句。
NC Verilog是全编译仿真器,它直接将Verilog代 码编译为机器码执行。其过程为:
ncvlog编译Verilog源文件,按照编译指导 (compile directive)检查语义及语法,产生中间数 据。
ncelab按照设计指示构造设计的数据结构,产生可执 行代码。除非对优化进行限制,否则源代码中的元件 (element)可能被优化丢失。产生中间数据。
Single Step mode 一步完成compile,elabrate,simulate。但 必须整个设计是用verilog的。 ncverilog command
Tools bar File browser
NClaunch的图形界面
Menu bar
Design browser
I/O Region
the messages in the log file that you have selected in the File Browser 波形察看窗口(Waveform Window)
Simvision简介
Simvision简介
SimVision是一个candence 仿真器统一的 图形化的调试环境。SimVision可以用于调 试用verilog,vhdl,SystemC或者它们混 合写成的数字,仿真,或数模混合电路的设 计。
NC-verilog 仿真教程和实验实例

Cadence IC设计实验实验六 NC-Verilog Simulator实验实验目的:NC_verilog仿真器的使用,包括编译、运行和仿真。
预备工作:cp /eva01/cdsmgr/ training_IC_data/NCVlog_5_0.tarZ .tar -vxfZ NCVlog_5_0.tarZLab1。
运行一个简单的Verilog设计[1]、设置设计环境1.cd NCVlog_5_0/lab1-mux这个目录包含了用来描述一个多路选择器和其测试平台的verilog 模块。
以下是mux_test.v模块内功能模块的端口框图。
建议:如果有时间,你最好看一看各模块(module)的Verilog代码!2.创建cds.lib文件,vi cds.lib(回车)按小写”i”切换到编辑模式,在其中写入:Define lab1muxlib ./lab1-mux.lib有关vi的编辑命令,请参阅相关资料。
如”Esc”键切换到命令状态,在命令状态下,”x”是删除当前字符,”a”是在当前光标后写入,”:wq”是存盘退出,”:!q”是不保存退出。
存盘退出3.创建(库)文件夹(即目录):mkdir lab1-mux.lib (回车)4.类似步骤1,创建hdl.var文件,在其中写入:Define WORK lab1muxlib存盘退出5.查看verilog源文件。
mux.v是2选1多路选择器MUX2_1 的门级建模源文件,mux_test.v是mux.v的测试台,包含了输入激励信号和监控程序运行的任务语句。
[2]、编译源文件(ncvlog命令):当前目录应为。
/你的学号/NCVlog_5_0/lab1-mux。
1.ncvlog mux.v –messages ,这条指令是编译mux.v。
2.vi hdl.var打开hdl.var文件,在其中添加:Define NCVLOGOPTS –messages 存盘退出注:用NCVLOGOPTS变量定义常用的ncvlog命令行操作,从而避免每次都敲入同样的命令行。
Ncverilog中如何DUMP出fsdb格式的波形文件

Ncverilog中如何DUMP出fsdb格式的波形文件我们为什么要输出fsdb格式的波形文件的, 原因之一是fsdb文件比较小, 其二是该格式可以由Debussy读取,以便使用Debussy进行代码分析.我们要输出fsdb的话, 要通过PLI 来调用Debussy的系统函数.关于PLI, 在此不再赘述:首先, 我们建立一个工作目录$> mkdir work$> cd work然后新开一个teminal窗口, 找到Debussy的安装目录. 进入/share/PLI/, 在该目录下有很多版本的目录,选择一个属于你的NC版本的目录, 比如nc51, 然后选择你的操作系统, 如LINUX,(换而言之, 现在处于/share/PLI/nc51/LINUX) 之后你会发现:nc_loadpli1/ nc_shared/把这些目录及文件拷贝到work目录下.免编译如果你不需要添加其他的系统函数, 那么直接可以用nc_loadpli1 下文件.使用方法:$> ncverilog access wrc loadpli1= ./nc_loadpli1/ : debpli_boot当然在testbench文件中要写上你所希望调用的debussy 提供的函数, 基本的如:$fsdbDumpfile(““);$fsdbDumpvars(6, tb);需编译如果你已经对进行了修改, 那么首先把编译为文件.cc -KPIC -c -I${CDS_INST_DIR}/tools/verilog/include之后连接ld -G -o使用方法:$> ncverilog access wrc loadpli1= ./ : debussy_bootstrap当然在testbench文件中要写上你所希望调用的debussy 提供的函数, 基本的如:$fsdbDumpfile(““);$fsdbDumpvars(6, tb);。
《NCverilog教程》课件

覆盖率
覆盖率是测试验证中的一个重要概念, 它描述了测试用例覆盖了多少代码。覆 盖率可以分为多种类型,如语句覆盖率 、分支覆盖率、条件覆盖率等。
VS
断言
断言是Verilog中用于描述程序行为的一 种方式。断言可以用于检查程序中的某些 条件是否满足,如果不满足则产生错误。 断言通常用于验证程序的正确性。
详细描述:通过中等难度的实例,帮助学习者深入理解 Verilog的编程原理和技巧,提高编程能力。
详细描述:通过中等难度的实例,让学习者实践编写较 复杂的Verilog代码,掌握高级编程技巧和方法。
复杂实例解析
在此添加您的文本17字
总结词:高级应用
在此添加您的文本16字
详细描述:通过复杂的Verilog代码实例,介绍Verilog在 硬件设计中的应用和实践,包括数字系统设计、硬件测试 等。
05
NCVerilog调试与优化
Chapter
调试工具与技巧
调试工具
使用NCVerilog的调试工具,如仿真 器、调试器等,可以帮助开发者定位 和解决代码中的问题。
调试技巧
在调试过程中,可以采用断点、单步 执行、变量监视等技巧,以便更好地 观察和了解代码的执行情况。
优化策略与技巧
优化策略
优化NCVerilog代码时,可以采用一些常见的优化策 略,如流水线化、并行化、减少计算复杂度等。
它基于Verilog语言,并扩展了其功能 ,支持高性能的数字系统设计。
NCVerilog的特点
支持高性能数字系统设计
NCVerilog提供了高性能的硬件描述语言,支 持大规模数字系统的设计和实现。
高效仿真和综合
NCVerilog具有高效的仿真和综合工具,能够 快速验证和实现设计。
NCveriog安装指南

Ncverilog 安装指南一。
eda安装环境的搭建(建议)1 在主文件夹下建立soft文件夹,里面建立edasoft文件夹,在edasoft下建立source.source文件用来保存软件的配置。
2打开source.source文件,输入下面内容:关闭保存。
3在终端执行:打开用户bash的配置文件,在文件最后新起一行,输入:保存关闭。
二。
安装IUS(或者IFV)(内含ncverilog)工具需要的工具:Float_Cadence_LicGen.tar IUS09.20.007L1P1.tar.gz如下图:安装环境:ubuntu11.10,已经安装了可能需要的一些包(在旋风处可以获取)。
1.分别解压两个包,进入IUS09.20.007L1P1,在此目录下打开终端,运行:然后再:就会如下图所示:点击enter键直到出现:在后面输入你要安装的目录,如:~/soft/edasoft/IUS回车继续:下来惠询问安装路径:然后会跳出图形界面安装InstallScape:点击next直到下图,选上所有安装项(除去含64bit字样的,那个是64bit的):下一步安装:安装完会提示是否配置,选yes:选上所有进行配置。
在询问是否配置lisence时选否:之后完毕,close。
2、现在配置lisence。
进入刚解压出来的Float_Cadence_LicGen文件夹:修改all.dat的内容,只修改第二行,注意和你的IUS安装目录对应:回到Float_Cadence_LicGen文件夹,在该文件夹下打开终端,输入如下指令:如下:执行后会产生key.cadence文件。
重命名为cadencelisence.dat,放到你的安装目录下:编辑source.source文件,加入如下内容:注意上面有两个license,使用了冒号进行分隔。
如果你只有一个lisence,写一个就好。
创建缓存空间,在终端执行:保存关闭所有终端。
ncverilog使用

Ncverilog 使用在NC自带的帮助Cadence NC-Verilog Simulator Help中都可以找到。
以下整理自网络,有点乱 :(ncverilog是shell版的,nclaunch是以图形界面为基础的,二者调用相同内核;ncverilog的执行有三步模式和单步模式,在nclaunch中对应multiple step和single step ncverilog的三步模式为:ncvlog(编译) ncelab(建立snapshot文件) ncsim(对snapshot文件进行仿真)基于shell的ncverilog操作(尤其是单步模式)更适合于大批量操作ncverilog的波形查看配套软件是simvision,其中包含原理图、波形、信号流等查看方式三命令模式:>ncvlog -f run.f>ncelab tb -access wrc>ncsim tb -gui第一个命令中,run.f是整个的RTL代码的列表,值得注意的是,我们需要把tb文件放在首位,这样可以避免出现提示timescale的错误注意:ncvlog执行以后将产生一个名为INCA_libs的目录和一个名为worklib的目录第二个命令中,access选项是确定读取文件的权限。
其中的tb是你的tb文件内的模块名字。
注意:ncelab要选择tb文件的module,会在snapshot文件夹下生成snapshot的module文件第三个命令中,gui选项是加上图形界面在这种模式下仿真,是用“ - ”的。
而下边要说的ncverilog是采用“ +”的三命令模式下GUI界面较好用,其对应的命令会在console window中显示注意:选择snapshot文件夹下生成的module文件进行仿真单命令模式:>ncverilog +access+wrc rtl +gui在这里,各参数与三命令模式相同。
注意“ + ”通常都使用单命令模式来跑仿真,但要配置好一些文件单命令模式下文件的配置:目录下有源文件、测试台文件、file、run四个文件在linux下执行source run后再执行simvision来查看run文件内容: ncverilog +access+rw -f filefile文件内容: cnt_tb.v(注意把tb文件放在前)cnt.vtb文件中应该包含:initialbegin$shm_open("wave.shm"); //打开波形保存文件wave.shm$shm_probe(cnt_tb,"AS"); //设置探针endA -- signals of the specific scope 为当前层信号设置探针S -- Ports of the specified scope and below, excluding library cellsC -- Ports of the specified scope and below, including library cellsAS -- 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 //关闭数据库查看结果时可以在source schemic wave register四个窗口同时查看保存波形信号的方法:1.SHM数据库可以记录在设计仿真过程中信号的变化. 它只在probes有效的时间内记录你setprobe on的信号的变化.2.VCD数据库也可以记录在设计仿真过程中信号的变化. 它只记录你选择的信号的变化.$dumpfile("filename"); //打开数据库$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_PLIPtrfsdb数据库文件的记录方法,是使用$fsdbDumpfile和$fsdbDumpvars系统函数,使用方法参见VCD注意: 在用ncverilog的时候,为了正确地记录波形,要使用参数: "+access+rw", 否则没有读写权限产生FSDB波形文件的若干技巧:/bbs/viewthread.php?tid=2539&;extra=page%3D1下载:/bbs/viewthread.php?tid=3357&;extra=page%3D1ncverilog编译的顺序: ncverilog file1 file2 ....有时候这些文件存在依存关系,如在file2中要用到在file1中定义的变量,这时候就要注意其编译的顺序是从后到前,就先编译file2然后才是file2.,信号的强制赋值force:首先, force语句只能在过程语句中出现,即要在initial 或者 always 中间. 去除force 用release 语句.;initial begin force sig1 = 1'b1; ... ; release sig1; end, force可以对wire赋值,这时整个net都被赋值; 也可以对reg赋值.Verilog和Ncverilog命令使用库文件或库目录ex). ncverilog -f run.f -v lib/lib.v -y lib2 +libext+.v //一般编译文件在run.f中, 库文件在lib.v中,lib2目录中的.v文件系统自动搜索,使用库文件或库目录,只编译需要的模块而不必全部编译Q:我的files里面只有一个help文件夹,里面是一个叫ncprotect文件,没有你所说的hdl.var文件啊A:1、NC-VERILOG在创建工程时会生成两个文件:cds.lib和hdl.var。
模拟电路提取Verilog模型的方法

模拟电路提取V e r i l o g模型的方法Document number:WTWYT-WYWY-BTGTT-YTTYU-2018GT模块电路提取Verilog模型的方法总结陈锋2018-1-181.在原理图目录,运行icfb。
2.选Tools->LibraryManager…3.在Library找到要提取的库(一般是项目名称),这里选NV3030A1P_GRAM。
在Cell里选要提取的顶层模块,这里选GRAM。
View里选schematic,并右击选open4.在打开的原理图VirtiosoSchematic菜单里,选Tools->Simulation->NC-Verilog5.在设置窗口里,RunDirectory手工填入提取Verilog网表的目录名,比如xxx/GRAM_run66.TopLevelDesign里,点Browser…,选择要提取的顶层,我们这里选择与第3步相同的Library、Cell和View。
如下图,选好后点Close。
7.点左边“跑步的人”来InitialDesign。
会看到“三个勾”(GenerateNetlist)的图标显示出来了。
8.选Setup->Netlist…9.设置提取参数。
我们需要修改“NetlistTheseViews”和“StopNetlistingatViews”,如下图设置。
另外时间和精度也可以在此设置,默认是1ns/1ns,是全局的设置。
我建议不要修改,在生成VerilogNetlist后,手工修改一些特殊模块来提高精度即可。
设置好后,点Apply,OK。
10.点击“三个勾”生成VerilogNetlist。
稍等片刻后,第三个图标“模块图”显示出来,说明网表也生成好。
11.我们进入GRAM_run6目录,并进入子目录ihnl。
会看到很cdsxx开头的文件夹,再看cdsxx目录里面有个netlist文件。
用文本编辑器打开netlist,你就看到了提取出来的Verilog网表了。
NC-Verilog完全兼容Cadence

一体化环境和调试 一体化的 NC-Verilog 模拟和调试 环境使得很容易管理多个设计的运 行和分析设计与测试平台。 它的事 务/波形视窗和原理图追踪器能迅 速追踪设计行为到源代码。 NC-Verilog 源代码视窗让设计者检 查他们的设计,设置断点控制模拟 执行,和以交互模式或者后处理调 试模式访问模拟结果。Tcl/TK 支持 能让你定制和集成应用程序到环 境。工业标准的应用程序编程接口, 比如 VPI、 PLI、OMI 以及编译 SDF
更多信息
或者登子陆邮 . f @ . . 发电
件到 in o cadence com www cadence com
接口
• • • •
PLI(IEEE 1364)
. , VPI(PLI 2 0 IEEE 1364) OMI(IEEE 1499) D 编译过的 S F
“OSCI®, SystemC® etc are registered trademarks of Open SystemC Initiative, Inc. in the United States and other countries and are used with permission.”
说明
模拟 • 内生的编译结构 – Verilog IEEE 1364-1995与 大部分IEEE 1364-2001 扩展 – 直接编译到助处理器的机器 码,达到最高性能 • 通过库映射文件支持Verilog 配置 – 支持多维阵列,比如寄存器、 整数和时间 – 允许生成模块、primitive、 变量、线网、任务、连续赋值、 初始化模块和always模块的多 个实体。 – 最大化现代缓存算法的效率 • 容量 –典型1000万等效门,32位操 作系统(可寻址4GB空间) –典型1亿等效门,64位操作系 统 • 服务器 –平台计算LSF –Sun Microsystems Gridware
Cadence® NC-Verilog® Simulator Help

ncvlogncvlog [options] source_file ...Options:-DEFINE <arg> -- Defines a macro-FILE <arg> -- Load command line arguments from <arg>rmation -MESSAGES -- Specifies printing of informative messages-NOCOPYRIGHT -- Suppresses printing of copyright banner-NOSTDOUT -- Turn off output to screen-NOWARN <arg> -- Disables printing of the specified warning messageExamples:-- To compile all the modules in source.v% ncvlog source.v-- To compile with informative messages% ncvlog -messages source.v2. ncelabncelab [options] [lib.]cell[:view]Options:-MESSAGES -- Specifies printing of informative messages-NOCOPYRIGHT -- Suppresses printing of copyright banner-NOSTDOUT -- Turn off output to screen-TIMESCALE <arg> -- Set default timescale on Verilog modules.-ACCESS <arg> -- Set default access visibility. {+rwc} turn on read/write/connectivity.-FILE <arg> -- Load command line arguments from <arg>-LOADPLI1 <arg> -- Specify the library_name:boot_routine(s) to dynamically load a PLI1.0 application-MAXDELAYS -- Selects maximum delays for simulation-MINDELAYS -- Selects minimum delays for simulation-TYPDELAYS -- Selects typical delays for simulation-NONEG_TCHK -- Disallow negative values in SETUPHOLD & RECREM timing checks-NONOTIFIER -- Notifiers are ignored in timing checks.-NOSPECIFY -- Don't execute timing checks, ignore path delays and skip SDF annotations.-NOTIMINGCHECKS -- Don't execute timing checks-NOWARN <arg> -- Disables printing of the specified warning message-NO_TCHK_MSG -- Turn off timing check warnings-SDF_NO_WARNINGS -- Do not report SDF warningsExamples:-- To elaborate my_lib.top:behav% ncelab my_lib.top:behav% ncelab my_lib.top% ncelab top-- To elaborate with informative messages% ncelab -messages my_lib.top:behav3. ncsimncsim [options] [lib.]cell[:view]Options:-FILE <arg> -- Load command line arguments from <arg>-GUI -- Enter window mode before running simulation-INPUT <arg> -- Script to be executed during initialization-MESSAGES -- Specifies printing of informative messages-NOCOPYRIGHT -- Suppresses printing of copyright banner-NONTCGLITCH -- Suppress delayed net glitch suppression messages-NOSTDOUT -- Turn off output to screen-NOWARN <arg> -- Disables printing of the specified warning message-SDF_NO_WARNINGS -- Do not report SDF warningsExamples:-- To simulate the snapshot my_lib.top:snap% ncsim my_lib.top:snap% ncsim my_lib.top% ncsim top-- To simulate while writing to the log file ./ncsim.log% ncsim -log ./ncsim.log my_lib.top:snap-- To update the snapshot my_lib.top:snap and simulate% ncsim -update my_lib.top:snap4. ncverilogncverilog [all valid Verilog-XL arguments]Supported Dash options:-f <filename> Read host command arguments from fileSupported plus options:+access+<rwc> Turn on Read, Write and/or Connectivity Access+define+<macro> Define a macro from commandline+loadpli1=<arg> Specify the library_name:boot_routine(s) to dynamically load a PLI1.0 application from commandline+maxdelays Selects maximum delays for simulation+mindelays Selects minimum delays for simulation+typdelays Selects typical delays for simulation+ncdumpports_format+<arg> Specify EVCD format flag for $dumpports+neg_tchk Allow negative values in SETUPHOLD & RECREM timing checks (default)+noneg_tchk Disallow negative values in SETUPHOLD & RECREM timing checks+nocopyright Suppresses printing of copyright banner+no_notifier Notifiers are ignored in timing checks+nosdfwarn Do not report SDF warnings+nospecify Suppresses timing checks and path delays in specify blocks.Ignore SDF annotations.+nostdout Turn off output to screen(terminal)+notchkmsg Turn off timing check warnings+notimingcheck Don't execute timing checks+nowarn+<arg> Disables printing of the specified warning message+sdf_nowarnings Do not report SDF warnings5. ncsdfcncsdfc [options] sdf_fileOptions:-COMPILE -- Compile the specified SDF files (default)-DECOMPILE -- Decompile the specified SDF files-LOGFILE <arg> -- Specifies the file to contain log information-MESSAGES -- Specifies printing of informative messages-NOCOPYRIGHT -- Suppresses printing of copyright banner-OUTPUT <arg> -- Redirects compiled SDF output to the specified file-WORSTCASE_ROUNDING -- Truncate min delays, round max delays up Examples:-- To compile an SDF file:% ncsdfc dcache.sdfCreates compiled SDF file dcache.sdf.X-- To specify a name for the compiled SDF file:% ncsdfc ipipe.sdf -OUTPUT piledCreates compiled SDF file piled-- To decompile a compiled SDF file:% ncsdf -DECOMPILE ebox.sdf.XCreates decompiled SDF file ebox.sdf.X.sdfd-- To specify a name for the decompiled SDF file:% ncsdfc -DECOMPILE ebox.sdf.X -OUTPUT ebox.sdfdCreates decompiled SDF file ebox.sdfd6. nchelpnchelp [options] tool errornchelp [-cdslib | -hdlvar]Examples:-- To find help on the error CUVWSP from ncelab% nchelp ncelab CUVWSP-- To find help on the error BADCLP from ncvlog% nchelp ncvlog BADCLP-- To list the currently defined libraries% nchelp -cdslib-- To list the currently supported tools% nchelp -tools-- To list the help for all supported tools with the BADCLP mnemonic% nchelp -all BADCLP。
提高NCverilog仿真效率技巧

提高NC-Verilog仿真效率的技巧(转)上一篇/ 下一篇 2010-04-25 22:43:50查看( 1374 ) / 评论( 2 ) / 评分( 0 / 0 )本文回顾了一些NC-Verilog的命令行选项,并说明这些选项如何影响仿真效率。
同时,我们也展示了一些技巧,以帮助用户的NC- Verilog在最大效率下仿真一个设计和测试平台。
文中的命令行选项语法采用单步启动的方式(ncverilog +<options>),这些选项也适合多步启动模式(ncvlog, ncelab, 或ncsim)。
安装最新发布的软件首先确认你是否安装了最新的Cadence LDV版本。
自动1996年发布第一版NC-Verilog以来,我们的研发队伍一直把仿真器的仿真效率作为重点来研究。
在后来推出的新版本里,不断按各种设计风格优化仿真器,因此使用最新版本是最有利的。
直到2002年2月,最新版本是LDV 3.4(s1)。
使用NC-Verilog内置的profilerNC-Verilog在仿真引擎内开发了一个profiler工具。
该工具每秒中断仿真器100次,并将终端时的结构记录下来,生成一个日志文件。
日志文件里列出了被中断次数最多的模块、代码行和结构类型。
这些信息可以帮助你诊断是哪些代码或模块在仿真时耗费了最多的时间。
通过修改这些模块,就能提升仿真效率。
Profiler功能很容易启动,并对仿真只产生非常小的影响。
% ncverilog +ncprofile <other_options> or% ncsim –profile snapshot_name <other_options>在仿真结束时,profiler会创建一个日志文件(ncprof.out),文件里列出了profile运行的细节。
关于如何利用profiler日志文件,可参考Cadence在线文档(Cadence NC-Verilog Simulator Help, Version 3.4, Chapter 14)。
Ncverilog 命令使用详解

Ncverilog 命令使用详解我们知道,由于NC-Verilog使用了Native Compile Code 的技术来加强电路模拟的效率,因此在进行模拟时必须经过compile(ncvlog 命令)以及elaborate(n celab命令)的步骤。
编译之后,针对每一个HDL设计单元会产生中间表达。
接着elaborate命令会建立整个电路的结构,产生可以用来模拟的资料。
最后使用ncsim命令来进行模拟。
三命令模式命令如下:ncvlog -f run.fncealb tb -access wrcncsim tb -gui第一个命令中,run.f是整个的RTL代码的列表,值得注意的是,我们需要把tb 文件放在首位,这样可以避免出现提示timescale的错误。
第二个命令中,access选项是确定读取文件的权限。
其中的tb是你的tb文件内的模块名字。
第三个命令中,gui选项是加上图形界面值得注意的是,在这种模式下仿真,是用“ - ”的。
而下边要说的ncverilog是采用“ + ”的。
单命令模式ncverilog +access+wrc rtl +gui在这里,各参数与三命令模式相同。
注意“ + ”。
在本文里将详细讲述ncverilog 的各种常用的参数,对于三命令模式,请读者自己查看资料。
+cdslib+... 设定你所仿真的库所在+define+macro ... 预编译宏的设定+errormax+整数当错误大于设定时退出仿真+incdir+path 设定include的路径+linedebug 允许在代码中设定line breakpoint+log+logfile 输出到名为logfile的文件中+status 显示内存和CPU的使用情况+work 工作库+access+w/r/c 读取对象的权限,缺省为无读(-w)无写(-r)无连接(-c)+gui 显示图形交互界面+input script_file 输入脚本文件+licqueque 如无licence等待licence+run 如果在GUI交互界面下, 启动后将自动开始仿真+loadpli1=... 动态加入PLI+timescale 设定仿真单位和精度+nocopyright 不显示版权信息。
西安电子科技大学NCverilog教程

在上述步骤之后,会生成一个你的设计对应的snapshot,仿真 就是针对这个Snapshot进行的。如图示,选中该文件,点击 仿真按钮
之后就启动了simulator,会弹出2个窗口 : 设计浏览器(Design Browser)和 控制窗口(Console window)
设计浏览器(Design Browser)
选择多步模式 Multiple step
选择creat cds.lib file,弹出第二个对 话框,save,在新对话框中点击ok, 之后在最初的对话框中点击Ok。
nclaunch的主窗口: 左边的窗口中显示了 当前目录下的所有文 件,在编译和描述后 会在右边显示设计的 库。
在在仿真你的设计以前,必须用编译器编译源文件,并且 用描述器(elaborator)把设计描述成snapshot的形式。 NCLaunch的主窗口让你可以连接你编译和描述设计所需 要的工具
❖ Simulate模式 在Simulate模式下你可以实时的看到仿真的数据。也就是说, 你可以在仿真的过程中就进行数据的分析。你可以通过对设 计设置断点和分步来达到控制仿真的。
控制台窗口 Console Window 源浏览器 Source Browser 设计浏览器 Design Browser 循环阅读器 Cycle Viewer 原理图追踪 Schematic Tracer 信号流浏览器 Signal Flow
现在要描述你的设计: 要展开库(worklib), 选择顶层单元(也就是 测试中的module), 然后选择描述按钮 (elabrate )
但是在这之前要设置 参数,选中module后 选择toolsElaborator 进行设置。
设置参数时注意将Access Visibility按 钮选中并且它的值是All,这个选项意味 着全部存取(读,写,连接探测)来仿 真目标,这样就可以在仿真的数据库里 面探测目标和范围,调试你的设计。 由于不是所有的代码都加了时间,为防 止报错在此处加上时间。 然后点击ok即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ncverilog仿真详解发表在ASIC/FPGA/汇编, 学习笔记, 编程开发 | 由阿布 | 十一月26, 2011 | 0标签: ncverilog, 仿真数位IC工具简介——Simulator 工具ModelSimModelSim是Mentor公司所推出的软体, 主要用来当作VHDL的模拟器, 也是目前CIC在VHDL方面的主要的模拟软体;但ModelSim不仅支援VHDL的模拟,同样也可用来当Verilog的模拟器, 更进一步的, ModelSim也支援VHD&Verilog的混合模拟, 这对於单晶片系统(SoC)的发展上, 矽智产(IP)是来源来自不同的地方, 有些矽智产是采用VHDL描述, 有些是Verilog描述, 因此这是不可或缺的功能. 所以CIC引进ModelSim这一套软体.NCSimNC-SIM 为Cadence 公司之VHDL与Verilog混合模拟的模拟器(simulator),可以帮助IC 设计者验证及模拟其所用VHDL与Verilog混合计设的IC功能.NCVerilogNC-Verilog 为Cadence 公司之Verilog 硬体描述语言模拟器(simulator),可以帮助IC 设计者验证及模拟所设计IC 的功能.使用NC-Verilog软体,使用者必须使用Verilog 硬体描述语言的语法来描述所要设计的电路.VCSVCS 为Synopsys 公司之Verilog 硬体描述语言模拟器(simulator),可以帮助IC设计者验证及模拟所设计IC 的功能.使用VCS 软体,使用者必须使用Verilog 硬体描述语言的语法来描述所要设计的电路.ncverilog使用(2009-04-20 16:07:14)ncverilog是shell版的,nclaunch是以图形界面为基础的,二者调用相同内核;ncverilog的执行有三步模式和单步模式,在nclaunch中对应multiple step和single stepncverilog的三步模式为:ncvlog(编译) ncelab(建立snapshot文件) ncsim(对snapshot文件进行仿真)基于shell的ncverilog操作(尤其是单步模式)更适合于大批量操作ncverilog的波形查看配套软件是simvision,其中包含原理图、波形、信号流等查看方式三命令模式:ncvlog -f run.fncelab tb -access wrcncsim tb -gui第一个命令中,run.f是整个的RTL代码的列表,值得注意的是,我们需要把tb文件放在首位,这样可以避免出现提示timescale的错误注意:ncvlog执行以后将产生一个名为INCA_libs的目录和一个名为worklib的目录第二个命令中,access选项是确定读取文件的权限。
其中的tb是你的tb文件内的模块名字。
注意:ncelab要选择tb文件的module,会在snapshot文件夹下生成snapshot的module文件第三个命令中,gui选项是加上图形界面在这种模式下仿真,是用― –‖的。
而下边要说的ncverilog是采用― + ‖的三命令模式下GUI界面较好用,其对应的命令会在console window中显示注意:选择snapshot文件夹下生成的module文件进行仿真单命令模式:ncverilog +access+wrc rtl +gui在这里,各参数与三命令模式相同。
注意― + ‖通常都使用单命令模式来跑仿真,但要配置好一些文件单命令模式下文件的配置:目录下有源文件、测试台文件、file、run四个文件在linux下执行source run后再执行simvision来查看run文件内容: ncverilog +access+rw -f filefile文件内容: cnt_tb.v(注意把tb文件放在前)cnt.vtb文件中应该包含:initialbegin$shm_open(―wave.shm‖);//打开波形保存文件wave.shm$shm_probe(cnt_tb,‖AS‖);//设置探针endA — signals of the specific scope 为当前层信号设置探针S — Ports of the specified scope and below, excluding library cellsC — Ports of the specified scope and below, including library cellsAS — Signals of the specified scope and below, excluding library cells 为当前层以以下层信号都设置探针,这是最常用的设置方法AC — Signals of the specified scope and below, including library cells在simvison中,左边窗口是当前设计的层次化显示,右边窗口是左边选中模块中包含的信号查看结果时可以在source schemic wave register四个窗口同时查看保存波形信号的方法:1.SHM数据库可以记录在设计仿真过程中信号的变化. 它只在probes有效的时间内记录你set probe on的信号的变化.2.VCD数据库也可以记录在设计仿真过程中信号的变化. 它只记录你选择的信号的变化.$dumpfile(―filename‖); //打开数据库$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_PLIPtrfsdb数据库文件的记录方法,是使用$fsdbDumpfile和$fsdbDumpvars系统函数,使用方法参见VCD注意: 在用ncverilog的时候,为了正确地记录波形,要使用参数: ―+access+rw‖, 否则没有读写权限附:本人刚开始学习NCVerilog和Debussy, 有一点小小的心得与大家分享。
工作环境是sun服务器。
假定我的设计文件为alu.v, alu_test.v(第二个是testbench).1、在alu_test.v中加入如下代码initialbegin$fsdbDumpfile(―alu.fsdb‖); // 创建fsdb文件供Debussy调用,这样就可以观察波形了,名称自定义。
$fsdbDumpvars(0,alu_test); // alu_test为alu_test.v中的顶层模块名end2、ncverilog +access+r alu.v alu_test.v3、debussy alu.v alu_test.v &这样就可以在debussy中打开fsdb文件来看波形了。
Ncverilog 常用命令使用详解工作状态:建立仿真环境我们知道,由于NC-Verilog使用了Native Compile Code 的技术来加强电路模拟的效率,因此在进行模拟时必须经过compile(ncvlog 命令)以及elaborate(ncelab命令)的步骤。
编译之后,针对每一个HDL设计单元会产生中间表达。
接着elaborate命令会建立整个电路的结构,产生可以用来模拟的资料。
最后使用ncsim命令来进行模拟。
三命令模式命令如下:ncvlog -f run.f ncelab tb -access wrc ncsim tb -gui 第一个命令中,run.f是整个的RTL代码的列表,值得注意的是,我们需要把tb文件放在首位,这样可以避免出现提示timescale的错误。
第二个命令中,access选项是确定读取文件的权限。
其中的tb是你的tb文件内的模块名字。
第三个命令中,gui选项是加上图形界面值得注意的是,在这种模式下仿真,是用“ - ”的。
而下边要说的ncverilog 是采用“ + ”的。
单命令模式ncverilog +access+wrc rtl +gui 在这里,各参数与三命令模式相同。
注意“ + ”。
在本文里将详细讲述ncverilog 的各种常用的参数,对于三命令模式,请读者自己查看资料。
+cdslib+... 设定你所仿真的库所在+define+macro ...预编译宏的设定+errormax+整数当错误大于设定时退出仿真+incdir+path设定include的路径+linedebug允许在代码中设定line breakpoint +log+logfile输出到名为logfile的文件中+status显示内存和CPU的使用情况+work工作库+access+w/r/c读取对象的权限,缺省为无读(-w)无写(-r)无连接(-c) +gui显示图形交互界面+input script_file输入脚本文件+licqueque如无licence等待licence +run如果在GUI交互界面下, 启动后将自动开始仿真+loadpli1=...动态加入PLI +timescale设定仿真单位和精度+nocopyright不显示版权信息。