inca常用参数_ncverilog常用选项

本文介绍了Cadence的IUS工具集中的ncverilog,它是前端模块级编译仿真的重要工具。ncverilog通常与设计和验证文件列表结合使用,避免timescale设置冲突。此外,文章提到了ncverilog的常用选项,并推荐了ius工具安装路径下的参考文档,如sysverilog.pdf和vlogref.pdf,作为解决语法和选项问题的资源。
摘要由CSDN通过智能技术生成

f11e3cabbdc3503dbc1321035050fc89.gif

ncverilog简介

     在IC设计和模块级验证中,Synopsis公司的VCS和Verdi占有很高的市场。对于Cadence公司,前端模块级编译仿真使用最多的是ncverilog。但是ncverilog出自哪个软件集呢(IDE,Kit)?期初我也很疑惑,经过查阅(主要是参考CDNS和eetop),总结如下。

     Cadence提供的工具集是IUS,是一套芯片设计集成仿真工具集,包括的工具有:irun, nclaunch, ncverilog, ncelab, simvision, iccr( 最新版本改为imc)等。各个工具作用简介如下:

工具

简介

ncverilog/

irun

    仿真命令,通过命令行方式进项仿真,ncverilog和irun是单步命令,一步完成编译(ncvlog),建模(链接ncelab)和仿真(ncsim)这三个步骤。但是实际仿真中,irun和ncverilog依赖的还是三步式命令。只是单命令方式,使用起来更简单。

    irun是新版本IUS的命令,为向低版本兼容,不改变工程师的习惯,ncverilog在新版本EDA工具中,依然存在,只是链接到irun命令。现在irun已经成为主流,且带有更多的features。

   基于shell的ncverilog适合于批量Verilog文件跑仿真,一般较少使用图形化界面或者三步式命令。

nclaunch

    ncverilog是shell版本的命令,而nclaunch是图形化界面的,两个调用的内核相同。Nclaunch也分为多步(multiple step)和单步模式(single step)

ncvlog/ ncelab/

ncsim

     三步模式,ncvlog执行后将产生名称为INCA_libs、worklib的目录;

     ncelab根据编译的结果,选择对应的module,建立电路模型(生成snapshot的module文件),存放在名称为snapshot文件夹(执行ncelab后产生)。

      对snapshot文件进行仿真。

simvision

     simvision是ncverilog配套的波形查看软件,包含原理图、波形、信号等查看方式。

      如果使用Synopsis的vcs进行编译仿真,则可以配合Verdi查看波形、原理图,信号denbug等。

     当然,ncverilog也可以通过Verdi(以前叫做Debussy,后被Synopsis收购)来查看波形。如果使用Verdi的fsdb数据库记录信号的变化,在ncverilog仿真前,首先需要设置Verdi/debussy。

iccr/imc

     是shell命令,cadence提供的代码覆盖率查看命令。使用方式是:

        iccr -test 覆盖率数据集 -gui

     以图形化方式查看代码覆盖率情况,感觉不是很好用,覆盖率(行/line,条件/cond,分支/branch,状态机/fsm,翻转/toggle等)统计和报告不是很直观。没有Synopsis提供的urg命令生成的覆盖率报告文档直观。

        实际项目中,设计人员通常采用一个文件列表来列出需要编译仿真的module,并提供一个数字设计的顶层module给验证人员。验证人员也提供一个验证所需要的文件列表,该文件列表包含验证中需要的一些IP模型(例ROM模型,efuse模型,OTP模型,MTP模型等)或者验证环境组件,并在该文件列表中加入设计人员提供的文件列表(使用-f rtl.lst编译选项即可)。这样的优点是,设计人员只需要维护其设计代码和文件列表,验证人员也只需要维护验证相关的文件列表即可。

值得注意的是,设计人员在设计中不要设置timescale,验证人员在验证环境组件中也不需要设置timescale,而是根据项目需求,用编译选项 -timescale来统一设置timescale,避免出现提示timescale的错误,已经不同模块或者不同项目组成员设置的timescale不一致情形。

ncverilog常用选项

      三命令(ncvlog、ncelab和ncsim)模式和单命令(ncverilog)模式的选项部分相同,但是三命令模式的选项采用“-”连接各个选项,单命令模式采用“+”来连接各个选项,这不是绝对的。

选项

描述

+access

        设置仿真对象文件的访问权限,包括读r、写w和连接c,“+”表示增加,“-”表示删除。默认是没有任何权限。

        权限:+access+wrc,一般编译时都需要添加该选项;为了正确地记录波形,要使用参数: "+access+rw", 否则没有读写权限。

