verilog hdl数字集成电路设计原理与应用(第二版第7章仿真测试工具和综合工具.ppt
《verilog hdl数字集成电路设计原理与应用(第二版第7章仿真测试工具和综合工具.ppt》由会员分享,可在线阅读,更多相关《verilog hdl数字集成电路设计原理与应用(第二版第7章仿真测试工具和综合工具.ppt(220页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1Verilog HDL数字集成电路设计原理与应用(第二版)第7章仿真测试工具和综合工具 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望2在EDA技术高度发达的今天,没有一个设计工程师队伍能够用人工方法有效、全面、正确地设计和管理含有几百万个门的现代集成电路。利用EDA工具,工程师可以从概念、算法、协议等开始设计电子系统,7.1 数字集成电路设计流程简介数字集成电路设计流程简介3大量工作可以通过计算机完成,并可以将电子产品从系统规划、电路设计、性能分析到封装、版图
2、的整个过程在计算机上自动完成。这样做有利于缩短设计周期、提高设计正确性、降低设计成本、保证产品性能,尤其是可增加一次投片的成功率,因此这种方法在大规模集成电路设计中已经普遍被采用。利用EDA工具进行集成电路设计需要遵循一定的设计流程,这样才能保证设计任务高效率地完成。数字集成电路设计方法的典型流程如图7.1-1所示。下面分别介绍各个设计阶段的主要任务。4图7.1-1 集成电路设计的典型流程57.1.1 设计规范设计规范设计流程从已写出的设计规范开始。设计规范文件是一个包含功能、定时、硅片面积、功耗、可测性、故障覆盖率以及其它的设计准则的详细说明书。设计规范描述了项目完成的功能,确定了设计的总体
3、方案,以平衡各个方面的因素,对整个项目有一个初步的规划。在系统设计阶段,根据对设计面积、功耗、I/O和IP使用等情况的估算,确定所使用的芯片工艺和设计工具。有了设计规范,就可以进行设计划分。67.1.2 设计划分设计划分设计划分过程就是把一个复杂设计逐渐划分成较小而且较为简单的功能单元。这样一个过程通常被称为自顶向下的设计方法,或者是分层设计法。HDL可以为需要进行划分、综合和验证的大型复杂系统提供一个通用框架,它支持具有混合抽象级别的自顶向下设计,可以将大型设计中的各部分链接在一起,来进行整个设计的功能和性能验证。77.1.3 设计输入设计输入设计输入是指将设计划分阶段定义好的模块借助一定的
4、设计输入手段转换为EDA工具能接受的信息格式。目前主要的设计输入手段有高级硬件描述语言HDL(Verilog HDL/VHDL)和原理图等。HDL语言支持不同层次的描述,不依赖于各个厂家的工艺器件,便于修改。逻辑输入工具的功能是把逻辑图、状态机、真值表输入到计算机中,并进行语法、可综合性检查等。目前主流工具有Cadence公司的Composer、Synopsys公司的Leda以及UltraEdit、Vim等第三方编辑工具。8Leda是可编程的语法和设计规范检查工具,它能够对全芯片的VHDL和Verilog HDL描述或者对两者的混合描述进行检查,加速SoC的设计流程。Leda预先将IEEE可综
5、合规范、可仿真规范、可测性规范和设计复用规范进行了集成,以提高设计者分析代码的能力。UltraEdit是一款功能强大的文本编辑器,可以编辑文字以及多种格式的代码,内建英文单词检查、C+及VB 指令突显,可同时编辑多个文件,而且即使开启很大的文件,速度也不会慢。它是一个使用广泛的编辑器,但它并不直接支持HDL。9读者可以通过官方网站的链接下载Verilog HDL/VHDL的语法文件,并把下载的文件复制到WordFile.txt文件中(在UltraEdit的安装目录下),一般加在最后。这样就可以使用UltraEdit编辑HDL源代码了。107.1.4 仿真仿真设计输入后,经HDL编译器检查没有语
6、法错误后,就可以对设计进行验证了。这里的验证是指通过仿真软件验证其功能是否符合制定的设计规范,这一阶段的验证常被称为功能仿真或行为仿真。布局布线后,提取有关的器件延迟、连线延迟等时序参数(这些信息在反标注文件中)。在此基础上进行的仿真称为后仿真,也称时序仿真,它是接近真实器件运行的仿真。11仿真的结果取决于设计描述是否准确反映了设计的物理实现。仿真器不是一个静态工具,需要Stimulus(激励)和Response(输出)。Stimulus由模拟设计工作环境的Testbench 产生,Response为仿真的输出,由设计者确定输出的有效性。目前,仿真工具比较多,其中Cadence公司的NC-Ve
7、rilog HDL、Synopsys公司的VCS和Mentor公司的ModelSim都是业界广泛使用的仿真工具。127.1.5 综合综合利用综合器对HDL代码进行综合优化处理,生成门级描述的网表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库支持下才能完成。综合实际上是根据设计功能和实现该设计的约束条件(如面积、速度、功耗和成本等),将设计描述(如HDL文件、原理图等)变换成满足要求的电路设计方案,该方案必须同时满足预期的功能和约束条件。13对于综合来说,满足要求的方案可能有多个,综合器将产生一个最优的或接
8、近最优的结果。因此,综合的过程也就是设计目标的优化过程,最后获得的电路结构与综合器的性能有关。这个阶段产生目标FPGA的标准单元网表和数据库,供布局布线使用。网表中包含了目标器件中的逻辑元件和互连信息。在传统的IC设计流程中,前端综合或时序分析时没有精确的线和CELL延迟信息,这样就容易造成布局前后的时序不收敛。随着工艺的进步,线延迟占主导地位,时序收敛问题越来越严重。根本的解决方法是将前后端的设计流程整合起来。14物理综合就针对的是这种情况。物理综合解决0.18 m以下工艺技术的IC设计环境,将综合、布局、布线集成于一体,让RTL设计者可以在最短的时间内得到性能最高的电路。通过集成综合算法、
9、布局算法和布线算法,在RTL到GDS-的设计流程中,提供可以确保IC设计的性能预估性和时序收敛性。目前常用的逻辑综合工具有Synopsys公司的Synplify和Design Compiler、Physical Compiler,Cadence公司的RTL Compiler等。157.1.6 适配布线适配布线适配布线就是按照特定的工艺要求和约束条件利用适配器进行布局布线,最后生成版图。对于芯片设计来讲,这个过程通常分为3步。布局规划:主要是标准单元、I/O Pad和宏单元的布局。I/O Pad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则给出了一定的区域由工具自动摆放。布局规划后,
10、芯片的大小、Core的面积、Row的形式、电源及地线的Ring和Strip就都确定下来了。时钟树生成(lock Tree Synthesis,CTS)。布局布线。16适配完成后,会产生多项设计结果。适配报告:包括芯片内部资源的利用情况、设计的布尔方程描述情况等。适配后的仿真模型。器件编程文件:根据适配后的仿真模型,可以进行适配后的时序仿真。因为此时已经得到器件的实际硬件特性(如时延特性等),所以此仿真结果能比较精确地预期未来芯片的实际性能。在FPGA设计中各个厂家都提供了相应的布局布线工具,例如Altera公司的Quartus,Xilinx公司的ISE等。在芯片设计领域,有Cadence公司提
11、供的SoC Encounter和Synopsys公司的Astro等布局布线工具。177.1.7 时序分析时序分析时序分析的目的是检查设计中是否有时序上的违规。同步电路的分析采用静态时序分析实现,异步电路的分析则需要运行特殊仿真激励确认。仿真工具可以用前仿真所用的工具。静态时序分析(STA)的功能是根据设计规范的要求检查所有可能路径的时序,不需要通过仿真或测试向量就可以有效地覆盖门级网表中的每一条路径,在同步电路设计中快速地找出时序上的异常。18可以识别的时序故障包括:建立/保持和恢复/移除检查(包括反向建立/保持),最小和最大跳变,时钟脉冲宽度和时钟畸变,门级时钟的瞬时脉冲检测,总线竞争与总线
12、悬浮错误,不受约束的逻辑通道,计算经过导通晶体管、传输门和双向锁存的延迟,自动对关键路径、约束性冲突、异步时钟域和某些瓶颈逻辑进行识别与分类。PrimeTime是Synopsys公司开发的进行静态时序分析的工具,它可以进行精确的RC延迟计算、先进的建模和时序验收。对于大型多时钟的设计,比如综合出的逻辑电路、嵌入式存储器和微处理器核的设计,Prime Time起到了关键性的作用。19动态时序分析主要是指门级(或对版图参数提取结果)的仿真,它主要应用在异步逻辑、多周期路径、错误路径的验证中。随着设计向65 nm以下的工艺发展,只用静态分析工具将无法精确验证串扰等动态效应。通过动态时序分析与静态时序
13、分析相结合可以验证时序逻辑的建立/保持时间,并利用动态技术来解决串扰效应、动态模拟时钟网络等问题。207.1.8 物理验证物理验证物理验证通常包括设计规则检测(DRC)、版图与原理图对照(LVS)和信号完整性分析(SI)等。其中DRC用来检查版图设计是否满足工艺线能够加工的最小线宽、最小图形间距、金属宽度、栅和有源区交叠的最小长度等。如果版图设计违反设计规则,那么极有可能导致芯片在加工的过程中成为废品。LVS则用来保证版图设计与其电路设计的匹配,保证它们的一致性。如果不一致,就需要修改版图设计。SI用来分析和调整芯片设计的一致性,避免串扰噪声、串扰延迟以及电迁移等问题。21目前主要的物理验证工
14、具有Mentor公司的Calibre、Cadence公司的Dracula和Diva以及Synopsys公司的Hercules。此外,各大厂商也推出了针对信号完整性分析的工具。227.1.9 设计结束设计结束在所有设计约束都已满足,也达到了定时约束条件的情况下,就会发出最终设计结束的信号。这时可用于制造集成电路的掩膜集就准备好了。掩膜集的描述是由几何数据(通常为GDS-格式)构成的,这些数据决定了集成电路制造过程中光掩膜步骤的顺序。将适配器布局布线后形成的器件编程文件通过下载工具载入到具体的FPGA或CPLD芯片中,可以方便地实现设计要求。如果是大批量产品的开发则通过更换相应的厂家综合库,便可以
15、转由ASIC实现。23用HDL描述完一个硬件系统后要进行仿真验证,而如果想在计算机终端看到硬件描述语言的输出,则需要通过硬件描述语言的仿真器来完成。常用的HDL仿真器很多,例如VCS、NC、Verilog HDL-XL、ModelSim、ActiveHDL等。7.2 测试和仿真工具测试和仿真工具24根据所使用的编程语言的不同,可以将仿真器分为Verilog HDL语言仿真器和VHDL语言仿真器;根据工作方式的不同,可以分为事件驱动(event-driven)仿真器和时钟驱动(cycle-driven)仿真器;等等。这些工具中,有的侧重于IC设计,如NC、VCS等;有的侧重于FPGA/CPLD的
16、设计,如ModelSim和ActiveHDL等。ModelSim仿真器在FPGA/CPLD设计中应用广泛,这是因为ModelSim的出品公司为各种FPGA/CPLD厂家提供了OEM版本的ModelSim工具。ModelSim仿真器可以用于仿真Verilog HDL语言,也可以用于仿真VHDL语言,同时也支持两种语言的混合仿真。25NC(根据使用语言的不同,分为NC-Verilog和NC-VHDL)和VCS分别由知名的EDA工具厂商Cadence和Synopsys公司提供,在IC设计中应用广泛。根据设计阶段的不同,仿真可以分为RTL行为级仿真、逻辑综合后门级仿真和时序仿真三大类型。在仿真的后两个
17、阶段,除了Verilog HDL源代码外还需要添加两个文件,即工艺厂商提供的库单元文件和延时反标文件。267.2.1 ModelSim的使用的使用Mentor公司的ModelSim是一种常用的HDL语言仿真软件,能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog HDL混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核。个性化的图形界面和用户接口,为用户加快纠错提供了强有力的手段。27ModelSim的主要特点是:RTL和门级优化,本地编译结构,编译仿真速度快,跨平台、跨版本仿真;单内核VHDL
18、和Verilog HDL混合仿真;源代码模版和助手,项目管理;集成了性能分析、波形比较、代码覆盖、数据流ChaseX、Signal Spy、虚拟对象Virtual Object、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;C和Tcl/Tk接口,C调试;对SystemC直接支持,和HDL任意混合;支持System Verilog的设计功能;全面支持System Verilog、SystemC这样的系统级描述语言。28ModelSim分为SE、PE、LE和OEM等几个版本,其中SE是最高级的版本,而集成在 Actel、Atmel、Altera、Xili
19、nx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。SE版和OEM版在功能和性能方面有较大差别,比如大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSim XE为例,对于代码少于40000行的设计,ModelSim SE比ModelSim XE要快10倍;对于代码超过40000行的设计,ModelSim SE要比ModelSim XE快近40倍。ModelSim SE支持PC、UNIX和Linux混合平台,提供全面、完善以及高性能的验证功能,全面支持业界广泛的标准。29ModelSim采用用户图形界面操作模式,有许多窗口,如Main窗口、Workplace窗
20、口、Objects窗口、Wave窗口、Dataflow窗口、List窗口、Source窗口和Watch窗口。图7.2-1为ModelSim的使用界面。主(Main)窗口:是ModelSim唯一的控制窗口,也是控制命令的输入窗口。窗口中显示了ModelSim执行仿真的动作以及相应的信息。结构(Workplace)窗口:该窗口按层次关系列出了工程中所有模块之间的关系。在结构窗口中选择固定模块,在信号窗口中会相应地显示这一模块信号的信息。30图7.2-1 ModelSim使用界面31 信号(Objects)窗口:显示被选中模块的信号、信号类型以及信号值。波形(Wave)窗口:显示仿真的结果波形。数据
21、流(Dataflow)窗口:用于追踪数据流,并以层次化、图形化的方式显示结果。列表(List)窗口:以表格的形式显示仿真数据。源代码(Source)窗口:显示工程中的相应源代码。观察(Watch)窗口:用于实时监测变量在仿真中的变化情况。32ModelSim有三种仿真流程,即基本仿真流程(Basic Simulation Flow)、工程仿真流程(Project Simulation Flow)和多库仿真流程(Multi-library Simulation)。在较复杂的设计中,推荐使用工程仿真流程,这种流程更容易管理和维护设计中遇到的各种类型的文件,事实上工程仿真流程包含了基本仿真流程和多库
22、仿真流程的核心内容。本节主要介绍工程仿真流程。ModelSim工程仿真流程包括建立库、建立工程、将设计文档(包括源文件和测试文件)加入到工程中并编译、仿真、调试。331建立并映射库建立并映射库建立并映射库有两种方法。第一种方法:在ModelSim中选择File/New/Library菜单命令,在弹出的对话框中填入库名称,点击OK按钮就完成了库的建立和映射。第二种方法:在ModelSim提示符下运行命令:vlib work2vmap work work234第一条命令实现的是建立新库,第二条命令实现的是映射新库。其中work2代表的是新建的工作库。运行完毕后即完成了库的建立和映射操作。运行完vl
23、ib命令后会产生work库目录,目录里存放有_info文件,用于记录各种库中的各种模块。运行完vmap会将ModelSim安装目录下的ModelSim.ini复制到当前的工作目录中并将库和目录对应起来,在Library中增加了work=work2语句。352新建工程项目新建工程项目选择File/New/Project菜单命令,新建一个工程。在Project Name中输入工程名,在Project Location下的对话框中输入保存该工程所有文件的文件夹的路径名。Default Library Name对话框使用默认设置work即可。363输入源代码输入源代码选择Main窗口的File/New
24、/Source/Verilog HDL菜单命令,出现源代码编辑窗口,将源代码输入并保存。源代码文件shiftregist.v如下:module shiftregist(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;37input load,cl
25、k,rst_n,ctr_shiftright,ctr_shiftleft,data_shiftright,data_shiftleft;reg shiftregist_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)38 data_out=data_shiftright,data_outshiftregist_width-1:1;else if(ctr_shiftleft)data_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- verilog hdl数字集成电路设计原理与应用第二版第7章仿真测试工具和综合工具 hdl 数字 集成电路设计 原理 应用 第二 仿真 测试 工具 综合
限制150内