一、通用的基本选项
NC-Verilog中,有部分选项是ncvlog、ncelab和ncsim通用的选项,见表表 2‑1。
2‑1 ncvlog、ncelab和ncsim通用的基本选项
选项 | 说明 | 对应ncverilog选项 |
-64bit | 调用64-bit版本的ncvlog | +nc64bit |
-cdslib <pathname> | 指定cds.lib文件的路径 | +nccdslib+<arg> |
-hdlvar <pathname> | 指定hdl.var文件的路径 | +nchdlvar+<arg> |
-errormax <integer> | 当错误数量达到指定数值时退出执行 | +max_error_count+<arg> |
-file <filename> | 使用指定的命令行文件 | -f <filename> |
-logfile <filename> | 定义输出的log文件名 | -l <filename> |
-ncerror <warning> | 将指定“告警”信息的严重等级提高为“错误” | +ncerror+<arg> |
-ncfatal <warning | error> | 将指定“告警”或“错误”信息的严重等级提高为“致命” | +ncfatal+<arg> |
-neverwarn | 禁止打印所有告警信息 | -w |
-nocopyright | 禁止打印版权信息 | +ncnocopyright |
-nolog | 禁止产生log文件 | +ncnolog |
-nostdout | 关闭屏幕打印,但不影响log文件的 | +ncnostdout |
-nowarn <warning> | 关闭指定告警信息的打印 | +ncnowarn+<arg> |
-quiet | Log文件的安静模式,生成log文件时,屏蔽工具标识信息和调用工具时的命令行参数等。 | -q (-Q可以保存工具标识信息) |
-status | 打印内存和CPU的使用情况统计 | +ncstatus |
-update | 增量仿真 | +ncupdate |
-version | 打印工具的版本信息 | +ncversion |
-ieee1364 | 支持IEEE-1364的Verilog标准 | +ieee1364 |
-ncinitialize | 仿真0时刻,将设计中的变量初始化为指定值 | +ncinitializ |
二、ncvlog的常用选项
选项 | 说明 | 对应ncverilog选项 |
-ams | 支持AMS(Analog Mixed-Signal ,混合模拟信号)的编译 | +ncams |
-assert | 支持PSL断言的编译检查 | +assert |
-checktasks | 检查设计文件中是否存在非预定义的系统任务,例如$fsdbDumpvars | +ncchecktasks |
-controlassert <file> | 指定一个断言的控制文件,用来定义哪些断言打开,哪些断言关闭。 | +controlassert+<arg> |
-define <identifier[=value]> | 定义一个变量 | +define+<macro> |
-design_top <design_name> | 指定编译的设计最顶层module名 | +ncdesign_top+<top> |
-escapedname | 输出信息中包括转义符,默认是不包括转义符 | +ncescapedname |
-incdir <directory> | 在指定目录下搜索include文件 | +incdir+<dirs> |
-linedebug | 支持行断点的设置和代码的单步执行 | +nclinedebug |
-noline | 编译出错时,不定位代码行 | +ncnoline |
-sv | 支持SystemVerilog,如果是单命令模式,缺省支持SV | +sv |
-work <library> | 定义指定的库为work库 | +work+<lib> |
三、ncelab的常用选项
选项 | 说明 | 对应ncverilog选项 |
-access [+] [-] <r|w|c> | 设置仿真对象文件的访问权限,包括读r、写w和连接c,“+”表示增加,“-”表示删除。默认是没有任何权限。 | +access<+/-rwc> |
-covdut <dut_module> | 指定某个DUT的module进行覆盖率仿真 | +nccovdut+<string> |
-coverage <coverage_type> | 仿真时使能某种类型的覆盖率,包括block、expr、fsm、toggle和all,即块、表达式、状态机、翻转率和全部 | +nccoverage+<string> |
-covfile <file_name> | 指定一个参数文件名,用于配置覆盖率仿真的参数选项 | +nccovfile+<file> |
-defparam <parameter=value> | 参数重定义 | +defparam+<arg> |
-maxdelays | 应用specify块中min:typ:max延时的最大延时 | +ncmaxdelays |
-mindelays | 应用specify块中min:typ:max延时的最小延时 | +ncmindelays |
-typdelays | 应用specify块中min:typ:max延时的典型延时 | +nctypdelays |
-noassert | 屏蔽快照snapshot中的PSL断言 | +noassert |
-noautosdf | 关闭SDF自动反标 | +noautosdf |
-noneg_tchk | 禁止Verilog代码或SDF反标中$setuphold和 $recrem时序检查中的负值。如果文件中出现负值,则负值当成0处理,并给出告警。 | +noneg_tchk |
-nonotifier | 忽略时序检查时的notifier | +ncno_notifier |
-nospecify | 屏蔽Specify块中的时序以及SDF中的延时和时序检查 | +nospecify |
-notimingchecks | 关闭时序检查 | +notimingchecks |
-no_tchk_msg | 屏蔽时序检查时告警信息的显示 | +no_tchk_msg |
-ntcnotchks | 如果设计中存在负延时的时序检查(NTC:negative timing check),那么仿真时使用-notimingchecks和不使用-notimingchecks选项有可能会出现不同的仿真结果。这种情况下,可以使用-ntcnotchks选项:产生负延时时序检查的延时,但不进行时序检查。 | +ncntcnotchks |
-timescale ‘unit/precision’ | 为设计中没有指定`timescale的module指定默认的timescale | +nctimescale+<arg> |
-override_precision | 用-timescale选项中的时间精度替换整个设计中的时间精度 | +ncoverride_precision |
-override_timescale | 用-timescale选项中的参数替换整个设计中的时间单位和精度 | +ncoverride_timescale |
-partialdesign | 在设计缺少某个模块层次时依然解析设计并产生仿真用的快照。 | +partialdesign |
-sdf_verbose | 在SDF的log文件打印详细的SDF信息 | +ncsdf_verbose |
-snapshot <name> | 指定快照(snapshot)文件的名称,默认是设计的最顶层模块名 | +name+<name> |
四、的常用选项
选项 | 说明 | 对应ncverilog选项 |
-append_log | 将多个ncsim命令的log文件存储到一个文件中 | +ncappend_log |
-batch | 不等命令行的命令输入,直接开始仿真 | +ncbatch |
-covworkdir <dir> | 指定覆盖率结果数据存储的work名,默认是cov_work/design/test | +nccovworkdir+<string> |
-covdesign <design> | 指定覆盖率结果数据存储的design名,默认是cov_work/design/test | +nccovdut+<string> |
-covtest <test> | 指定覆盖率结果数据存储的test名,默认是cov_work/design/test | +nccovtest+<string> |
-profile | 生成一个统计仿真过程中各个模块占用CPU时间的profile文件。 | +ncprofile |
-profoutput <file> | 指定profile文件的文件名,默认是ncprof.out | +ncprofoutput+<file> |
-dut_prof <file> | 在仿真运行的profile文件中,增加一个报告指定DUT模块仿真时间的表格 | +dut_prof+<file> |
-gui | 调用带SimVision的仿真器 | +gui |
-keyfile <filename> | 指定一个key文件名,替换默认的ncsim.key | -k <filename> |
-nokey | 禁止生成key文件 | +ncnokey |
-licqueue | 没有ncsim的license时,将仿真进入队列等候,直到获取license | +nclicq |
-lps_off | 关闭低功耗仿真(LPS:Low-Power Simulation) | +nclps_off |
-ppe | 仿真时调用“后处理环境”(PPE:Post Processing Environment)。PPE模式可以分析SHM模型中的仿真结果,在不使用license的情况下进行调试。 | +ncppe |
-input <script_file> | 执行脚本文件中的TCL命令 | +ncinput+<file> |
-tcl | 调用仿真器的交互模式,启动仿真器后停留在0时刻。 | +tcl |
五、ncverilog常用的基本选项
从上述4个表的对照可以发现,相对于三命令模式下的选项,大部分单命令模式的选项都由“-”变成了“+”,而且有些选项之前多了“nc”两个字母。
除了上述表格中对应的ncverilog选项之外,还有下面一些常用的ncverilog选项,见表表 2‑5。
选项 | 说明 |
+ncdebug | 等同于+access+r |
+nclibname+<name> | 指定一个用于搜索的库 |
+ncrun | 自动开始仿真 |
+nctfile+<file> | 指定一个时序文件,用于进行时序检查的设置 |
+nclog_ncvlog+<logfile> | 单独产生一个ncvlog的文件 |
+nclog_ncelab+<logfile> | 单独产生一个ncelab的文件 |
+nclog_ncsim+<logfile> | 单独产生一个ncsim的文件 |
+checkargs | 检查命令行中选项的有效性 |
+compile | 只进行ncvlog,不进行ncelab |
-c | 进行ncvlog和ncelab,不进行ncsim |
+loadpli1=<arg> | 指定PLI1库 |
+loadvpi=<arg> | 指定VPI库 |
+noupdate | 关闭默认的增量仿真模式 |
+v1995 | 关闭Verilog-2001标准,只支持Verilog-1995标准 |
-clean | 删除以前的INCA_libs目录(如果存在的话) |
-debug | 等同于+access+rw |
-F <filename> | 搜索参数文件 |
-L<lib dir> | 指定一个搜索库文件的目录 |
-v <file> | 指定一个库文件 |
-y <directory> | 指定一个库文件目录 |
+libext+<ext> | 指定库文件的扩展名,与-y配合使用 |
+libverbose | 打印库文件的详细信息 |
-ovm | 支持OVM |
-races | 进行0延时的竞争冒险检查 |
-R | 使用上次产生的快照文件进行仿真 |
-r <snapshot name> | 使用指定的快照文件进行仿真 |
-s | 调用快照文件,进入交互模式 |