+nc64bit

        调用64-bit版本的ncvlog

+max_error_count+

        当错误数量达到指定值时退出。

-f  file_name

        -f 文件,表示被编译的文件存放在文件中

+ncerror+

        将指定为“warning”的消息严重等级提高为“错误”。

+ncfatal+< warning  | error>

        将指定“warning”或“error”的消息等级提高为“fatal”

-v

        -v 库文件,使用的库文件

-y

        -y 库文件目录,使用的库文件所在目录,编译module时,如果需要一些器件(与或非等器件),会在库目录下指定后缀的文件中搜索。

+libext 

        +libext+文件后缀,例如:

        -y  lib2 +libext+.v,表示库文件在目录lib2中的.v文件中自动搜索。使用库文件或库目录,只编译需要的模块而不必全部编译。

-l

        定义输出的log文件名

+ncupdate

        增量仿真

+define+

        定义一个宏

+ncdesign_top+

        编译时,指定设计顶层的module名。

+incdir+

        在指定目录下搜索include文件

+sv

        支持systemverilog,如果是单命令模式,默认是支持sv的。

+nctimescale+

unit/precision

        为设计中没有指定`timescale的module指定默认的timescale

+ncoverride_precision

        用nctimescale+选项中指定的时间精度替换整个设计中的时间精度

-debug

        等同于+access+rw

-races

        进行0延时的竞争冒险检查

-R

        使用上次产生的快照文件进行仿真

-r

        使用指定的快照文件进行仿真

覆盖率选项

+nccovdut+

        指定某个DUT的module进项覆盖率仿真。

+nccoverage+

        仿真时使能某种类型的覆盖率,包括块(block)、表达式(expr)、状态机(fsm)、翻转(toggle)和上述所有(all)。

+nccovfile+

        参数是指定一个文件名,在改文件中配置覆盖率仿真的参数选项。

+nccovworkdir+

        指定覆盖率结果数据集存放的work名称,默认是cov_work/design/test。该选项指定cov_work的名称。

+nccovdut+

        指定覆盖率结果数据集存放的design名称,默认是cov_work/design/test。该选项指定design的名称。

+nccovtest

        指定覆盖率结果数据集存放的test名称,默认是cov_work/design/test。该选项指定test的名称。

关于时序检查的选项

+nonotifier

Disables

        禁用时序检查时的通知(Disable the notifier register)

        对应的三命令模式选项是: -nonotifier

+notimingcheck

        禁止时序检查

        对应的三命令模式选项(ncelab选项)是:-notimingchecks

+delay_mode_unit

        延迟1个仿真时间单位/Delay 1 simulation time unit

        对应的ncelab选项是:-delay_mode unit

+delay_mode_zero

        延时为零,没有延迟

        对应的ncelab选项为:-delay_mode zero

-delay_mode_distributed

        忽略指定模块的延时

        对应ncelab的选项:    -delay_mode dist

提高ncverilog仿真效率的命令选项

        仿真时,默认是进行时序检查,会降低仿真速率,为了提高仿真效率,通过添加下述选项来禁止时序检查,提高仿真效率:

        %  ncverilog +delay_mode_distributed +notimingcheck +noneg_tchk

        %  ncelab –delay_mode dist –notimingchecks –noneg_tchk

提高SDF的精度

        后仿时,通过SDF文件将时序信息反标注到设计中。在LDV 3.1以前的版本里,缺省的SDF精度是10ps。从LDV 3.1开始,所有的时序宽度(包括小于10ps的)都允许使用,这样仿真的时序结果更加精确,但是仿真速度会变得更慢。在多数情况下,10ps就足够了,可以通过下述选项来改变SDF精度:

        ncverilog  +ncelabargs+”-sdfprecision 10ps”

        或

        ncelab  –sdf_precision [10ps|1ps|100fs]

负时序检查选项

+neg_tchk

        使能负时序检查选项

+noneg_tchk

        禁用负时序检查选项

d467cdea74477f606bf9f86599c3e0fe.png

     ius工具安装路径下有两个较有价值的参考文档:

        doc/sysverilog/sysverilog.pdf:根据软件版本提供当时最新的sysverilog 参考书

         doc/vlogref/vlogref.pdf    : 当前软件配套的非常齐全的verilog参考书

   碰到语法和选项等基本问题,基本上查阅这两份文档即可。

d35461c7f02e667a596617a090b7d68c.gif 1bdcc67356be41a412f40dd341c17ceb.gif f8fc5a7b6bbc8b995fcadc7b8daa7a6c.gif 

END

c39e40be162e8a8cf362fcfc03f01b94.png

                                                                               点个“在看”表示朕 已阅  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值