用ModelSim作功能仿真(8)_第1页
用ModelSim作功能仿真(8)_第2页
用ModelSim作功能仿真(8)_第3页
用ModelSim作功能仿真(8)_第4页
用ModelSim作功能仿真(8)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、用ModelSim作功能仿真(8)3 编译源代码(Verilog)vUI) Design - CompilevCmd) vlog -work .v .v文件按出现的顺序被编译文件的顺序或者编辑的顺序不重要v支持增量式编译(只有被改动的设计单元被编译)v缺省编译到work库例如. vlog my_design.v用ModelSim作功能仿真(9)3 编译源代码点亮一个或多个文点亮一个或多个文件并点击件并点击 Compile用ModelSim作功能仿真(10)3 编译源代码-错误信息错误信息在错误信息在 Main 窗口显示窗口显示在信息上双击,引起在信息上双击,引起错误的代码在错误的代码在 Sou

2、rce 窗口被点亮窗口被点亮用ModelSim作功能仿真(11)4 启动仿真器vUI) Design - Load New DesignCmd) vsim -lib vVHDLvsim top_entity top_architecturevVerilogvsim top_level1 top_level2仿真多个top级模块用ModelSim作功能仿真(11)4 启动仿真器选择仿真器的分辨率选择仿真器的分辨率选择库选择库选择顶级选择顶级module 或或 entity/architecture用ModelSim作功能仿真(12)4 启动仿真器指定指定 SDF文件文件使用定时值的等级的使用定时

3、值的等级的类型类型 (如果不是顶级如果不是顶级)用ModelSim作功能仿真(13)4 启动仿真器-vsim 命令的参数 参数 -t 指定仿真的时间分辨率 单位可以是fs, ps, ns, ms, sec, min, hr 如果用了 Verilog的 timescale指令, 将使用整个设计中的最小的时间精度 可选项(缺省是 ns) -sdfmin | -sdftyp | -sdfmax = 注释SDF文件 可选项 使用实例名也是可选项; 如果没有使用, SDF用于顶级用ModelSim作功能仿真(14)5 执行仿真v UI) RunCMD) run v 按timesteps指定的时间长度执行

4、仿真5 执行仿真(UI)选择选择 timesteps数量就数量就可以执行仿真可以执行仿真Restart 重装任何已改动重装任何已改动的设计元素并把仿真时间设的设计元素并把仿真时间设为零为零COM) restart5 执行仿真-run 命令参数命令参数n可选的参数 - 指定运行的timesteps数量单位可用fs, ps, ns, ms, sec -stepSteps to the next HDL statement -continue继续上次在-step或断点后的仿真 -all运行仿真器直到没有其他的事件5 执行仿真-run 命令举例命令举例vrun 1000 从当前位置运行仿真 1000

5、timestepsvrun 2500 ns 从当前位置运行仿真2500 nsvrun 3000 运行仿真到 timestep 30005 执行仿真-仿真器激励v测试台 Verilog 或 VHDL代码非常复杂的仿真(交互式仿真、数据量大的仿真)vforce命令简单的模块仿真直接从命令控制台输入.DO 文件 (宏文件)5 执行仿真-仿真器激励vforce命令简单的模块仿真直接从命令控制台输入.DO 文件 (宏文件)v测试台(test bench) Verilog 或 VHDL代码非常复杂的仿真(交互式仿真、数据量大的仿真)5 执行仿真-仿真器激励Force命令v允许用户给VHDL的信号和Veri

6、log的线网予以激励v常规语法: force , v参数5 执行仿真-仿真器激励Force命令参数 item_name-被激励的HDL项的名称,是必选的-必须是一个标量-可以是一个被编址的阵列, 阵列的一部分-可以采用通配符(在只有一个匹配的时候) value-被激励项的值,是必选的-必须适合该项的数据类型 time-指定值的时间单位,可选的-相对于当前的仿真时间,用 character指定绝对时间-时间单位能被指定,缺省值是仿真分辨率ValueDescription 1111 character sequence 2#1111 binary radix 10#15 decimal radix

7、 16#F hexadecimal radix5 执行仿真-仿真器激励Force命令参数 -repeat -在指定周期重复force命令,是可选的 -cancel -在指定周期后取消强制force命令,是可选的5 执行仿真-仿真器激励Force命令举例:vforce clr 0在当前仿真时间强制 clr 到 0vforce bus1 01XZ 100 ns在当前仿真时间后100ns强制 bus1到 01XZvforce bus2 16#4F 200仿真启动后强制 bus2到 4F直到200时间单位 ,分辨率在仿真启动时选择vforce clk 0 0, 1 20 -repeat 50 -can

