该电子教案为EDA原理及VHDL一书的配套教学资源版权所有,不得用于其它商业用途设计综合和行为仿真何宾2011.09设计综合和行为仿真-本章概要本章详细介绍了设计综合和行为仿真的流程和方法。在设计综合部分,介绍了综合的概念、综合属性配置方法和综合实现,以及RTL原理图查看。在行为仿真部分,介绍了测试向量的生成、行为仿真工具、基于Modelsim软件的行为仿真和基于ISE仿真器的行为仿真的实现,同时还介绍了使用波形和VHDL语言建立测试向量的方法。设计综合和行为仿真-行为综合在集成电路设计领域,综合是指设计人员使用高级设计语言对系统逻辑功能的描述,在一个包含众多结构、功能、性能均已知的逻辑元件的逻辑单元库的支持下,将其转换成使用这些基本的逻辑单元组成的逻辑网络结构实现。这个过程一方面是在保证系统逻辑功能的情况下进行高级设计语言到逻辑网表的转换,另一方面是根据约束条件对逻辑网表进行时序和面积的优化。设计综合和行为仿真-行为综合行为级综合可以自动将系统直接从行为级描述综合为寄存器传输级描述。行为级综合的输入为系统的行为级描述,输出为寄存器传输级描述的数据通路。行为级综合工具可以让设计者从更加接近系统概念模型的角度来设计系统。同时,行为级综合工具能让设计者对于最终设计电路的面积、性能、功耗以及可测性进行很方便地优化。行为级综合所需要完成的任务从广义上来说可以分为分配、调度以及绑定。设计综合和行为仿真-行为综合分配包括决定系统实现所需要的各个功能组件的个数以及种类。这些组件以及资源来自采用寄存器传输级描述的元件库,包括诸如运算逻辑单元、加法器、乘法器和多路复用器等。分配同时也决定了系统中总线的数量、宽度、以及类型。设计综合和行为仿真-行为综合调度为行为级描述中的每个操作指派时间间隙,这也成为控制执行步骤。数据流从一级寄存器流向下一级寄存器并按调度所指定的执行步骤在功能单元上执行。每一个执行步骤的时间长度通常为一个时钟周期,并且在这一个执行步骤中的操作被绑定到特定寄存器传输级描述的组件上。上述这些操作都完成后,系统所完成的功能被分配到各个功能单元模块,变量被存储在各个存储单元,并且不同功能单元之间的互连关系也建立起来了。在实际的PLD设计流程中,逻辑综合将使用硬件逻辑描述语言如Verilog、VHDL等描述的寄存器传输级(RTL)描述,转换成使用逻辑单元库中基本逻辑单元描述的门级网表电路。设计综合和行为仿真-XST综合工具概述当所有的设计完成,并且进行完语法检查后,就可以使用Xilinx的XST工具或Synplify工具进行综合了,综合工具使用HDL代码,然后生成支持的网表格式EDIF或NGC,然后Xilinx的实现工具将使用这些网表文件完成随后的处理过程。在ISE的主界面的处理子窗口的synthesis的工具可以完成下面的任务:查看综合报告(viewSynthesisReport)查看RTL原理图(ViewRTLschematic)查看技术原理图(ViewTechnologySchematic)检查语法(CheckSyntax)产生综合后仿真模型(GeneratePost-SynthesisSimulationModel)。设计综合和行为仿真-XST综合工具概述综合工具在对设计的综合过程中,主要执行以下三个步骤:1)语法检查过程,检查设计文件语法是否有错误;2)编译过程,翻译和优化HDL代码,将其转换为综合工具可以识别的元件序列;3)映射过程,将这些可识别的元件序列转换为可识别的目标技术的基本元件;设计综合和行为仿真-综合选项的设置和综合综合选项能够使设计人员根据设计的要求进行设置来影响综合行为。一种最常使用的综合选项是选择基于面积或者速度,来实现综合优化目标。其它选项包括控制触发器输出的最大扇出以及所希望的设计频率等。设计综合和行为仿真-综合选项的设置和综合根据下面的步骤进入综合选项设置:1.在源文件(Source)视图中选择stopwatch.vhd文件2.在处理(Process)视图中,用鼠标右击“Synthesis”(综合)选项,在出现的菜单中选择“Properties”(属性)。3.如图8.1所示,确保在属性设置窗口下的“Propertydisplaylevel”的选项设置为“Advanced”,这允许设计者可以看到所有可用的综合属性设置;4.在图8.1的界面左侧选择“SynthesisOption”标签选项,将“NetlistHierarchy”属性设置为“Rebuild”,点击“OK”按钮。设计综合和行为仿真-综合选项的设置和综合图8.1综合属性设置窗口设计综合和行为仿真-综合选项的设置和综合准备对设计进行综合,然后生成网表(Netlist)文件,下面给出综合的步骤;1.选择stopwatch.vhd2.在“Process”(处理)子窗口中,双击“Synthesis”,开始对设计进行综合。设计综合和行为仿真-RTL符号查看在综合完成后,XST将生成HDL代码所对应的原理图描述(RTLSchematic)。可以通过RTL原理图查看工具,看到综合后的逻辑连接关系。这里有两种原理图描述:1.RTL原理图(RTLSchmatic)是优化前的HDL代码的逻辑;2.技术原理图(TechnologySchematic)是HDL综合完成后的设计和目标技术的映射。设计综合和行为仿真-RTL符号查看通过下面的步骤,查看HDL设计的原理图描述:1.在处理子窗口,点击“+Synthesize–XST”选项,将其下面的功能分层展开;2.如果出现“SetRTL/TechViewerStartupMode”(设置RTL/Tech查看器启动模式)对话框,则选择“StartwiththeExploredWizard”。3.如图8.2的“CreateRTLSchemaitc”(创建RTL符号)开始界面,从“AvailableElement”列表中,选择clk_divider和debounce元件,然后点击“Add”按钮将选择的元件移动到“SelectedElementsList”列表中。4.点击“CreateSchematic”(创建原理图)按钮。设计综合和行为仿真-RTL符号查看图8.2CreateRTLSchemaitc开始界面设计综合和行为仿真-RTL符号查看RTL查看器允许设计者选择设计的一部分作为原理图进行显示。如图8.3所示,当显示原理图时,双击符号,进入到原理图和查看不同设计元件和连接性。鼠标右击原理图来查看在原理图查看器中可以执行的各种操作。图8.3RTL原理图设计综合和行为仿真-RTL符号查看当完成综合后,在工程目录下,将存在一个NGC文件。对于基于其它综合工具的综合实现可以参考XST综合过程和相关综合工具的使用手册。行为仿真的实现-生成测试向量VHDL还可以描述变化的测试信号。描述测试信号的变化和测试过程的模块叫做测试平台(Testbench),它可以对任何一个Verilog/VHDL模块进行动态的全面测试。通过对被测试模块的输出信号的测试,可以验证逻辑系统的设计和结构,并对发现的问题及时修改。测试平台是为逻辑设计仿真而编写的代码,它能直接与逻辑设计接口。如图8.2所示,通过向逻辑设计施加激励,检测被测模块的输出信号。逻辑设计激励响应图8.2测试平台的作用测试平台结果显示平台行为仿真的实现-生成测试向量测试平台通常使用VHDL、Verilog、e或者OpenVera编写,同时还能调用外部的文件和C函数。测试平台可以使用同逻辑设计不同的描述语言,仿真器通常提供支持不同描述语言的混合仿真功能。行为仿真的实现-生成测试向量硬件描述语言如Verilog和VHDL等,都提供了两种基本的建模方式:行为级和寄存器传输级。寄存器传输级是对硬件逻辑进行可综合性的描述,使用的是VHDL语言中可综合逻辑设计激励响应测试平台结果显示平台的描述部分。寄存器传输级代码可以由逻辑综合工具直接转换成门级电路。行为级描述是对硬件逻辑更为灵活和抽象的描述,描述的重点在于硬件逻辑的功能,通常不考虑时序问题。行为级代码通常不能被逻辑综合工具转换成门级电路。测试平台以行为级描述为主,不使用寄存器传输级的描述形式。行为仿真的实现-生成测试向量测试平台主要由两个组件构成:激励生成和响应检测。它们同被测单元(DUT,DeviceUnderTest)的关系如图8.3所示。激励生成被测单元响应检测图8.3测试平台构成行为仿真的实现-生成测试向量DUT是待测的逻辑电路。通常,DUT是使用硬件逻辑描述语言HDL编写的寄存器传输级电路。激励生成模块的主要功能是根据DUT输入接口的信号时序,对DUT产生信号激励,将测试信号向量输入到DUT中。响应检测模块根据DUT输入接口的信号时序,响应DUT的输出请求,并检查输出结果的正确性。第8章设计综合和行为仿真-行为仿真的实现生成测试向量建立测试平台时,首先应针对DUT的功能定义测试向量;然后根据每一个测试向量的要求分别设计激励生成和响应检测模块,要求激励生成模块能够能在DUT的接口上产生该测试向量所需的信号激励,响应检测模块能够对DUT在这种信号激励下的结果输出进行响应和检测;最后将激励生成模块、DUT和响应检测模块相连,组成验证环境,在仿真器上进行仿真,根据响应检测模块的检测报告来判断测试向量是否通过测试。设计综合和行为仿真-设置仿真工具Xilinx的ISE工具提供了集成设计流程,该设计流程支持基于MentorGraphics公司Modelsim仿真工具和ISE仿真工具,这两种仿真工具均可从工程向导中运行。只有安装Modelsim软件才能使用Modelsim仿真工具,ModelSimPE和ModelSimSE是MentorGraphics公司ModelSim软件的完全版本。为配合ISE11库的仿真,需要使用ModelSim6.0或更高版本。ModelSimXE是基于ModelSimPE的ModelSimXinlinx版本。当安装ISE软件时,ISE仿真工具就自动安装完成,所以不需要进行额外安装。设计综合和行为仿真-配置Xilinx仿真库当设计中有需要例化的Xilinx基本元件、Core生成器元件和其它IP核时,必须要使用Xilinx的仿真库才能对这样的设计进行仿真。这些仿真库保存了每一个元件的模型。这些模型描述了每一个元件的功能,为仿真工具提供了仿真时所需要的信息。Modelsim软件使用modelsim.ini文件确定编译库的位置。比如,将UNISIM库编译到c:\lib\UNISIM路径下,在该文件中必须有下面的映射描述:UNISIM=C:\lib\UNISIM。设计综合和行为仿真-添加HDL测试平台下面给出添加测试平台文件步骤和过程:1.如果建立一个新的测试平台文件,可选择Project→NewSource,选择文件类型为VHDLTestBench或VerilogTextFixture,生成一个仿真文件,可以在这个文件中定义所需要的测试平台及其测试向量。2.如果添加已经设计完成的测试平台文件,可选择Project→AddSource,在该设计中选择测试平台文件stopwatch_tb.vhd。设计综合和行为仿真-添加HDL测试平台3.点击“Open”按钮。4.检查该文件的“Association”属性选择为“Simulation”。5.点击“OK”按钮。ISE会自动识别顶层设计文件并将其与测试文件进行关联。设计综合和行为仿真--基于Modelsim行为仿真实现下面所介绍的行为仿真是基于前面的秒表设计完成,并完成了设计综合。为了实现对该设计的行为仿真,需要下面的文件:设计文件,测试平台(Testbench)文件和Xinlinx仿真库。1、设计文件:VHDL、Verilog或原理图文件。2、Testbench文件:仿真设计过程中需要一个测试平台文件作为仿真激励源。3、Xinlinx仿真库:当在设计中涉及IP核时,应该创建Xinlinx仿真库,库中包含了DCM数字时钟管理和核产生器(COREGenerator)元件。