ModelSim入门指导_第1页
ModelSim入门指导_第2页
ModelSim入门指导_第3页
ModelSim入门指导_第4页
ModelSim入门指导_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、QUESTA-SIM(QuestaSim)10.2入门指南平台软件:Questa-Sim 10.2 版本Starter Edition,也适用于高版本的ModelSim软件。内容一. 设计流程典型设计流程包括如下所示:(1)设计输入 设计的行为或结构描述 (2)RTL仿真(ModelSim) 功能仿真 验证逻辑模型(没有使用时间延迟) 可能要求编辑设计 (3)综合 把设计翻译成原始的目标工艺 最优化合适的面积要求和性能要求 (4)布局和布线 映射设计到目标工艺里指定位置 指定的布线资源应被使用 (5)门级仿真 (ModelSim) 时序仿真 验证设计一旦编程或配置将能在目标工艺里工作 可能要求

2、编辑设计 (6)时序分析 (7)验证合乎性能规范 可能要求编辑设计 (8)版图设计 (9)仿真版图设计 (10)在板编程和测试器件 使用QuestaSi/ModelSim仿真的基本流程为:图1.1 使用QuestaSim仿真的基本流程2 开始1.1 新建工程打开QuestaSim后,其画面如图2.1所示。图2.1 QuestaSim画面1. 创建工作目录E:/QuestaSim/, 在其路径下创建子文件夹/ip、/prj、/rtl、/tb, prj是QuestaSim工程主文件夹,ip是仿真模型目录,rtl是代码目录,tb是testbench目录。2. 选择File>New>Pre

3、ject创建一个新工程。打开的Create Project对话框窗口,可以指定工程的名称、路径和缺省库名称。一般情况下,设定Default Library Name为work。指定的名称用于创建一个位于工程文件夹内的工作库子文件夹。该对话框如图2.2所示,此外还允许通过修改初始化文件QuestaSim.ini文件来映射库设置。图2.2 创建工程的对话框 2. 设置Project Name为BG0806,Project Location为E:/QuestaSim/prj, 勾选Copy Library Mappings ,点击OK。 3. 出现Add Items to the

4、 Project的对话框,如图2.3所示,图2.3 在工程中,添加新项目 1.2 在工程中添加新项目在Add Items to the Project对话框中,包括以下选项:· Create New File使用源文件编辑器创建一个新的Verilog、VHDL、TCL或文本文件 · Add Existing File添加一个已存在的文件 · Create Simulation创建指定源文件和仿真选项的仿真配置 · Create New Folder创建一个新的组织文件夹 1.2.3 创建新文件1. 单击Create New File。打开图2.

5、4所示窗口。图2.4创建工程文件夹2. 输入文件名称:bg0806_dp_top,然后选择文件类型为Verilog。图2.5 输入工程文件信息 3. 单击OK,关闭本对话框。新的工程文件将会在工程窗口显示。单击Close,以关闭Add Items to the Project。图2.6 RTL设计文件 4. 双击打开datapath_top.v文件(注意:若是Verilog文件已经关联了其他的文本编辑器,则双击后在关联的文本编辑器中打开)。每一个.v文件录入完成后,单击Save,保存rtl代码。 1.2.4 添加RTL代码 通常情况下,程序员不会在QuestaSim直接录入

