Cadence公司的数字IC设计工具:仿真工具(INCISIVE)——(1)

目录

一、仿真工具总结

1、IUS(Incisive Unified Simulator)

2、IES(Incisive Enterprise Simulator)

3、Xcelium(Cadence最新的仿真工具,Incisive(irun)的升级版本)

二、仿真工具启动方式

1、shell模式(命令行)

(1)三步模式(依次执行下述三个命令来完成仿真)

(2)单步模式(执行下述命令之一即可完成仿真)

(3)irun常用的命令行选项

2、图形界面

(1)mutiple step

(2)single step

三、查看波形工具SimVision

1、wave.shm文件夹

2、SimVision运行方式

(1)shell

(2)图形界面

四、覆盖率

1、覆盖率类型

(1)代码覆盖率(Code)

(2)功能覆盖率(Functional)

(3)有限状态机覆盖率(FSM)

2、三步模式生成覆盖率的命令行选项

(1)Compiling the Design

(2)Elaborating the Design

(3)Simulating the Design

3、覆盖率数据存储路径

4、单步模式(irun)生成覆盖率的命令行选项

5、使用IMC(Incisive Metrics Center)工具分析覆盖率数据

(1)launch IMC

(2)loading runs

(3)exiting IMC


一、仿真工具总结

1、IUS(Incisive Unified Simulator)

代表工具:ncverilog(基本不再使用)

2、IES(Incisive Enterprise Simulator)

代表工具:irun

3、Xcelium(Cadence最新的仿真工具,Incisive(irun)的升级版本)

代表工具:xrun

二、仿真工具启动方式

1、shell模式(命令行)

(1)三步模式(依次执行下述三个命令来完成仿真)

a、ncvlog:编译Verilog源文件

ncvlog命令示例:ncvlog -messages -work worklib1 test_tb.v test.v

常用的命令行选项:

-messages:在执行期间打印编译的信息。注:在irun命令中打印信息是默认的,无此选项。

-logfile filename:使用指定的日志文件名称,而不是默认名称(ncvlog.log)。

-nocopyright:禁止印刷版权信息。

-incdir:在指定的目录中搜索include files。

-sv:Enable the system verilog language constructs implemented in the release.

如果cds.lib和hdl.var设置文件不存在,编译器将自动创建默认的工作库(./INCA_libs/worklib),所有的设计单元都被编译到这个库中。

cds.lib文件

#cds.lib file
#cd.Lib文件定义了不同名称的库
 
DEFINE worklib1 ./worklib1
DEFINE worklib2 ./worklib2

hdl.var文件

#hdl.var file
#hdl.var文件指定名为worklib的库是工作库。
DEFINE WORK worklib1
DEFINE NCVLOGOPTS -messages

注:运行ncvlog命令前需要新建库目录。

-work xxx:将当前工作库定义为xxx。这将覆盖hdl.var文件中WORK变量定义的工作库。

-file args:从args加载命令行参数(可以为命令行选项或源文件)

b、ncelab:描述设计并生成snapshot

ncelab命令示例:ncelab -messages -work worklib1 -access rw test_tb

常用的命令行选项:

-messages:打印elab的信息

-logfile filename:使用指定的日志文件名称,而不是默认名称(ncelab.log)。

-file args:从args加载命令行参数

-work:使用指定位置作为默认绑定中的工作库。

-file args:从args加载命令行参数

-access:使用-access +/-rwc为设计中的所有对象设置访问权限(读、写、连接),没有+、-时默认为+。

在ncelab命令中还需要指明所有的顶层模块,在设计中这些顶层模块不允许被其他模块调用。

c、ncsim:对snapshot进行仿真

ncsim命令示例:ncsim -messages test_tb

常用的命令行选项:

-messages:打印simulation的信息

-logfile filename:使用指定的日志文件名称,而不是默认名称(ncsim.log)。

-gui:仿真后自动生成SimVision的GUI界面;

