Modelsim的功能仿真和时序仿真

上传人:大米 文档编号:511745867 上传时间:2022-09-25 格式:DOC 页数:4 大小:27.50KB
返回 下载 相关 举报
Modelsim的功能仿真和时序仿真_第1页
第1页 / 共4页
Modelsim的功能仿真和时序仿真_第2页
第2页 / 共4页
Modelsim的功能仿真和时序仿真_第3页
第3页 / 共4页
Modelsim的功能仿真和时序仿真_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Modelsim的功能仿真和时序仿真》由会员分享,可在线阅读,更多相关《Modelsim的功能仿真和时序仿真(4页珍藏版)》请在金锄头文库上搜索。

1、FPGA设计流程包括设计输入,仿真,综合,生成,板级验证等很多阶段。在整个设计流程中,完成设计输入并成功进行编译仅能说明设计符合一定的语法规范,并不能说明设计功能的正确性,这时就需要通过仿真对设计进行验证。在FPGA设计中,仿真一般分为功能仿真(前仿真)和时序仿真(后仿真)。功能仿真又叫逻辑仿真,是指在不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验证;而时序仿真是在布局布线后进行,它与特定的器件有关,又包含了器件和布线的延时信息,主要验证程序在目标器件中的时序关系。在有些开发环境中,如XilinxISE中,除了上述的两种基本仿真外,还包括综合后仿真,转换(post-transla

2、te)仿真,映射后(post-map)仿真等,这样做完每一步都可进行仿真验证,从而保证设计的正确性。ModelSim是MentorGraphics子公司MentorTechnology的产品,是当今最通用的FPGA仿真器之一。ModelSim功能强大,它支持FPGA设计的各个阶段的仿真,不仅支持VHDL仿真,Verilog仿真,而且支持VHDL和Verilog混合仿真。它不仅能做仿真,还能够对程序进行调试,测试代码覆盖率,对波形进行比较等。ModelSim有很多版本,像ModelSim/SE是首要版本,除此之外还有ModelSim/XE和ModelSim/AE,分别是为Xilinx公司和Alt

3、era公司提供的OEM版,其中已包含各公司的库文件,故用特定公司OEM版进行仿真时就不需编译该公司的库了。用ModelSim进行功能仿真进行功能仿真首先要检查设计的语法是否正确;其次检查代码是否达到设计的功能要求。下文主要介绍仿真步骤和测试激励的加载。仿真步骤(1)建立库并映射库到物理目录因为用ModelSim进行仿真是建立在仿真库的基础上的(此处进行的是功能仿真,因而不用编译特定厂商的库),所以首先要建立库并把库映射到实际的物理路径。通常用户编译的文件都放在work库中,所以必须先建立work库。有两种方法建立并映射库,第一种方法是通过图形界面,在菜单DesignCreateaNewLibr

4、ary弹出对话框,如图1所示。在LibraryName中输入work,如果建立其它库,可以输入其它名字oLibraryMapto是映射的物理路径。第二种方法是用命令行的形式,建立库用ModelSimvlib1);signalD2:std_logic_vector(7downto0):=(other=1);signalD0:std_logic_vector(7downto0):=(other=0);signalCE:std_logic:=0;signalClk:std_logicbegindut:Addportmap(D1=D1,D2=D2,D0=D0,CE=CE,Clk=Clk);Clk=no

5、tClkafter25ns;processbeginwaituntilClk=1andClkevent;D1=D1+1;D2=D2+2;endprocess;enda_tb;用这个测试文件产生的仿真波形如图3所示:这种方法可以仿真大量的数据,对程序进行比较全面的仿真。(4)textio法方法(3)产生的激励数据一般很有规律,也容易分析,但同时也可能造成某些情况无法检测到。所以做仿真时若希望验证一些没有规律的数据,则可以用textio方法实现。实际上它的输入激励是存储在dat文件中的,在测试文件中读入这些数据,如果用VHDL编写程序,需要textio库和VHDL93标准的支持,限于篇幅这里就不详

6、细介绍,详情请参见有关文献。用ModelSim进行时序仿真时序仿真是FPGA设计的重要步骤之一,它通常是在做完布局布线后进行,仿真中包含布局布线产生的延时信息。时序仿真的方法和步骤和功能仿真基本相同,但有两点需要注意:一是一般布局布线后生成的网表并不包含timing数据,会用一个SDF(StandardDelayFormat)文件来存储timing数据,它通常是由布局布线工具产生,在做时序仿真时要用到。上面启动仿真器加载时不仅要加载布局布线后生成的源文件,还要加载SDF文件。二是在用ModelSimSE版本时,由于不包含特定厂商的库文件,而在做时序仿真时恰恰与特定的器件相关,要用到这些库,为了

7、提高仿真速度,通常需要提前编译这些库,而且不同厂商编译库的方法不尽相同,本文以编译Xilnx公司的库为例,介绍编译库的方法。这种方法是通过在Xilinx的网站上下载的xilinx_lib_4.tcl脚本进行的,选择菜单中的执行宏或者在命令行中输入sourcexilinx_lib_4.tcl,会弹出图4所示的对话框,在选择所要编译的语言后,XilinxSoftwareVersion、编译的库、Xilinx路径和Modelsim路径后就可以进行库的编译了。其中较重要的是simprim(做时序仿真时用)和Xilinxcorelib(在进行Xilinxcore的电路仿真时用),这些库还有对应的Veri

8、log版本。在进行库编译之前,最好把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的调试程序、比较波形等其他功能。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号