Verilog HDL数字集成电路设计原理与应用第7章课件.ppt

上传人:小飞机 文档编号:1566406 上传时间:2022-12-06 格式:PPT 页数:165 大小:1.76MB
返回 下载 相关 举报
Verilog HDL数字集成电路设计原理与应用第7章课件.ppt_第1页
第1页 / 共165页
Verilog HDL数字集成电路设计原理与应用第7章课件.ppt_第2页
第2页 / 共165页
Verilog HDL数字集成电路设计原理与应用第7章课件.ppt_第3页
第3页 / 共165页
Verilog HDL数字集成电路设计原理与应用第7章课件.ppt_第4页
第4页 / 共165页
Verilog HDL数字集成电路设计原理与应用第7章课件.ppt_第5页
第5页 / 共165页
点击查看更多>>
资源描述

《Verilog HDL数字集成电路设计原理与应用第7章课件.ppt》由会员分享,可在线阅读,更多相关《Verilog HDL数字集成电路设计原理与应用第7章课件.ppt(165页珍藏版)》请在三一办公上搜索。

1、,第7章 仿真测试工具和综合工具,7.1 数字集成电路设计流程简介 7.2 测试和仿真工具7.3 综合工具7.4 测试和综合举例 本章小结,在线教务辅导网:http:/,教材其余课件及动画素材请查阅在线教务辅导网,QQ:349134187 或者直接输入下面地址:,http:/,在EDA技术高度发达的今天,没有一个设计工程师队伍能够用人工方法有效、全面、正确地设计和管理含有几百万个门的现代集成电路。利用EDA工具,工程师可以从概念、算法、协议等开始设计电子系统,,7.1 数字集成电路设计流程简介,大量工作可以通过计算机完成,并可以将电子产品从系统规划、电路设计、性能分析到封装、版图的整个过程在计

2、算机上自动完成。这样做有利于缩短设计周期、提高设计正确性、降低设计成本、保证产品性能,尤其是可增加一次投片的成功率,因此这种方法在大规模集成电路设计中已经普遍被采用。利用EDA工具进行集成电路设计需要遵循一定的设计流程,这样才能保证设计任务高效率地完成。数字集成电路设计方法的典型流程如图7.1-1所示。下面分别介绍各个设计阶段的主要任务。,图7.1-1 集成电路设计的典型流程,7.1.1 设计规范设计流程从已写出的设计规范开始。设计规范文件是一个包含功能、定时、硅片面积、功耗、可测性、故障覆盖率以及其它的设计准则的详细说明书。设计规范描述了项目完成的功能,确定了设计的总体方案,以平衡各个方面的

3、因素,对整个项目有一个初步的规划。在系统设计阶段,根据对设计面积、功耗、I/O和IP使用等情况的估算,确定所使用的芯片工艺和设计工具。有了设计规范,就可以进行设计划分。,7.1.2 设计划分设计划分过程就是把一个复杂设计逐渐划分成较小而且较为简单的功能单元。这样一个过程通常被称为自顶向下的设计方法,或者是分层设计法。HDL可以为需要进行划分、综合和验证的大型复杂系统提供一个通用框架,它支持具有混合抽象级别的自顶向下设计,可以将大型设计中的各部分链接在一起,来进行整个设计的功能和性能验证。,7.1.3 设计输入设计输入是指将设计划分阶段定义好的模块借助一定的设计输入手段转换为EDA工具能接受的信

4、息格式。目前主要的设计输入手段有高级硬件描述语言HDL(Verilog HDL/VHDL)和原理图等。HDL语言支持不同层次的描述,不依赖于各个厂家的工艺器件,便于修改。逻辑输入工具的功能是把逻辑图、状态机、真值表输入到计算机中,并进行语法、可综合性检查等。目前主流工具有Cadence公司的Composer、Synopsys公司的Leda以及UltraEdit、Vim等第三方编辑工具。,Leda是可编程的语法和设计规范检查工具,它能够对全芯片的VHDL和Verilog HDL描述或者对两者的混合描述进行检查,加速SoC的设计流程。Leda预先将IEEE可综合规范、可仿真规范、可测性规范和设计复

