modelsim软件使用.ppt
《modelsim软件使用.ppt》由会员分享,可在线阅读,更多相关《modelsim软件使用.ppt(69页珍藏版)》请在三一办公上搜索。
1、逻辑设计与FPGA,仿真软件Modelsim的基本知识,福州大学微电子系,仿真与验证,1、编写测试验证程序1.1、测试验证程序有三个主要目的1.2、典型的测试验证程序形式2、激励波形产生2.1、值序列2.2、重复模式3、测试验证程序实例3.1、解码器 3.2、触发器,Verilog模块的测试,目的:如何编写的测试文件,对所做的设计进行完整的测试和验证。掌握组织模块测试的常用方法学会编写常用的测试代码。,模块的测试,1、编写测试验证程序,测试验证程序用于测试和验证设计的正确性。Verilog HDL提供强有力的结构来编写测试验证程序。,1、编写测试验证程序,1.1、测试验证程序有三个主要目的:1
2、)产生模拟激励(波形);2)将输入激励加入到测试模块并收集其输出响应;3)将响应输出与期望值进行比较。,1.2、典型的测试验证程序形式,module Test_Bench;(不做端口声明)/通常测试验证程序没有输入和输出端口。Local_reg_and_net_declarations(端口声明)Generate_waveforms_using_initial_&_always_statemen(产生激励波形)Instantiate_module_under_test(例化被测模块)Monitor_output_and_compare_with_expected_values(输出监控或直接波
3、形输出)endmodule测试时,通过在测试验证程序中进行实例化,将激励自动加载于测试模块。,1.2、典型的测试验证程序形式,测试模块常见的形式:module XX_tb;reg;/被测模块输入变量类型定义wire;/被测模块输出变量类型定义initial begin;end/产生测试信号always begin;end/产生测试信号tsint m(.in1(ina),.in2(inb),.out1(outa),.out2(outb);/被测模块的实例引用initial begin.;.;end/记录输出和响应endmodule,1.2、典型的测试验证程序形式,测试模块中常用的过程块:,alw
4、ays,所有的过程块都在0时刻同时启动;它们是并行的,在模块中不分前后。initial块 只执行一次。always块 只要符合触发条件可以循环执行。,1.2、典型的测试验证程序形式,如何描述激励信号:module t;reg a,b,sel;/被测模块的输入信号用寄存器赋值wire out;/被测模块的输出信号/引用多路器实例 mux2 m(out,a,b,sel);/加入激励信号 initial begin a=0;b=1;sel=0;#10 b=0;#10 b=1;sel=1;#10 a=1;#10$stop;end,1.2、典型的测试验证程序形式,如何观察被测模块的响应:在initial
5、 块中,用系统任务$time 和$monitor$time 返回当前的仿真时刻$monitor 只要在其变量列表中有某一个或某几个变 量值发生变化,便在仿真单位时间结束时显示其变 量列表中所有变量的值。例:initial begin$monitor($time,“out=%b a=%b b=%b sel=%b”,out,a,b,sel);end,2、激励波形产生,有两种产生激励值的主要方法:产生值序列,即在确定的离散时间间隔加载激励。2)产生重复模式的波形。,2.1、值序列,A1、产生值序列的最佳方法是使用initial语句。initialbegin Reset=0;#100 Reset=1;
6、#80 Reset=0;#30 Reset=1;end产生的波形如图所示。Initial语句中的赋值语句用时延控制产生波形。此外,语句内时延也能够按如下实例所示产生波形。,因为使用的是阻塞性过程赋值,上面语句中的时延是相对时延。,2.1、值序列,B、若要重复产生一个值序列,可以使用always语句替代initial语句。Parameter REPEAT_DELAY=35;Integer CoinValue;alwaysbeginCoinValue=0;#7 CoinValue=25;#2 CoinValue=5;#8 CoinValue=10;#6 CoinValue=5;#REPEAT_DE
7、LAY;end,这是因为initial语句只执行一次而always语句会重复执行,2.2、重复模式,A、重复模式的生成通过使用如下的连续赋值形式加以简化:assign#(PERIOD/2)Clock=Clock;但是这种做法并不完全正确。问题在于Clock是一个线网(只有线网能够在连续赋值中被赋值),它的初始值是z,并且,z等于x,x等于x。因此Clock的值永远固定为值x。现在需要一种初始化Clock方法。可用initial语句实现。initial Clock=0;但是现在Clock必须是寄存器数据类型(因为只有寄存器数据类型能够在initial语句中被赋值),因此连续赋值语句需要被变换为a
8、lways语句。always#(PERIOD/2)Clock=Clock;,2.2、重复模式,B1、下面是一个完整的时钟产生器模块。Module Gen_Clk_A(Clk_A);output Clk_A;reg Clk_A;parameter tPERIOD=10;initialClk_A=0;always#(tPERIOD/2)Clk_A=Clk_A;endmodule,2.2、重复模式,B2、下面给出了产生周期性时钟波形的另一种可选方式。Module Gen_Clk_B(Clk_B);output Clk_B;reg Start;initialbeginStart=1;#5 Start=
9、0;endnor#2(Clk_B,Start,Clk_B);endmodule,initial语句将Start置为1,这促使或非门的输出为0(从x值中获得)。5个时间单位后,在Start变为0时,或非门反转产生带有周期为4个时间单位的时钟波形。,2.2、重复模式,B3、如果要产生高低电平持续时间不同的时钟波形,可用always语句建立模型。Module Gen_Clk_C(Clk_C);Parameter tON=5,tOFF=10;Output Clk_C;Reg Clk_C;always begin#tON Clk_C=0;#tOFF Clk_C=1;end endmodule,3、测试验
10、证程序实例,out,module mux2_m(out,a,b,sl);input a,b,sl;output out;wire sela,nsl,selb not u1(ns1,sl);and#1 u2(sela,a,nsl);and#1 u3(selb,b,sl)or#2 u4(out,sela,selb)endmodule,3、测试验证程序实例,module t;reg a,b,sel;wire out;mux2_m tt(out,a,b,sel);/引用多路器实例initial begin a=0;b=1;sel=0;#10 b=0;#10 b=1;sel=1;#10 a=1;#10$
11、stop;end/加入激励信号initial begin$monitor($time,“out=%b a=%b b=%b sel=%b”,out,a,b,sel);endendmodule,3、测试验证程序实例,下例是D触发器及其测试模块。module MSDFF(D,C,Q,Qbar);input D,C;output Q,Qbar;reg Q;always(posedge C)Q=D;assign Qbar=Q;endmodule,3、测试验证程序实例,module Test;reg D,C;wire Q,Qb;MSDFF MSDFFM1(D,C,Q,Qb);always#5 C=C;in
12、itialbeginD=0;C=0;#40 D=1;#40 D=0;#40 D=1;#40 D=0;$stop;endinitial$monitor(“Time=%t:C=%b,D=%b,Q=%b,Qb=%b,$time C,D,Q,Qb);endmodule,在此测试验证模块中,触发器的两个输入和两个输出结果均设置了监控,故只要其中任何值发生变化就输出指定变量的值。,Modelsim软件使用,4.1 ModelSim简介 4.2 ModelSim的安装4.3 ModelSim的使用4.4 从例子开始学习ModelSim,4.1 ModelSim简介,ModelSim为HDL仿真工具,我们可以
13、利用该软件来实现对所设计的VHDL或Verilog程序进行仿真,支持IEEE常见的各种硬件描述语言标准。可以进行两种语言的混合仿真。ModelSim常见的版本分为ModelSim XE和ModelSim SE两种,ModelSim版本更新很快,但功能基本一致。,4.1 ModelSim简介,本节将对ModelSim6.2b版本进行介绍,有关更深入地教程,还是参考ModelSim附带的文档。在网址/上也可以找到深入的教程,在该页面上注册以后,会在电子邮件中收到发过来的密码,根据邮件地址和密码登陆后,会有一些高级教程和使用要点(Application Notes)下载。,4.1 ModelSim简
14、介,如果ModelSim是和ISE一起使用的话,你需要编译Xilinx的一些库文件,这些库文件包括unisim、simprim、xilinxcorelib、aim、pls、cpld等,有了这些库文件,可以在ISE中生成设计的行为仿真(将设计转换为RTL描述后进行的仿真)、转换后仿真(将设计转换为Xilinx器件的基本模块来实现后进行的仿真)、映射后仿真(将设计用Xilinx的具体器件的具体模块实现后进行的仿真,仿真中包含了器件的延时,但由于没有布局布线无法提取出互连线的信息,因此仿真中不包含互连线的延时、电容、电阻等信息)。,4.1 ModelSim简介,布局布线后仿真(将设计用Xilinx具
15、体器件进行布局布线后,提取出互连线的信息,进行的仿真)的各种模型,然后在ModelSim中对这些模型进行仿真,由于ISE和ModelSim已经实现了无缝连接,在ISE中只需设置一个可视的波形文件,然后点几下鼠标就可以实现各种仿真。同时,也可以使用ModelSim的XE(Xilinx Edition)版本,由于该版本是Xilinx版,其中自然就集成了Xilinx的各种库文件,使用时就不需要考虑库文件方面的问题了。对于ISE不同版本集成了不同版本的ModelSim,虽然是集成,还是需要单独进行安装的。,4.2 ModelSim的安装,安装说明:1.运行setup,安装程序。选择“Full prod
16、uct”选项。当询问security key的时候,选择 NO。当你看见“License Wizard”对话框时候,选择“close”。2.运行keygen,生成license.dat,把它拷贝到 c:flexlm 目录。3.设置环境变量:LM_LICENSE_FILE=c:flexlmlicense.dat(选择我的电脑按右键,选“属性”,再选“高级”,可以看到环境变量按钮)4.运行ModelSim,OK。,4.3 ModelSim的使用说明,接下去我们来从一个简单的例子学习ModelSim的简单使用。,4.3.1 ModelSim 用户界面特征,有九个窗口:main,source,obje
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- modelsim 软件 使用
链接地址:https://www.31ppt.com/p-6512585.html