数字IC学习之工具篇:NCVerilog+SimVision(Cadence)
目标:
- 了解ncverilog、irun、xrun之间的关系
- 了解indago和simvision之间的关系
- 学习Cadence仿真工具和波形查看工具的基本使用
1. Cadence仿真工具:
① IUS(cadence以前的仿真工具,功能略弱。代表工具,ncverilog):
Cadence仿真模式:单步仿真模式、多步仿真模式
多步仿真模式:使用ncvlog(ncsc,ncvhdl),ncelab,ncsim命令来实现仿真。
- ncvlog(ncsc,ncvhdl),编译源代码(systemC使用ncsc工具编译;VHDL使用ncvhdl工具编译;Verilog使用ncvlog工具编译)
- ncelab,对编译的结果,进行描述elaborate,建立snapshot文件
- ncsim,对snapshot文件进行仿真
示例:
1. ncvlog -f run.f
2. ncelab tb -access wrc
3. ncsim tb –gui//第一个命令,run.f是整个RTL代码列表, ncvlog执行以后将生成一个名为INCA_libs的目录和一个名为worklib的目录。
//第二个命令,-access选项是确定读取文件的权限,其中的tb是tb文件内的顶层模块名字。ncelba要选择tb文件的顶层module,elaborate之后,会生成snapshot。
//第三个命令,选择snapshot进行仿真,-gui启动图形化界面。
单步仿真模式:早期的IUS,使用ncverilog进行单步仿真模式,ncverilog,内部会自动调用ncvlog,ncelab,ncsim工具进行仿真。从IUS8.1开始,ncverilog命令被替换成irun命令,使用ncverilog,将直接调用irun命令。而irun工具,内部也会自动调用ncvlog,ncelab,ncsim工具进行仿真。
② IES(cadence较早的仿真工具,功能强大。代表工具,irun):
irun是一个脚本,irun支持各种源程序文件输入(verilog,systemverilog,VHDL,verilog AMS,VHDL AMS,specman e,和其他语言程序编写的文件如C,C++),并且使用合适的编译器对其进行编译(.v文件,使用ncvlog;.sv文件,使用ncvlog;.vhd文件,使用ncvhdl;.e文件,使用sn_compile.sh脚本)。当输入的文件都编译完毕后,irun自动启动ncelab,去elaborate,产生snapshot,最后启动ncsim仿真器去仿真snapshot。irun启动后,会在生成目录,自动创建INCA_libs文件夹。
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 |
③ Xcelium(cadence现在的仿真工具,Incisive(irun)的升级版本。代表工具,xrun):
xrun默认是单步仿真1. xrun add.v //自动comp、elab、simxrun设置多步仿真1. comp:
2. xrun -compile add.v
3. elab:
4. xrun -elaborate add.v //生成snapshot
5. sim:
6. xrun -R //自动识别snapshot
xrun常用选项:
选项 | 说明 |
---|---|
-64bit | 64bit仿真 |
-sv | 识别systemverilog语法 |
-f <.f .list> | 识别文件列表 |
-access +rwc | 在查看波形时,对代码权限设置 |
-top <> | 指定仿真的顶层 |
-l <.log> | 指定仿真log信息目录和名字 |
-history_file <.history> | 指定仿真记录的目录及名字 |
-q or -Q | 不在log中打印仿真总结信息 |
-noupdate | 强制comp和elab必须重新执行 |
-clean | 先清除当前目录下的Xcelium.d再跑仿真 |
-seed | 指定随机数 |
-licqueue | 指定当没有license时,等待 |
-errormax n | n个error后强制结束仿真 |
-coverage all | 生成覆盖率 |
-covoverwrite | 自动覆盖当前覆盖率 |
-parseinfo include | 打印出使用`include包含的文件具体信息 |
-mcl | 轻量级的多core仿真 |
-notimingcheck | 不检查时序 |
-nospecify | specify部分不起作用 |
-sdf_verbose | 展示反标详细信息 |
-ntc_verbose | 负延时信息展示 |
注:cadence的很多工具,带有nc作为前缀。nc,指native compile,将不同的HDL code转化成一种中间语言(native language),然后统一仿真,为了实现混合语言仿真。
2. Candence的波形查看工具:SimVision
indago是cadence推出的一系列debug工具:Debug analyzer app、Embedded software debug app(简称eswd工具)、Protocol debug app、Simvision。(不确定是否正确)
2.1 SimVision的基本使用
前言:NCverilog 有 shell 和 GUI 两种版本,GUI 版本的叫做 NClaunch,二者调用相同内核;ncverilog的执行有三步模式和单步模式,在nclaunch中对应multiple step和single step。基于shell的ncverilog操作(尤其是单步模式)更适合于大批量操作。ncverilog的波形查看配套软件是simvision。
在shell版本下完成仿真后,再打开一个终端输入simvision将会打开 simvision 界面,点击左上角的 File -> Open Database 选择生成的 .shm 文件,点击 Open 即可打开波形。(当更改设计或仿真文件后可以点击左上角 File->Reload Database 重新加载波形)
在GUI版本下,启动(终端输入nclaunch,启动图形化界面,通过file>switch to single step切换单步或者多步模式。file>set design directory设置工作目录)、编译(选中在设计时建立的Verilog文件,按下编译器按钮,编译完成后NC-Verilog将产生一个叫INCA_libs的目录以及一个叫worklib的目录。所有设计中的模块都将编译在worklib目录下面)、描述(展开库worklib,选择顶层top-level的单元,然后选择描述按钮 ) 、仿真(展开Snapshots文件夹,选中你想要仿真的snapshot,按下仿真按钮,设计浏览器和控制窗口就会出现,此时进入simvision界面)
五种基本窗口:Design Browser(设计浏览器窗口)、Console(控制窗口)、Waveform(波形窗口)、Schematic Tracer(原理图窗口)、Source Broswer(源浏览器窗口)
基本使用:
1.点击Waveform按钮,可以让选中信号在波形窗口(waveform)中显示
2.点击Schematic按钮,可以查看信号流向原理图
3.点击Source按钮,可以查看选中信号的设计代码
3. xrun+simvision仿真环境搭建的makefile示例
见数字IC学习之语言篇:makefile
参考资料:
NC-verilog仿真工具使用(一)_ncverilog_dxz44444的博客-CSDN博客
Cadence仿真验证工具
数字IC学习之工具篇:NCVerilog+SimVision(Cadence)相关推荐
- 我的数字IC学习路线
引言 很多朋友和我一样也是从FPGA转行入到数字IC,所以对数字IC很多知识也不是很清楚,我也一样不清楚,我想把我的数字IC学习路线记录在此, 全网也没有博客能如此详细的汇总这条路线并且分享出来,本博 ...
- 数字IC设计之DC篇:DC流程介绍
数字IC设计之DC篇:DC流程介绍 综合概念 综合是使用软件的方法来设计硬件, 然后将门级电路实现与优化的工作留给综合工具的 一种设计方法.它是根据一个系统逻辑功能与性能的要求,在一个包含众多结构.功 ...
- 超实用数字IC学习资源,来了~~~
IC老学姐又来咯,今天为大家带来数字IC学习过程中必备资源,主要分为书籍.培训班.竞赛.网络学习资源等.满满干货,快速速收入囊中!
- cesium绘制网格_Cesium学习笔记-工具篇37-风场绘制
这两天重新接触到流场,于是研究下,在大牛们的轮子上也算实现了效果: 1二维 2三维 主要参考以下三篇文章: <WebGL风向图>给出制作风向图通常步骤: 1. 在屏幕上生成一系列随机粒子位 ...
- 数字IC之路-SDC篇(一):基本的时序路径约束
本文转载自IC_learner的博客,转载请标明出处 http://www.cnblogs.com/IClearner/ 时序约束可以很复杂,这里我们先介绍基本的时序路径约束,复杂的时序约束我们将在后 ...
- 深度学习学习指南-工具篇
colab Colab是由Google提供的云计算服务,通过它可以让开发者很方便的使用google的免费资源(CPU.GPU.TPU)来训练自己的模型. 学习经验总结 如何使用命令行? 通过!+cmd ...
- 数字IC学习笔记(1)CMOS晶体管原理
一.物理材料 当以IV族元素(si等)作为基材,参入V族元素(AS)形成n-type,参入Ⅲ族元素(B)则形成p-type. 当n-type和p-type组合在一起则生成一个PN结. P端高压N端低压 ...
- 数字IC后端设计技术全局观
数字IC后端设计flow(不含DFT) 数字IC后端设计工具 DC:用于逻辑综合 FM:用于形式验证 ICC:用于物理实现 PrimeTime:用于STA 步骤(或文件类型)简述 RTL(Regist ...
- 超全的2022届数字IC面经汇总来了~
超全的2022届数字IC面经汇总来了,看看有没有你想去的企业~ 看面经可以帮助你更快地熟悉公司的面试流程和常见的面试问题,从而做到心中有数,在平时也可以针对性地去学习. 点击对应企业链接即可获取面经喔 ...
最新文章
- PAT Basic 1072
- kotlin学习笔记——集合及集合操作符
- java的应用程序开发_开发一个Java应用程序(1)
- CheckBox控件
- Linux配置网络出现Eroor adding default gateway的解决方案
- C++ OpenCV 问题
- c语言中用分数表示结果,C语言实例 计算分数的精确值
- matlab之简单粒子群的函数寻优
- 2021-08-13 初识servlet
- Swift 再等等?我的答案是:快上车
- 安装SQLServer2008失败
- JS JQUERY获取两个时间相差几个月
- 痞子衡嵌入式:浅析IAR下调试信息输出机制之硬件UART外设
- DAMO-YOLO第三方数据训练教程
- Html与CSS快速入门01-基础概念
- java解析xml文件并写入Excel表
- 【TP5.1】商品列表加载
- 绩效面谈的4种技巧(一)
- 写在前面——说说我的故事
- AES128加密解密
热门文章
- item在C语言中是什么意思中文,item的意思在线翻译,解释item中文英文含义,短语词组,音标读音,例句,词源,同义词【澳典网ODict.Net】...
- Django配置Bootstrap, js
- 从源码一步步学习,Ryan Dahl的Deno实现原理
- 干掉微信小程序的繁琐取值和赋值方式,提高开发效率
- 软件工程毕设项目推荐 选题汇总
- 计算机毕业设计ssm面向智慧课堂的教学过程管理系统evi14系统+程序+源码+lw+远程部署
- nRF51822 S130协议 手机蓝牙透传通讯学习
- 用Mouse_event()来控制鼠标操作
- Myeclipse下PHP开发环境搭建及运行
- Erlang NIF浅析