5、用规范进行了集成,以提高设计者分析代码的能力。UltraEdit是一款功能强大的文本编辑器,可以编辑文字以及多种格式的代码,内建英文单词检查、C+及VB 指令突显,可同时编辑多个文件,而且即使开启很大的文件,速度也不会慢。它是一个使用广泛的编辑器,但它并不直接支持HDL。,读者可以通过官方网站的链接下载Verilog HDL/VHDL的语法文件,并把下载的文件复制到WordFile.txt文件中(在UltraEdit的安装目录下),一般加在最后。这样就可以使用UltraEdit编辑HDL源代码了。,7.1.4 仿真设计输入后,经HDL编译器检查没有语法错误后,就可以对设计进行验证了。这里的验证

6、是指通过仿真软件验证其功能是否符合制定的设计规范,这一阶段的验证常被称为功能仿真或行为仿真。布局布线后,提取有关的器件延迟、连线延迟等时序参数(这些信息在反标注文件中)。在此基础上进行的仿真称为后仿真,也称时序仿真,它是接近真实器件运行的仿真。,仿真的结果取决于设计描述是否准确反映了设计的物理实现。仿真器不是一个静态工具,需要Stimulus(激励)和Response(输出)。Stimulus由模拟设计工作环境的Testbench 产生,Response为仿真的输出,由设计者确定输出的有效性。目前,仿真工具比较多,其中Cadence公司的NC-Verilog HDL、Synopsys公司的VC

7、S和Mentor公司的ModelSim都是业界广泛使用的仿真工具。,7.1.5 综合利用综合器对HDL代码进行综合优化处理,生成门级描述的网表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库支持下才能完成。综合实际上是根据设计功能和实现该设计的约束条件(如面积、速度、功耗和成本等),将设计描述(如HDL文件、原理图等)变换成满足要求的电路设计方案,该方案必须同时满足预期的功能和约束条件。,对于综合来说,满足要求的方案可能有多个,综合器将产生一个最优的或接近最优的结果。因此,综合的过程也就是设计目标的优化过程

8、,最后获得的电路结构与综合器的性能有关。这个阶段产生目标FPGA的标准单元网表和数据库,供布局布线使用。网表中包含了目标器件中的逻辑元件和互连信息。在传统的IC设计流程中,前端综合或时序分析时没有精确的线和CELL延迟信息,这样就容易造成布局前后的时序不收敛。随着工艺的进步,线延迟占主导地位,时序收敛问题越来越严重。根本的解决方法是将前后端的设计流程整合起来。,物理综合就针对的是这种情况。物理综合解决0.18 m以下工艺技术的IC设计环境,将综合、布局、布线集成于一体,让RTL设计者可以在最短的时间内得到性能最高的电路。通过集成综合算法、布局算法和布线算法,在RTL到GDS-的设计流程中,提供

9、可以确保IC设计的性能预估性和时序收敛性。目前常用的逻辑综合工具有Synopsys公司的Synplify和Design Compiler、Physical Compiler,Cadence公司的RTL Compiler等。,7.1.6 适配布线适配布线就是按照特定的工艺要求和约束条件利用适配器进行布局布线,最后生成版图。对于芯片设计来讲,这个过程通常分为3步。 布局规划:主要是标准单元、I/O Pad和宏单元的布局。I/O Pad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则给出了一定的区域由工具自动摆放。布局规划后,芯片的大小、Core的面积、Row的形式、电源及地线的Ring和

10、Strip就都确定下来了。 时钟树生成(lock Tree Synthesis,CTS)。 布局布线。,适配完成后,会产生多项设计结果。 适配报告:包括芯片内部资源的利用情况、设计的布尔方程描述情况等。 适配后的仿真模型。 器件编程文件:根据适配后的仿真模型,可以进行适配后的时序仿真。因为此时已经得到器件的实际硬件特性(如时延特性等),所以此仿真结果能比较精确地预期未来芯片的实际性能。在FPGA设计中各个厂家都提供了相应的布局布线工具,例如Altera公司的Quartus ,Xilinx公司的ISE等。在芯片设计领域,有Cadence公司提供的SoC Encounter和Synopsys公司的

