nc
verilog
是shell版的,nclaunch是以图形界面为基础的,二者调用相同内核;ncverilog的执行有三步模式和单步模式,在nclaunch中对应multiple step和single step
ncverilog的三步模式为:ncvlog(编译) ncelab(建立snapshot文件) ncsim(对snapshot文件进行 仿真 )
基于shell的ncverilog操作(尤其是单步模式)更适合于大批量操作
ncverilog的波形查看配套软件是simvision,其中包含原理图、波形、信号流等查看方式
三命令模式:
单命令模式:
单命令模式下文件的配置:
还有一个 M ,表示当前scope的memories, 可以跟上面的结合使用, "AM" "AMS" "AMC"
什么都不加表示当前scope的ports;
$shm_close //关闭数据库
查看结果时可以在source schemic
保存波形信号的方法:
如果要在ncverilog仿真时,记录信号, 首先要设置debussy:
fsdb数据库文件的记录方法,是使用$fsdbDumpfile和$fsdbDumpvars系统函数,使用方法参见VCD
注意: 在用ncverilog的时候,为了正确地记录波形,要使用参数: "+access+rw", 否则没有读写权限
ncverilog编译的顺序:
信号的强制赋值force:
Verilog和Ncverilog命令使用库文件或库目录
Q:我的files里面只有一个help文件夹,里面是一个叫ncprotect文件,没有你所说的hdl.var文件啊
A:
1、NC- VERILOG 在创建工程时会生成两个文件:cds.lib和hdl.var。
2、testbench和DUT当然是不同的文件。
3、sdf是standard delay format文件,由 综合 和后端工具产生,供后仿用。
(1) 先建立
cds.lib
DEFINE work
hdl.var
DEFINE WORK work
(2)
mkdir
(3) ncvlog
$>cdsdoc
启动cadence 文档窗口,是文档是html格式的.这里,我的需要 先启动firefox,然后才能开cdsdoc。
$> (tool_name) -help
$> nchelp [options] tool_name message_code *******
ncsim> help [help_options] [command | all [command_options]]
提高NC-Verilog仿真效率的技巧
下面是一些用来禁止时序检查的一些命令行。
% ncverilog +delay_mode_distributed +notimingcheck
或
% ncelab –delay_mode dist –notimingchecks –noneg_tchk
下面还列出了关于时序的全局选项:
ncverilog option
+nonotifier
+notimingcheck
+delay_mode_unit
+delay_mode_zero
+delay_mode_distributed
提高SDF的精度
时序信息通过SDF文件传递给一个设计。在LDV 3.1以前的版本里,缺省的SDF精度是10ps。从LDV 3.1开始,所有的时序宽度(包括小于10ps的)都允许使用,这样仿真的时序结果
更加精确,但是仿真变得更慢。在多数情况下,10ps就足够了,因此你也许想用下面的方法来改变精度:
% ncverilog +ncelabargs+”-sdfprecision 10ps”
或
% ncelab –sdf_precision [10ps|1ps|100fs]
关于负时序(negative timing)检查
负时序检查有下列的选项:
ncverilog option
+neg_tchk
+noneg_tchk
设置访问属性
缺省情况下,NC在非调试模式运行,仿真速度很快。可以通过设置访问属性和行调试(line-debug)功能来配置在仿真过程中信号、模块、和代码的访问属性。这样做降低了仿真
的速度。
如果你想在代码中设置断点,就必须使用行调试选项。该选项对仿真效率影响非常大。
% ncverilog + linedebug
或
% ncvlog – linedebug
也可以设置设计的全局访问属性。下列的命令可以用来配置设计为允许读、写和交叉访问(connectivity access)。
% ncverilog +access+[rwc]
或
% ncelab –access [rwc] snapshot_name
r : read capability for waveform dumping, code coverage, etc
w : write access for modifying values through PLI or tcl code
c : connectivity access to querying drivers and loads in C or tcl
前面曾经提到过,这些选项将降低仿真的速度。读属性是通常要使用的,它对仿真性能影响非常小。
为了给部分对象、模块或实例设置访问属性,可以创建一个访问属性文件,并在文件中说明那些对象的访问属性。然后用在运行 elaborator 时使用 –afile选项。
% ncverilog +ncafile+
or
% ncelab -afile snapshot_name
% ncsim snapshot_name
也可以用 –genafile 选项来自动生成访问属性文件。当仿真使用了Tcl、PLI或probing功能,无法提前确定对象的访问属性,就可以采用自动生成访问属性文件的方法。
Elaborator 在生成仿真快照(snapshot)时会考虑你给出的 –genafile选项;然后,当运行仿真时,Tcl或PLI访问过的对象就会被记录下来。退出仿真的时候,访问属性文件就
生成了。举个例子:
% ncverilog +ncgenafile+access.txt
或
% ncelab -genafile access.txt test.top
% ncsim test.top
仿真运行完成后,生成了一个access.txt 文件。你可以通过 –afile 选项来使用这个文件(象前面介绍的那样):
% ncverilog +ncafile+access.txt
或
% ncelab -afile access.txt test.top
附:命令行输入
!!↙
是执行上一条命令,
命令行输入
!* ↙
是执行最近的以*开头的命令。
上述附注对命令输入速度提高有所帮助