培训文档内容_第1页
培训文档内容_第2页
培训文档内容_第3页
培训文档内容_第4页
培训文档内容_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、1MODELSIM培训2培训文档内容培训文档内容1、建立项目2、建立库3、编译源代码4、启动仿真器5、执行仿真6、前、后仿真区别7、do文件的介绍8、界面介绍9、设计调试10、其他相关内容3建立项目建立库编译源代码启动仿真器执行仿真执行仿真过程需要的步骤执行仿真过程需要的步骤41、建立项目、建立项目打开MODELSIM选择File/New/Project, 出现右图所示的界面。Project Name 项目名称Project Location 项目存放路径Default Library Name 缺省库名(一般情况为work, 系统会在项目存放路径自建work子目录)52、建立库建立库Mode

2、lSim 库库需编译的引入文件需编译的引入文件n激励文件n源文件n源文件调用的子模块库的两种类型库的两种类型n 本次新建需编译的库本次新建需编译的库(缺省值 work)n包含当前被编译的设计单元n编译前必须建立一个work库n每个项目只允许一个work库n引用已有的库引用已有的库n包含能被当前编译引用的设计单元n在编译期间允许多个6建立库建立库建库菜单操作建库菜单操作从主菜单里面: Design - Create a New Library选择 a new library and a logical mapping to it和输入库名7建立库建立库建库命令行操作建库命令行操作 从main窗口

3、提示行后敲入命令: ModelSim vlib 如: vlib work /建立库名为work的库 vlib work2 /建立库名为work2的库8建立库建立库库的编译库的编译 库文件存放的库名 库文件存放的路径 Xilinx:布局布线工具安装目录verilogsrc 其中: simprims(后仿真库) uni9000,unisims,XilinxCorelib (前仿真库) Altera:布局布线工具安装目录edasim_lib9建立库建立库映射逻辑新库映射逻辑新库菜单操作(从主菜单里面 ) Design - Create a New Library-a map to an existi

4、ng library命令行操作(从主窗口提示行后敲入)语法: vmap vmap my_work c:my_designmy_lib /将my_work库的内容映射到my_lib10建立库建立库映射现有的库映射现有的库Select a map to an existing library and type library nameBrowse to library directory使用这条命令映射到已经编译的使用这条命令映射到已经编译的库库vmap my_lib g:/software/model55crk/modelsim55f/simprim/映射my_lib到已经编译的库g:/soft

5、ware/model55crk/modelsim55f/simprim建立库建立库删除库命令删除库命令作用:作用:从指定的库中删除一个完整的库或者一个设计单元操作:操作: 菜单操作: Design - Library Browser /删除库完整的库 命令行操作: vdel -lib /删除库中单元Use delete button to delete a library 12建立库建立库察看库内容察看库内容作用:作用:显示指定库的内容操作:操作:菜单操作: Design - Library Browser命令行操作: vdir -lib Use view button to view a l

6、ibrary 133、编译源代码、编译源代码模块激励的产生(模块激励的产生(1)文件格式:文件格式:激励文件基于Verilog的格式文件组成:文件组成: 精度时间确定精度时间确定 timescale 1ns/1ps /定义时间精度为1ps,时间单位为1ns 激励文件变量的定义激励文件变量的定义 定义变量的类型、数据宽度 激励文件变量的初始化激励文件变量的初始化 对变量复初值 如: initial begin fp=0; /在仿真起始时刻将fp赋0 clk=0; /在仿真起始时刻将clk赋0 rst_b=0; /在仿真起始时刻将rst_b赋0 #(100*clkth) rst_b=1; /在仿真

7、起始后(100*clkth)将rst_b赋1 end 14编译源代码编译源代码模块激励的产生(模块激励的产生(2)时钟的产生时钟的产生 :产生激励时钟如: always #clkth forever # clkth clk=clk; /在仿真起始经过clkth时间后,时钟每隔clkth翻转一次模块输入激励的产生模块输入激励的产生: 产生模块输入(同源代码中变量的产生方法一致)模块的调用:模块的调用: 同源文件中的模块引用一致如下例所示: dcc_pos_gen dcc_pos_gen_1(.dcc_pos(dcc_pos),.fp(fp),.clk(clk),.rst_b(rst_b); /按

8、照名称对应的方式调用模块dcc_pos_gen ,实例名为dcc_pos_gen_1仿真结束的时间限制仿真结束的时间限制: 确定仿真时间长度如: initial #(clkth*2*810*8) $finish; /仿真时间长clkth*2*810*8ns15编译源代码编译源代码加载源代码加载源代码源代码的路径源代码的路径和类型和类型通过菜单操作方式通过菜单操作方式需加载文件需加载文件 前仿真:前仿真:激励文件、模块文件、模块引用的字模块文件 后仿真(后仿真( Xilinx器件)器件) 激励文件、time_sim.v、glbl.v(该文件在布局布布 线工具安 装目录下。 后仿真(后仿真( Al

9、tera器件)器件) 激励文件、*.vo(布局布线产生的网表文件)16编译源代码编译源代码源代码的编译源代码的编译在Project窗口中,点击右键,选中Compile All即可对Project中所有文件进行编译,如下所示:17编译源代码编译源代码 Project窗口的调出窗口的调出View - Show Workspace即可在主窗口的左侧出现即可在主窗口的左侧出现 18编译源代码命令行编译源代码 语法语法 vlog -work .v .v 例如: vlog cpos77mv.v /编译源文件cpos77mv.v文件按出现的顺序被编译文件的顺序或者编辑的顺序不重要缺省编译到work库编译源代