11、Astro等布局布线工具。,7.1.7 时序分析时序分析的目的是检查设计中是否有时序上的违规。同步电路的分析采用静态时序分析实现,异步电路的分析则需要运行特殊仿真激励确认。仿真工具可以用前仿真所用的工具。 静态时序分析(STA)的功能是根据设计规范的要求检查所有可能路径的时序,不需要通过仿真或测试向量就可以有效地覆盖门级网表中的每一条路径,在同步电路设计中快速地找出时序上的异常。,可以识别的时序故障包括:建立/保持和恢复/移除检查(包括反向建立/保持),最小和最大跳变,时钟脉冲宽度和时钟畸变,门级时钟的瞬时脉冲检测,总线竞争与总线悬浮错误,不受约束的逻辑通道,计算经过导通晶体管、传输门和双向锁

12、存的延迟,自动对关键路径、约束性冲突、异步时钟域和某些瓶颈逻辑进行识别与分类。PrimeTime是Synopsys公司开发的进行静态时序分析的工具,它可以进行精确的RC延迟计算、先进的建模和时序验收。对于大型多时钟的设计,比如综合出的逻辑电路、嵌入式存储器和微处理器核的设计,Prime Time起到了关键性的作用。,动态时序分析主要是指门级(或对版图参数提取结果)的仿真,它主要应用在异步逻辑、多周期路径、错误路径的验证中。随着设计向65 nm以下的工艺发展,只用静态分析工具将无法精确验证串扰等动态效应。通过动态时序分析与静态时序分析相结合可以验证时序逻辑的建立/保持时间,并利用动态技术来解决串

13、扰效应、动态模拟时钟网络等问题。,7.1.8 物理验证物理验证通常包括设计规则检测(DRC)、版图与原理图对照(LVS)和信号完整性分析(SI)等。其中DRC用来检查版图设计是否满足工艺线能够加工的最小线宽、最小图形间距、金属宽度、栅和有源区交叠的最小长度等。如果版图设计违反设计规则,那么极有可能导致芯片在加工的过程中成为废品。LVS则用来保证版图设计与其电路设计的匹配,保证它们的一致性。如果不一致,就需要修改版图设计。SI用来分析和调整芯片设计的一致性,避免串扰噪声、串扰延迟以及电迁移等问题。,目前主要的物理验证工具有Mentor公司的Calibre、Cadence公司的Dracula和Di

14、va以及Synopsys公司的Hercules。此外,各大厂商也推出了针对信号完整性分析的工具。,7.1.9 设计结束在所有设计约束都已满足,也达到了定时约束条件的情况下,就会发出最终设计结束的信号。这时可用于制造集成电路的掩膜集就准备好了。掩膜集的描述是由几何数据(通常为GDS-格式)构成的,这些数据决定了集成电路制造过程中光掩膜步骤的顺序。将适配器布局布线后形成的器件编程文件通过下载工具载入到具体的FPGA或CPLD芯片中,可以方便地实现设计要求。如果是大批量产品的开发则通过更换相应的厂家综合库,便可以转由ASIC实现。,用HDL描述完一个硬件系统后要进行仿真验证,而如果想在计算机终端看到

15、硬件描述语言的输出,则需要通过硬件描述语言的仿真器来完成。常用的HDL仿真器很多,例如VCS、NC、Verilog HDL-XL、ModelSim、ActiveHDL等。,7.2 测试和仿真工具,根据所使用的编程语言的不同,可以将仿真器分为Verilog HDL语言仿真器和VHDL语言仿真器;根据工作方式的不同,可以分为事件驱动(event-driven)仿真器和时钟驱动(cycle-driven)仿真器;等等。这些工具中,有的侧重于IC设计,如NC、VCS等;有的侧重于FPGA/CPLD的设计,如ModelSim和ActiveHDL等。ModelSim仿真器在FPGA/CPLD设计中应用广泛

16、,这是因为ModelSim的出品公司为各种FPGA/CPLD厂家提供了OEM版本的ModelSim工具。ModelSim仿真器可以用于仿真Verilog HDL语言,也可以用于仿真VHDL语言,同时也支持两种语言的混合仿真。,NC(根据使用语言的不同,分为NC-Verilog和NC-VHDL)和VCS分别由知名的EDA工具厂商Cadence和Synopsys公司提供,在IC设计中应用广泛。根据设计阶段的不同,仿真可以分为RTL行为级仿真、逻辑综合后门级仿真和时序仿真三大类型。在仿真的后两个阶段,除了Verilog HDL源代码外还需要添加两个文件,即工艺厂商提供的库单元文件和延时反标文件。,7

