下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子实验中心,FPGA,ModelSim之前后仿真,ModelSim之自动化方针,ModelSim之基础应用,Quartus II 注意事项,ModelSim之Testbench,一、 Quartus II 注意事项,1、尽量模块化编程,将复杂功能分解成小的模块,便于调试。 2、如果各模块有同步要求,最好所有模块同时接至一复位信号线上,特别是用到锁相环的整体,一定要考虑锁相环的稳定时间。 3、管脚分配尽量使用脚本文件(TCL),便于管理。,脚本文件可利用QuartusII提供的模版改编得到。具体选项在,project-Gernerate Tcl File For project选项。 具体使用
2、参看test_pin.tcl例。 脚本运行,在Tools-Tcl Scripts,二、ModelSim之基础应用,Modelsim是一种第三方EDA仿真工具。 Modelsim仿真工具是Model公司开发的,它支持Verilog、VHDL以及两者的混合仿真,可以将整个程序分步执行,它在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以查看某一单元或模块的输入输出的连续变化等。 其主要特点是仿真速度快,仿真精度高,而且支持VHDL、Verilog HDL以及两者的混合使用,是目前业界最流行最通用的仿真器之一。,1、建立工程,添加文件 2、编译文件 3、配置仿真文件,4、选中要仿真的文件,
3、如果含有锁相环等时序有要求的信号,Resolution选为1pS,注意!,点击OK后,在workspace里出现simulation1,双击simulation1,出现仿真对话框,在仿真文件上单击右键,找到Add to Wave选项,创建波形文件,并加入信号,在对应的信号上点右键,可以设置信号属性。,比如要给CLK一个激励,直接选择Clock,弹出对话框,进行必要设置,即可进行仿真。,三、ModelSim之Testbench,编辑输入波形是一项繁重的工作,特别是当用到特殊波形时更是很难手工编写,一般的做法是,用Matlab(或其他工具)生成一个波形文件,然后通过其他方法导入,当激励复杂而时序要
4、求严格的时候,手动也是难于控制的,所以要验证工程的对与错,通常的会用到Testbench测试文件。当系统很大的时候,Testbench更显得重要。,Testbench 文件也是一个HDL语言文件,可以理解为一个平台,该平台包含待仿真的模块,具体一点是TestBench为一个电路板,在该电路板中包含了我们设计的用HDL语言描述的电路,这块电路板与外界没有任何的接口,其功能仅仅是仿真测试我们设计的电路,我们可将设计的电路中的端口的信号描绘出来,进行仿真分析。,Modelsim中Testbench 的建立。在主窗口中打开任意一个HDL文件的情况下,如右图选择Show language选项,点击后出现
5、一对话框,如右图所示,双击Create Testbench选项。,点击Finish按钮后,在工程和主窗口中都加入的xxx_tb.vhd文件,这个就是Testbench 的模版,要根据具体的设计来完成文件的编辑。 在Testbench文件里,可以对端口进行任意设置,也可以对特殊波形进行文件操作,而对文件的操作是通过TEXTIO来进行的,须在文件头包含 use std.textio.all; 语句。,TEXTIO是VHDL标准库STD中的一个程序包(Package)。在该包中定义了三个类型:LINE类型、TEXT类型以及SIDE类型;一个子类型(subtype)WIDTH。此外,在该程序包中还定义
6、了一些访问文件所必须的过程(Procedure)。,1. 类型的定义如下: type LINE is access string; 定义了LINE为存取类型的变量,它表示该变量是指向字符串的指针,它是TEXTIO中所有操作的基本单元,读文件时,先按行(LINE)读出一行数据,再对LINE操作来读取各种数据类型的数据;写文件时,先将各种的数据类型组合成LINE,再将LINE写入文件。在用户使用时,必须注意只有变量才可以是存取类型的,而信号则不能是存取类型的。例如,我们可以定义 variable DLine : LINE; 但不能定义成: signal DLine : LINE;,type TEX
7、T is file of string; 定义了TEXT为ASCII文件类型。 定义成为TEXT类型的文件是长度可变的ASCII文件。例如在TEXTIO中定义了两个标准的文本文件。 file input_File : TEXT open read_mode is STD_INPUT.txt; file output_File : TEXT open write_mode is STD_OUTPUT.txt; 定义好以后,就可以通过文件类型变量input_File和output_File来访问其对应的文件STD_INPUT.txt和STD_OUTPUT.txt。 需要注意的是VHDL87和VHD
8、L93在使用文件方面有较大的差异。在编译时注意选中对应的标准。, type SIDE is (right, left); 定义了SIDE类型。表示定义了一个名为SIDE的数据类型,其中只能有两种状态,即right和left,right和left表示将数据从左边还是右边写入行变量。该类型主要在TEXTIO程序包包含的过程(Procedure)中使用。 subtype WIDTH is natural; 定义WIDTH为自然数的子类型。所谓子类型表示其取值范围是父类型的范围的子集。,2. 过程(Procedure)的定义如下:,TEXTIO提供了基本的用于访问文本文件的过程。类似于C,VHDL提供
9、了重载功能。即完成相近功能的不同的过程可以有相同的过程名,但其参数列表不同,或参数类型不同或参数个数不同。 TEXTIO提供的基本过程有: procedure READLINE(文件变量;行变量); 用于从指定文件读取一行数据到行变量中。 procedure WRITELINE(文件变量;行变量); 用于向指定文件写入行变量所包含的数据。 procedure READ(行变量; 数据类型);,用于从行变量中读取相应的数据类型的数据。 根据参数数据类型及参数个数的不同,有多种重载方式,TEXTIO提供了bit、bit_vector、BOOLEAN、character、integer、real、s
10、tring、time数据类型的重载。同时,提供了返回过程是否正确执行的BOOLEAN数据类型的重载。例如,读取整数的过程为 procedure READ(L:inout LINE; VALUE: out integer; GOOD : out BOOLEAN); 其中,GOOD用于返回过程是否正确执行,若正确执行,则返回TRUE。 procedure WRITE(行变量; 数据变量; 写入方式; 位宽);,该过程将数据写入行变量。其中写入方式表示写在行变量的左边还是右边,且其值只能为left或right,位宽表示写入数据时占的位宽。例如: write(OutLine,OutData,left,
11、2); 表示将变量OutData写入LINE变量OutLine的左边占2个字节。 见test_tb.vhd例,如图所示,选中End Simulation选项,结束上次的方针,为下次仿真做准备。,重复以前步骤,选中编译通过的test_tb.vhd,点击OK,所不同的是,这次仿真不需要设置任何信号的值,而是直接运行就可以得到所需的波形,因为,所有的输入和激励,都在test_tb.vhd文件里设定好了。,四、ModelSim之前后仿真,仿真与验证主要包括3个方面的内容: 第一是仿真系统的组织原则,主要是如何有效的测试目标系统的理论和方法; 第二是测试模板与测试向量的设计; 最后是仿真工具的使用。 一
12、般来说,仿真分为三种类型,即功能仿真、综合后功能仿真和时序仿真,分别对应于设计输入后、综合完成后、布局布线完成后等步骤,这些步骤也是仿真的切入点。,1、功能仿真 功能仿真也称为前仿真,主旨在于验证电路功能是否符合设计要求,其特点是不考虑电路门延时与路径延时,考察重点为电路在理想环境下的行为和设计构想是否一致。 可综合FPGA仿真代码是用RTL级代码语言描述的,功能仿真的输入是设计的RTL代码,也就是HDL源文件与Testbench.。 2、综合后仿真 综合后仿真的主旨在于验证综合后的电路结构是否与设计意图相符,是否存在歧义综合结果。 综合后仿真的输入是从综合得到的一般性逻辑网表抽象出的仿真模型
13、和综合产生的延时文件,综合时的延时文件仅仅能估算门延时,而不包含布线延时信息,所以延时信息不十分准确。,3、时序仿真 时序仿真也称为布局布线后仿真或者后仿真,是指电路已经映射到特定的工艺环境后,综合考虑电路的路径延时与门延时的影响,验证电路的行为是否能够在一定时序条件下满足设计构想的功能。 时序仿真主要目的在于验证电路是否存在时序违规,其输入为从布局布线抽象出的门级网表、Testbench以及扩展名为SDO的标准延时文件。 一般来说,时序仿真是必选步骤,通过时序仿真能检查设计时序与FPGA的实际运行情况是否一致,确保设计的可靠性和稳定性。,设置完毕后,重新编译,则会生成*.vho和*.sdo文
14、件,这两个文件是后仿所必需的。其中, *.vho是网络表文件,而*.sdo则是延时文件。两个文件的组合,可以模拟出逼近实际的器件特性。 其中, *.vho可以在进行仿针之前,先进行编译即可,而对*.sdo的引用如下图所示。,在SDF选项中加入生成的SDO延时文件。,在Apply to Region框中加入测试文件名/例化实例名。 (本例为/test_vhd/DUT),当使用TCL脚本时,已经加入所有编译库及要使用的文件,不再需要单独设置。祥见test.tcl文件。,五、 ModelSim之自动化方针,当文件系统做得很大或者是系统要反复修改的时候,每次都手动添加库和设置波形信号就会显得很麻烦,这是我们就可以利用Modelsim所提供的支持脚本文件的特性,来使我们的整个仿真一气呵成,这样整个系统在更改后,仅仅是维护TCL文件或DO文件就可以对整个系统进行维护。 详见test.tcl,test.do,Modelsim仿真中会调用四种常用的仿真库: (1)lpm,调用lp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国运动护膝类产品价格战对行业盈利能力影响诊断报告
- 2026欧洲船舶制造行业市场现状供需分析及投资评估规划分析研究报告
- 2026中国印刷产业行业市场现状供需分析及投资评估规划分析研究报告
- 镍锌电池:高安全、高功率备用电源的商业化新机会
- 2026日本人工智能市场现状供需格局评估及投资布局规划分析文档
- 2026功能性运动贴扎产品临床效果验证与市场教育策略
- 2026中国工业视觉检测算法优化方向研究
- 2026债券销交面试题及答案
- 2026招聘英语面试题目及答案
- 2026中通客车面试题目及答案
- 校本课程开发全流程指南-含完整需求诊断框架、课程设计模板、实施SOP流程、多场景案例拆解、质量检查清单与KPI评估体系
- 膝关节韧带损伤护理指南
- 2026年兴业证券港股通测试题和答案
- 电力建设工程概预算定额(2018版)全12册excel版
- 2025年1月浙江首考读后续写讲评:真假小偷 课件
- 2026国家统计局诸暨调查队招聘编外用工1人(浙江)笔试备考试题及答案解析
- 派出所交管业务培训课件
- 2025年老年综合评估技术练习试题附答案
- 《药理学》全套题库(附答案)
- 托育营销计划培训课件
- 2026年内蒙古电子信息职业技术学院单招职业技能考试题库及答案解析(夺冠)
评论
0/150
提交评论