10、码编译源代码Error Messages主窗口错误显示主窗口错误显示双击主窗口错误消息双击主窗口错误消息会自动弹出源代码窗会自动弹出源代码窗口并定位在错误代码口并定位在错误代码处处204、启动仿真器、启动仿真器加载顶模块加载顶模块从主菜单里面: Design - Load Design选择仿真器的分辨率选择仿真器的分辨率选择顶级选择顶级module 或或 entity/architecture21启动仿真器启动仿真器加载库文件加载库文件前仿真加载的库:前仿真加载的库: Xilinx:如果模块中用了core产生的代码,需 要加入相应的库。如加载编译有ram块,fifo、bufg等文件的库名 Al

11、tera:加载编译有altera_mf.v和220model.v 的库名后仿真加载的库:后仿真加载的库: Xilinx:需要添加后仿真的库(参考库的编译) Altera:库前仿真加载的库外,还需加跟器件相关的库,如:apexII_atoms.v编译产生的库22启动仿真器启动仿真器加载延时文件(后仿真专用)加载延时文件(后仿真专用)指定指定 SDF文件文件使用定时值的等级的使用定时值的等级的类型类型 (如果不是顶级如果不是顶级)Xilinx:延时文件*.sdf,由布局布线工具自动产生Altera:延时文件*.sdo,由布局布线工具自动产生23启动仿真器精度选择 命令行方式命令行方式-t 指定仿真

12、的时间分辨率单位可以是fs, ps, ns, ms, sec, min, hr如果用了 Verilog的 timescale指令, 将使用整个设计中的最小的时间精度可选项(缺省是 ns)菜单方式菜单方式245、执行仿真执行仿真MODELSIM的界面的界面25执行仿真执行仿真调出信号和波形窗口和源程序窗口调出信号和波形窗口和源程序窗口信号窗口信号窗口主窗口主窗口波形窗口波形窗口命令行方式命令行方式: View - Signals; View - Waves; View - Source26执行仿真执行仿真在波形窗口中加信号在波形窗口中加信号在signals窗口中: View - Wave ; 加

