ModelSim用户手册.doc_第1页
ModelSim用户手册.doc_第2页
ModelSim用户手册.doc_第3页
ModelSim用户手册.doc_第4页
ModelSim用户手册.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

MODEL SIM 5.4版使用指南世界上最流行的VHDL语言模拟器ModelSim /VHDL, ModelSim /VLOG, ModelSim /LNL, 和ModelSim /PLUS是由Model Technology开发,未经授权不得拷贝,复制,没有Model Technology公司的书面许可不得进行其他任何形式的复制。本手册上对程序的描述是经过许可的,未经允许不得使用和拷贝。最终用户可以打印随产品附送的联机文件。通过购买许可证可以获得数字和拷贝的打印权。Microsystems公司的注册商标。其他商标和注册商标都是其拥有者的财产ModelSim 是Model Technology公司的注册商标。PostScript是Adobe Systems公司的注册商标。UNIX是AT&T公司在美国和其他国家的注册商标。FLEXlm是Globetrotter软件公司的商标。IBM, AT,PC,ATX和RISC System/6000是IBM公司的商标。Windows,Microsoft,和MS-DOS是Microsoft公司的注册商标。OSF/Motif是OSF公司的商标。SPARC(SUN公司的工作站系统)是SPARC国际公司的商标。Sun Microsystems,Sun, SunOS 和 OpenWindows 是SunModel Technology公司版权受保护,Model Technology公司授权用户可以打印在线文档(只能用于内部商业目的)。2000年3月出版Model Technology公司地址:10450 SW Nimbus Avenue / Bldg. R-BPortland OR 97223-4347 USA电话: 503-641-1340传真: 503-526-5410e-mail: , 主页: 目录介绍 5前言 9第一章 创建一个项目 1-11第二章 VHDL基础 2-19第四章 批模式仿真的运行 4-41第五章 在启动中执行指令 5-45第六章 Tcl/Tk 和 ModelSim 6-47第七章 Verilog 基础 7-63第八章 VHDL/Verilog的混合仿真 8-81第九章 基于性能分析器的仿真 9-91第十章 基于代码覆盖的仿真 10-107第十一章 查找名字与值 11-115第十二章 波形窗口的使用 12-119技术支持,资料更新,和许可证 127软件认证协议 135索引 141介绍本章内容软件环境ModelSim的图形界面支持的标准假设索引软件环境这些文件支持ModelSim SE/EE 5.4的UNIX版,Microsoft Windows NT 4.0版, 和 Windows 95/98/2000版。如果你使用的是ModelSim软件的后续版本,请点击软件附带的README文件。任何追加的信息都在那里。虽然这些文件适用于VHDL和Verilog,但是即使你的设计只限于一种硬件描述语言,你也会发现这些文件是非常有用的参考。ModelSim的图形界面当你的操作系统提供windows管理结构,那么ModelSim的控制就具有windows的特征,像菜单,按钮,和滚动条。还有一些界面支持如下操作系统:* SPARCstation with OpenWindows, OSF/Motif, 或 CDE* IBM RISC System/6000 with OSF/Motif* Hewlett-Packard HP 9000 Series 700 with HP VUE, OSF/Motif, 或CDE* Linux (Red Hat v. 6.0 or later) with KDE 或 GNOME* Microsoft Windows NT and Windows 95/98/2000因为ModelSim的图形界面是以Tcl/TK为基础的,你也可以使用工具建立你自己的仿真环境.你很容易就能实现优化配置,命令仿真的可变优化.图形界面的命令可以让你改变和替换原有的windows菜单,菜单操作和按钮.支持的标准ModelSim VHDL 支持IEEE 1076-1987, 1076-1993 VHDL标准,支持 VHDL互用性的1164-1993标准多值逻辑系统 和1076.2-1996标准的 VHDL精确包标准 用ModelSim开发的任何设计都与其他的VHDL系统兼容,其都符合IEEE 标准 1076 1987 或 1076-1993.。ModelSim Verilog是基于IEEE标准1364-1995的标准硬件描述语言。 (ModelSim 5.2e不支持PL12.0的VP1程序) 开放的Verilog V2.0国际版应用也很广泛 ModelSim PE 和EE版支持 PLI(程序设计语言界面)和VCD(值跳变) 另外,所有的产品都支持SDF 1.0 到 3.0, VITAL 2.2b, 和 VITAL95 IEEE 1076.4-1995.假设我们假设您已经非常熟悉您的操作系统。您应该很熟悉您图形界面的窗口操作功能:不是开放WINDOWS,OSF/MOTIF,就是Microsoft Windows NT/95/98/2000,我们也假定您具有VHDL和VERILOG的应用知识。尽管ModelSim 是一款非常卓越的面向HDL概念学习和实践的工具,但这个文档不是为这个目的而编写的。建议非常欢迎您来电,来函,传真,或EMAIL提出任何有关本手册和ModelSim 软件的意见和问题Model Technology Incorporated10450 SW Nimbus Avenue, Bldg. R-BPortland, OR 97223-4347 USA电话: 503-641-1340传真: 503-526-5410email: 网址: 索引ModelSim 的文件通过我们的网站/resources/ index.html下载,或者通过下列表格查找 文件存储形式怎么找到文件Start Here for ModelSimSE/EE(安装及支持资料)纸介质向ModelSim公司索取在线PDF格式从ModelSim的HELP菜单(选择SE/EEDocumentation Licensing and Support),或者在路径modeltechdocs 目录中找se_start.pdf文件。也可以从我们的网站中获得。ModelSim SE/EEQuick Guide(命令和特性的快速查找资料)纸介质向ModelSim公司索取在线PDF格式从ModelSim的HELP菜单(选择SE/EEDocumentation SE/EEQuick Guide),或者在路径modeltechdocs 目录中找se_guide.pdf文件。也可以从我们的网站中获得。ModelSim SE/EE Tutorial在线PDF格式从ModelSim的HELP菜单中找SE/EEDocumentation 组,或者在光盘路径modeltechdocs 目录中找se_man.pdf文件。也可以从我们的网站中获得。ModelSim SE/EEUsers Manual(用户手册)在线PDF格式从ModelSim的HELP菜单中找SE/EEDocumentation 组,或者在光盘路径modeltechdocs 目录中找man.pdf文件。也可以在安装完成后的硬盘中找到。ModelSim SE/EE Command Reference在线PDF格式从ModelSim的HELP菜单中找SE/EEDocumentation 组,或者在光盘路径modeltechdocs 目录中找se_cmds.pdf文件。也可以在安装完成后的硬盘中找到。Tcl man pages (Tcl 手册)HTML格式用WINDOWS主菜单选择Help Tcl Man Pages ,或者通过路径modeltechdocshtml找contents.html文件tech notesASCII格式在完成安装后的modeltechdocstechnotes目录里或者ModelSim的帮助菜单里都可以找到前言在您学习这些课程之前我们会给您提供详细的介绍。您将决定通过最好的方式在您的操作系统中创建目录,拷贝文件和执行程序。(当您用ModelSim的图形界面来进行仿真的话,这种界面对所有的应用平台来说都是一致的)另外,您可以在ModelSim的用户手册和命令参考中找到详细的VHDL,Verilog, 和 兼容VHDL/Verilog仿真的资料 。(看“索引”) 实例引导WINDOWS的路径解析器当您尝试这个实例时,可在你的操作系统上使用解析器命令,按钮和菜单等效方法课程中的大部分步骤都是要通过按钮和菜单的选册来实现的。适当的时候,在步骤中,VSIM命令行(PROMPT:*提示符号,DOS*),或者菜单模式(MENU:)其中括号中的选择是等效的。这个例子说明3种run all命令的操作方法,一种是按钮,一种是提示光标(DOS命令),还有一种是菜单选择。拖和拉拖和拉操作允许你在窗口中拷贝和移动信号。如果拖和拉操作作为课程的一个步骤来讲,他就跟MENUS(菜单模式)和PROMPTS(提示光标模式)非常类似了。命令的历史记录这一课的工作,你要把注意力集中在主记录窗口上。按钮和菜单选择对命令的调用都记录在那里。你可以通过移动箭头来查看这些命令的历史记录。或者用一种捷径,既通过ModelSim/VSIM的PROMPT(提示光标模式,DOS)来查看命令的历史记录在主记录器里重复命令ModelSim的主记录可以被保存下来,通过DO文件来重复执行主记录里的最终文件。 在任何时间,在仿真前或仿真中你都可以存储记录。如果你不想存储全部的命令历史记录,你可以通过选项来清除记录(File Clear Transcript)存储记录的的内容可以通过选择主菜单的File Save Main As来实现,用DO命令可以重复此命令。do 例如,如果你把一系列编译命令存储为mycompile.do (the .do 扩展名是随意可选择的),你可以用一个命令重新编译。do mycompile.do注意:在这个例子里PROMPT和RETURN都没有结束一个命令行。第一章 创建一个项目本章目的:了解“欢迎到ModelSim”的对话框特征创建一个项目(.mpf文件)欢迎到ModelSim的对话框在第一次打开ModelSim时,你将会看到欢迎到ModelSim的对话框(如果屏幕没有显示,你可以在主窗口选择Help Enable Welcome,在下次您启动ModelSim时就会显示正常了)从这个对话框,你能:显示快速启动菜单,这个菜单包含了对一些普通问题的解答。运行ModelSim的认证诊断用项目创建魔法师从打草稿或拷贝一个已有的项目来创建一个新的项目打开一个已有的项目点击Done 进入ModelSim的主窗口。创建一个项目在规范或测试的HDL设计下,一个项目提供一个实体。最小配置情况下,有一个根目录,一个操作库,和一个会话状态,这些都存储在项目的根目录下一个a .mpf文件里。一个项目由以下几个部分组成:HDL资源文件子目录本地库整体库的资料如果需要更多有关项目文件使用的信息,请看ModelSim的用户手册。注意:从5.3版开始,ModelSim 公司 后缀为.mpf的扩展文件是指项目文件。在过去的版本里modelsim.ini 文件(系统初始化文件)被作为项目文件。1.下列其中一种方式可以启动ModelSim在UNIX的Shell模式下键入vsim在你的Windows操作系统下,可以通过点击开始菜单里的Windows快捷图标modelsim.exe或者在DOS模式下执行文件modelsim.exe2.在Welcome to ModelSim的对话框里选Create a Project按键(如果Welcome to ModelSim的对话框没有显示,你可以在主窗口选择Help Enable Welcome,在下次您启动ModelSim时就会显示正常了)通过从ModelSim的主窗口选择FileNew New Project,你也可以进入创建一个新项目的对话框。点击Create a Project 按钮打开创建一个新项目的对话框和一个项目创建魔法师。项目创建魔法师可以在项目创建的每一个步给你提供帮助。它提供Verilog 或VHDL资源文件种类的输入选择,然后帮你添加到项目里。3.在创建一个新项目的对话框里,你可以选择创建一个新的草稿性的项目,或者拷贝一个存在的项目。启动一个项目最简单的方式就是拷贝一个类似的项目。让我们选择“拷贝一个存在的项目”4.指定“新项目的路径”在项目目录树下指定一个目录。这个目录必须已经存在-否则完成这个对话框也不能创建它。5.指定“新项目的名字”它将作为项目的根目录名和.mpf文件的名字。6.指定一个“存在的项目”的名字,指定完整路径和后缀为.mpf的文件。在这一课,浏览路径modeltech/examples/projects/vhdl/vhdl.mpf并选择此文件7.一旦您已经指定了足够的信息来拷贝一个已经存在的项目,这时“OK”按钮就会处于可点击状态。选择OK,通过一个默认的工作库引导项目目录的建立。然后您将被问到“如果您想把这个项目转化成你当前的项目,请选择YES按钮”8.在这个对话框里,如果您想为你的项目创建一个新HDL资源文件,请选择NO按钮,然后在Welcome to ModelSim的对话框里点击DONE按钮。现在您就能开始编辑你的项目了。9.选择Options Edit Project.这可以打开编辑项目“Edit Project”的对话框.点击下拉菜单到资源文件“Source File”的条目,同时选择资源counter.vhd. 一旦选择了资源文件,编译的按钮就变成可点击状态了。10.在“Edit Project”对话框中点击编译按钮。随着资源文件编译的完成,“Add to Library”的按钮就会变成可点击状态了。11.在“Edit Project”对话框中点击“Add to Library”,然后点击“Done”。注意:联合“Compile”和“Add to Library”创建一个脚本(DO文件)将会重新编译整个项目。你必须在“Compile ”后执行“Add to Library ”来创建一个正确的脚本。通过使用菜单Main Design Compile Project 可以重新编译一个项目。12.通过点击工具条上的Load Design按钮开始仿真。Load Design对话框同样会在下面显示(如果你通过命令行方式调用VISM命令,你将看不到此对话框),Load Design对话框允许你选择库和顶级设计单元来仿真,在Design Unit下选择“ counter”, 然后选择“LOAD”按钮。拷贝一个存在的项目创建一个新项目的的过程到这里就完成了,新创建的项目会在主窗口打开待用.现在你可以选择离开ModelSim 或者编辑这个项目的HDL部分直到项目完全确定并且所有文件都编译到项目的库里。如果你离开了ModelSim ,你可以通过在Welcome to ModelSim的界面中点击“Open Project”重新打开这个项目。第二章 基础VHDL仿真课程目标:创建一个库编译VHDL文件启动仿真器了解基本的VSIM窗口,鼠标,和菜单规范用run命令运行VSIM列出一些信号运用波形显示功能约束信号的值单步运行仿真设置断点仿真的准备工作在运行仿真之前,你需要编译你的HDL源代码并且加载顶层设计单元。1.开始时,为这个练习创建一个新的路径(防止与其它用户正在做的工作混淆)。把这个路径创建出来以后,我们把 modeltechexamples 目录下的所有VHDL(*.vhd)文件拷贝进来。我们通过从这个新的路径下面调用ModelSim或者从ModelSim的主窗口选择FileChange Directory命令来确保我们的当前工作路径就是新建的路径。2.用下列两种方法之一运行ModelSim:对于UNIX在命令行下敲入: vsim gui对于Windows你可以选择点击快捷方式图标进入或者从开始菜单进入或者在DOS命令行下敲入: modelsim.exe注意:如果在安装ModelSim的时候,你没有将它添加到你的查找目录中去的话,那么当你在DOS下敲入命令时,你必须同时敲入完整的路径。3.在你编译任何HDl源代码之前,你需要有一个设计库以便保存编译的结果。要想创建一个新的设计库,你需要在主窗口中选择DesignCreat a New Library,在创建新库的对话框中选择Creat:a new library and a logical mapping to it.在Library中填入work,选OK。这样,我们就在当前目录下创建了一个子目录,同时在它的下面创建了一个work库。ModelSim在这个子目录下面保存了一个叫_info的文件。(PROMPT:vlib work vmap work work)注意:不要用UNIX或者Windows命令来创建库的路径,因为那样不会产生_info文件。我们通常用ModelSim或者UNIX/DOS的库菜单和或者vlib命令来创建库的路径。4.在工具栏上选择Compile按钮,把counter.vhd文件编译到新的库中去。选择按钮后产生了一个叫做Compile HDL Souse Files的对话框。(如果你从命令行调用vcom你就看不到这个对话框)。选择counter.vhd文件,点击Compile按钮,就完成编译了。你可以一次编译多个文件,或者按需要单个编译。5.现在让我们来加载设计单元。从工具栏中选择Load Design按钮:加载设计的对话框就出现了,如下所示(如果你从命令行中用counter调用vsim,就看不到这个对话框了)。对话框让你选择库和顶层设计单元以便仿真。你当然也可以选择仿真的分辨率限制。默认的话,将会如下显示: Simulator Resolution:default(默认值为1ns) Library:work Design Unit:counter Descrption:entity如果设计单元是一个实体(就像这个设计中的counter一样),那么点击plusbox prefix来查看所有相关结构。6.选择实体counter并且选择Load接受它的设置。7.下一步,从主窗口菜单中选择ViewAll来打开所有VSIM窗口。窗口说明可以参考ModelSim的用户手册。8.从信号窗口菜单中,选择ViewListSignals in Region.这个命令将在列表窗口中显示顶层信号。9.接下来通过选择ViewWaveSignals in Region from the Signals把顶层信号添加入波形窗口之中。运行仿真我们是通过给输入时钟激励来运行仿真的。1.点击Main window,在VSIM提示符下输入如下命令:force clk 1 50,0 100 repeat 100VSIM如下翻译force命令:从当前时刻开始每隔50ns使时钟为1 当前时刻开始100ns以后时钟为0每100ns一个循环,如此重复注意现在栏中的运行长度字段显示100(ns是当前默认的精度)。一让仿真器运行你就可以看到force命令的影响结果了。2.现在你可以在主窗口或者波形窗口中通过工具条按钮练习两种Run函数了。(主窗口和波形窗口中的Run函数是一样的)。首先选择Run按钮。运行完成以后选择Run All命令。Run。这个命令会使仿真器运行,然后在100ns以后自动停止。Run All。这个命令使仿真器一直运行,在第三步中会介绍怎样中止运行。3.在主窗口或者波形窗口中选择Break按钮来中止运行。源窗口中的箭头指向下一个即将执行的HDL文件。(如果仿真器没有在Break命令发生时评估这个进程,箭头将不被显示)下一步,你将在这个函数的第18行设置一个断点。4.将光标移向VSIM窗口。下拉窗口显示出第18行。点击或者在第18行的旁边设置断点。在设置断点的那一行你会看到一个红点。断点通过点击可以在有效和无效之间转换。删除断点,用鼠标右键点击行标号选择删除。注意:断点只可以被设置在可执行行由绿色显示的行为可执行行。5.选择Continue Run按钮来继续你中断的一次运行。VSIM将会跟踪断点,在VSIM资源窗口中显示一个箭头,在主窗口中显示一个Break信息。6.点击Step按钮来单步运行仿真。注意在VSIM Variable窗口中变化的值。如果你想的话你可以一直点击Step。7.完成以后,敲击 quit force命令退出仿真。这个命令在退出VSIM时不会保存数据。你的窗口位置将会被保存在一个叫做modelsim.ini的文件中,同时窗口会被关闭。(想了解更多关于modelsim.ini文件的知识可以参考ModelSim用户手册)第三章 调试VHDL设计本课目标:给出一个VHDL设计平台的例子这是一个VHDL体系,它示例了一个VHDL设计单元的测试,仿真,和检查结果的过程。把一个逻辑库名字映射到一个实际的库。改变默认的运行长度。在命令窗口中识别断言信息改变断言中断级别使用restart命令重启仿真检查VSIM Variables窗口中的合成类型改变变量值使用滤波来触发VSIM列表窗口中的每一行改变在VSIM列表窗口中显示的信号的基数准备仿真1.为练习创建一个新的路径,从modeltechexamples目录拷贝如下VHDL文件到新的目录。gates.vhdadder.vhdtestadder.vhd当前的路径一定要是新建的路径。你可以使用的方法有:从新建路径下调用ModelSim或者在ModelSim主窗口中点击FileChange Directory.2.采用下述两种方法之一启动ModelSim;对于UNIX来说,在命令行下敲入:vsim gui对于Windows来说,可以从快捷方式图标进入或者从开始菜单进入或者在DOS下敲入: modelsim.exe3.在ModelSim提示符下敲入如下命令以创建一个新的库: vlib library_24.通过在系统提示符下面敲入如下命令,把源文件编译到新的库中去: vcom work library_2 gates.vhd adder.vhd testadder.vhd5.现在让我们把新库映射到工作库中去。想创建一个映射你可以:编辑modelsim.ini文件的Library字段或者用vmap命令创建一个逻辑库名: vmap work library_2 ModelSim会帮你修改modelsim.ini文件。6.通过在主窗口点选DesignLoad New Design或者直接点击Load Design快捷图标来启动仿真器。Load Design对话框如下显示。7.在对话框中进行如下步骤:确保仿真器的设置为缺省值(缺省设置为ns)在Design Unit菜单项中选择test_adder_structural一项点击Load完成设置。8.要打开所有的VSIM窗口,你可以在主窗口的VSIM提示符下输入如下指令: view *如果在上次你做完练习以后没有人启动仿真器进行新的设置的话,ModelSim将会在你上一次练习同样的位置打开所有窗口。9.将高层信号以下列方式拖到列表窗口中去:在确保层没有越界(没有负框),用EditSelect All全选窗口中的所有信号,拖曳他们到列表窗口。10.输入如下命令,把顶层信号加入波形窗口: add wave *11.现在把工具条中运行长度那一项的值改为1000(ns)。点击运行长度那一项的域就可以改值了(注意那里的箭头对你改值的用处)仿真的运行与调试1.点击工具条中的RUN按钮运行仿真。现在窗口中显示了一条错误声明信息,让我们看看错在那里了。进行如下步骤跟踪仿真。2.首先,选择OptionsSimulation改变仿真声明的选项。3.选择Assertions页。在Break on Assertion项中选择Error然后点OK。这会使仿真器在声明出现后停止在那一行HDL代码处。4.在工具条中选择Restart按钮重启仿真器。你要把Restart对话框中的选项全选中,再点Restart按钮。5.在工具条中选择Run按钮。注意资源窗口中的箭头指向声明段。6.如果你看一下Variables窗口,你会看到i6。这表明仿真在循环测试第六次以后停止。7.点击变量名test_patterns旁边的号可以扩展它。(这时,为了看得清除一些,你可能需要重新调整窗口大小)8.点击号,扩展第六个记录test_patterns(6).这时,Variables窗口差不多与如下窗口相似。声明显示信号sun不等于Variables窗口中的sum域。注意,输入a,b,cin应该等于输出sum。但是在测试段中有一个错误。想改正错误,你得重启仿真器并改变测试段的初值。在主窗口敲入: restart f参数-f使得VSIM不出现确认对话框而重启。10在进程窗口中可以通过选择test/testbench把变量加入到Variables窗口中去。11.在变量窗口中,点击test_patterns展开变量test_patterns,再使用同样的方法打开test_pattern(6),然后选中其中的变量sum,使用菜单EditChange。12.在value域中通过在它们上拖拉选上后四位bit,然后用0111替代,点击change按钮。(注意这仅仅是暂时的编辑,你要永久的变化还得去修改源代码。)13.在主窗口中选中run按钮。这样的话,模拟将会无错地运行。修改新行的触发在list窗口中,默认的情况下一个列表中的信号的每个传输都会触发出示一个新行。下面的步骤是把这种触发该为每隔100ns一下。1.在list窗口中,点击菜单PropDisplay Props。2.在Trigger页执行下列步骤: 取消Trigger On:Signals, 选中Trigger On:Strobe, 在Strobe Period域中写入100, 在First Strobe at域中写入70, 点击OK。3.你的最后一个操作是将信号a,b,和sum修改为十进制。选中菜单Propsignal Props,它会打开一信号属性窗口。4.这时你就可以在list窗口中选中信号,修改它们的属性,现在做如下改动: 选中信号a,然后选上Decimal,点击按钮Apply; 选中信号b,然后选上Decimal,点击按钮Apply; 选中信号b,然后选上Decimal,点击按钮OK;仅仅熟悉一下菜单系统,就到了这节课的结束,要退出系统可以使用命令:quit force第四章 批处理模式模拟本课目的:运行批处理模式模拟执行宏文件(do)察看保存的模拟批处理模式允许你执行几条命令,它们被写在一个文本文件中。即你用你想运行的命令创建一个文本文件,当你启动Modelsim时,指定它,这在你重复运行一个模拟或一套命令时非常有用。重点:批处理模式必须运行在DOS或UNIX提示符下,在Windows95/98/NT中,可以沿着StartProgramsCommand Prompt得到DOS,没有另外指示,这课所有的命令都是在DOS或UNIX提示符下。1.在这课开始之前,你需要创建一个新的目录,使它为当前路径,把下列这个文件拷贝到你的新目录中:modeltechexamplescounter.vhd2.创建一个新的设计库(记住:所有的命令都在DOS或UNIX下)vlib work3.映射库:vmap work work4.然后编译源文件:vcom counter.vhd5.用一个宏文件为counter提供触动。为了你的方便,跟随Modelsim已经把这个文件提供给你了,你需要把这宏文件从安装的目录拷到当前目录上: modeltechexamplesstim.do6.用编辑器创建一个批文件,命名为yourfile,在编辑器中,把下列命令分别写成行:add list -decimal *do stim.dowrite format list counter.lst保存在当前目录中。7.输入下列命令,运行批处理模式模拟:vsim -wav saved.wav counter yourfile这步所做的工作:在设计单元counter上调用VISM模拟开关参数-wav指示模拟器将模拟结果保存到一个名为saved.wav的log文件中使用yourfile的内容是为了指定那些数值以十进制列出,触发文件为stim.do,并将列出的结果写到名为counter.lst,默认的设计单元是counter8.既然你已将模拟的结果保存在saved.wav,你可以启动参数-view的VSIM命令: vsim -view saved.wav9.在主窗口中用菜单VIEW打开如下窗口,或者用等价的Modelsim命令:view structure signals list wave注意:如果你打开的进程或变量窗口是空的,那是因为你看的是保存的模拟,不是内面产生的模拟;保存在saved.wav文件中的log文件是用来重构当前的窗口。10.目前你已将窗口都打开了,这时将信号加进去: add wave *add list *11.使用VISM窗口去实验模拟的结果。一切结束后就可以退出: quit -f想得到更多的批处理命令模式的信息,请参考Modelsim用户手册。第五章 在启动中执行命令本课目的:用命令指定设计单元编辑modelsim.ini文件用DO文件在启动中执行命令重点:这一课也只是在DOS或UNIX下。1.为了进行这一课,你需要用DO文件为启动提供信息。方便起见,这样的一个启动文件已随着Modelsim程序提供给你了,你只需把它从安装的目录拷到你的当前目录即可: modeltechexamplesstartup.do2.接着,为了在设计单元加载后执行一个指定的命令,你要到modeltech目录底下编辑一个系统初始化文件。具体:用文本编辑器打开 modeltech modelsim.ini 删除文件中下列行, Startup = do startup.do并保存。注意:一定要使文件modelsim.ini能写能修改,这可通过在文件上右击,点击属性,取消“只读”这一选上,然后OK。3.浏览一下DO文件,会发现它用一个变量Sentity处理了:随启动的设备不同而做不同的处理。4.开始在指定的高层设计单元上进行模拟,在DOS/UNIX下输入下列命令: vsim counter 你会注意到,加在设计单元时没有显示加载窗口,这给你反复在同一个设计单元上模拟带来了方便。还有一个惊喜,所有的窗口都被打开了,这是因为view * 这个命令被包含在启动宏中。5如果你计划继续进行下面的练习,继续让ModelSim运行。如果你想退出模拟,在VSIM下输入quit f.6.当你不需要startup.do文件做这些工作时,你可以重新用文本编辑器把上面删除的写上去。第六章 Tcl/Tk和Modelsim本课目的:创建一个“hello world”按钮窗口应用一个触发按钮来执行程序模拟十字路口的交通灯画一个状态机来表示模拟为了让你对Tcl/Tk在Modelsim里的功能有个感官上的认识,这个课被划分了几个Tcl的例子,这些例子包括一般模拟界面的创建(代码已经写好了)。注意:你必须用Modelsim SE/EE-VHDL或者Modelsim SE/MIXED完成这些练习。关于Tcl/Tk更多的信息Tcl/Tk有很多的源信息包含在John K. Ousterhout编写的Tcl和Tk工具箱,出版于Addison-Wesley 印刷公司,和Brent Welc编写的用Tcl和Tk编程实践,出版社是Prentice Hall,Tcl/Tk是怎样同Modelsim工作的?Modelsim把Tcl作为一个内涵库包合并了,Tcl库包括Tcl语言的分析库,实现Tcl命令的该例行的事务,和一些允许Tcl扩展到Modelsim的特殊命令程序程序。Modelsim产生Tcl命令,并把它们传给Tcl分析器执行,命令的产生可以通过从输入源中以字符的形式读入,或者相关的命令字符串。当Tcl库接受命令,它就把它们分解并传给相关的组件直接执行,为了让Modelsim实现这些命令,回调Tcl来执行命令。应用Tcl的命令语言,给Modelsim带来了些编程上的方便,Modelsim集中在模拟的命令上,而Tcl特征主要在图形界面,总体编程界面和一些特殊的命令上。有了Tcl合并,Modelsim就不需要那些特征了就能让他的图形界面与所有的平面形势保持一致。 通常的交通灯界面:Tcl/Tk这课的主题是一个简单的交通灯的控制器例子。这个系统包括三个基本的组件:状态机,一对交通灯,和一对交通传感器。这些组件分别用了三个VHDL文件来描述:traffic.vhd,queue.vhd,tb_traffic.vhd。你当然可以用Modelsim的原界面来模拟这个系统,但是Tcl/Tk给我们提供了一个新的选择。前面我们既然已经看到体验了一些模拟,我们可以创建一个唯一的可视化界面的模拟。假设:假设例子中的代码全部编译过了,下面是用来表示他怎么工作的:系统的VHDL源代码Tcl程序的创建,连接界面,加上源代码在新界面中通过运行Tcl程序来执行Modelsim命令draw_intersectiontraffic.vhdqueue.vhdtb_traffic.vhdconnect_lightsvsim -lib vhdl/work tb_trafficexamine -value draw_queuesdraw_controlsforce -freeze $var $val nsTK窗口小器件 这十字路口图解指出了几个Tcl/Tk“窗口小器件”,一个窗口小器件仅仅是一个用户接口的元素,如同菜单和滚动条一样。Tk窗口小器件是参照Tcl程序创建图形界面对象的,Tk工具箱包括几种窗口小器件,另外一些可以使用这几种来创建。控制模拟在Modelsim中,十字路口界面组成部件友谊下作用:节省时间;既然几个十字路口空间能调用一个VSIM命令产生一个动作(比如滚动调的动作),这种界面相对从提示符和Modelsim菜单调用命令要节省时间。几个例子的原始文件的副本另外几个例子的原始文件的副本的地址是:.examplestcl_tutorialoriginals directory例子的解决方案通过这个交叉路口实例你应该会修改Tcl文件来完成交叉路口的最终版本。你将会在tcl_tutorialsolutions路径中找到一套完整可以运行的交叉路口实例,在Modelsim命令提示符下调用命令可以运行它们。cd solutionsdo traffic.do察看文件在Modelsim命令提示符下使用notepad命令你可以察看任何一个Tcl文件的源代码。notepad 大部分文件只是只读文件,如果你想修改它们,可以从记事本编辑菜单中取消只读。Tcl source命令:Tcl source命令把Tcl文件读入到Tcl分析器中,分析器能分解程序使其在当前的环境中使用,一旦sourced,一个Tcl程序就能在在Modelsim命令提示符下调用,语法如下:source 例程1创建一个“hello world” 窗口按键开始这个例程之前应确定已完成“初始化安装” (6-54)。在这个例程中将学习一个“hello world”按键,将其按下时会打印一条消息。1.在ModelSim提示下,搜索Tcl文件:source hello.tcl再运行hello.tcl中定义的程序:hello_example文件hello.tcl被读入VSIM Tcl编译器。hello_example程序中的指令通过VSIM执行,并且将“Hello World”写到主界面。选择按键将再次打印消息。刚刚已创建了第一个顶层窗口部件。2.再次调用hello_example程序,注意新按键如何替代原来的按键。程序破坏了第一个按键并创建了新的。注意用notepad查找Tcl文件:notepad hello.tcl然后关掉hello_example窗口。例程2用一个按键执行一个程序开始这个例程之前应确定已完成“初始化安装” (6-54)。这个例程将显示图象库中所有的gif图象。每个按键对于“输入”事件都有对应,并且鼠标按键按下时也有对应。当鼠标放在按键图形上时,图象文件名显示到主窗口。当鼠标按键按下时,其“窗口部件”名将显示到主窗口。1.通过调用下面这个命令以及这个程序建立一个图象窗口:source images.tclimage_example2.拖动鼠标交叉按键,注意主界面发生了什么。按下其中一个按键;将看到一个出错对话框。可以通过修改文件images.tcl解决这个问题。3.在图象显示的底部按下See Source Code按键或在ModelSim提示下调用notepad查看源文件。notepad images.tcl会发现程序pushme不见了;这在images.tcl中注明。4.用notepad中的菜单选项EditFind搜索“proc push”。去掉注释(“”符号)返回函数到你的源文件,然后用Destroy按键关闭图象窗口。5.当程序pushme正确运行时将打印它的一个参数对象名到界面。添加程序pushme到你的源文件之后,需要用这些命令重新查找和运行Tcl程序(用向上箭头滚动过这些命令或执行!source):source images.tclimage_example按下所有键,注意主界面中的对象名。之后关闭图象例程的窗口。例程3模拟一个十字路口交通灯在这个例子中将模拟一个十字路口交通灯。所创建的仿真界面允许高效运行“假设”情景。引入交通十字路口窗口部件我们的例程这部分介绍交通十字路口窗口部件。你将为这个十字路口添加其它部件来创建一个交通仿真环境。再次强调,开始这个例程之前应确定已完成“初始化安装” (6-54)。1.在ModelSim提示下调用这个命令和程序画出十字路口:source intersection.tcldraw_interse

温馨提示

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

评论

0/150

提交评论