17、.2.1 ModelSim的使用Mentor公司的ModelSim是一种常用的HDL语言仿真软件,能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog HDL混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核。个性化的图形界面和用户接口,为用户加快纠错提供了强有力的手段。,ModelSim的主要特点是:RTL和门级优化,本地编译结构,编译仿真速度快,跨平台、跨版本仿真;单内核VHDL和Verilog HDL混合仿真;源代码模版和助手,项目管理;集成了性能分析、波形比较、代码覆盖、数据流ChaseX

18、、Signal Spy、虚拟对象Virtual Object、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;C和Tcl/Tk接口,C调试;对SystemC直接支持,和HDL任意混合;支持System Verilog的设计功能;全面支持System Verilog、SystemC这样的系统级描述语言。,ModelSim分为SE、PE、LE和OEM等几个版本,其中SE是最高级的版本,而集成在 Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。SE版和OEM版在功能和性能方面有较大差别,比如大家

19、都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSim XE为例,对于代码少于40000行的设计,ModelSim SE比ModelSim XE要快10倍;对于代码超过40000行的设计,ModelSim SE要比ModelSim XE快近40倍。ModelSim SE支持PC、UNIX和Linux混合平台,提供全面、完善以及高性能的验证功能,全面支持业界广泛的标准。,ModelSim采用用户图形界面操作模式,有许多窗口,如Main窗口、Workplace窗口、Objects窗口、Wave窗口、Dataflow窗口、List窗口、Source窗口和Watch窗口。图7.2-1

20、为ModelSim的使用界面。 主(Main)窗口:是ModelSim唯一的控制窗口,也是控制命令的输入窗口。窗口中显示了ModelSim执行仿真的动作以及相应的信息。 结构(Workplace)窗口:该窗口按层次关系列出了工程中所有模块之间的关系。在结构窗口中选择固定模块,在信号窗口中会相应地显示这一模块信号的信息。,图7.2-1 ModelSim使用界面, 信号(Objects)窗口:显示被选中模块的信号、信号类型以及信号值。 波形(Wave)窗口:显示仿真的结果波形。 数据流(Dataflow)窗口:用于追踪数据流,并以层次化、图形化的方式显示结果。 列表(List)窗口:以表格的形式显

21、示仿真数据。 源代码(Source)窗口:显示工程中的相应源代码。 观察(Watch)窗口:用于实时监测变量在仿真中的变化情况。,ModelSim有三种仿真流程,即基本仿真流程(Basic Simulation Flow)、工程仿真流程(Project Simulation Flow)和多库仿真流程(Multi-library Simulation)。在较复杂的设计中,推荐使用工程仿真流程,这种流程更容易管理和维护设计中遇到的各种类型的文件,事实上工程仿真流程包含了基本仿真流程和多库仿真流程的核心内容。本节主要介绍工程仿真流程。ModelSim工程仿真流程包括建立库、建立工程、将设计文档(包括

22、源文件和测试文件)加入到工程中并编译、仿真、调试。,1建立并映射库建立并映射库有两种方法。第一种方法:在ModelSim中选择File/New/Library菜单命令,在弹出的对话框中填入库名称,点击OK按钮就完成了库的建立和映射。第二种方法:在ModelSim提示符下运行命令:vlib work2vmap work work2,第一条命令实现的是建立新库,第二条命令实现的是映射新库。其中work2代表的是新建的工作库。运行完毕后即完成了库的建立和映射操作。运行完vlib命令后会产生work库目录,目录里存放有_info文件,用于记录各种库中的各种模块。运行完vmap会将ModelSim安装目

