modesim仿真
- 格式:doc
- 大小:67.50 KB
- 文档页数:9
Modelsim 6.0 使用教程1. Modelsim简介Modelsim仿真工具是Model公司开发的。
它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。
对于初学者,modelsim自带的教程是一个很好的选择,在Help->SE PDF Documentation->Tutorial里面.它从简单到复杂、从低级到高级详细地讲述了modelsim的各项功能的使用,简单易懂。
但是它也有缺点,就是它里面所有事例的初期准备工作都已经放在example文件夹里,直接将它们添加到modelsim就可以用,它假设使用者对当前操作的前期准备工作都已经很熟悉,所以初学者往往不知道如何做当前操作的前期准备。
2.安装同许多其他软件一样,Modelsim SE同样需要合法的License,通常我们用Kengen产生license.dat。
⑴.解压安装工具包开始安装,安装时选择Full product安装。
当出现InstallHardware Security Key Driver时选择否。
当出现Add Modelsim To Path选择是。
出现Modelsim License Wizard时选择Close。
⑵.在C盘根目录新建一个文件夹flexlm,用Keygen产生一个License.dat,然后复制到该文件夹下。
⑶.修改系统的环境变量。
右键点击桌面我的电脑图标,属性->高级->环境变量->(系统变量)新建。
按下图所示内容填写,变量值内如果已经有别的路径了,请用“;”将其与要填的路径分开。
LM_LICENSE_FILE = c:\flexlm\license.dat⑷.安装完毕,可以运行。
ModelSim仿真流程关于ModelSim仿真流程EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
下面店铺准备了关于ModelSim仿真流程,欢迎大家参考!1、运行ModelSim,如果上一次使用ModelSim建立过工程,这时候会自动打开上一次所建立的工程;2、点击File->New->Project,在Project Name中我们输入建立的工程名,在Project Location中输入工程保存的路径,注意ModelSim不能为一个工程自动建立一个目录,这里我们最好是自己在Project Location中输入路径来为工程建立目录,在Default Library Name中为我们的设计编译到哪一个库中,这里我们使用默认值,这样,在我们编译设计文件后,在Workspace窗口的Library中就会出现work库。
这里我们输入完以后,点击OK;3、如果提示我们给定的工程路径不存在,是否建立该路径,我们的目的就是为工程建立一个新目录,因此,点击确定;4、点击Create New File可以为工程添加新建的文件,点击Add Existing File为工程添加已经存在的文件,点击Create Simulation为工程添加仿真,点击Create New Folder可以为工程添加新的目录。
这里我们点击Create New File;5、我们在File Name中输入文件名称,Add file as type为输入文件的.类型为VHDL、Verilog、TCL或text,这里我们使用默认设置VHDL,Folder为新建的文件所在的路径,Top Level为在我们刚才所设定的工程路径下。
点击OK;并在Add items to the Project窗口点击Close关闭该窗口;6、这时候在Workspace窗口中出现了Project选项卡,在其中有文件名.vhd,其状态栏有一个问号,表示未编译,我们双击该文件,这时候出现编辑窗口,在其中我们输入我们的设计文件7、点击File->Save,并退出该窗口(File->Close);8、在WorkSpace窗口的文件名.vhd上点击右键,选择Compile->Compile All;9、在脚本窗口中将出现一行绿色字体Compile of DivClkHDL.vhd was successful.,说明文件编译成功,在该文件的状态栏后有一绿色的对号,表示编译成功;10、下面我们开始仿真,点击菜单Simulate->Simulate,展开Design选项卡下的work库,并选中其中的behavioral,这是在Simulate中出现了work.实体名(behavioral)表示我们所要仿真的对象,Resolution为仿真的时间精度,这里我们使用默认值,点击OK;11、为了观察波形窗口,我们点击菜单View->Wave;12、这时候出现的Wave窗口为空,里面什么都没有,我们要为该窗口添加我们需要观察的对象,首先在主窗口而不是波形窗口中点击View->Signals打开信号列表窗口,在改窗口中点击Add->Wave->Signals in Design,这时候在波形窗口中就可以看到这些信号了;13、下面我们就开始仿真了,在主窗口中输入命令对信号进行驱动仿真14、退出仿真,在主窗口中点击Simulate->End Simulation,会出现对话框,提示我们是否确认退出仿真,我们点击是退出仿真;。
一、为modelsim 添加ISE的3 个仿真库。
首先,介绍一下这三个库。
Simprim_ver:用于布局布线后的仿真。
Unisim_ver :如果要做综合后的仿真,还要编译这个库。
Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。
我们要为modelsim生成的是标准库。
所谓的标准库就是modelsim运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。
第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作simprim_ver。
我们首先就是要建的就是这个库。
第三步:在modelsim的命令栏上,打下如下命令:vlog -work simprim_ver C:/Xilinx/12.4/ISE_DS/ISE/verilog/src/simprims/*.v (注意斜线的方向是与windows默认方向相反的)其中的c:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。
以下凡是要根据自己系统环境改变的内容,我都会用绿色标出,并加一个下划线。
编译完之后,你会发现你的工程文件夹下出现了一个simprim文件夹,里面又有很多个文件夹。
这些就是我们要的库了。
第四步:按照上面的方法,编译另外两个库。
所需要键入的命令分别如下:vlog –work unisim_ver C:/Xilinx/12.4/ISE_DS/ISE/verilog/src /unisims/*.vvlog -work xilinxcorelib_ver C:/Xilinx/12.4/ISE_DS/ISE/verilog/src /XilinxCoreLib/*.v第五步:把库建好后,接下来的事情就是使它成为modelsim的标准库。
这只要修改modelsim安装目录下的modelsim.ini文件就可以了。
modelsim仿真流程
ModelsIm仿真流程 ModelSim是一个功能强大且广泛使用的数字电路和模拟软件。
它能够模拟各种不同的电路,包括FPGA、ASIC、流片等,并且可以仿真VHDL、Verilog和SystemC等语言编写的代码。
本文将介绍ModelSim的仿真流程。
1. 建立仿真环境首先,我们需要创建一个仿真环境。
这意味着我们需要创建一个Project文件夹,将仿真所需要的所有文件(包括设计文件、仿真模型以及测试文件等)都放在里面。
我们可以选择使用ModelSim自带的Project Manager工具或者直接使用终端命令行来完成这个工程。
2. 编译设计文件下一步是编译设计文件。
这意味着我们需要把设计文件转换为ModelSim可以理解的仿真模型。
我们可以使用vlib命令来建立一个仿真库,然后使用vlog命令来编译设计文件。
编译完成后,我们需要使用vsim命令进入仿真环境。
3. 进行仿真在仿真界面中,我们可以加载测试文件,然后使用run命令来进行仿真。
这将模拟电路在一个虚拟的环境中运行,并产生仿真结果。
我们可以使用ModelSim提供的信号跟踪和波形查看工具来观察电路的运行状态并分析仿真结果。
4. 仿真结束仿真完成后,我们可以使用exit命令退出仿真环境,并使用ModelSim提供的波形分析和统计工具来评估仿真结果。
如果需要进行更详细的分析,我们可以将波形数据导出到其他工具进行进一步处理。
总之,ModelSim是一个非常强大的数字电路和模拟软件。
掌握其基本操作和仿真流程,可以帮助我们更高效地进行数字电路设计和开发工作。
Modelsim仿真流程-经验总结1.Modelsim简介略。
2.modelsim仿真流程:modelsim基本的仿真流程包括建立库、建立工程并编译、仿真、调试、但在libero环境中运行modelsim时,软件自动映射库和生成工程文件。
其中功能仿真、综合仿真以及后仿真分别映射presynth、postsynth和postlayout库。
基本流程是:建立工作库→编译源代码→启动仿真→分析、调试。
2.1建立库并映射在modelsim中,任何使用VHDL、Verilog HDL、SystemC等语言实现的设计,都被编译到一个库中。
♥方法一:File>New>Library选择新建并映射到该库;♥方法二:在modelsim>提示符下运行命令vlib work2-建立库,vmap work work2-建立映射库;2.2建立工程Modelsim仿真需要建立自己的工程,同时modelsim还提供了文件夹管理工程的功能。
♥step1:File>New>project,并指定库文件名;♥step2:新建文件或导入文件;2.3编译文件建立好工程后,使用compile功能对源文件进行编译。
Libero环境启动modelsim时,系统执行run.do脚本文件自动编译源文件。
♥鼠标右击文件,选择compile All对所有的工程文件执行编译操作;♥启动仿真,使用simulation>start simulation>选择design选项卡功能使modelsim进入仿真状态,之后可以运行仿真。
在libero环境下,运行modelsim直接从运行仿真这一步骤开始。
♥运行仿真可以设置仿真时间或选择仿真全部♥tcl命令:do run.do –当设计修改后,使用此命令重新导入设计;Do wave.do-打开波形列表文件,或者向当前波形添加列表;Restart-复位当前仿真,从0时刻重新仿真;Run 1ms-运行仿真1ms时间;Run all-运行全部的仿真;在libero环境下,可以自己编写脚本文件代替run.do文件,在项目比较大的情况下可以大大简化仿真的操作。
使用ModelSim的仿真步骤:
1.建立工程:选file/new/project菜单,打开Create Project窗口.
填Project Name栏,为你的工程启一个名子.
按Browse按纽,为你的工程指定一个盘上目录,作为以后工程文件的存放位置.
指定缺省库名为Work库.
2.在出现的ADD ITEMS TO THE PROJECT窗口中选Create New File为当前工程加入一个新建文件,或选Add existing File为当前工程加入一个已存在的文件.
3.选Compile/compile All对当前设计工程进行编译.
4.选Simulate/Star Simulation菜单项,打开仿真器.
5.在仿真器中选Design页,点击WORK页前的加号,打开WORK 库,选一个仿真文件,选好后,点击右下脚的OK按纽.
6.在出现的Object窗口中,会有芯片的引脚列表.选一个引脚,压鼠标右键,弹出一菜单,在其中选Add to wave/Selected Signal菜单项,可将引脚对象加入到Wave窗口中.重复上述过程,将全部引脚加入到Wave波形窗口中.
7.在WAVE中,选一个引脚,用WAVE窗口的工具画加在引脚上的波形.
8.画完输入引脚的波形后,输入RUN –ALL,回车,执行仿真.
注:上述仿真过程,可用命令:
vsim work.filename
启动仿真窗口.
view wave
打开波形窗口
add wave –dec *
加入所有波形信号,以十进制方式force
为每个引脚加入驱动信号
run –all
执行仿真任务。
modelsim仿真详解-回复什么是ModelSim仿真?ModelSim是一种著名的仿真工具,用于数字和模拟电路的功能仿真和时序仿真。
它是由美国Mentor Graphics公司开发的,提供了一整套的仿真、调试和验证功能,广泛应用于电子设计自动化领域。
ModelSim仿真工具可以模拟数字电路的行为和时序,在仿真过程中可以观察和分析电路的运行状态,以验证设计的正确性。
它支持Verilog和VHDL两种高级硬件描述语言,并且提供了强大的波形编辑和调试功能,便于用户分析和调试设计中的问题。
ModelSim仿真的基本原理和流程是什么?ModelSim仿真的基本原理是利用编译过程将Verilog或VHDL代码转化为可执行的仿真模型,然后通过激励文件对模型进行驱动和刺激,最后观察波形输出并进行分析。
下面是ModelSim仿真的基本流程:1. 编写设计代码:使用Verilog或VHDL语言编写设计代码,包括设计模块、信号连接、时钟和复位逻辑等。
2. 创建测试平台:编写测试平台代码,包括生成激励信号和检查输出结果的内容。
3. 编译设计代码:使用ModelSim提供的编译器将设计代码编译成仿真模型,产生可执行的仿真对象文件。
4. 创建仿真模型:使用ModelSim提供的工具和命令,创建仿真模型并加载仿真对象文件。
5. 配置仿真环境:设置仿真时钟、仿真时间、仿真启动方式等仿真环境参数,准备仿真的相关设置。
6. 运行仿真:启动仿真过程,模拟电路的行为和时序,并根据测试平台的激励信号来驱动设计,产生波形输出。
7. 观察波形:利用ModelSim提供的波形窗口,观察和分析仿真波形结果,验证设计的正确性。
8. 调试和分析:根据波形结果来调试和分析电路中的问题,定位和解决设计中的错误,优化电路的性能。
ModelSim仿真工具的优势是什么?ModelSim仿真工具在电子设计自动化领域具有很高的知名度和广泛的应用,其主要优势如下:1. 支持多种设计语言:ModelSim支持Verilog和VHDL两种常用的硬件描述语言,用户可以根据自己的需求选择合适的语言进行设计和仿真。
Modelsim工具的使用一、仿真流程1.建立work库通常modelsim在使用的时候,和大多数开发软件一样,第一步先建立一个工程。
而modelsim在建立工程之前,一般都要建立一个工作库(library),命名为work,仿真的时候工程就运行在这个库里面。
通常modelsim在第一次运行的时候,并没有work这个库文件,所以没有work库的话,先建立一个work的library,再建立新的工程。
一般的工程路径设置如下:project→放置FPGA的工程文件,source→放置源代码(ipcore,建议放在工程的根目录下,有同事发现ipcore改变其路径,仿真的时候会出错,并且工程里面要手动添加IP核的文件),simulation→放置modelsim的仿真工程。
新建一个work库。
File→New-→Library刚建立的work库是空的,因为里面什么东西都没有,但是当添加了相应的文件后,编译一次,work就会有内容了。
新建的Work,右键设置Edit一下他的属性,如图上所示,pathname这里指定到存放仿真工程的work的库文件夹即可。
2.建立新工程File—>New- Project然后就会弹出如下对话框,选择好工程的路径,命名好工程名字。
,如果之前就已经编写好了v或者vhd文件的话,直接选择add existing file,否则,选择Create New File。
接下来把所有的v或者vhd的文件都添加进来。
3.编写testbench……4.编译整个工程编写完testbench之后,编译整个工程,以后每当工程中其中一个文件修改后,只需单独编译修改的那个文件即可。
(参见文档最后部分的例子)编译完后,会发现在Project中,里面的文件都会打钩,并且在simulation文件夹里面的子文件夹work会多了一些东西出来。
返回到Library这里,会发现之前是空的wrok文件库里面,现在也多了一些东西。
Modelsim 仿真方法总结Modeling 仿真工具是Model公司开发的。
它支持Verilog、VHDL以及他们的混合仿真.Modelsim各版本的使用方法大体一致,Modelsim仿真主要分为前仿真和后仿真。
下面来具体介绍modelsim的仿真方法,涉及quartus—modelsim联合(使用)仿真的差异会特别提示。
前仿真与后仿真说明1。
1 前仿真前仿真也称为功能仿真、行为仿真.旨在验证电路的功能是否符合设计要求,其特点是不考虑延迟(包括门延迟与线延迟),主要验证电路与理想情况是否一致。
前仿真需要用到RTL级代码(由源代码经过综合后产生)与Testbench。
1。
2)后仿真后仿真也称为时序仿真或者布局布线仿真。
是指在电路已经映射到特定的工艺环境以后,综合考虑门延迟与线延迟的影响,验证电路在一定的时序条件下是否存在时序违规以及能否满足设计构想的过程。
需要用到的文件是——从布局布线结果中抽象出来的门级网表、testbench和后缀名为sdo或者sdf的标准时延文件。
注:扩展名为sdo和sdf的标准时延文件包含门延迟与实际布线延迟,能较好的反应芯片的实际工作情况。
二)modelsim仿真主要有以下几个步骤:(1)建立库并映射库到物理目录;(2)编译源代码(包括Testbench);(3)执行仿真;解释:①库:modelsim中有两类仿真库.一种是工作库,默认名为work;另一种是资源库。
Work库中存放当前工程下所有已经编译过的文件,所以编译前一定要建立一个work 库.资源库存放work库中已经编译文件所要调用的资源,这样的资源可能有很多,它们被存放在不同的资源库内。
(例如要想对综合在cyclone芯片中的设计做后仿真,就需要有一个名为cyclone_ver的资源库.)映射库用于将已经预编译好的文件所在目录映射为一个modelsim可识别的库。
(此即是为仿真库建立一个逻辑映像的行为过程,后面会提到,在modelsim中新建库时,create a new library and a logical mapping to it或a map to an existing libraryd的提示) 上述三个步骤是大的框架,前仿真和后仿真均是按照这个框架进行的,建立modelsim工程对前后仿真来说都不是必须的.下面分别介绍每一步的操作。
基于FPGA设计的功能仿真和时序仿真来源:电子设计信息网作者:戚新宇时间:2008-06-11 发布人:林逸摘要:介绍了FPGA 设计流程中的仿真应用;详细讨论了FPGA 设计的功能仿真和时序仿真的各个步骤,重点阐述了仿真激励的添加方法和仿真库的编译等。
关键词:FPGA;ModelSim;功能仿真;时序仿真;库编译引言FPGA 设计流程包括设计输入,仿真,综合,生成,板级验证等很多阶段。
在整个设计流程中,完成设计输入并成功进行编译仅能说明设计符合一定的语法规范,并不能说明设计功能的正确性,这时就需要通过仿真对设计进行验证。
在FPGA 设计中,仿真一般分为功能仿真(前仿真)和时序仿真(后仿真)。
功能仿真又叫逻辑仿真,是指在不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验证;而时序仿真是在布局布线后进行,它与特定的器件有关,又包含了器件和布线的延时信息,主要验证程序在目标器件中的时序关系。
在有些开发环境中,如Xilinx ISE 中,除了上述的两种基本仿真外,还包括综合后仿真,转换(post-translate)仿真,映射后(post-map)仿真等,这样做完每一步都可进行仿真验证,从而保证设计的正确性。
ModelSim 是Mentor Graphics 子公司MentorTechnology 的产品,是当今最通用的FPGA 仿真器之一。
ModelSim 功能强大,它支持FPGA 设计的各个阶段的仿真,不仅支持VHDL 仿真,Verilog仿真,而且支持VHDL 和Verilog 混合仿真。
它不仅能做仿真,还能够对程序进行调试,测试代码覆盖率,对波形进行比较等。
ModelSim 有很多版本,像ModelSim/SE 是首要版本,除此之外还有ModelSim/XE 和ModelSim/AE,分别是为Xilinx公司和Altera 公司提供的OEM 版,其中已包含各公司的库文件,故用特定公司OEM 版进行仿真时就不需编译该公司的库了。
用ModelSim 进行功能仿真进行功能仿真首先要检查设计的语法是否正确;其次检查代码是否达到设计的功能要求。
下文主要介绍仿真步骤和测试激励的加载。
仿真步骤(1)建立库并映射库到物理目录因为用ModelSim 进行仿真是建立在仿真库的基础上的(此处进行的是功能仿真,因而不用编译特定厂商的库),所以首先要建立库并把库映射到实际的物理路径。
通常用户编译的文件都放在work库中,所以必须先建立work 库。
有两种方法建立并映射库,第一种方法是通过图形界面,在菜单Design→Create a New Library 弹出对话框,如图1 所示。
在Library Name 中输入work,如果建立其它库,可以输入其它名字。
Library Map to 是映射的物理路径。
第二种方法是用命令行的形式,建立库用ModelSim>vlib<库名>,映射库用ModelSim>vmap ,如建立并映射库work,就可以在ModelSim 主窗口命令提示符下输入vlib workvmap work work图1 建立新库的对话框(2)编译源代码该步骤主要检查源文件的语法错误。
实现方法有两种,一是通过菜单Design→Compile,出现选择源文件对话框,选择要编译的源文件,编译即可;二是通过命令行方式,这一步对于VHDL 和Verilog 所使用的命令是不一样的,对于VHDL 代码用vcom-work.vhd.vhd ,对于Verilog 代码用vlog-work.v.v,文件按出现的先后顺序编译,且支持增量编译。
编译后的文件会放在缺省当前work 库中。
(3)启动仿真器该步骤主要是把所有仿真的文件加载到当前的仿真环境中。
实现的方法两种,一是通过菜单Design→Load Design,出现加载对话框,选择要仿真的程序即可;二是通过命令行的形式vsim-lib ,这条命令对于VHDL 和Verilog 都一样。
(4)执行仿真该步骤是正式执行仿真了,在仿真前最重要的一个步骤就是加载激励,如要对下面的加法器进行仿真,加法器实体说明如下:entityAdd isport(D1: in std_logic_vector(7 downto 0);--输入D2: in std_logic_vector(7 downto 0);--输入D0: out std_logic_vector(7 downto 0);--输出CE: in std_logic;-使能,低有效Clk: in std_logic);--时钟endAdd;测试激励的加载激励的加载有四种方法:(1)命令行方式这种方法是通过在命令行下直接输入命令给信号加载激励,然后进行仿真。
如要对上面的加法器进行仿真,则输入如下命令:Vsim –t ps work.add//加载work 库中的实体add,时间分辨率为psAdd wave –hex D1Add wave –hex D2Add wave –hex D0Add wave ceAdd wave clk//把信号加载到波形窗口,hex 表示以16进制显示Force ce 0 //对ce 加激励为0Force clk 0 0,1 25 –r 50 //对clk 加载激励Force D1 16#2 //对D1 加载16 进制数2Force D2 16#1 //对D2 加载16 进制数1Run 100 //运行100 个时间单位如果要仿真其它数据,在命令行中改变激励就可以了,仿真的结果如图2 所示。
(2)宏文件法这种方法相当于DOS 的批处理。
它把所有的命令保存为以do 为后缀名的文件中,称为宏文件。
执行仿真时只要选择菜单Marco → ExecuteMarco,然后选择相应的宏文件执行即可,或者在命令行中输入do<宏文件名>。
执行仿真的结果如图2 所示。
(3)测试文件法上述两种方法只适合验证数据量小的程序,对程序进行简单验证,如果要验证的数据量较大,图2 仿真结果上述两种方法就比较麻烦,现在被广泛采用的是测试文件法。
这种方法其实是要设计者自己编写测试文件,把要验证的程序当成测试程序的一个模块,在测试文件中对要验证的程序加载激励。
以下就是针对上面加发器的测试文件:library ieee;use ieee.std_logic_1164.alluse ieee.std_logic_signed.allentity tb isend tbarchitecture a_tb of tb iscomponent Addport(D1 : in std_logic_vector(7 downto 0);D2 : in std_logic_vector(7 downto 0);D0 : out std_logic_vector(7 downto 0);CE : in std_logic;Clk: in std_logic);end component;signal D1 : std_logic_vector(7 downto 0) :=(other => ‘1’); signal D2 : std_logic_vector(7 downto 0) :=(other => ‘1’); signal D0 : std_logic_vector(7 downto 0) :=(other => ‘0’); signal CE : std_logic := ’0’;signal Clk : std_logicbegindut : Addport map(D1 => D1,D2 => D2,D0 => D0,CE => CE,Clk => Clk);Clk <= not Clk after 25 ns;processbeginwait until Clk = ‘1’ and Clk’event;D1 <= D1+1;D2 <= D2+2;end process;end a_tb;用这个测试文件产生的仿真波形如图3 所示:图3 仿真波形这种方法可以仿真大量的数据,对程序进行比较全面的仿真。
(4)textio 法方法(3)产生的激励数据一般很有规律,也容易分析,但同时也可能造成某些情况无法检测到。
所以做仿真时若希望验证一些没有规律的数据,则可以用textio 方法实现。
实际上它的输入激励是存储在dat 文件中的,在测试文件中读入这些数据,如果用VHDL 编写程序,需要textio 库和VHDL93 标准的支持,限于篇幅这里就不详细介绍,详情请参见有关文献。
用ModelSim 进行时序仿真时序仿真是FPGA 设计的重要步骤之一,它通常是在做完布局布线后进行,仿真中包含布局布线产生的延时信息。
时序仿真的方法和步骤和功能仿真基本相同,但有两点需要注意:一是一般布局布线后生成的网表并不包含timing 数据,会用一个SDF(Standard Delay Format)文件来存储timing数据,它通常是由布局布线工具产生,在做时序仿真时要用到。
上面启动仿真器加载时不仅要加载布局布线后生成的源文件,还要加载SDF 文件。
二是在用ModelSim SE 版本时,由于不包含特定厂商的库文件,而在做时序仿真时恰恰与特定的器件相关,要用到这些库,为了提高仿真速度,通常需要提前编译这些库,而且不同厂商编译库的方法不尽相同,本文以编译Xilnx 公司的库为例,介绍编译库的方法。
图4 Xilinx Libraries Aide 对话框这种方法是通过在Xilinx 的网站上下载的xilinx_lib_4.tcl 脚本进行的,选择菜单中的执行宏或者在命令行中输入source xilinx_lib_4.tcl,会弹出图4 所示的对话框,在选择所要编译的语言后,Xilinx Software Version、编译的库、Xilinx 路径和Modelsim 路径后就可以进行库的编译了。
其中较重要的是simprim(做时序仿真时用)和Xilinxcorelib (在进行Xilinx core 的电路仿真时用),这些库还有对应的Verilog 版本。
在进行库编译之前,最好把ModelSim 安装目录下的modelsim.ini 文件的只读属性去掉,这样可以把编译后的库信息加到该文件中,具体信息如下:simprim = C:/Modeltech_5.5b/simprimsimprims_ver = C:/Modeltech_5.5b/simprims_verxilinxcorelib = C:/ Modeltech_5.5b/xilinxcorelibxilinxcorelib_ver = C:/Modeltech_5.5b/xilinxcorelib_ver结束语通过对FPGA 设计中功能仿真和时序仿真的详细介绍,有助于熟练应用ModelSim 进行一系列仿真,同时也抛砖引玉地引导读者在实际中发现和应用ModelSim 的调试程序、比较波形等其他功能。