[信息与通信]第8章 仿真与Testbench设计.ppt
《[信息与通信]第8章 仿真与Testbench设计.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]第8章 仿真与Testbench设计.ppt(56页珍藏版)》请在三一文库上搜索。
1、第8章仿真与Testbench设计,本章主要内容,仿真概述 Testbench设计 仿真实例 Testbench结构化,8.1 仿真概述,对仿真器进行优化,一般基于两种方式:周期驱动和事件驱动。,8.1.1 周期驱动,周期驱动是基于时钟周期的仿真模型。 图 81 周期驱动模型图,周期驱动的仿真器只在乎Q2的输出,即每个时钟有效沿到来时的输入和输出,时钟周期之内的延时全部不考虑,S1和S2之间的变化和时序完全被忽略仿真器假定所有的触发器的建立时间和保持时间均满足条件。这种模型只能应用于同步模型,如果设计中包含了锁存器或者多时钟域的情况,周期驱动的仿真器模型都不能适用。如果需要应用的话,只能使用静
2、态时延分析来实现。,8.1.2 事件驱动,目前逻辑仿真最普遍的形式就是事件驱动。 事件驱动仿真模型有个重要特点:一是如果输入不变化,输出就不会变化,因为输入不变化就不需要仿真;二是一旦输入发生变化,不管输出有没有变化,仿真器都会执行仿真。,图 82 事件驱动模型图,仿真器在内部会维护一些信息用来记录某些时刻要被激活的事件。而每个输入都是一些离散的事件。当输入a发生变化的时候,标记为T1,仿真器会检查这个输入连接到了何处,检测到了一个5ns的与门,仿真器会在T1之后的5ns时候(T2)安排一个与门输出的时间。接着仿真器检查当前时刻T1是否还有其他动作需要执行。b就是下一个事件,发生在T2时刻,也
3、就是T2的边沿。然后仿真器检查b连接到何处,是一个4ns的缓冲器。同样仿真器会在T2时候后的4ns时刻(T3)安排一个缓冲器的输出。同样仿真器再次检测下一个事件,直到由输入端a的首次变化触发所引起的所有事件都被执行完毕为止。 事件驱动的优点在于它可以处理任何形式的设计,包括同步和异步逻辑、锁存器、组合逻辑反馈回路等等,并且具有极好的设计可见性,便于调试。但是它最大的缺点就是运算量大、速度非常慢。,8.1.3 混合语言仿真,20世纪60年代末和170年代初出现的第一代事件驱动的仿真器是基于仿真基本元件的、采用标准的文本编辑器在门级网表级输入设计,同样采用文本激励语言作为测试平台,仿真器使用网表建
4、立电路模型,然后将激励加入到这个模型中,并将结果输出到另外一个文本文件中。 要解决混合语言仿真有几种方式:一是先将其中的一种语言所写的设计翻译成另外一种语言,然后再进行仿真 二是在仿真器中使用多核一个用来进行VHDL仿真,另外一种进行Verilog HDL仿真。 三是采用单核仿真器,同时支持多种语言,8.2 仿真器的选择,一是选择的仿真器必须能够支持混合语言仿真。 二是仿真器的性能需要满足设计的要求。 三是仿真器需要有一个良好的调试环境。 最后还要考虑的是仿真器的代码覆盖能力。代码覆盖能力包括很多种,如: 基本代码覆盖率 分支覆盖率 条件覆盖率 表达式覆盖率 状态覆盖率 功能覆盖率 断言/属性
5、覆盖率,8.3 Modelsim简介与仿真,8.3.1 Modelsim简介 Mentor公司是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。 Modelsim的主要特点有: RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真; 单内核VHDL和Verilog混合仿真; 源代码模版和助手,项目管理; 集成了性能分析、波形比较、代码覆盖、数据流ChaseX、Signal Spy、虚拟对象Virtual Object、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;,C和Tcl/Tk接口,C调试; 直接支持SystemC,和H
6、DL任意混合; 支持SystemVerilog的设计功能; 对系统级描述语言如SystemVerilog、SystemC、PSL的最全面支持; ASIC Sign off。 ModelSim分几种不同的版本:SE、PE、DE和OEM,其中SE是最高级的版本,而集成在 Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。,8.3.2 功能仿真,在桌面点击Modelsim图标,或者在开始-所有程序中选择Modelsim,如下图所示。 图 83 Modelsim界面,建立仿真工程。 图 84 建立仿真工程界面,弹出一个对话框,选择”“Add
7、 Existing File”,添加测试平台和被测文件到仿真工程中。点击“OPEN”,然后点击“OK”。 图 85 添加仿真文件界面,关掉对话框。 图 86 Modelsim仿真参数设置,选中测试程序,然后点击“project - Setting”来选择Verilog 仿真器。点击“OK”。 图 87 Modelsim仿真语言选择,编译。 图 88 编译界面,选择“”Simulation - Runtime Options”,可以选择所需要的显示, 图 89 Modelsim仿真格式选择,选择“Simulation - Start Simulation”。 图 810 仿真,运行后的结果如下
8、图 811 仿真结果界面,在工作区窗口选择顶层仿真文件,点击“Add- Wave - Selected Instance” 图 812 添加仿真波形,点击“Simulate - Run -all” 图 813 仿真运行界面,点击wave查看仿真波形 图 814 查看仿真波形,点击“ContinueRun”工具条可以继续仿真到下一个$stop 图 815 继续仿真界面,设置Cursor 图 816 Cursor设置,图 817 时延量测,保存波形文件 图 818 保存波形文件,8.3.3时序仿真,时序仿真总体思路与功能仿真类似,只是时序仿真需要考虑逻辑单元时延和布局布线时延,因此需要借助不同公司
9、的开发平台生成相应的静态时延报告,并且结合相关的器件模型来进行仿真。 时序仿真比功能仿真更加精确,但是花费时间比较久。 以Lattice公司的器件为开发平台来讲述怎样进行时序仿真。 生成.sdf文件。通过ispLEVER建立一个工程文件,点击“Generate Timing Simulation Files”生成.vo和.sdf文件。把这两个文件加到仿真文件夹中。 关掉ispLEVER。打开Modelsim并建立一个新的仿真工程。 建库。例如设计采用xo系列的库,在图8-19显示的Modelsim的界面的命令框中键入下面的两个命令: Vlib machxo,Vlog work machxo C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息与通信 信息与通信第8章 仿真与Testbench设计 信息 通信 仿真 Testbench 设计
链接地址:https://www.31doc.com/p-2001125.html