【转载】Cadence验证仿真工具IUS和IES
本博客转自:
cadence验证仿真工具IUS和IES | 骏的世界
http://www.lujun.org.cn/?p=3714
cadence验证仿真工具IUS和IES
cadence,有两大验证仿真工具。一个是IUS,一个是IES。
IUS是cadence以前的仿真工具,功能略弱。代表工具,ncverilog。
官方介绍:
|
IUS(incisive unified simulator) Cadence IUS allows to perform behavioral simulation on Verilog and VHDL code. |
IES是cadence现在的仿真工具,功能强大。代表工具,irun
官方介绍:
|
IES(incisive Enterprise Simulator) cadence IES is considered to be one of the most considered tool to automates testbench generation, design verification and analysis from the system level to the gate level. |
不过,现在cadence又开发出了新的仿真工具,叫xcelium。代表工具,xrun。
一、仿真模式
cadence的仿真工具,分为单步仿真模式,和多步仿真模式。单步仿真模式,是指,只要一个命令,即可实现仿真。而多步仿真模式,是指,需要多个命令的组合,才可以实现仿真。
cadence的很多工具,带有nc作为前缀。
nc,指native compile,将不同的HDL code转化成一种中间语言(native language),然后统一仿真,为了实现混合语言仿真。
1、多步仿真模式
使用ncvlog(ncsc,ncvhdl),ncelab,ncsim命令来实现仿真。
ncvlog,编译源代码
ncelab,对编译的结果,进行elaborate,建立snapshot文件
ncsim,对snapshot文件进行仿真

以下是仿真的flow

