相关软件的使用方法_第1页
相关软件的使用方法_第2页
相关软件的使用方法_第3页
相关软件的使用方法_第4页
相关软件的使用方法_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA设计的仿真和测试主要内容对仿真的概念进行了简单说明 以Modelsim6.2版本为例,重点介绍了Modelsim软件的使用方法。10.1 仿真简介仿真是指在软件环境下,验证电路的行为和设计意图是否一致。 简化的仿真验证系统框图如下: TestVector测试向量DUT测试内容Testbench测试模板仿真系统软件、硬件运行比较判断输出、存储结果10.1 仿真简介(续1)仿真与验证主要包括3个方面的内容: 第一是仿真系统的组织原则,主要是如何有效的测试目标系统的理论和方法; 第二是测试模板与测试向量的设计; 最后是仿真工具的使用。一般来说,仿真分为三种类型,即功能仿真、综合后功能仿真和时序

2、仿真,分别对应于设计输入后、综合完成后、布局布线完成后等步骤,这些步骤也是仿真的切入点。10.1 仿真简介(续2)1、功能仿真功能仿真也称为前仿真,主旨在于验证电路功能是否符合设计要求,其特点是不考虑电路门延时与路径延时,考察重点为电路在理想环境下的行为和设计构想是否一致。可综合FPGA仿真代码是用RTL级代码语言描述的,功能仿真的输入是设计的RTL代码,也就是HDL源文件与Testbench.。 2、综合后仿真综合后仿真的主旨在于验证综合后的电路结构是否与设计意图相符,是否存在歧义综合结果。综合后仿真的输入是从综合得到的一般性逻辑网表抽象出的仿真模型和综合产生的延时文件,综合时的延时文件仅仅

3、能估算门延时,而不包含布线延时信息,所以延时信息不十分准确。10.1 仿真简介(续3)3、时序仿真时序仿真也称为布局布线后仿真或者后仿真,是指电路已经映射到特定的工艺环境后,综合考虑电路的路径延时与门延时的影响,验证电路的行为是否能够在一定时序条件下满足设计构想的功能。时序仿真主要目的在于验证电路是否存在时序违规,其输入为从布局布线抽象出的门级网表、Testbench以及扩展名为SDO的标准延时文件。一般来说,时序仿真是必选步骤,通过时序仿真能检查设计时序与FPGA的实际运行情况是否一致,确保设计的可靠性和稳定性。10.2 Modelsim简介Modelsim是一种第三方EDA仿真工具。Mod

4、elsim仿真工具是Model公司开发的,它支持Verilog、VHDL以及两者的混合仿真,可以将整个程序分步执行,它在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以查看某一单元或模块的输入输出的连续变化等。其主要特点是仿真速度快,仿真精度高,而且支持VHDL、Verilog HDL以及两者的混合使用,是目前业界最流行最通用的仿真器之一。10.2.1 Modelsim的图形用户界面Modelsim 6.3软件在默认的条件下提供了主窗口、源文件窗口、信号窗口、波形窗口、数据流窗口、进程窗口、存储器窗口、列表窗口等不同窗口,如下图。10.2.1 Modelsim的图形用户界面(续1)

5、主窗口:主窗口main在Modelsim启动时直接打开,是其他窗口运行的基础。源文件窗口:源文件窗口source主要用来显示和编辑HDL源文件代码。波形窗口:波形窗口是最常用的窗口之一,主要是用来查看仿真结果。数据流窗口:数据流窗口Dataflow是一般仿真软件都提供的一个通用窗口,通过该窗口可以跟踪设计中的物理连接、事件的传播,也可以用来跟踪寄存器、网线和进程等,极大的丰富了调试方法并对其进行显示,也可以显示设计中的内部连接。列表窗口:列表窗口使用表格的形式显示仿真结果。进程窗口:进程窗口显示了仿真中用到的所有进程列表。信号窗口Object主要是用来选择需要查看的信号,同时可以在仿真过程中强