23、录下的ModelSim.ini复制到当前的工作目录中并将库和目录对应起来,在Library中增加了work=work2语句。,2新建工程项目选择File/New/Project菜单命令,新建一个工程。在Project Name中输入工程名,在Project Location下的对话框中输入保存该工程所有文件的文件夹的路径名。Default Library Name对话框使用默认设置work即可。,3输入源代码选择Main窗口的File/New/Source/Verilog HDL菜单命令,出现源代码编辑窗口,将源代码输入并保存。源代码文件shiftregist.v如下:module shift

24、regist(data_out,clk,rst_n,load,data_load,ctr_shiftright,ctr_shiftleft,data_shiftright,data_shiftleft);parameter shiftregist_width=4;output shiftregist_width-1:0 data_out;input shiftregist_width-1:0 data_load;,input load,clk,rst_n,ctr_shiftright,ctr_shiftleft,data_shiftright,data_shiftleft;reg shiftr

25、egist_width-1:0 data_out;always (posedge clk or negedge rst_n) if (!rst_n) data_out=0; else if (load) data_out=data_load; else if (ctr_shiftright),data_out=data_shiftright,data_outshiftregist_width-1:1; else if (ctr_shiftleft) data_out=data_outshiftregist_width-2:0,data_shiftleft; else data_out=data

26、_out;endmodule,4将文件添加到工程中刚才输入的文件已经保存在当前Project的文件夹中。在Main窗口选择Project/Add to Project/Existing File选项将文件添加到工程中。,5编译源代码在Workplace窗口的Project对话框中选中shiftregist.v,然后在Main窗口中选中Compile/Compile Selected选项对源代码进行编译。编译成功后,Transcript对话框中将报告“#Compile of shiftregist.v was successful”。如果当前工程中有多个.v文件,则可以选择Compile/Com

27、pile Selected选项完成对源代码文件的批量编译,也可以一次选择多个文件进行编译。,6建立并添加测试文件用Verilog HDL编写测试激励文件,然后进行仿真操作。先输入测试激励文件的源代码,并存盘;然后将该文件添加到当前的工程项目中,再对该文件进行编译,其操作过程与前面介绍的相同。带控制端的移位寄存器的测试激励源代码文件testbench_shiftregist.v如下:module testbench_shiftregist;parameter shiftregist_width=4;reg shiftregist_width-1:0 data_load;,reg load,clk

28、,rst_n,ctr_shiftright,ctr_shiftleft,data_shiftright,data_shiftleft;wire shiftregist_width-1:0 data_out;always #5 clk=clk;initial begin data_load=0;load=0;rst_n=1;ctr_shiftright=0;ctr_shiftleft=0;clk=0;,data_shiftright=0;data_shiftleft=0; endinitial begin #10 rst_n=0;#3 rst_n=1;endinitial begin #15 l

29、oad=1;data_load=4b1010;#10 load=0; endinitial begin #30 ctr_shiftright=1;#20 data_shiftright=1;#20 ctr_shiftright=0;#20 ctr_shiftleft=1;#25 data_shiftleft=1;#20 data_shiftleft=0; end,shiftregist U1 (.clk(clk),.rst_n(rst_n),.load(load),.ctr_shiftright(ctr_shiftright), .ctr_shiftleft(ctr_shiftleft),.d

30、ata_shiftright(data_shiftright), .data_shiftleft(data_shiftleft),.data_load(data_load),.data_out(data_out);endmodule,7打开仿真器在Main窗口中选择Simulate/Start Simulation命令,得到仿真设置对话框(注意:将当前工作库work前面的加号“+”点开,选择testbench_shiftregist作为顶层文件进行仿真)。在Design选项卡相应的库名下选择testbench_shiftregist模块,再单击OK按钮。图7.2-2显示的就是打开仿真器后的界面

31、。,图7.2-2 仿真器界面,在这里需要注意的是,在SE版本中有个使能优化(Enable optimization)的选项,建议初学者不要选择优化。因为进行仿真时加载的是一个测试平台,而测试平台的很多语言是会被优化器优化掉的。,8打开调试窗口在ModelSim的Main窗口的View下有各种全面反映用户设计模块各个方面的特性与内容的窗口,便于用户管理和调试。用户对一个窗口的修改将会自动影响到相关窗口的变化,同时用户也可以方便地利用鼠标在窗口之间进行选择和拖放。要打开窗口可在Main窗口的View下拉菜单中,单击相应的窗口名即可。已打开的窗口名前有“”符号提示,再次单击该窗口名将关闭相应窗口,前