对于不同的源文件,使用不同的工具进行编译
systemC: 使用ncsc工具编译
VHDL: 使用ncvhdl工具编译
VERILOG: 使用ncvlog工具编译
编译完成后,使用ncelab工具,对编译结果进行elaborate,得到snapshot文件,最后在使用ncsim工具,对其进行仿真。
多命令模式的例子:
|
1
2
3
|
ncvlog -f run.fncelab tb -access wrcncsim tb –gui |
第一个命令,run.f是整个RTL代码列表, ncvlog执行以后将生成一个名为INCA_libs的目录和一个名为worklib的目录。
第二个命令,-access选项是确定读取文件的权限,其中的tb是tb文件内的顶层模块名字。ncelba要选择tb文件的顶层module,elaborate之后,会生成snapshot。
第三个命令,选择snapshot进行仿真,-gui启动图形化界面。
2、单步仿真模式
单步仿真模式,包括ncverilog和irun。
早期的IUS,使用ncverilog,进行单步仿真模式,ncverilog,内部会自动调用ncvlog,ncelab,ncsim工具进行仿真。
从IUS8.1开始,ncverilog命令,被替换成irun命令,使用ncverilog,将直接调用irun命令。而irun工具,内部也会自动调用ncvlog,ncelab,ncsim工具进行仿真。
以下是官方文档中说明的:
|
because irun supports all features of ncverilog, including its command-line options, Cadence is replacing ncverilog with irun. Beginning with the IUS 8.1 release, using the ncverilog command will invoke irun。 |
二、irun工具
irun支持各种源程序文件输入,verilog,systemverilog,VHDL,verilog AMS,VHDL AMS,specman e,和其他语言程序编写的文件如C,C++,并且使用合适的编译器对其进行编译。当输入的文件,都编译完毕后,irun自动启动ncelab,去elaborate,产生snapshot,最后启动ncsim仿真器去仿真snapshot。
.v文件,使用ncvlog
.sv文件,使用ncvlog
.vhd文件,使用ncvhdl
.e文件,使用sn_compile.sh脚本
irun启动后,会在生成目录,自动创建INCA_libs文件夹。
irun只是个脚本,能根据源程序的类型(如verilog,VHDL等)自动调用相应的编译程序(ncvlog,ncvhdl等),然后依次是elaborate,simulate。
irun的选项很多,下面列举一些常用选项:
|
选项 |
说明 |
|
-64bit |
使用64bit irun模式 |
|
-f |
指定file list |
|
-vlog_ext |
修改verilog文件的默认后缀 如 -vlog_ext .vvv,.vv ,修改verilog的默认后缀为.vvv和.vv |
|
-c |
只生成snapshot,不仿真 |
|
-access |
设置访问权限 |
|
-nclibdirpath |
指定 INCA_libs 目录 |
|
-R |
只仿真,需要有提前生成的snapshot |
|
-sv |
支持systemverilog语言 |
|
-uvm |
开启uvm,自动编译uvm库 |
|
-uvmhome |
指定uvm库位置 CDNS-1.2 默认IES中的uvm-1.2版本 |
|
-uvmnoautocompile |
不自动编译uvm库 |
|
-clean |
在run执行之前,删除INCA_libs文件夹 |
|
-l |
指定输出log文件 |
|
-seed |
指定随机种子数 |
|
-top |
指定顶层模块 |
|
-hdlvar |
指定 hdl.var文件 |
|
-cdslib |
指定cds.lib文件 |
|
-loadpli1 |
指定读取外部读取的库文件 |
|
-prep |
打开prep mode,不仿真,生成多步仿真的脚本文件 生成4个文件, ncvlog_ver.args: ncvlog工具的参数文件 ncelab.args ncelab工具的参数文件 ncsim.args: ncsim工具的参数文件 RUN_NC: 仿真的脚本文件,调用ncvlog,ncelab,ncsim。 |
|
-checkargs |
检查irun的输入参数,是否有误 |
|
-helpargs |
打印每个输入参数的作用 |
|
-helpall |
打印帮助信息 |
|
+xxx=yyy |
向验证环境传递仿真参数xxx,值为yyy |
【转载】Cadence验证仿真工具IUS和IES的更多相关文章
- [转载]ValidationExpression验证规则
ValidationExpression验证规则 在ASP.NET中,ValidationExpression 验证规则属性可以根据自已的需要,对输入的数据进行限制,其常用符号如下表所示: 符号 ...
- 错误:ORA-28009: connection as SYS should be as SYSDBA or SYSOPER 的解决办法--转载但验证过后可以用
今天,用iSQL*Plus 以sys用户连接数据库的时候报ORA-28009:connection as sys should be as sysdba or sysoper的错误,不知道是怎么回事, ...
- Js用正则表达式验证字符串
js 常用正则表达式表单验证代码 作者: 字体:[增加 减小] 类型:转载 js 常用正则表达式表单验证代码,以后大家就可以直接使用了. 正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模 ...
- js 常用正则表达式表单验证代码
正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下:测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一 ...
- js常用正则表达式表单验证代码
方法一: var re=/正则表达式/; re.test($("txtid").val()) 方法二: $("txtid").val.match(/正则 ...
- 验证人员应该以何种角度阅读spec
转载:验证人员应该以何种角度阅读spec - 微波EDA网 (mweda.com) 在开发流程中,设计和验证人员关注的点肯定是不一样的,尤其在spec的理解上,验证人员往往需要有自己独立的理解.在拿到 ...
- SQL Server 2008 R2——使用计算列为表创建自定义的自增列
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- Java Hour 50 日期类型
Plan List: 1 Java 中的日期类型 2 mysql 相关 3 java code style 鉴于本问题太过普通,所以参考文章满大街都是,因此本文内容基本为转载和验证. java.sql ...
- cadence upf低功耗流程的仿真验证
本文是记录项目过程中遇到的奇巧淫技,如有遗漏或者不足,请大家改正和补充,谢谢. 随着深亚微米技术的普及与发展,leakage功耗在整个功耗中的比重越来越大,比如45nm下,已经占到了60%以上,所以低 ...
随机推荐
- 【重新整理】log4j 2的使用
一 概述 1.1 日志框架 日志接口(slf4j) slf4j是对所有日志框架制定的一种规范.标准.接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使用(如log ...
- light oj 1035 - Intelligent Factorial Factorization 素因子分解
1035 - Intelligent Factorial Factorization Given an integer N, you have to prime factorize N! (facto ...
- 用Docker部署自己的JupyterHub
[话在前头] 用 Docker 部署 JupyterLab 感觉是部署 JupyterLab 最方便的方式了,官方提供了很多可选的镜像,也可以自己从 jupyter/base-notebook 中继续 ...
- 解决关闭SSH进程CobaltStrike自动关闭
解决关闭SSH进程CobaltStrike自动关闭 0x0 那么为什么ssh一关闭,程序就不再运行了? 答:元凶:SIGHUP 信号 让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉. 在 ...
- centos7安装node.js
安装版本:node-v10.15.3 一.安装必要的编译软件包 # yum install gcc gcc-c++ -y 二.从源码下载Nodejs 进入官网选择自己需要的版本 https://nod ...
- while 循环 实例
/*int i=0; while(i<100){// 循环条件 while先执行后循环 printf("while第%d遍循环体\n",i);//循环体 i++; } */ ...
- POJ 1753 Flip Game 暴力 深搜
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 59468 Accepted: 24750 Descr ...
- SAP 如何看某个TR是否传入了Q或者P系统?
SAP 如何看某个TR是否传入了Q或者P系统? 两种方式可以查询. 1)进入Q系统或者P系统.SE16,看表TPALOG, 输入请求号码, 执行,看记录里的字段TPSTAT_KEY是否为空,如果不为空 ...
- Learning hard 学习笔记
第一章 你真的了解C#吗 1.什么是C#, 微软公司,面向对象,运行于.NET Framework之上, 2.C#能编写哪些应用程序, Windows应用桌面程序,Web应用程序,Web服务, 3.什 ...
- XSStrike工具的安装使用
0x01简介 XSStrike 是一款用于探测并利用XSS漏洞的脚本 XSStrike目前所提供的产品特性: 对参数进行模糊测试之后构建合适的payload 使用payload对参数进行穷举匹配 内置 ...