Cadence 实验系列10_Verilog设计平台_NC-Verilog

合集下载

NC-Verilog仿真技巧

NC-Verilog仿真技巧

NC-Verilog仿真技巧提高NC-Verilog仿真效率的技巧本文回顾了一些NC-Verilog的命令行选项,并说明这些选项如何影响仿真效率。

同时,我们也展示了一些技巧,以帮助用户的NC-Verilog在最大效率下仿真一个设计和测试平台。

文中的命令行选项语法采用单步启动的方式(ncverilog +),这些选项也适合多步启动模式(ncvlog, ncelab, 或ncsim)。

安装最新发布的软件首先确认你是否安装了最新的Cadence LDV版本。

自动1996年发布第一版NC-Verilog以来,我们的研发队伍一直把仿真器的仿真效率作为重点来研究。

在后来推出的新版本里,不断按各种设计风格优化仿真器,因此使用最新版本是最有利的。

直到2002年2月,最新版本是LDV 3.4(s1)。

使用NC-Verilog内置的profilerNC-Verilog在仿真引擎内开发了一个profiler工具。

该工具每秒中断仿真器100次,并将终端时的结构记录下来,生成一个日志文件。

日志文件里列出了被中断次数最多的模块、代码行和结构类型。

这些信息可以帮助你诊断是哪些代码或模块在仿真时耗费了最多的时间。

通过修改这些模块,就能提升仿真效率。

Profiler功能很容易启动,并对仿真只产生非常小的影响。

% ncverilog +ncprofileor% ncsim –profile snapshot_name在仿真结束时,profiler会创建一个日志文件(ncprof.out),文件里列出了profile运行的细节。

关于如何利用profiler日志文件,可参考Cadence在线文档(Cadence NC-Verilog Simulator Help, Version 3.4, Chapter 14)。

禁止时序验证来提升效率缺省情况下,如果在设计中考虑了时序,NC-Sim将进行标准延迟格式(SDF)的全时序标注(annotation),并在仿真时检查时序。

Cadence 实验系列10_Verilog设计平台_NC-Verilog

Cadence 实验系列10_Verilog设计平台_NC-Verilog

仿真器 (Simulator)
VI编辑器
选中所有 相关文件 后,点击 编译 RISC CPU 所有模块文 件及仿真文 件
编译成功
描述前进行 设定,Tools >elaborator
非所有代码 都加了时间, 为防止报错
Snapshot 文件
描述成功
控制窗口
设计浏览器
不报错,可以仿真
SimVision中你 可以存储个别目 标或者范围的仿 真数据,使得仿 真数据尽量少, 因此需要设定探 测类型。 选择顶层模块 ->Simulation ->Create Probe
优点:


业界第一的性能加快设计验证 64位机器上设计超过1亿门的芯片 用一体化的事务/信号视窗使效率最大化 集成化的代码覆盖保证全面的验证 通过完全兼容的升级到Incisive验证平台获得终极 的验证速度和效率 来自超过30家ASIC供应商的经过认证的库保证精 确性
缺点(个人认为):
NC-Verilog仿真器


NC-Verilog是Verilog-XL的升级版, 它采用NativeCompiled技术, 无论仿真速度, 处理庞大设计能力, 编辑能力, 记忆体容量和侦错环境都以倍数升级。 NC-Verilog是一个编译仿真器,它把Verilog代码 编译成Verilog程序的定制仿真器。也就是它把 Verilog代码转换成一个C程序,然后再把该C程序 编译成仿真器。因此它启动得稍微慢一些,但这 样生成的编译仿真器运行得要比Verilog-XL的解释 仿真器快很多。它也与Verilog-2001标准的大部分 兼容,并且一直被Cadence经常更新,因此包含 了越来越多的高级应用特点。
点击Apply后便可以得到想要的信号显示方式

Ncverilog_的一些经验

Ncverilog_的一些经验