6、RTL代码,推荐使用GVIM8.0代码编辑器编辑RTL代码,然后选择Add Existing File则直接将E:/QuestaSim/rtl/*.v添加到工程,不用特意指定顶层文件,仿真时软件会自动识别顶层文件。  1. 选择Project>Add to Project>Existing File,如图2.14所示。图2.7添加文件到工程中  2. 单击打开,在Add file to the project窗口,单击OK。  1.2.5 添加TestBench代码 TB文件保存在E:/QuestaSim/tb/,同样添加到工程目录下,TestBenc

7、h文件的写法参考相关文献,此处不赘述。1.3 编译文件 在Project标签下的Status列的问号,表示文件尚未编译进工程,或者在最后编译前,源文件有所改动。欲编译文件,选择Compile<Compile ALL,或者右击Project标签,选择Compile>Compile All。倘若此处没有错误,编译成功的消息,就会在Transcript窗口如图2.8所示,如果有错误,双击出错的地方,修改RTL代码。图2.8 编译成功1.4 仿真 1. 点击工具栏上的图2.9 仿真设置1 (1) 点击Optimization Options > Visibility,勾选full d

8、ebug mode图2.9 仿真设置2 (2) 点击Libraries,添加仿真库,xilinx仿真库的添加方法参考下文图2.10 仿真设置2 (3) 添加define库,在Project工程目录空白处右键选择Propereies,在Project Compiler Setting窗口选择verilog & SystemVerilog>other verilog options>Include Directory添加define文件所在的目录,点击OK。图2.11 仿真设置3 单击图标,选择Design,然后选择TestBench。单击OK,如下图所示。图2.12 开始仿真

9、 仿真完之后出现多了2个窗口sim和Objects,sim窗口显示了层次目录,Objects窗口显示了sim窗口选择的模块的所有信号列表,可以筛选所需信号。 图2.13 仿真结束后的界面截图  右键信号,然后选择Add to> Wave>Select Signals,在Wave窗口出现下图所示,在Run Length列输入仿真时间长度为10ms,点击图标,运行若干秒后,查看波形。 Debug 常用按键 f : 可查看仿真的完整波形,也可以单击Zoom Out(O) 图标。 ctrl + 鼠标左键选择 : 选定任意波形区间进行放大。 注: 修改完RTL代码之后必须重新编译,

10、然后点击重新仿真。二. 软件设置常见问题 2.1 如何在Questa-Sim软件里添加xilinx的仿真库 QuestaSim一定要安装在不带空格的目录下,即不要安装在“Program Files”目录下。本人是安装在D:softwareQuestaSim目录下,Xilinx软件也最好安装在不带空格的目录下。 1、找到开始菜单->程序->Xilinx Design Tools 11 -> 64/32-bit tools -> Simulation Library Compilation Wizard. 2、选定QuestaSim的版本,以及指定QuestaSim的安装路

11、径。 3、选择Both VHDL and Verilog。 4、选择支持哪些系列的芯片,看自己需要增减。 5、默认选全上即可。 6、指定编译完后的库存放位置,这里作者在QuestaSim安装目录下新建了xilinx_lib的文件夹,并指定到这里。(注意不要指向带空格的路径) 7、运行 Lauch Compile Process,即开始编译库文件,需要几十分钟。编译完成后应该在xilinx_lib目录下多出如下文件夹: 8、右键打开QuestaSim目录下的QuestaSim.ini文件,先将其“只读”属性去掉。然后用记事本打开。在Library下面添加如下代码,即之前编译好的Xilinx库的路

12、径。 unimacro = D:/softwares/QuestaSim/xilinx_lib/unimacro unimacro_ver = D:/softwares/QuestaSim/xilinx_lib/unimacro_ver unisim = D:/softwares/QuestaSim/xilinx_lib/unisim unisims_ver = D:/softwares/QuestaSim/xilinx_lib/unisims_ver secureip = D:/softwares/QuestaSim/xilinx_lib/secureip xilinxcorelib = D

13、:/softwares/QuestaSim/xilinx_lib/xilinxcorelib xilinxcorelib_ver = D:/softwares/QuestaSim/xilinx_lib/xilinxcorelib_ver simprim = D:/softwares/QuestaSim/xilinx_lib/simprim simprims_ver = D:/softwares/QuestaSim/xilinx_lib/simprims_ver 9、再次打开QuestaSim,即可以看到Xilinx的库已经默认出现在了库列表里。以后仿真Xilinx的IP核时,就不用每次都添加库

14、了。 2.2 如何保存Wave波形文件 在Wave窗口选择File->Save Format,保存为*.do文件。 在代码检视窗口打开*.do,文件的代码如下所示,复制需要的代码脚本行至命令窗口,可以直接添加到Wave窗口。不用每次都拖曳很多的信号至wave窗口,提升效率。 2.3 仿真添加波形时显示vish-4014 错误 在QuestaSim的软件安装目录打开QuestaSim.ini文件,将VoptFlow设置成0,即可解决 2.4 仿真时报错Glbl错误ERROR 软件提示:Unresolved reference to 'glbl' in 'glbl.G

15、SR' 。仿真缺少glbl文件,在仿真工程中添加glbl.v文件(一般在/ise/verilog/src/glbl.v),脚本命令中添加vsim -t 1ps -L unisims_ver glbl.v testbench.v。 2.5 IP修改后的错误 仿真结果显示:No entity is bound for inst 或 CE is not in the entity。(CE是改动后添加的一个管脚),从而仿真无结果。 2.6 如何让状态机显示状态的名字 在使用Verilog编写有限状态机等逻辑的时候,状态机的各个状态通常以参数表示,但当使用ModelSim仿真的时候,状态机变量在

16、wave窗口中以二进制编码的形式显示,当状态很多时,这种显示形式不是很直观,下文可以使用ModelSim提供的命令将状态机变量以“文本”形式的参数名显示,从而有利于调试。 1.首先使用ModelSim的virtual type命令定义一个新的枚举类型(FSM_TYPE):virtual type ?0x0 idle 0x1 write_U9 0x2 write_U6 0x4 start_1 0x8 rdU6_wrU5 0x10 update_1 0x20 read_end_1 0x40 waiting_1?0x80 ARM_com_1 0x100 start_2 0x200 rdU5_wrU6

17、 0x400 update_2 0x800 read_end_2 0x1000 waiting_2 0x2000 ARM_com_2? FSM_TYPE注意:状态变量之间需要一个空格。2.然后我们将需要显示的信号(/sram_controller_tb/i1/state,注意信号在wave窗口中的完整名字)进行类型转换,转换成一个新的信号(state_new)virtual function (FSM_TYPE)/sram_controller_tb/i1/state state_new3.最后我们将新的信号加入到wave窗口中。add wave -color pink /sram_contr

18、oller_tb/i1/state_new4.仿真结果。 2.7 仿真时显示Vopt-7的错误 Error:Failed to open page file " .qpg" in ; DATABASE ERROR : cannot open auxiliary . 解决办法:删除SIM目录下的work文件夹,重新跑仿真,即可解决。三. 通过命令完成工程创建、编译、仿真的工作 QuestaSim提供了丰富的命令使用户可以使用Tcl脚本命令完成从工程创建、编译、仿真的全部工作;创建如下图所示的文件目录和子目录,board文件夹存放FPGA板级相关文件,不同FPGA信号创建不同的

19、目录,本项目的FPGA型号是xilinx的Spartan6。rtl目录存放RTL代码,sim是QuestaSim主仿真目录,tb文件下存放Testbench相关文件。 3.1 创建脚本verify_rtl_only.tcl 注意:vopt行的代码包含了xilinx仿真库,TestBench顶层文件,glbl等内容,+acc表示完全可见,-o *_opt表示优化结果输出新的名字 3.2 QuestaSim常用命令介绍 常用仿真命令 (1) vlib work    / 建立work仿真库,该命令的作用是在该目录下建立一个work目录,请注意不要用操作系统来新建一个w

20、ork的文件夹,因为用操作系统建立的work文件夹并没有ModelSim SE自动生成的_info文件。 (2)vmap work wrok   / 映射库,该命令的作用是将目前的逻辑工作库work和实际工作库work映射对应。 (3)vlog   -cover  bcest  *.v    / 加覆盖率分析的编译,该命令的作用是编译这些文件,要注意的是文件可以单独分开编译,但是一定要先编译被调用的文件。 (4)vsim  -coverage  -voptargs="+acc

21、"  -t  ns  test   /仿真命令, 注意后面的参数必须为camera_tb.v文件中的模块名 (5)add wave  *    / 将所有模块waveform. dump出来 (6)add wave sim:/test/t/M2/Reg_out        / 将模块Reg_out中的waveform. dump出来 (7)add wave/camera_tb/ * / 该命令的作用是将t

22、estbench文件camera_tb.v中模块camera_tb下所有的信号变量加到波形文件中去,注意在“*”前要加空格。这时候你也可以看到wave文件被打开。当然也可以单个信号的添加,例如添加时钟:add wave clk 等等。 (8)run 2000  /该命令的作用是运行2000个单位时间的仿真,也可以用run all命令来一直仿真下去。 (9)delete  wave  /test/i /删除文件 (10)vopt 优化设计 仿真命令参数 (1) +incdir+: 如:vlog +incdir+YOUR_SOURCE_PATH  foo.v

23、+incdir+YOUR_SOURCE_PATH 选项是指在verilog文件中出现include "xxx.v" 时,包含文件的搜索路径。缺省是搜索当前路径,然后是YOUR_SOURCE_PATH 指定的路径。 (2) +define+: +define+<macro_name>=<macro_text> 允许用户在命令行中定义宏定义,等效于编译器指令:define <macro_name><macro_text>  用户可以指定多个宏定义,如下:vlog +define+one=r1 +two=r2 +three=r3 test.v  命令行的宏定义会覆盖在源文件中用define定义的相同名字的宏定义如:vsim -c -l vsim.log -do ./YourDo.do -L ./work work.foo-c 选项让vsim工作在com

温馨提示

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

评论

0/150

提交评论