8、cel 1000在当前仿真后0时间单位强制clk到0和在20时间单位强制到1. 每50时间单位重复直到1000. 因此, 下一个 1 将在70时间单位发生vforce clk2 1 10 ns, 0 20 ns -r 100 ns和上一个例子相似。-r前面的时间单位表达式必须放在大括号里5 执行仿真-仿真器激励.do文件v自动完成仿真步骤的宏文件库设置编译仿真强制仿真激励v能在所有的ModelSim 模式里被调用UI) Macro - ExecuteCOM) do .dov能调用其他的DO文件5 执行仿真-仿真器激励.do文件举例cd c:mydirvlib workvcom counter.

9、vhdvsim counterview *add wave /*add list /*do run.doadd wave /clkadd wave /clradd wave /loadadd wave -hex /dataadd wave /qforce /clk 0 0, 1 50 -repeat 100force /clr 0 0, 1 100run 500force /load 1 0, 0 100force /data 16#A5 0force /clk 0 0, 1 50 -repeat 100run 1000cd c:mydirvlib workvcom counter.vhdvs

10、im counterview *do stimulus.domy_sim.dostimulus.do5 执行仿真-仿真器激励测试台文件(test bench)v针对复杂的仿真vVHDL文件或者Verilogv在测试台文件中将设计模块实例化-将测试台文件置于TOP层,调用设计模块 -在测试台文件中加载时钟激励信号,以及给部分信号赋初值v测试台文件的写法与设计模块写法有区别- 一些符合语法但又无法被综合的语句(根据具体的综合工具而定),可以在测试台文件中使用设置断点:v支持两种类型的断点1、在源代码窗口设置断点Toggles 再次点击删除断点没有断点数量的限制用 bp 命令:bp 2、条件断点wh

11、en when b=1 and c/=0与VHDL信号和Verilog 线网和寄存器一起使用也可用 bp 命令:bp if$now/=100thencont用ModelSim作时序仿真v时序仿真的含义v时序仿真的实现方法v其他问题时序仿真的含义:v布局布线后进行的后仿真v包含有延时信息v仿真结果可能与功能仿真不相同v除功能仿真时需要的文件以外,还需要网表文件(如time_sim.vhd或time_sim.v)和包含延时信息的文件(time_sim.sdf文件)时序仿真的实现方法:编译Xilinx公司的库文件:v 先将modelsim.ini文件的只读属性去掉v 将Xilinx公司元件库的脚本文

12、件COPY到modelsim的安装目录下v 在main窗口运行:MODELSIM source /xilinx_lib.tcl这里的路径一定要用/来表示,比如e:/tools/xilinxv 看到弹出对话框后,选择相应的选项,进行库的编译时序仿真的实现方法:v unisim库是用来对ISE中画的电路图进行前仿真时用的。vsimprim则是在作布线后的时序仿真时用。时序仿真的实现方法:以Foundation为例:v Foundation所产生的netlist不包含time delay的数据,有一个time_sim.SDF文件来存储TIMING数据。(有的厂商的布局布线所产生的NETLIST文件已

13、经包含有time delay的数据).v Foundation所产生的NETLIST文件默认的文件名是time_sim.vhd(或time_sim.v)v time_sim.vhd或time_sim.v文件用到新的simprim库,因此必须在仿真前先建立。v 做时序仿真,要编译time_sim.vhd或time_sim.v,以及time_sim.SDFv 加载测试文件时序仿真的容易遇到的问题:以Xilinx公司的为例:vGSR信号产生的影响(可以通过改变输入信号时延来解决)vD触发器的setup time不足(可以通过分析SDF文件来追究错误所在)关于关于modelsim.ini文件文件vModelSim使用 ASCII文件, 由用户控制v在ModelSim的安装目录一个缺省文件被提供vmodelsim.ini被编译器和仿真器使用 存有初始信息 库定位启动文件的定位ModelSim其他缺省设定Library:逻辑上的LIBRARY与实际硬盘驱动目录的连接vcom:COMPILE时的一些选项的默认值,0=OFF,1=ONvsim:仿真时参数的设定vmodelsim.ini缺省为只读属性,故编译库文件时应该将只读属性去掉。总结

温馨提示

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

评论

0/150

提交评论