Ncverilog 的一些经验1.Verilog和Ncverilog命令使用库文件或库目录ex). ncverilog -f run.f -v lib/lib.v -y lib2 +libext+.v //一般编译文件在run.f中, 库文件在lib.v中,lib2目录中的.v文件系统自动搜索使用库文件或库目录,只编译需要的模块而不必全部编译2.Verilog Testbench信号记录的系统任务:1). SHM数据库可以记录在设计仿真过程中信号的变化. 它只在probes有效的时间内记录你set probe on的信号的变化.ex). $shm_open("waves.shm"); //打开波形数据库$shm_probe(top, "AS"); // set probe on "top",第二个参数: A -- signals of the specific sc ropeS -- Ports of the specified s cope and below, excluding library cellsC -- Ports of the specified s cope and below, including library cellsAS -- Signals of the specifie d scope and below, excluding library cellsAC -- Signals of the specifie d scope and below, including library cells还有一个 M ,表示当前scope的m emories, 可以跟上面的结合使用, "AM" "AMS" "AMC"什么都不加表示当前scope的por ts;$shm_close //关闭数据库2). VCD数据库也可以记录在设计仿真过程中信号的变化. 它只记录你选择的信号的变化.ex). $dumpfile("filename"); //打开数据库$dumpvars(1, top.u1); //scope = top.u1, depth = 1第一个参数表示深度, 为0时记录所有深度; 第二个参数表示scope,省略时表当前的scope.$dumpvars; //depth = all scope = all$dumpvars(0); //depth = all scope = current $dumpvars(1, top.u1); //depth = 1 scope = top. u1$dumpoff //暂停记录数据改变,信号变化不写入库文件中$dumpon //重新恢复记录3). Debussy fsdb数据库也可以记录信号的变化,它的优势是可以跟debus sy结合,方便调试.如果要在ncverilog仿真时,记录信号, 首先要设置debussy:a. setenv LD_LIBRARY_PATH :$LD_LIBRARY_PATH(path for debpli.so file (/share/PLI/nc_xl//nc_loadpli1)) b. while invoking ncverilog use the +ncloadpli1 option.ncverilog -f run.f +debug +ncloadpli1=debpli:deb_PLIPtr fsdb数据库文件的记录方法,是使用$fsdbDumpfile和$fsdbDumpvars系统函数,使用方法参见VCD注意: 在用ncverilog的时候,为了正确地记录波形,要使用参数: "+acces s+rw", 否则没有读写权限3. ncverilog编译的顺序: ncverilog file2 file1 ....有时候这些文件存在依存关系,如在file2中要用到在file1中定义的变量,这时候就要注意其编译的顺序是从后到前,就先编译file2然后才是file1.4. 信号的强制赋值force首先, force语句只能在过程语句中出现,即要在initial 或者 always 中间. 去除force 用 release 语句.initial begin force sig1 = 1'b1; ... ; release sig1; end force可以对wire赋值,这时整个net都被赋值; 也可以对reg赋值.ncverilog使用ncverilog是shell版的,nclaunch是以图形界面为基础的,二者调用相同内核;ncverilog的执行有三步模式和单步模式,在nclaunch中对应multiple step和single stepncverilog的三步模式为:ncvlog(编译) ncelab(建立snapshot文件) ncsim(对snapshot文件进行仿真)基于shell的ncverilog操作(尤其是单步模式)更适合于大批量操作ncverilog的波形查看配套软件是simvision,其中包含原理图、波形、信号流等查看方式三命令模式:ncvlog -f run.fncelab tb -access wrcncsim tb -gui第一个命令中,run.f是整个的RTL代码的列表,值得注意的是,我们需要把tb文件放在首位,这样可以避免出现提示timescale的错误注意:ncvlog执行以后将产生一个名为INCA_libs的目录和一个名为worklib的目录第二个命令中,access选项是确定读取文件的权限。

verilog实验报告

verilog实验报告

verilog实验报告Verilog实验报告引言:Verilog是一种硬件描述语言(HDL),用于设计和模拟数字电路。

它是一种高级语言,能够描述电路的行为和结构,方便工程师进行数字电路设计和验证。

本实验报告将介绍我在学习Verilog过程中进行的实验内容和所获得的结果。

实验一:基本门电路设计在这个实验中,我使用Verilog设计了基本的逻辑门电路,包括与门、或门和非门。

通过使用Verilog的模块化设计,我能够轻松地创建和组合这些门电路,以实现更复杂的功能。

我首先创建了一个与门电路的模块,定义了输入和输出端口,并使用逻辑运算符和条件语句实现了与门的功能。

然后,我创建了一个测试模块,用于验证与门的正确性。

通过输入不同的组合,我能够验证与门的输出是否符合预期。

接下来,我按照同样的方法设计了或门和非门电路,并进行了相应的测试。

通过这个实验,我不仅学会了使用Verilog进行基本门电路的设计,还加深了对逻辑电路的理解。

实验二:时序电路设计在这个实验中,我学习了如何使用Verilog设计时序电路,例如寄存器和计数器。

