1 / 63

设计综合和行为仿真

设计综合和行为仿真. 何宾 2011.09. 设计综合和行为仿真 - 本章概要. 本章详细介绍了设计综合和行为仿真的流程和方 法。 在设计综合部分,介绍了综合的概念、综合属性配置 方法和综合实现,以及 RTL 原理图查看。在行为仿真部 分,介绍了测试向量的生成、行为仿真工具、基于 Modelsim 软件的行为仿真和基于 ISE 仿真器的行为仿真的 实现,同时还介绍了使用波形和 VHDL 语言建立测试向量 的方法。. 设计综合和行为仿真 - 行为综合. 在集成电路设计领域,综合是指设计人员使用高级 设计语言对系统逻辑功能的描述,在一个包含众多结构、

Download Presentation

设计综合和行为仿真

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 设计综合和行为仿真 何宾 2011.09

  2. 设计综合和行为仿真-本章概要 • 本章详细介绍了设计综合和行为仿真的流程和方 • 法。 • 在设计综合部分,介绍了综合的概念、综合属性配置 • 方法和综合实现,以及RTL原理图查看。在行为仿真部 • 分,介绍了测试向量的生成、行为仿真工具、基于 • Modelsim软件的行为仿真和基于ISE仿真器的行为仿真的 • 实现,同时还介绍了使用波形和VHDL语言建立测试向量 • 的方法。

  3. 设计综合和行为仿真-行为综合 • 在集成电路设计领域,综合是指设计人员使用高级 • 设计语言对系统逻辑功能的描述,在一个包含众多结构、 • 功能、性能均已知的逻辑元件的逻辑单元库的支持下,将 • 其转换成使用这些基本的逻辑单元组成的逻辑网络结构实 • 现。这个过程一方面是在保证系统逻辑功能的情况下进行 • 高级设计语言到逻辑网表的转换,另一方面是根据约束条 • 件对逻辑网表进行时序和面积的优化。

  4. 设计综合和行为仿真-行为综合 • 行为级综合可以自动将系统直接从行为级描述综合为寄 • 存器传输级描述。 • 行为级综合的输入为系统的行为级描述,输出为寄存 • 器传输级描述的数据通路。 • 行为级综合工具可以让设计者从更加接近系统概念模 • 型的角度来设计系统。同时,行为级综合工具能让设计者 • 对于最终设计电路的面积、性能、功耗以及可测性进行很 • 方便地优化。 • 行为级综合所需要完成的任务从广义上来说可以分为分 • 配、调度以及绑定。

  5. 设计综合和行为仿真-行为综合 • 分配包括决定系统实现所需要的各个功能组件的个数 • 以及种类。这些组件以及资源来自采用寄存器传输级描述 • 的元件库,包括诸如运算逻辑单元、加法器、乘法器和多 • 路复用器等。分配同时也决定了系统中总线的数量、宽 • 度、以及类型。

  6. 设计综合和行为仿真-行为综合 • 调度为行为级描述中的每个操作指派时间间隙,这也成 • 为控制执行步骤。数据流从一级寄存器流向下一级寄存器 • 并按调度所指定的执行步骤在功能单元上执行。每一个执 • 行步骤的时间长度通常为一个时钟周期,并且在这一个执 • 行步骤中的操作被绑定到特定寄存器传输级描述的组件 • 上。 • 上述这些操作都完成后,系统所完成的功能被分配到 • 各个功能单元模块,变量被存储在各个存储单元,并且不 • 同功能单元之间的互连关系也建立起来了。 • 在实际的PLD设计流程中,逻辑综合将使用硬件逻辑 • 描述语言如Verilog、VHDL等描述的寄存器传输级 • (RTL)描述,转换成使用逻辑单元库中基本逻辑单元描 • 述的门级网表电路。

  7. 设计综合和行为仿真-XST综合工具概述 • 当所有的设计完成,并且进行完语法检查后,就可以 • 使用Xilinx的XST工具或Synplify工具进行综合了,综合工 • 具使用HDL代码,然后生成支持的网表格式EDIF或 • NGC,然后Xilinx的实现工具将使用这些网表文件完成随 • 后的处理过程。 • 在ISE的主界面的处理子窗口的synthesis的工具可以完 • 成下面的任务: • 查看综合报告(view Synthesis Report) • 查看RTL原理图(View RTL schematic) • 查看技术原理图(View Technology Schematic) • 检查语法(Check Syntax) • 产生综合后仿真模型(Generate Post-Synthesis Simulation Model)。

  8. 设计综合和行为仿真-XST综合工具概述 • 综合工具在对设计的综合过程中,主要执行以 • 下三个步骤: • 1) 语法检查过程,检查设计文件语法是否有错误; • 2) 编译过程,翻译和优化HDL代码,将其转换为综 • 合工具可以识别的元件序列; • 3) 映射过程,将这些可识别的元件序列转换为可识 • 别的目标技术的基本元件;

  9. 设计综合和行为仿真-综合选项的设置和综合 • 综合选项能够使设计人员根据设计的要求进行设置 • 来影响综合行为。一种最常使用的综合选项是选择基 • 于面积或者速度,来实现综合优化目标。其它选项包 • 括控制触发器输出的最大扇出以及所希望的设计频率 • 等。

  10. 设计综合和行为仿真-综合选项的设置和综合 • 根据下面的步骤进入综合选项设置: • 1. 在源文件(Source)视图中选择stopwatch.vhd文件 • 2. 在处理(Process)视图中,用鼠标右击“Synthesis” • (综合)选项,在出现的菜单中选择“Properties”(属 • 性)。 • 3. 如图8.1所示,确保在属性设置窗口下的“Property • display level”的选项设置为“Advanced”,这允许设计者可 • 以看到所有可用的综合属性设置; • 4. 在图8.1的界面左侧选择“Synthesis Option”标签选 • 项,将“Netlist Hierarchy”属性设置为“Rebuild”,点击 • “OK”按钮。

  11. 图8.1 综合属性设置窗口 设计综合和行为仿真-综合选项的设置和综合

  12. 设计综合和行为仿真-综合选项的设置和综合 • 准备对设计进行综合,然后生成网表(Netlist)文件, • 下面给出综合的步骤; • 1. 选择stopwatch.vhd • 2. 在“Process”(处理)子窗口中,双击“Synthesis”,开 • 始对设计进行综合。

  13. 设计综合和行为仿真-RTL符号查看 • 在综合完成后,XST将生成HDL代码所对应的原 • 理图描述(RTL Schematic)。可以通过RTL原理图查 • 看工具,看到综合后的逻辑连接关系。这里有两种原 • 理图描述: • 1. RTL原理图(RTL Schmatic)是优化前的HDL代 • 码的逻辑; • 2. 技术原理图(Technology Schematic)是HDL综 • 合完成后的设计和目标技术的映射。

  14. 设计综合和行为仿真-RTL符号查看 • 通过下面的步骤,查看HDL设计的原理图描述: • 1. 在处理子窗口,点击“+ Synthesize –XST”选 • 项,将其下面的功能分层展开; • 2. 如果出现“Set RTL/Tech Viewer Startup • Mode”(设置RTL/Tech 查看器启动模式)对话框,则选 • 择“Start with the Explored Wizard”。 • 3. 如图8.2的“Create RTL Schemaitc”(创建RTL符 • 号)开始界面,从“Available Element”列表中,选择 • clk_divider和debounce元件,然后点击“Add”按钮将选 • 择的元件移动到“Selected Elements List”列表中。 • 4. 点击“Create Schematic”(创建原理图)按钮。

  15. 图8.2 Create RTL Schemaitc开始界面 设计综合和行为仿真-RTL符号查看

  16. 图8.3 RTL原理图 设计综合和行为仿真-RTL符号查看 • RTL查看器允许设计者选择设计的一部分作为原理图 • 进行显示。如图8.3所示,当显示原理图时,双击符号, • 进入到原理图和查看不同设计元件和连接性。鼠标右击 • 原理图来查看在原理图查看器中可以执行的各种操作。

  17. 设计综合和行为仿真-RTL符号查看 • 当完成综合后,在工程目录下,将存在一个NGC • 文件。对于基于其它综合工具的综合实现可以参考 • XST综合过程和相关综合工具的使用手册。

  18. 激励 响应 结果显示平台 测试平台 逻辑设计 图8.2 测试平台的作用 行为仿真的实现-生成测试向量 • VHDL还可以描述变化的测试信号。描述测试信号的 • 变化和测试过程的模块叫做测试平台(Testbench),它可 • 以对任何一个Verilog/VHDL模块进行动态的全面测试。通 • 过对被测试模块的输出信号的测试,可以验证逻辑系统的 • 设计和结构,并对发现的问题及时修改。 • 测试平台是为逻辑设计仿真而编写的代码,它能直接 • 与逻辑设计接口。如图8.2所示,通过向逻辑设计施加激 • 励,检测被测模块的输出信号。

  19. 行为仿真的实现-生成测试向量 • 测试平台通常使用VHDL、Verilog、e或者Open Vera • 编写,同时还能调用外部的文件和C函数。测试平台可以 • 使用同逻辑设计不同的描述语言,仿真器通常提供支持不 • 同描述语言的混合仿真功能。

  20. 行为仿真的实现-生成测试向量 • 硬件描述语言如Verilog和VHDL等,都提供了两种基本 • 的建模方式:行为级和寄存器传输级。寄存器传输级是对 • 硬件逻辑进行可综合性的描述,使用的是VHDL语言中可 • 综合逻辑设计激励响应测试平台结果显示平台的描述部 • 分。 • 寄存器传输级代码可以由逻辑综合工具直接转换成门 • 级电路。 • 行为级描述是对硬件逻辑更为灵活和抽象的描述,描 • 述的重点在于硬件逻辑的功能,通常不考虑时序问题。行 • 为级代码通常不能被逻辑综合工具转换成门级电路。 • 测试平台以行为级描述为主,不使用寄存器传输级的 • 描述形式。

  21. 响应检测 激励生成 被测单元 图8.3 测试平台构成 行为仿真的实现-生成测试向量 • 测试平台主要由两个组件构成:激励生成和响应检 • 测。它们同被测单元(DUT, Device Under Test)的关系如 • 图8.3所示。

  22. 行为仿真的实现-生成测试向量 • DUT是待测的逻辑电路。通常,DUT是使用硬件逻辑 • 描述语言HDL编写的寄存器传输级电路。 • 激励生成模块的主要功能是根据DUT输入接口的信号 • 时序,对DUT产生信号激励,将测试信号向量输入到DUT • 中。响应检测模块根据DUT输入接口的信号时序,响应 • DUT的输出请求,并检查输出结果的正确性。

  23. 第8章 设计综合和行为仿真-行为仿真的实现生成测试向量 • 建立测试平台时,首先应针对DUT的功能定义测试 • 向量;然后根据每一个测试向量的要求分别设计激励生成 • 和响应检测模块,要求激励生成模块能够能在DUT的接口 • 上产生该测试向量所需的信号激励,响应检测模块能够对 • DUT在这种信号激励下的结果输出进行响应和检测;最后 • 将激励生成模块、DUT和响应检测模块相连,组成验证环 • 境,在仿真器上进行仿真,根据响应检测模块的检测报告 • 来判断测试向量是否通过测试。

  24. 设计综合和行为仿真-设置仿真工具 • Xilinx的ISE工具提供了集成设计流程,该设计流程支 • 持基于Mentor Graphics公司Modelsim仿真工具和ISE仿真 • 工具,这两种仿真工具均可从工程向导中运行。 • 只有安装Modelsim软件才能使用Modelsim仿真工具, • ModelSim PE和ModelSim SE是Mentor Graphics公司 • ModelSim软件的完全版本。为配合ISE11库的仿真,需要 • 使用ModelSim6.0或更高版本。ModelSim XE是基于 • ModelSim PE的ModelSim Xinlinx版本。 • 当安装ISE软件时,ISE仿真工具就自动安装完成,所 • 以不需要进行额外安装。

  25. 设计综合和行为仿真-配置Xilinx仿真库 • 当设计中有需要例化的Xilinx基本元件、Core生成器 • 元件和其它IP核时,必须要使用Xilinx的仿真库才能对这 • 样的设计进行仿真。这些仿真库保存了每一个元件的模型。 • 这些模型描述了每一个元件的功能,为仿真工具提供了仿 • 真时所需要的信息。 • Modelsim软件使用modelsim.ini文件确定编译库的位置。 • 比如,将UNISIM库编译到c:\lib\UNISIM路径下,在该文 • 件中必须有下面的映射描述:UNISIM=C:\lib\UNISIM。

  26. 设计综合和行为仿真-添加HDL测试平台 • 下面给出添加测试平台文件步骤和过程: • 1. 如果建立一个新的测试平台文件,可选择 • Project→New Source,选择文件类型为VHDL Test Bench • 或Verilog Text Fixture,生成一个仿真文件,可以在这个 • 文件中定义所需要的测试平台及其测试向量。 • 2. 如果添加已经设计完成的测试平台文件,可选择 • Project→Add Source,在该设计中选择测试平台文件 • stopwatch_tb.vhd。

  27. 设计综合和行为仿真-添加HDL测试平台 • 3. 点击“Open”按钮。 • 4. 检查该文件的“Association”属性选择为 • “Simulation”。 • 5. 点击“OK”按钮。 • ISE会自动识别顶层设计文件并将其与测试文件进行 • 关联。

  28. 设计综合和行为仿真--基于Modelsim行为仿真实现设计综合和行为仿真--基于Modelsim行为仿真实现 • 下面所介绍的行为仿真是基于前面的秒表设计完成,并 • 完成了设计综合。为了实现对该设计的行为仿真,需要下 • 面的文件:设计文件,测试平台(Testbench)文件和 • Xinlinx仿真库。 • 1、设计文件:VHDL、Verilog或原理图文件。 • 2、Testbench文件:仿真设计过程中需要一个测试平台 • 文件作为仿真激励源。 • 3、Xinlinx仿真库:当在设计中涉及IP核时,应该创建 • Xinlinx仿真库,库中包含了DCM数字时钟管理和核产生 • 器(CORE Generator)元件。

  29. 设计综合和行为仿真--基于Modelsim行为仿真实现设计综合和行为仿真--基于Modelsim行为仿真实现 • 如果在工程中已经添加了一个测试平台文件,那么就 • 可以用ModelSim完成行为仿真,ISE与ModelSim已经完全 • 一体化,ISE能使用ModelSim创建工作路径,编译源文 • 件,下载设计文件,并进行仿真。下面给出ISE的工程调 • 用ModelSim仿真的步骤: • 1. 在Source Tab选项卡中,右键单击器件名,如 • xc3s700A-4fg484,选择Properties(属性)选项; • 2. 在Project Properties(工程属性)对话框的仿真器域 • (Simulator field)中选择所使用的ModelSim类型,并和 • 所使用的HDL语言进行关联。

  30. 设计综合和行为仿真--基于Modelsim行为仿真实现设计综合和行为仿真--基于Modelsim行为仿真实现 • 如果在工程中已经添加了一个测试平台文件,那么就 • 可以用ModelSim完成行为仿真,ISE与ModelSim已经完全 • 一体化,ISE能使用ModelSim创建工作路径,编译源文 • 件,下载设计文件,并进行仿真。使用ISE软件或 • ModelSim软件,仿真结果是相同的。

  31. 设计综合和行为仿真 --定位仿真程序 • 在ISE的仿真过程中能够使用ModelSim软件对设计进 • 行仿真,下面给出定位ModelSim仿真程序的步骤: • 1、在Source Tab选项卡中,选择行为仿真(Behavioral • Simulation); • 2、选择Testbench测试文件(stopwatch_tb); • 3、在Processes tab选项卡中,单击+旁边的ModelSim • Simulator展开程序目录层次; • 如果没有ModelSim仿真程序,那么有可能是在Project • Properties(工程属性)对话框没有将ModelSim选为仿真 • 器,或者是Project Navigator无法找到modelsim.exe文件。

  32. 设计综合和行为仿真--定位仿真程序 • 下面给出设置ModelSim单元的步骤 • 1、选择 Edit→Preferences; • 2、单击+展开ISE preferences; • 3、单击Integrated Tools; • 4、在右栏中, Model Tech Simulator下,定位modelsim.exe • 文件。如:c:\modeltech_xe \win32xoem \modelsim.exe;

  33. 设计综合和行为仿真--设置仿真属性 • 在ISE中可以设置包括网表属性的多个ModelSim仿真 • 属性,下面给出设置行为仿真属性的步骤: • 1. 在Source Tab选项卡中,选择stopwatch_tb(Testbench • 测试文件); • 2. 在Processes tab选项卡中,单击+旁边的ModelSim • Simulator展开程序目录层次; • 3. 右键单击Simulate Behavioral Model,选择Properties • (属性); • 4. 在Process Properties对话框中,见图8.6 设置Property • display level为Advanced这个全局性的设置,可看到所有可 • 用的属性;

  34. 设计综合和行为仿真--设置仿真属性

  35. 设计综合和行为仿真--设置仿真属性 • 5、将仿真运行时间改为2000ns,单击OK; • 通过上面步骤完成仿真属性设置。

  36. 设计综合和行为仿真--运行仿真 • 仿真属性设置完成后,就可以准备运行ModelSim仿真 • 软件。双击Simulate Behavioral Model,启动行为仿真。 • ModelSim仿真工具可以创建工作目录,编译源文件,添 • 加设计,并进行指定时间的仿真模拟过程。 • 该设计的工作频率为100赫兹,因此需要设定足够的时 • 间长度来仿真。第一次复位后,输出过渡的SF_D和 • LCD_E控制信号在大约33毫秒。这就是为什么计数器不 • 在短时间的仿真中使用,只有通过对DCM信号监测来验 • 证计数器工作是否正常。

  37. 设计综合和行为仿真--添加信号 • 为了观察仿真过程中的内部信号,必须将这些信号添 • 加入到波形窗口中。ISE会自动将顶层端口信号加入到波 • 形窗口,其它信号在基于被选结构的信号窗口中显示,可 • 以通过两种基本方法将其它信号加入仿真波形窗口: • 1、从Signal/Object window中拖动到信号波形窗口; • 2、在Signal/Object window中选择信号,选择Add → • Wave → Selected Signals; • 下面介绍将DCM信号加入到波形窗口中的步骤(如果使 • 用的是ModelSim6.0或更高版本,在默认状态下,所有窗 • 口均是docked,可选择undock图标来取消):

  38. 设计综合和行为仿真--添加信号 • 1、在Structure/Instance窗口中,单击+展开uut目录层 • 次。图8.5为Verilog的Structure /Instance窗口。当然原理图 • 或是VHDL的Structure/Instance窗口可能有所不同; • 2、在Structure/Instance窗口中选择dcm1,那么在 • Signal/Object窗口中的信号列表将被更新; • 3、单击并将Signal/Object窗口中的CLKIN_IN信号拖动 • 到波形窗口中; • 4、在Signal/Object窗口中,选择下列信号:RST_IN、 • CLKFX_OUT、CLK0_OUT、LOCKED_OUT; • 5、在Signal/Object窗口中右键单击; • 6、选择Add to Wave → Selected Signals;

  39. 设计综合和行为仿真--添加信号

  40. 设计综合和行为仿真--添加信号分割 • 在ModelSim中,可以在波形窗口中添加分割,使得更容 • 易区分不同的信号,下面给出在窗口中添加DCM信号分 • 割窗口的步骤: • 1、右键单击波形窗口信号部分的任意位置,如果需 • 要可先将窗口最大化; • 2、选择Insert Divider; • 3、在Divider Name框中输入DCM Signals; • 4、单击OK; • 5、将新建的信号拖到CLKIN_IN信号上方;

  41. 设计综合和行为仿真--添加信号分割 • 新增信号的波形还未给出,这是因为ModelSim还未 • 记录这些信号的数据。在默认情况下,只有重新经过 • 仿真后,ModelSim才会记录新添加到波形窗口中的信 • 号。当波形窗口添加新信号后,需要重新进行仿真。

  42. 设计综合和行为仿真--添加信号分割

  43. 图8.7 重新仿真对话框 设计综合和行为仿真--重新仿真 • 为了在ModelSim中重新完成仿真 • 过程,需要执行以下操作步骤: • 1、单击Restart Simulation图标; • 2、在Restart对话框中,单击 • Restart; • 3、在ModelSim命令行中,输入run • 2000ns,按下Enter键; • 仿真运行2000ns,仿真结束后,在 • 波形窗口中可见DCM新波形。

  44. 设计综合和行为仿真--分析信号 • 通过分析DCM信号来验证计数器工作是否正常。 • CLK0_OUT信号需为50MHz,CLKFX_OUT需为26MHz。 • 只在LOCKED_OUT信号为高时,DCM输出信号有效。所 • 以只在LOCKED_OUT信号为高时,才能分析DCM信号。 • ModelSim中可通过光标来测量信号之间的距离。下面给 • 出测量CLK0_OUT信号的步骤: • 1、选择Add → Wave → Cursor,定位两个光标 • (Cursors); • 2、在LOCKED_OUT信号为高后,单击拖拽CLK0_OUT • 信号的第一个上升沿; • 3、单击拖拽第二个光标; • 4、单击Find Next Transition图标两次将光标移到 • CLK0_OUT信号的下一个上升沿;

  45. 设计综合和行为仿真--分析信号 • 5、可观察波形底部两个光标之间的距离。测量值 • 为20000ps(50MHz),即为测试平台的输入频率, • 也是DCM的CLK0信号输出; • 6、同样使用上述方式测量CLKFX_OUT。测量值 • 为38462ps,约为26MHz; • 通过上面步骤,完成对CLK0_OUT信号的测量和 • 分析。

  46. 设计综合和行为仿真--保存仿真 • ModelSim可保存列表中的所有信号,也可保存波形窗 • 口中经过重新仿真后的新增信号。下面给出保存信号的步 • 骤: • 1、在波形窗口中,选择File → Save as; • 2、在保存类型对话框中,将默认的wave.do重新命名为 • dcm_signal.do; • 3、单击Save; • 在重新启动仿真之后,在波形窗口中选择File → Load重 • 新加载此文件。

  47. 设计综合和行为仿真--基于ISim行为仿真实现 • 如果在工程中已经生成了一个测试平台文件,那么就 • 可以在ISim中进行行为仿真。ISE能创建工作路径,编译 • 源文件,下载设计文件,并根据仿真属性进行仿真。下面 • 给出了使用ISE仿真器进行仿真的步骤: • 1、在Source Tab选项卡中,右键单击器件名,如 • xc3s700A-4fg484; • 2、选择Properties(属性)选项; • 3、在Project Properties(工程属性)对话框的Simulator • field中选择ISim(VHDL/Verilog);

  48. 设计综合和行为仿真--定位仿真程序 • 在仿真过程中能够使用ISim仿真器对设计进行仿真, • 并定位ISE仿真程序。下面给出定位仿真程序的步骤: • 1、在Source Tab选项卡中的Source for区域选择 • Simulation(仿真),然后在下拉框中选择Behavioral(行 • 为); • 2、选择Testbench测试文件(stopwatch_tb); • 3、在Processes tab选项卡中,单击+旁边的ISim • Simulator展开程序目录层次;

  49. 设计综合和行为仿真--定位仿真程序 • 下面是可使用的仿真过程: • 1、Check Syntax:这个过程检查测试平台文件中的语 • 法错误; • 2、Simulate Behavioral Model:这一过程开始设计仿 • 真;

  50. 设计综合和行为仿真--设置仿真属性 • 在ISE中可以设置包括网表属性的多个ISE仿真器的仿真 • 属性。下面给出设置行为仿真属性的步骤: • 1、在Source Tab选项卡中,选择测试平台文件 • (stopwatch_tb); • 2、在Processes tab选项卡中,单击+旁边的ISim • Simulator展开程序目录层次; • 3、右键单击Simulate Behavioral Model(仿真行为模 • 型); • 4、选择Process Properties(处理属性);图8.11 行为 • 仿真属性设置

More Related