32、面的“”符号也将消失。例如,选择View/Wave命令,将打开仿真波形窗口。,9添加需要观察的信号在Workplace窗口的sim对话框中单击需要观察的模块名,在Objects窗口中则会列出该模块的各个端口名及内部信号。可以单击选中其中一个需要观察的信号名,或者按住Ctrl键的同时单击选中多个需要观察的信号名,然后选择下拉菜单Add/Wave/Slected Instance命令打开Wave窗口,刚才被选中的信号已经被添加到Wave窗口中。设计者还可以根据调试和测试需要,删除Wave窗口中的信号,或向其中添加新的信号。,10运行仿真器在Main窗口的下拉菜单Simulate选项下有控制仿真器运

33、行的多个命令选项。点击Simulate/Run命令,仿真会运行100 ns(默认的仿真长度)后停止。在Main窗口的VSIM提示符下,输入“run 500”,仿真器会再进行另外500 ns的仿真,共计仿真了600 ns。在主菜单、波形窗口或源代码窗口的工具条上单击run-all图标,仿真连续运行,直到被中断或在代码中遇到诸如Verilog HDL中的$stop语句等,暂停仿真。若单击break图标,则终止仿真运行。,在Main窗口中,单击Simulate/End Simulation选项,即可结束仿真。,11调试ModelSim的调试手段很多,主要包括在代码中设置断点、步进调试;观察Wave窗

34、口,测量时间;通过Dataflow窗口,分析物理连接;通过Memory窗口,观察设计中存储器的数值;统计测试代码覆盖率;波形比较。Wave窗口、Dataflow窗口和List窗口是常用的分析手段。,1) 使用Wave窗口观察设计波形是调试设计的一种方法,加载仿真后,就可以使用Wave窗口了。通过View/Wave菜单命令打开Wave窗口,如图7.2-3所示。在Wave窗口中可以采用多种手段进行调试,如向Wave窗口添加项目,对波形显示的图像缩放,在Wave窗口中使用游标,设置断点,存储Wave窗口格式,将当前的仿真结果存储到波形记录格式文件(WLF)中等。,在Wave窗口中,游标用于指示仿真的

35、时间位置。当ModelSim首次画波形时,自动地将一个游标放在0时刻的位置。使用游标可以测量时间间隔,也可以查找信号跳变的位置。在Wave窗口中单击任何位置,游标将重新回到鼠标单击的位置。可以对游标进行添加、命名、锁定和删除等操作。对波形信号可以进行设置断点操作。断点调试主要是为了观察待定的数据变化。在Wave窗口中,对信号设置断点十分方便:选中要设置断点的变量,单击鼠标右键,选择“Insert Breakpoint”选项,就完成了断点的设置。当选中的变量波形值发生变化时,仿真自动暂停。,图7.2-3 Wave窗口,要养成保存波形文件的良好习惯,以便进行项目的检查和对比。ModelSim中可以

36、保存的波形文件大致有以下三种。(1) Format文件。在Wave窗口的主菜单中选择File/Save命令保存wave format(波形格式),在新打开的窗口中填入DO文件(仿真脚本文件)的存储路径E:/shiftregist/wave.do,单击OK按钮完成文件存储。,如果需要加载该文件,则在打开的Wave窗口中选择“File Open Format”,然后在Open Format窗口中选择wave.do文件,单击Open按钮打开该文件。ModelSim将恢复该窗口的信号和游标的前一次状态。(2) WLF文件(Datasets)。ModelSim仿真结果也可以存储到一个波形格式记录文件中,

37、用于以后浏览和与当前仿真结果的比较。通常使用术语“Datasets”表示已创建并可重加载的WLF文件。,可在主菜单中选择“File/Datasets/Save as”命令,在打开的Save as对话框中输入要保存的波形文件名称,点击OK按钮就完成了波形文件的保存。若使用File/Datasets/Open命令,在弹出的Open Dataset对话框中的Browse中输入Datasets的路径,则可打开已保存的波形文件。(3) VCD文件。VCD文件是IEEE 1364标准(Verilog HDL语言标准)中定义的一种ASCII文件。它是一种EDA工具普遍支持的通用的波形信息记录文件。如何使用V