6、制某一个信号的值发生变化,也可以通过信号窗口的Edit/Force和Edit/Clock命令将任意信号强制转化成时钟信号。寄存器窗口Memory可以显示设计中寄存器的内容。使用此窗口可以通过加载源文件或改变存储器内容的方式对设计中的存储器进行初始化,同时窗口中的内容也可以保存成一个存储器文件,以便日后使用。10.2.1 Modelsim的图形用户界面(续2)在Modelsim的主窗口的工具栏中常用快捷键图标的功能如下表: 10.2.2 Modelsim仿真步骤 Modelsim仿真步骤分为以下5步:(1)建立库;(2)映射库到物理目录;(3)编译源代码,包括所有的HDL代码和Testbench

7、;(4)启动仿真器并加载设计顶层;(5)执行仿真 注:本章主要介绍在界面模式下modelsim的使用方法10.2.2 Modelsim仿真步骤(续1)1、建立库 仿真库是指存储已经编译设计单元(design units)的目录。Modelsim中仿真库可以分为工作库(Working)和资源库(Resource)两大类。 建立仿真库的常用方法有两种:一是在界面模式下,执行主菜单命令File/New/Library,打开Create a New Library对话框,选择第一项生成一个新库并映射它,如右图图所示。二是在命令行模式下也可以在主窗口执行vlib命令建立新库,语法格式如下: Vlib10

8、.2.2 Modelsim仿真步骤(续2)2、映射库到物理目录; 映射是将已经编译好的设计单元映射为一个库,库路径内的文件应该是已经编译好的。 常用操作方法有两种:一是在界面模式下,执行主菜单命令File/New/Library,打开Create a New Library对话框,选择第二项映射已经编译好的库,单击browse按钮选择所已经编译好的库,如右图所示;第二种方法是命令模式下主窗口执行vmap命令,语法格式如下:Vmap10.2.2 Modelsim仿真步骤(续3)3、编译源代码GUI图像界面模式下编译文件的快捷方式是建立一个工程,在工程中添加所要编译的文件,然后执行主窗口的Comp

9、ile子菜单中的各种命令或者是右键单击工程中的文件执行Compile的不同命令。 如果编译的是VHDL源文件,其编译顺序由文件的排列顺序决定,如果是Verilog源文件,其编译顺序也是由文件的排列顺序决定,但文件编译的顺序并不重要。 10.2.2 Modelsim仿真步骤(续4)4、 启动仿真器并加载设计顶层 (1)执行主菜单中的命令Simulate/Start Simulate 打开仿真对话框,指定需要仿真的设计单元,然后点击OK,如图所示 10.2.2 Modelsim仿真步骤(续5)4、 启动仿真器并加载设计顶层 (2)在主窗口中出现Object窗口,右键单击Object窗口中的任意信号

10、,选择add to wave/ signals in region 或者是右键选中sim窗口中加载的顶层设计名,选中add to wave,就可以打开波形窗口,并将所有信号都加载到波形窗口当中 。如右图所示。10.2.2 Modelsim仿真步骤(续6)5、 执行仿真 执行主菜单命令下的Simulate/Run,选中相应的 选项来执行仿真,也可以选中使用等快捷键按钮来进行仿真 ,仿真结果将会显示在Wave窗口中。 10.2.3 Modelsim功能仿真 在本节中,用一个简单的计数器设计实例来演示功能仿真的具体操作流程,此处使用的QuartusII版本为7.2。步骤如下: 1、新建一个名为cou

11、nter的文件夹,在QuartusII新建一个同名工程,选择合适的器件。在此例中选择的目标芯片为CycloneIIEP2C35F672C6N。 2、计数器的HDL源文件可以在Modelsim中编写,也可以在QuartusII中编写或者利用MegaWizard生成的IP核以及直接调用LPM等方式生成。在这里选择利用MegaWizard生成的简单的IP核作演示使用,在定制中生成的IP核的语言选择VHDL。10.2.3 Modelsim功能仿真(续1) 生成后的 IP核如下图所示10.2.3 Modelsim功能仿真(续2) 3、回到QuartusII主窗口,点击Project选项卡,选择add/R