时序电路是一种具有状态和时钟输入的电路,能够根据时钟信号的变化来改变其输出。

我首先设计了一个简单的寄存器模块,使用触发器和组合逻辑电路实现了数据的存储和传输功能。

然后,我创建了一个测试模块,用于验证寄存器的正确性。

通过输入不同的数据和时钟信号,我能够观察到寄存器的输出是否正确。

接下来,我设计了一个计数器模块,使用寄存器和加法电路实现了计数功能。

我还添加了一个复位输入,用于将计数器的值重置为初始状态。

通过测试模块,我能够验证计数器在不同的时钟周期内是否正确地进行计数。

通过这个实验,我不仅学会了使用Verilog设计时序电路,还加深了对触发器、寄存器和计数器的理解。

实验三:组合电路设计在这个实验中,我学习了如何使用Verilog设计组合电路,例如多路选择器和加法器。

组合电路是一种没有状态和时钟输入的电路,其输出只取决于当前的输入。

cadence相关软件介绍.

cadence相关软件介绍.

公司概述Cadence是全球电子设计自动化(EDA领先企业,从事软件与硬件设计工具、芯片知识产权与设计服务,目前正致力于EDA产业的转型。

Cadence把此次转型构想命名为EDA360,因为它将包含设计过程中的所有方面,并关注最终产品的可盈利性。

这种应用驱动型方法,能在创建、集成与优化电子设计方面帮助我们的客户以更低的成本和更高的质量完成硅芯片、片上系统设备、以及完整的系统实现。

Cadence Design System, Inc.公司成立于1988年,总部位于美国加州圣荷塞,其设计中心、研发中心和销售部门分布于世界各地。

CADENCE中国1992年Cadence 公司进入中国大陆市场,迄今已拥有大量的集成电路 (IC 及系统设计客户群体。

在过去的二十年里,Cadence公司在中国不断发展壮大,建立了北京、上海、深圳分公司以及北京研发中心、上海研发中心,并于2008年将亚太总部设立在上海,Cadence中国现拥有员工400余人。

北京研发中心和上海研发中心主要承担美国公司总部EDA软件研发任务,力争提供给用户更加完美的设计工具和全流程服务。

Cadence在中国拥有强大的技术支持团队,提供从系统软硬件仿真验证、数字前端和后端及低功耗设计、数模混合RF 前端仿真与DFM以及后端物理验证、SiP封装以及PCB设计等技术支持。

我们的销售方案中还包括提供专业设计服务,VCAD团队为用户提供高质量、有效的设计和外包服务。

把世界顶尖的产品技术和服务融入中国,成为中国电子行业最亲密合作伙伴,和中国电子高科技产业共同腾飞是Cadence 在中国的坚定信念。

市场与趋势Cadence服务于产值达2万亿美元的全球电子市场,其中包括产值超过3000亿美元的半导体市场。

我们的主要垂直市场领域包括:有线与无线通讯;工业、医疗与汽车电子;计算机与消费电子,比如多媒体和个人娱乐设备。

这些领域占全球电子设备营收和半导体营收的90%以上。

NC-verilog 仿真教程和实验实例

NC-verilog 仿真教程和实验实例

Cadence IC设计实验实验六 NC-Verilog Simulator实验实验目的:NC_verilog仿真器的使用,包括编译、运行和仿真。

预备工作:cp /eva01/cdsmgr/ training_IC_data/NCVlog_5_0.tarZ .tar -vxfZ NCVlog_5_0.tarZLab1。

运行一个简单的Verilog设计[1]、设置设计环境1.cd NCVlog_5_0/lab1-mux这个目录包含了用来描述一个多路选择器和其测试平台的verilog 模块。

以下是mux_test.v模块内功能模块的端口框图。

建议:如果有时间,你最好看一看各模块(module)的Verilog代码!2.创建cds.lib文件,vi cds.lib(回车)按小写”i”切换到编辑模式,在其中写入:Define lab1muxlib ./lab1-mux.lib有关vi的编辑命令,请参阅相关资料。

如”Esc”键切换到命令状态,在命令状态下,”x”是删除当前字符,”a”是在当前光标后写入,”:wq”是存盘退出,”:!q”是不保存退出。

存盘退出3.创建(库)文件夹(即目录):mkdir lab1-mux.lib (回车)4.类似步骤1,创建hdl.var文件,在其中写入:Define WORK lab1muxlib存盘退出5.查看verilog源文件。

mux.v是2选1多路选择器MUX2_1 的门级建模源文件,mux_test.v是mux.v的测试台,包含了输入激励信号和监控程序运行的任务语句。

[2]、编译源文件(ncvlog命令):当前目录应为。

/你的学号/NCVlog_5_0/lab1-mux。

1.ncvlog mux.v –messages ,这条指令是编译mux.v。

2.vi hdl.var打开hdl.var文件,在其中添加:Define NCVLOGOPTS –messages 存盘退出注:用NCVLOGOPTS变量定义常用的ncvlog命令行操作,从而避免每次都敲入同样的命令行。

cadence 中的verilogXL的使用

cadence 中的verilogXL的使用

- Cadence中V erilog XL的一些使用方法一、学习Verilog 的必要性。

随着电路规模的增大和复杂,传统的图形输入模式已不可行。

语言描述电路成为潮流。

它的方便性和好的更改性、维护性在实践中得到很好的体现。

尤其现在强大的综合工具,和系统集成对核的需求性使Verilog更有用武之地。

每个硬件工程师应该学习掌握它。

二、Verilog 的文本编辑器。

在进入Cadence后在命令行中键入textedit *.v↙(此处*为文件名,在textedit 命令后应带上文件名)键入上述命令后进入文本编辑框,和Windows 中常用的文本编辑框很象。

图1、textedit文本编辑框界面图中的主菜单File、View、Edit、Find及各自底下的子菜单和Windws中的文本编辑器差不多,使用方法相似,这里就不多说了。

编好程序保存可以进行后续工作了。

三、Verilog 的模拟仿真。

1、命令的选择。

在命令行中键入verilog↙会出现关于此命令的一些介绍,如下:-f <filename> read host command arguments from file.-v <filename> specify library file-y <filename> specify library directory-c compile only-s enter interactive mode immediately-k <filename> set key file name-u convert identifiers to upper case-t set full trace-q quiet-d decompile data structureSpecial behavioral performance options (if licensed):+turbo speed up behavioral simulation.+turbo+2 +turbo with second level optimizations.+turbo+3 +turbo+2 with third level optimizations.+listcounts generate code for maintaining information for $listcounts+no_turbo don't use a VXL-TURBO license.+noxl disable XL acceleration of gates in all modulesSpecial environment invocation options (if licensed):+gui invoke the verilog graphical environment在上面的参数选择中,简单介绍几个常用的:(1) -c首先应该保证所编程序的语法正确性。

Cadence 实验

Cadence 实验

实验说明
212实验室的电脑,只有F盘能够保存数据,因此要把cadence的工作目 录转移到F盘中的文件夹。具体方法: 在F盘的RedHat_Share中,以自己的学号名建文件夹,如12120036. 然后启动cadence,右键>打开终端,输入如下命令, cd .. cd .. cd mnt cd hgfs cd Redhat_Share cd 14120024 icfb& 注意:一次输一行命令,每输完一行命令之后要敲回车键。以后每次实验 都在该路径下打开icfb&。
2.File>Open…
1.1启动VMware
3.找到redhat所在目录(E:\Redhat),导入redhat
4.单击绿色三角形,启动VMware
1.1启动VMware
5.用户登陆 User:cadence Passward:cadence
1.2启动&退出 IC5141
在桌面点击右键>打开终端>输入:icfb& 出现如图所示的CIW(Command Interpreter Window)窗口。从CIW窗口就可以调用许多工具并完 成许多任务。 CIW>File>Exit.. 可以退出IC5141
2.3复制库
2.4重命名库
选中所要复制的Library Library Manager>Edit>Rename… 右键>Rename… To Library 填入新的Library Name
2.5新建Cell View
选中所要添加Cell View的Library (Category) 输入Cell Name 选择Tools>Ok 不同的Tools对应不同的View Name
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

创建新的信号显示方式
Windows ->Tools-> Mnemonic Maps
1。点击 新建Map 按 钮,新建一个 mnemonic map. 2。 改变默认的进制,点 击’h 不放然后选择’d. 3。 双击Values Matching…区域,输入0, 然后按Tab键,进入 Relabel As… 区域。 4。 在Relabel As…区域, 键入名字,然后按Tab键 进入下个目标的Values Matching…
编译成功
描述前进行 设定,Tools >elaborator
非所有代码 都加了时间, 为防止报错
Snapshot 文件
描述成功
控制窗口
设计浏览器
不报错,可以仿真
SimVision中你 可以存储个别目 标或者范围的仿 真数据,使得仿 真数据尽量少, 因此需要设定探 测类型。 选择顶层模块 ->Simulation ->Create Probe
创建成功,仿真 结果数据将存在 默认的库里
开始仿真
仿真结果数 据存在默认 的库里
仿真结果, 与 Testbench 有关
Design Browser 让你进入设计的各层, 以及信号和变量的数据库 Waveform window把仿真的资料在X-Y 坐标系里面描绘出来。数据通常被显示 为值和时间的关系,但是它也可以是已 经记录下了的数据
Cadence 实验系列10_ Verilog设计平台_NC-Verilog
大纲 NhomakorabeaNc-verilog仿真器的总体描述 常用命令的介绍 详细介绍仿真器的使用 播放操作演示的屏幕录像
Verilog-XL仿真器


Verilog HDL是在1983年创立的。在1984~1985年, Cadence公司的第一合伙人Phil Moorby设计出了 第一个名为Verilog-XL的仿真器。1986年,他提出 了用于快速门级仿真的XL算法。 Verilog-XL是一个解释仿真器。“解释”是指有一 个运行时间的解释工具执行每一条Verilog指令并 且与事件队列进行交流。这一早期的仿真器是 Verilog-1995年标准的参考仿真器。由于它是该标 准的参考仿真器,所以一直未被更新而不具有 Verilog的一些新特点。并且它是一个解释程序, 所以它不是最快的仿真器。
点击Apply后便可以得到想要的信号显示方式
播放操作演示的屏幕录像
谢谢!
优点:


业界第一的性能加快设计验证 64位机器上设计超过1亿门的芯片 用一体化的事务/信号视窗使效率最大化 集成化的代码覆盖保证全面的验证 通过完全兼容的升级到Incisive验证平台获得终极 的验证速度和效率 来自超过30家ASIC供应商的经过认证的库保证精 确性
缺点(个人认为):
Verilog的编辑


在Linux下打开gedit来创建和编辑 其存放路径必须是Nc-verilog仿真器的 License所认定的目录,否则编译时报错 也可通过Nc-verilog来打开编辑,但操作不 便
保存好Verilog文件后,打开终端,键入 nclaunch –new 开启仿真器
......想了解更多请在终端输入Verilog后回车
Nc-verilog仿真器的 工作过程
编译源文件,并且用描述器(elaborator)把设计 描述成snapshot的形式。Snapshot是仿真器将调用 的你的设计的表述,它和其它由compiler和 elaborator产生的中间目标一起保存在库中。然后 仿真。
选择多步模式 Multiple Step
必须为此路径
库文件夹
点OK后
主窗口: 左边窗口 显示当前 目录下所 有文件, 在编译和 描述后在 右边显示 设计的库
源文 刷新 Verilog 描述器 件浏 目录 编译器 (Elaboretor) 览
仿真器 (Simulator)
VI编辑器
选中所有 相关文件 后,点击 编译 RISC CPU 所有模块文 件及仿真文 件
NC-Verilog仿真器


NC-Verilog是Verilog-XL的升级版, 它采用NativeCompiled技术, 无论仿真速度, 处理庞大设计能力, 编辑能力, 记忆体容量和侦错环境都以倍数升级。 NC-Verilog是一个编译仿真器,它把Verilog代码 编译成Verilog程序的定制仿真器。也就是它把 Verilog代码转换成一个C程序,然后再把该C程序 编译成仿真器。因此它启动得稍微慢一些,但这 样生成的编译仿真器运行得要比Verilog-XL的解释 仿真器快很多。它也与Verilog-2001标准的大部分 兼容,并且一直被Cadence经常更新,因此包含 了越来越多的高级应用特点。
Verilog代码编辑界面不友好
Nc-verilog 的各种常用的命令

+cdslib+... +errormax+整数 +status +work +access+w/r/c
+gui +input script_file +run


设定你所仿真的库所在 当错误大于设定时退出仿真 显示内存和CPU的使用情况 工作库 读取对象的权限,缺省为无读 (-w)无写(-r)无连接(-c) 显示图形交互界面 输入脚本文件 如果在GUI交互界面下, 启动 后将自动开始仿真
Source Browser 让你可以看到设计的源 代码
选择好要显示的信号后, 点击 打开波形窗口
点击顶层 模块,选 择要加进 波形图的 信号
加信号举例
选择子模 块的信号
无信号显示
Simulation ->Reset to Start
信号显示方式举例
Format-> Radix/Mnemonic ->Decimal…
相关文档
最新文档