38、erilog HDL中的系统函数来生成VCD文件请参考第5章。,2) 使用Dataflow窗口Dataflow窗口能够对VHDL信号或者Verilog HDL的线网型变量进行图示化追踪,在界面中驱动信号或驱动线网变量的进程显示在左边,反之被驱动信号显示在右边。双击Wave窗口中需要追踪的信号即可打开Dataflow窗口,如图7.2-4所示。,图7.2-4 Dataflow窗口,Dataflow窗口有以下四个功能:(1) 观察设计的连续性。可以检查设计的物理连接性,可以逐个单元地观测所关注的信号、互联网络或寄存器的输入/输出情况。(2) 追踪事件:跟踪一个非预期输出的事件,使用嵌入波形观察器,可

39、以由一个信号的跳变回溯追踪,查到事件源头。,(3) 追踪未知态:该功能是工程师比较青睐的,在Dataflow窗口中使用Trace/ChaseX功能,会不断往驱动级追踪不定态传递的源头。当选择ChaseX,图形界面不再变化时,就是不定态的源头了。之后就可以根据Dataflow窗口的结果,去定位源代码产生不定态的语句,并加以改正。(4) 显示层次结构:可以使用层次化实例显示设计的连通性。,3) 使用List窗口List窗口以表格化的方式显示数据,可以方便地通过搜索特殊值或者特定条件的数据,简化分析数据的过程。选择菜单中的View/List命令打开List窗口,如图7.2-5所示。List窗口的左边

40、显示的是仿真的时间点,右边显示的是每个时间点对应的变量值。,图7.2-5 List窗口,当要搜索特定的数值时,可在List窗口中选择Edit/Search选项,在弹出的List Signal Search对话框中选择Search Type下的Search for Signal Value项,并输入想要搜索的数值。这种方式可以很方便地查找仿真中的特殊值,还可以确定特殊值在什么时间点发生,并以此时间点在Wave窗口中定位相应的波形。除此之外还可以设置条件搜索,方法是在Search Type下的Search for Expression中点击后面的Builder建立搜索条件。条件可以是信号、事件、边

41、沿等。,与Wave窗口一样,List窗口可以保存数据的列表格式和列表内容。在List窗口中选择File/Save菜单命令,在弹出的Save Format对话框中输入所保存列表的名称,点击保存即可。数据列表也是一个后缀名为.do的可执行脚本文件,通过命令do file_name.do可以打开列表文件。在File/Write List选项下选择一种格式,可完成对列表内容的保存。列表内容文件是.lst格式的文件,要查看文件内容可通过记事本打开该文件。,12ModeSim常用交互命令ModelSim图形化界面提供了多种指令,既可以是单步指令,通过在主窗口的命令窗口中输入命令;也可以构成批处理文件(如D

42、O文件),用来控制编辑、编译和仿真流程。下面介绍ModelSim中用于仿真的一些常用指令,其它指令可参考ModelSim说明书或帮助。,1) run指令指令格式:run 其中,参数timesteps(时间步长)和time_unit(时间单位)是可选项,time_unit可以是fs(10-15s)、ps(10-12s)、ns(10-9s)、ms(10-6s)、sec(s)等几种。例如:“run”表示运行;“run 1000”表示运行1000个默认的时间单元(ps);“run 3500ns”表示运行3500 ns;“run-continue”表示继续运行;“run-all”表示运行全程。,2) f

43、orce指令指令格式:force , 其中,参数item_name不能默认,它可以是端口信号,也可以是内部信号,而且还支持通配符号,但只能匹配一个;参数value也不能默认,其类型必须与item_name一致;time是可选项,支持时间单元。例如:“force clr 1 100”表示经历100个默认时间单元延迟后为clr赋值1;“force clr 1,0 1000”表示为clr赋值1后,经历1000个默认时间单元延迟后为clr赋值0。,3) force-repeat指令指令格式:force , -repeat 指令功能:每隔一定的周期(period)重复一定的force指令。该指令常用来产

