
ModelSim入门指导.doc
6页QUESTA-SIM〔QuestaSim〕10.2入门指南平台软件:Questa-Sim 10.2 版本Starter Edition,也适用于高版本的ModelSim软件容一. 设计流程典型设计流程包括如下所示:〔1〕设计输入 设计的行为或构造描述 〔2〕RTL仿真(ModelSim) 功能仿真 验证逻辑模型(没有使用时间延迟) 可能要求编辑设计 〔3〕综合 把设计翻译成原始的目标工艺 最优化——适宜的面积要求和性能要求 〔4〕布局和布线 映射设计到目标工艺里指定位置 指定的布线资源应被使用 〔5〕门级仿真 (ModelSim) 时序仿真 验证设计一旦编程或配置将能在目标工艺里工作 可能要求编辑设计 〔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>Preject创立一个新工程翻开的Create Project对话框窗口,可以指定工程的名称、路径和缺省库名称一般情况下,设定Default Library Name为work指定的名称用于创立一个位于工程文件夹的工作库子文件夹该对话框如图2.2所示,此外还允许通过修改初始化文件QuestaSim.ini文件来映射库设置图2.2 创立工程的对话框2. 设置Project Name为BG0806,Project Location为E:/QuestaSim/prj, 勾选Copy Library Mappings ,点击OK3. 出现Add Items to the Project的对话框,如图2.3所示,图2.3 在工程中,添加新工程1.2 在工程中添加新工程在Add Items to the Project对话框中,包括以下选项:· Create New File——使用源文件编辑器创立一个新的Verilog、VHDL、TCL或文本文件 · Add E*isting File——添加一个已存在的文件 · Create Simulation——创立指定源文件和仿真选项的仿真配置 · Create New Folder——创立一个新的组织文件夹 1.2.3 创立新文件1. 单击Create New File。
翻开图2.4所示窗口图2.4创立工程文件夹2. 输入文件名称:bg0806_dp_top,然后选择文件类型为Verilog图2.5 输入工程文件信息3. 单击OK,关闭本对话框新的工程文件将会在工程窗口显示单击Close,以关闭Add Items to the Project图2.6RTL设计文件4. 双击翻开datapath_top.v文件〔注意:假设是Verilog文件已经关联了其他的文本编辑器,则双击后在关联的文本编辑器中翻开〕每一个.v文件录入完成后,单击Save,保存rtl代码 1.2.4 添加RTL代码通常情况下,程序员不会在QuestaSim直接录入RTL代码,推荐使用GVIM8.0代码编辑器编辑RTL代码,然后选择Add E*isting File则直接将E:/QuestaSim/rtl/*.v添加到工程,不用特意指定顶层文件,仿真时软件会自动识别顶层文件 1. 选择Project>Add to Project>E*isting File,如图2.14所示图2.7添加文件到工程中 2. 单击翻开,在Add file to the project窗口,单击OK。
1.2.5 添加TestBench代码TB文件保存在E:/QuestaSim/tb/,同样添加到工程目录下,TestBench文件的写法参考相关文献,此处不赘述1.3 编译文件在Project标签下的Status列的问号,表示文件尚未编译进工程,或者在最后编译前,源文件有所改动欲编译文件,选择Compile
图2.11仿真设置3 1.4.2 开场仿真 单击图标,选择Design,然后选择TestBench单击OK,如下列图所示图2.12开场仿真 仿真完之后出现多了2个窗口sim和Objects,sim窗口显示了层次目录,Objects窗口显示了sim窗口选择的模块的所有信号列表,可以筛选所需信号图2.13仿真完毕后的界面截图 1.4.2 添加波形右键信号,然后选择Add to> Wave>Select Signals,在Wave窗口出现下列图所示,在Run Length列输入仿真时间长度为10ms,点击图标,运行假设干秒后,查看波形 Debug 常用按键 f : 可查看仿真的完整波形,也可以单击Zoom Out〔O〕图标ctrl + 鼠标左键选择 : 选定任意波形区间进展放大注: 修改完RTL代码之后必须重新编译,然后点击重新仿真二.软件设置常见问题 2.1 如何在Questa-Sim软件里添加*ilin*的仿真库QuestaSim一定要安装在不带空格的目录下,即不要安装在“Program Files〞目录下本人是安装在D:\software\QuestaSim目录下,*ilin*软件也最好安装在不带空格的目录下。
1、找到开场菜单->程序->*ilin* Design Tools 11 -> 64/32-bit tools-> Simulation Library Compilation Wizard. 2、选定QuestaSim的版本,以及指定QuestaSim的安装路径3、选择Both VHDL and Verilog 4、选择支持哪些系列的芯片,看自己需要增减 5、默认选全上即可 6、指定编译完后的库存放位置,这里作者在QuestaSim安装目录下新建了*ilin*_lib的文件夹,并指定到这里〔注意不要指向带空格的路径〕 7、运行 Lauch Compile Process,即开场编译库文件,需要几十分钟编译完成后应该在*ilin*_lib目录下多出如下文件夹: 8、右键翻开QuestaSim目录下的QuestaSim.ini文件,先将其“只读〞属性去掉然后用记事本翻开在[Library]下面添加如下代码,即之前编译好的*ilin*库的路径 unimacro = D:/softwares/QuestaSim/*ilin*_lib/unimacro unimacro_ver = D:/softwares/QuestaSim/*ilin*_lib/unimacro_ver unisim = D:/softwares/QuestaSim/*ilin*_lib/unisim unisims_ver = D:/softwares/QuestaSim/*ilin*_lib/unisims_ver secureip = D:/softwares/QuestaSim/*ilin*_lib/secureip *ilin*corelib = D:/softwares/QuestaSim/*ilin*_lib/*ilin*corelib *ilin*corelib_ver = D:/softwares/QuestaSim/*ilin*_lib/*ilin*corelib_ver simprim = D:/softwares/QuestaSim/*ilin*_lib/simprim simprims_ver = D:/softwares/QuestaSim/*ilin*_lib/simprims_ver 9、再次翻开QuestaSim,即可以看到*ilin*的库已经默认出现在了库列表里。
以后仿真*ilin*的IP核时,就不用每次都添加库了 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.GSR' 仿真缺少glbl文件,在仿真工程中添加glbl.v文件〔一般在~/ise/verilog/src/glbl.v〕,把testbench.v和glbl.v同时选中后进展仿真,即脚本命令中添加vsim -t 1ps -L unisims_ver glbl.vtestbench.v 2.5 IP修改后的错误仿真结果显示:No entity is bound for inst 或 CE is not in the entity。
〔CE是改动后添加的一个管脚〕,从而仿真无结果解决方法:首先选中该IP核的.*co文件点击右键->属性 将属性改为 "Synthesis/Imp + Simulation."然后将其对应的.v或.vhd文件的属性也改为 "Synthesis/Imp + Simulation." 2.6 如何让状态机显示状态的名字在使用Verilog编写有限状态机等逻辑的时候,状态机的各个状态通常以参数表示,但当使用ModelSim仿真的时候,状态机变量在wave窗口中以二进制编码的形式显示,当状态很多时,这种显示形式不是很直观,下文可以使用ModelSim提供的命令将状态机变量以“文本〞形式的参数名显示,从而有利于调试1.首先使用ModelSim的virtual typ。