12、emove Files in Project;点击添加刚生成的counter.vhd文件到工程中,添加后如下图所示。至此,HDL源文件创建完毕。10.2.3 Modelsim功能仿真(续3) 4、编写测试文件Testbench。 先建立一个新的工作库如work。Testbench文件可以在Modelsim中新建的VHDL(或verilog)文档编辑页面中进行编辑,同样也可以在QuartusII中新建一个VHDL(或Verilog)空白模板来编写。 除了直接编写测试文件,Modelsim还提供了很多Testbench模板,可以直接调用以减少工作量,但前提是设计的顶层HDL源文件已经编译到工作库当

13、中 。 5、映射库到物理目录,编译源文件。10.2.3 Modelsim功能仿真(续4) 6、新建一个仿真工程。 使用工程可以简化编译和仿真的操作。 在Modelsim的主窗口中选择File/New/Project,设置工程名并向工程中添加文件,设置如下二图。 设置完成后编译所有文件。10.2.3 Modelsim功能仿真(续5) 7、启动仿真仿真器加载顶层文件。指定仿真的设计单元为测试文件counter_tb 8、执行仿真,仿真结果如下图: 10.2.6 Altera仿真库的添加 Modelsim仿真中会调用四种常用的仿真库:(1)lpm,调用lpm元件的设计仿真时需要;(2)altera_

14、mf,调用MagaFunction的设计仿真时需要;(3)primitive,调用altera的原语(primitive)设计仿真时需要;(4)元件库,例如cycloneII元件库,在仿真中必用的特定型号的FPGA/CPLD的库。前三种库是调用了相应的Altera设计模块进行设计时,仿真所必备的库,元件库则是进行时序仿真时不可缺少的资源库。 10.2.6 Altera仿真库的添加(续1)以新建一个lpm库为例,Altera仿真库的添加步骤如下: 1、新建一个文件夹altera_lib,用来存放Altera编译后的库文件,文件夹的位置最好是在 Modelsim的安装目录下; 2、打开Models

15、im软件, 新建一个名为lpm的Library, 在Library Physical Name里 面输入lpm库存放的路 径,点击OK,如图所示;10.2.6 Altera仿真库的添加(续2)3、将lpm仿真原型文件编译到lpm库中。 点击Modelsim主窗口中的 pile,在Library里面选中lpm,然后在QuartusII安装目录下的quartusedasim_lib文件里选中仿真原型文件220pack.vhd和220model.vhd文件,点击Compile,编译完成后点击done.10.2.6 Altera仿真库的添加(续3) 完成以上步骤一个lpm库就建立好了,进行仿真时根据需

16、要在仿真器的Library中点击Add可以直接添加,如下图所示。如果使用Verilog语言,编译时只需要编译200model.v文件即可。10.2.6 Altera仿真库的添加(续4)按照同样的方法可以添加其他3个库,编译的文件如下:1、altera_mf库: 在VHDL中先编译 ponents.vhd文件,后编译altera_mf.vhd文件,而在Verilog中则只编译altera_mf.v文件;2、Primitiv库: 在VHDL中先编译 ponents.vhd文件,后编译altera_primitive.vhd文件,而在Verilog中只编译altera_primitive.v文件;3

17、、元件库,如cycloneII库: 在VHDL中先编译cycloneii_atoms.vhd文件,后编译 ponents.vhd文件,而在Verilog中只编译cycloneii_atoms.v文件;如果是其他系列的元件库则只要把对应的cycloneii改成其他系列的名称即可,如cyclone库则文件改为cyclone_atoms.vhd、 ponents.vhd或cyclone_atoms.v。10.2.6 Altera仿真库的添加(续5)4、 修改初始化文件Modelsim.ini 为了避免在仿真中反复添加库 ,需修改Modelsim.ini文件; Modelsim.ini是一个只读文件,

18、右键点Modelsim.ini文件选择“属性”,去掉“只读”,然后双击打开文件,可以看到文件的内容。 $MODEL_TECH/./指的是Mdelsim的安装目录,也可以直接写成新建库的保存路径,如G:modesim63.。 在Library和 加上类似的的语句如下: Library std = $MODEL_TECH/./std ieee = $MODEL_TECH/./ieee primitive = $MODEL_TECH/./altera_lib/primitive cycloneii = $MODEL_TECH/./altera/vhdl/cycloneii altera_mf = $MODEL_TECH/./altera/vhdl/al

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论