-file args:从args加载命令行参数

-input args:初始化时执行的脚本。

ncsim分为两模式:交互(interactive)的(simulation在0时刻停止)和非交互(noninteractive)的。

非交互模式下使用的命令行选项:

-run:无-gui时-run可省略;有-gui时必须有-run

交互模式下使用的命令行选项:

-tcl:无-gui时必须有-tcl;有-gui时-tcl可省略

在ncsim命令中还需要指明顶层模块。

(2)单步模式(执行下述命令之一即可完成仿真)

a、ncverilog

b、irun (IUS8.1后,使用ncverilog命令时会启动irun)

irun命令允许通过在单个命令行上指定所有的输入文件和命令行选项来运行模拟器。

irun可以支持各种源程序文件(verilog;VHDL;SystemC等)作为输入,并使用适当的编译器对它们进行编译。编译完输入文件后,irun会自动调用ncelab来详细设计,然后调用ncsim模拟器。

执行irun后,所有工具的输出都被写入一个名为run.log的公共日志文件,该文件位于调用irun的目录中。

irun命令示例:irun -cleanlib -access rw -work worklib1 xx_tb.v xx.v

(3)irun常用的命令行选项

-access:使用-access +/-rwc设置访问权限(读、写、连接),没有+、-时默认为+。

-clean:执行之前,删除INCA_libs文件夹(如果存在);

-cleanlib:删除cds.lib中找到的所有pak文件;

-top:使用-top 顶层module名声明顶层模块(如有多个,分别声明)。当所有源文件均为verilog文件时,无需声明,否则需要声明;
-gui:仿真后自动生成SimVision的GUI界面;

-compile:只编译源文件,不做elaborate;
-c:只生成snapshot,不仿真;
-R:只仿真,需要有提前生成的snapshot;

-l:可以使用-l选项更改日志文件的名称;

-work:使用指定位置作为默认绑定中的工作库;

-sv:enable the system verilog language constructs implemented in the release。注:如果system verilog源文件具有.sv文件扩展名,则不需要-sv选项。

irun.args文件:arguments file,指参数文件。在参数文件中可以指定输入文件和命令行选项。

-f-f irun.args扫描相对于irun调用目录的文件。解释:irun.args文件中.v等源文件的位置应相对于要调用irun命令的地址进行填写。

-F-F irun.args扫描相对于参数文件run.args位置的文件。解释:irun.args文件中.v等源文件的位置应相对于irun.args文件本身所在的地址填写;

-linedebug:启用对设置行断点和单步执行代码的支持。使用此选项将对仿真对象的默认访问设置为读/写/连接。

2、图形界面

输入命令nclaunch打开图形界面,然后选择仿真模式。

(1)mutiple step

(2)single step

三、查看波形工具SimVision

1、wave.shm文件夹

在testbench文件中添加以下代码:

initial begin
    $shm_open("wave.shm");//打开波形保存文件wave.shm。运行后wave.shm中包含了.dsn和.trn两个文件
    $shm_probe(top,"AS");//top指顶层模块名,一般为testbench文件中的顶层模块
    $shm_close;
end

运行仿真命令irun后,会自动生成存储波形的wave.shm文件夹。

2、SimVision运行方式

(1)shell