44、生时钟信号。例如:“force clk 0 0,1 30-repeat 100”(-repeat指令可以用-r替代)表示强制clk从0时间单元开始,起始电平为0,结束电平为1,忽略时间(即0电平保持时间)为30个默认时间单元,周期为100个默认时间单元,占空比为(100-30)/100=70%。,4) force-cancel指令指令格式:force-cancel 指令功能:执行period周期时间后取消force指令。例如:“force clk 0 0,1 30-repeat 60-cancel 1000”表示强制clk从0时间单元开始,直到1000个时间单元结束。,5) view指令指令格

45、式:view窗口名指令功能:打开ModelSim窗口。例如:“view source”表示打开源代码窗口;“view wave”表示打开波形窗口;“view dataflow”表示打开数据流窗口。,13DO文件创建DO文件就像在文本文件中输入命令行一样简单,当然也可以将主窗口的复本保存为DO文件。在ModelSim中创建一个DO文件,在该DO文件中向波形窗口添加信号,并给这些信号提供激励,而后进行仿真。,选择File/New/Source/Do菜单命令,创建一个DO文件。在窗口中输入以下命令:vlib workvmap workvlog shiftregist.v testbench_shif

46、tregist.vvsim shiftregist.v add wave/testbench_shiftregist.v/ *run 2000view dataflow,将以上文件保存为shiftregist.do文件,每次使用命令do shiftregist.do即可自动执行想要的仿真动作。shiftregist.do的功能:新建work库,将work库映射到当前工作目录,编译shiftregist.v、testbench_shiftregist.v文件(默认编译到work库下),仿真work库中名为testbench_shiftregist的模块将testbench_shiftregist

47、的所有信号加入到波形图中。完成计数器仿真批处理文件的编辑后,以“shiftregist.do”为文件名将其保存在与计数器设计文件相同的文件夹中,并通过ModelSim编译。,在ModelSim的命令窗口中执行“shiftregist.do”命令,可完成对移位寄存器的仿真。,7.2.2 NC-Verilog的使用Cadence NC-Verilog 是业界优秀的Verilog HDL仿真器,提供了高性能、高容量的事务/信号视窗和集成的覆盖率分析,并支持Verilog HDL 2001特性。NC-Verilog 完全兼容Incisive一体化平台(unified platform),使得用户能够很

48、容易实现纳米(nanometer)工艺集成电路上系统设计的数字化验证。NC-Verilog 为Verilog HDL设计提供了业界优秀的仿真性能,它使用独特的本地Incisive一体化仿真器编译架构,从Verilog HDL直接生成高效的机器码用于高速执行。,一体化的NC-Verilog 仿真和调试环境,很容易管理多个设计的运行和分析设计与测试平台。它的事务/波形视窗和原理图追踪器能迅速追踪设计行为到源代码。NC-Verilog是全编译仿真器,它直接将Verilog HDL代码编译为机器码执行。其过程为:利用ncvlog命令来编译Verilog HDL源文件,按照编译指导(compile di

49、rective)检查语义及语法,产生中间数据;ncelab(描述)按照设计指示构造设计的数据结构,建立信号连接,产生可执行代码和中间数据;ncsim(仿真)启动仿真核,核调入设计的数据结构,构造事件序列,调度并执行事件的机器码。,1工作模式的选择运行NC-Verilog的命令是nclaunch。第一次运行的时候,需要用户选择工作模式。这里可供选择的主要是Multiple Step和Single Step,请选择Multiple模式,此模式对应的仿真流程是ncvlog(编译)、ncelab(描述)、ncsim(仿真)三步。两种工作模式的详细说明可见参考手册。图7.2-6为NC-Verilog的启

50、动界面。,图7.2-6 NC-Verilog的启动界面,2建立工作环境作为编译仿真工具,最核心的是源代码部分,由于NC-Verilog的源文件编辑界面效果不佳,这里建议使用其它支持VHDL/Verilog HDL语言的工具编写代码,在确保没有语法错误后再导入到NC-Verilog中进行编译。选择File/Set Design Directory菜单命令,在弹出的对话框中设置如下选项。, Design Directory:一般是项目所在的目录,即启动NCLaunch 时所在的目录。 Library Mapping File:点击“Create cds.lib File”按钮,会弹出一个“Crea

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号