13、入加入signals窗口的信号到窗口的信号到wave窗口窗口加入设计中所有信号到加入设计中所有信号到wave窗口窗口加入加入signals窗口选中信号到窗口选中信号到wave窗口窗口27执行仿真执行仿真运行运行菜单方式:菜单方式: Run - Run-all命令行方式:命令行方式:run 例: run 100ns /从当前开始时刻运行100ns28执行仿真执行仿真菜单方式菜单方式选择选择 timesteps数量就数量就可以执行仿真可以执行仿真Restart 重装任何已改动重装任何已改动的设计元素并把仿真时间设的设计元素并把仿真时间设为零为零29执行仿真执行仿真仿真结果(前仿真)仿真结果(前仿真

14、)30执行仿真执行仿真仿真结果(后仿真)仿真结果(后仿真)31执行仿真执行仿真命令行方式命令行方式run 1000/从当前位置运行仿真 1000 时间单位run 2500 ns/从当前位置运行仿真2500 nsrun 3000/运行仿真到 3000时间单位32执行仿真执行仿真force命令命令force命令的使用对象:命令的使用对象: 简单的模块仿真force命令的输入方式:命令的输入方式: 直接从命令控制台输 .DO 文件 (宏文件)33执行仿真执行仿真force 命令(命令(1)常规语法常规语法: force , 例: force fp 1 4000ps , 0 8000ps /信号fp

15、在4000ps处置1,在8000ps处置0参数:参数:item_name强迫对象必需的可以使用通配符34执行仿真执行仿真force 命令(命令(2)其他参数valuen被强制的项的值n必须适合项的数据类型n必需的timen指定值的时间单位n相对于当前的仿真时间 用 符号指定绝对时间n时间单位能被指定 缺省值是仿真分辨率n可选的ValueDescription 1111 character sequence 2#1111 binary radix 10#15 decimal radix 16#F hexadecimal radix35执行仿真执行仿真force 命令举例命令举例force clr

16、 0/在当前仿真时间强制 clr 到 0,维持此状态force clr 1 100 ns/在当前仿真时间后100ns强制 clr到 1,维持此状态force bus2 16#4F 200/仿真启动后强制 bus2到 4F直到200时间单位 ,分辨率在仿真启动时选择force clk 0 0, 1 20 -repeat 50 -cancel 1000/在当前仿真后0时间单位强制clk到0和在20时间单位强制到1. 每50时间单位重复直到1000. 因此, 下一个 1 将在70时间单位发生366、执行仿真、执行仿真前仿真和后仿真的区别前仿真和后仿真的区别 Altera(前仿真)前仿真)Altera

17、(后仿真后仿真)Xilinx(前仿真前仿真)Xilinx(后仿真后仿真)引入文件引入文件(见(见14p)编写的源文件、激励文件产生的网表文件、激励文件编写的源文件、激励文件产生网表文件,激励文件,glbl.v加载的库加载的库(见(见20p)加载编译有altera_mf.v和220model.v 的库名多器件相关的库前仿真的库后仿真的库加载的延加载的延时文件时文件(见见21p)无*.sdo无*.sdf377、Do文件介绍文件介绍DO 文件文件自动完成仿真步骤的宏文件自动完成仿真步骤的宏文件库设置编译仿真强制仿真激励能在所有的能在所有的ModelSim 模式里被调用模式里被调用菜单操作 Macro

18、 - Execute命令行操作 do .do能调用其他的能调用其他的DO文件文件Do文件示例cd c:mydirvlib workvlog counter.vvsim counterview *add wave /*add list /*do run.do38Do文件介绍文件介绍DO 文件举例文件举例add 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

19、100force /data 16#A5 0force /clk 0 0, 1 50 -repeat 100run 1000cd c:mydirvlib workvlog counter.vvsim counterview *do stimulus.domy_sim.dostimulus.do398、界面介绍、界面介绍ModelSim 用户界面特征(用户界面特征(1)有九个窗口有九个窗口: main, structure, source, signals, process, variables, dataflow, wave, list支持任何窗口的多个副本支持任何窗口的多个副本拖放拖放n在一

20、个窗口选择HDL项后, 用鼠标左键,这些项能被从一个窗口拖和放到另一个窗口.nHDL项可从 Dataflow, List, Signals, Source, Structure, Variables, 和 Wave窗口拖出.n可把它们放到 List 或者 Wave 窗口40界面介绍界面介绍ModelSim 用户界面特征(用户界面特征(2) 自动更新窗口自动更新窗口nDataflow 窗口: 当一个进程被选到这个窗口的中央, Process, Signals, Source, Structure, 和 Variables 窗口会被更新.nProcess 窗口: 当一个进程被选择, Dataflo

21、w, Signals, Structure, 和Variables窗口被更新.nSignals 窗口: 当Signals窗口被选择,Dataflow 窗口是唯一被更新的窗口.nStructure 窗口: 当从你的设计结构中层次浏览中的一个被选择, Signals 和 Source 窗口将自动更新.41界面介绍界面介绍ModelSim 用户界面特征(用户界面特征(3)查找名称或搜索值查找名称或搜索值n除两个窗口外其他窗口都允许用户通过菜单EditFind查找项名称 。 只有 Main 和 Dataflow 窗口没有这个功能。n在List 和Wave 窗口, 能通过EditSearch 搜索HDL

22、项值。排序排序HDL 项项n用EditSort 菜单选项, HDL项能被排序(按升序,降序, 或声明顺序)。n缺省, 这些项按被声明的顺序排序。多个窗口副本多个窗口副本n从主窗口, 用ViewNew菜单选项建立额外的相同窗口的副本42界面介绍界面介绍 Main 窗口(窗口(1) ModelSim 这是设计加载前的提示符 能浏览帮助, 编辑库, 编辑源代码VSIM 设计加载后显示的提示符 告诉我们仿真器的行为动作命令信息声明43界面介绍界面介绍 Main 窗口窗口(2)Options - Simulation 44界面介绍界面介绍 Structure窗口窗口设计的结构多层浏览设计的结构多层浏览n

23、Verilog () 模块实例, 有名的 fork, begin, task, 和 functionn项目的层次关系n成为当前层 for Source 和 Signals 窗口, 更新 Process 和Variables 窗口COM) view structure45界面介绍界面介绍 Source窗口(窗口(1)从从Structure窗口选择窗口选择Options 菜单菜单 (源代码的控制浏览源代码的控制浏览)Color-codedn注释, 关键字, 字符串, 数字, 执行行, 标识符, 系统任务, 文本完全的编辑能力完全的编辑能力n保存 编译和重启拖放拖放描述描述/检查检查nVHDL 信号

24、, 变量和常数COM) view source46界面介绍界面介绍 Source窗口(窗口(2)描述描述n显示所选的HDL项的信息检查检查n显示所选HDL项当前仿真值1) 高亮信号, 变量, 常数, 线网, 或寄存器2) 右击鼠标并选择 Now 或 Object Menu - Examine/Description47界面介绍界面介绍 Process窗口窗口显示外部和内部的处理显示外部和内部的处理View - Activen显示当前仿真所有处理日志View - In Regionn显示Structure 窗口选择模块的处理信号的名字指示器指示器nProcess is scheduled to

25、be executedn处理正等待 VHDL 信号或Verilog 线网改变 或等待超时nProcess has executed a VHDL wait statement without a time-out or sensitivity listCOM) view process48界面介绍界面介绍 Signals窗口窗口紧跟紧跟Structure窗口窗口显示Structure窗口的当前层HDL项的名称和值排序排序 升序,降序或声明顺序升序,降序或声明顺序层次层次 - (+)可展开的可展开的, (-)已展开的已展开的“拖放拖放” Wave和List窗口COM) view signals4

26、9界面介绍界面介绍 Dataflow窗口窗口Verilog线网的图形描绘线网的图形描绘n信号或线网在窗口中央nProcesses that drive signal or net on the leftnProcesses that read the signal or are triggered by the net on the rightCOM) view dataflow50界面介绍界面介绍 Wave窗口窗口用波形浏览仿真结果图形化的历史记录用波形浏览仿真结果图形化的历史记录 Verilog 线网, 寄存器变量, 已命名事件对于更多的逻辑信号多个波形窗口用于对于更多的逻辑信号多个波形窗

27、口用于更多的逻辑信号更多的逻辑信号 可以启动仿真,停止仿真,单步运行等可以启动仿真,停止仿真,单步运行等 放大、缩小、增加鼠标等便于波形观察、放大、缩小、增加鼠标等便于波形观察、分析波形的正确性分析波形的正确性COM) view wave51界面介绍界面介绍 List窗口窗口用表格显示仿真结果用表格显示仿真结果 Verilog 线网和寄存器变量从这个窗口或到这个窗口从这个窗口或到这个窗口“拖放拖放”编辑功能编辑功能 查找查找建立用户定义的总线建立用户定义的总线 EditCombine设置触发和选通设置触发和选通 Write List - Tabular, Event or TSSI Marker - Add, Delete or GotoCOM) view list529、设计调试、设计调试断点设置断点设置什么时候调试什么时候调试?n编译失败n不正确或意外的仿真结果支持两种类型的断点支持两种类型的断点n在源代码窗口设置断点在源代码窗口设置断点

温馨提示

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

评论

0/150

提交评论