首先可在.bashrc文件.cshrc.user文件(根据使用的Shell解析器而定)中将SimVision命令简写为simv (可参考https://blog.csdn.net/qq_42922513/article/details/130767986?spm=1001.2014.3001.5502):

在.bashrc文件中添加:

#.bashrc

alias simv="/xx/xx/xx/INCISIVE152/tools/bin/simvision"

在.cshrc.user文件中添加:

#.cshrc.user

alias simv 'simvision'

source上述文件后,在终端输入命令simv wave.shm,即可运行SimVision。

(2)图形界面

在运行仿真的ncsim或irun命令中,添加命令行选项:-gui,以在仿真后自动运行SimVision。

四、覆盖率

1、覆盖率类型

(1)代码覆盖率(Code)

块覆盖率(Block):块覆盖识别代码中哪些块已执行,哪些未执行。块覆盖率确定测试用例是否执行块中的语句。一般来说,块覆盖是整个验证过程中必不可少的第一步。

分支覆盖率(Branch):分支覆盖通过为报告各个分支的覆盖数字提供更精确的覆盖结果来补充块覆盖。

表达式覆盖率(Expression):表达式覆盖率是一种在simulation期间分解逻辑表达式并监视它们的机制。

翻转覆盖率(Toggle):翻转覆盖率测量设计中各种信号的活动,并提供有关未切换信号或在模拟运行期间保持不变的信号的信息。

(2)功能覆盖率(Functional)

功能覆盖可以帮助识别设计中未测试的功能,并从功能的角度提供验证完整性的视图。它提供了关于如何满足测试计划所设置的验证目标的见解,并且可以在用户定义的覆盖点上执行,使用Property Specification 语言(PSL)、System Verilog assertions(SVA)或covergroup语句指定。

Control-oriented functional coverage:面向控制的功能覆盖。PSL,SVA

Data-oriented functional coverage:面向数据的功能覆盖。covergroup

(3)有限状态机覆盖率(FSM)

FSM覆盖解释HDL设计的综合语义,并监视设计中控制逻辑块的FSM表示的覆盖。

注:

1、代码覆盖率100%是验证工作完备性的必要条件,即代码覆盖率100%并不代表验证工作的完成;

2、某个功能在设计中可以被遗漏,代码覆盖率不能发现此错误,但是功能覆盖率可以。

2、三步模式生成覆盖率的命令行选项

(1)Compiling the Design

使用第二节所述命令即可,无需额外选项。

(2)Elaborating the Design

-coverage <coverage_types>:为所有编译模块使能覆盖数据生成,<coverage_types>可以是:B (bolck), E (expr), T (toggle), U (functionl), F (FSM), A (all)。这些参数不区分大小写,而且支持字符串或单字符名称。

-covfile <coverage_configuration_file>:使用此选项可以向ncelab传递一个配置文件来控制检测

-covdut <DUT_module>:将检测以及所选覆盖的覆盖数据库存储限制为DUT_module以及它的子层次结构。

(3)Simulating the Design

-covoverwrite:允许覆盖存储覆盖率的输出文件和目录。默认情况下,覆盖率输出数据被写入目录cov_work/scope/test。如果此路径已经存在,则不会覆盖输出目录,并且simulation将终止。使用此选项,将覆盖覆盖率数据。

-covworkdir <workdir>:指定工作目录的名称,默认情况下工作目录为cov_work。

-covscope <scope>:指定用于存储覆盖模型文件的替代目录。默认情况下模型文件存储在cov_work/scope目录。

-covtest <test>:指定当前运行的运行目录名。默认情况下当前运行的覆盖率数据文件存储在cov_work/scope/test

-covcleanworkdir:在simulation开始前,移除覆盖率工作目录(默认为cov_work),其中包括覆盖模型文件(.ucm)和覆盖数据文件(.ucd),以及icc.com。

3、覆盖率数据存储路径

默认情况下,覆盖率数据存储路径为:

cov_work

               ------scope

                       -------.ucm

                       -------test

                                ------.ucd

4、单步模式(irun)生成覆盖率的命令行选项

-coverage <coverage_types>

-covfile <coverage_configuration_file>

-covdut <DUT_module>

-covoverwrite

-covworkdir <workdir>

-covscope <scope>

-covtest <test>

-covcleanworkdir

5、使用IMC(Incisive Metrics Center)工具分析覆盖率数据

(1)launch IMC

GUI模式:imc -gui

命令行交互模式:imc -batch

(2)loading runs

load -run <test>

(3)exiting IMC

exit

  

                                     如果觉得有用可以点在并收藏!!!

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 数字IC设计:方法、技巧与实践.pdf是一本关于数字芯片设计的指南,涵盖了数字电路和系统设计的基本概念、方法和技术。 本书分为四个部分,分别为芯片架构、数字电路的建模与分析、数字电路与系统的综合和设计管理与实践。其中,芯片架构部分主要介绍芯片设计的基本原则,包括需求分析、性能指标、架构拓扑等;数字电路的建模与分析部分重点探讨了数字电路元件建模方法,包括状态机、FSM等;数字电路与系统的综合部分重点解决数字芯片设计中的综合问题,如亚微米工艺和PLL设计等;设计管理与实践部分着重强调了数字芯片设计项目的管理和实践经验。 本书的核心内容是数字电路设计方法和技巧方面,包括数字电路的建模方法、电路和系统的综合方法、对数字芯片设计项目进行管理和实践的经验总结等。尤其是在数字电路的建模方面,本书给出了多种建模方法,如状态机模型和卡诺图分析法等,帮助读者理解数字电路的基本特性,从而更好地进行设计。 此外,本书还对数字电路中常见的问题进行了分析和解决方案的描述,如时序约束、时钟树综合、功耗优化、数据通路的综合和测试等问题,进一步推动了数字芯片设计的发展。 综上所述,数字IC设计:方法、技巧与实践.pdf是一本非常有价值的数字芯片设计指南,具有很高的实践性和指导性,对于数字芯片设计方面的初学者和资深工程师都具有很高的参考价值。 ### 回答2: 数字IC设计:方法、技巧与实践是一本全面介绍数字电路设计的经典教材。该书包含了数字电路设计的基本原理、常用技巧以及实践经验。读者可以通过详尽的讲解和大量的实例来深入了解数字IC设计的各个方面。 本书主要内容涵盖数字系统设计的基本概念、设计流程、高级数字电路设计、时序与互联、时钟和定时、高速数字信号传输等方面。书中详细介绍了常用的数字设计方法和技巧,如:逻辑门设计,寄存器设计,状态机设计等。此外,还讲解了数字电路的优化技术,例如:布线、时序优化、功耗优化等。 在场效应晶体管时代,数字IC设计主要依靠手动设计和测试实现。而在CMOS技术的普及下,数字IC设计变得更加复杂和精确。因此,数字IC设计需要各种工具的支持,如:EDA工具、逻辑仿真和物理仿真等。本书还介绍了数字IC设计软件工具的使用,如:Mentor Graphics、Cadence、Synopsys等。还介绍了ASIC设计和FPGA设计的流程和方法。 总体来说,数字IC设计:方法、技巧与实践是一本理论和实践相结合的优秀教材。对于想要深入研究数字IC设计的学生和工程师来说,这是一本值得阅读的经典著作。 ### 回答3: 《数字ic设计:方法、技巧与实践.pdf》是一本介绍数字集成电路设计的书籍,包含了数字电路的基础知识、设计方法和实际应用等方面的内容。 在数字ic设计中,最基本的方法是模块化设计。该方法将电路分成多个模块,每个模块独立设计、独立测试,之后再将所有模块组合成完整的电路。这种方法可以提高电路设计的可维护性和可重复性,降低设计难度和出错率。 另外,数字ic设计需要熟练掌握逻辑电路的基本原理和设计方法。例如,门电路、触发器、计数器、存储器等基本电路的设计和实现方法。此外,需要掌握现代数字ic设计的流程和工具,例如EDA(电子设计自动化)软件。 在实践中,数字ic设计需要注意一些技巧和细节。例如,时序分析、电源干扰等方面的考虑,还要注意布线优化、电路可靠性和工艺细节等。同时,需要进行充分的测试和验证,确保设计的正确性和可靠性。 总之,数字ic设计不仅需要深厚的理论基础,还需要将理论与实践相结合,注重细节和技巧,以确保设计出高质量的数字电路。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值