首页 ModelSim用户手册

ModelSim用户手册

举报
开通vip

ModelSim用户手册ModelSim* MODEL SIM 5.4版 使用指南 世界上最流行的VHDL语言模拟器 ModelSim /VHDL, ModelSim /VLOG, ModelSim /LNL, 和ModelSim /PLUS是由Model Technology开发,未经授权不得拷贝,复制,没有Model Technology公司的书面许可不得进行其他任何形式的复制。 本手册上对程序的描述是经过许可的,未经允许不得使用和拷贝。 最终用户可以打印随产品附送的联机文件。 通过购买许可证可以获得数字和拷贝的打印权。 Micros...

ModelSim用户手册
ModelSim* 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 是Sun Model Technology公司版权受保护,Model Technology公司授权用户可以打印在线文档(只能用于内部商业目的)。 2000年3月出版 Model Technology公司地址: 10450 SW Nimbus Avenue / Bldg. R-B Portland OR 97223-4347 USA 电话: 503-641-1340 传真: 503-526-5410 e-mail: support@model.com, sales@model.com 主页: http://www.model.com 目录 介绍 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的图形界面 支持的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 假设 索引 软件环境 这些文件支持ModelSim SE/EE 5.4的UNIX版,Microsoft Windows NT 4.0版, 和 Windows 95/98/2000版。 如果你使用的是ModelSim软件的后续版本,请点击软件附带的README文件。任何追加的信息都在那里。 虽然这些文件适用于VHDL和Verilog,但是即使你的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 只限于一种硬件描述语言,你也会发现这些文件是非常有用的参考。 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, 和 VITAL’95 – IEEE 1076.4-1995. 假设 我们假设您已经非常熟悉您的操作系统。 您应该很熟悉您图形界面的窗口操作功能:不是开放WINDOWS,OSF/MOTIF,就是Microsoft Windows NT/95/98/2000,我们也假定您具有VHDL和VERILOG的应用知识。 尽管ModelSim 是一款非常卓越的面向HDL概念学习和实践的工具,但这个文档不是为这个目的而编写的。 建议 非常欢迎您来电,来函,传真,或EMAIL提出任何有关本手册和ModelSim 软件的意见和问题 Model Technology Incorporated 10450 SW Nimbus Avenue, Bldg. R-B Portland, OR 97223-4347 USA 电话: 503-641-1340 传真: 503-526-5410 email: manuals@model.com 网址: http://www.model.com 索引 ModelSim 的文件通过我们的网站model.com/resources/ index.html下载,或者通过下列表格查找 文件 存储形式 怎么找到文件 Start Here for ModelSimSE/EE (安装及支持资料) 纸介质 向ModelSim公司索取 在线PDF格式 从ModelSim的HELP菜单(选择SE/EEDocumentation > Licensing and Support),或者在路径\modeltech\docs 目录中找se_start.pdf文件。也可以从我们的网站www.model.com中获得。 ModelSim SE/EEQuick Guide(命令和特性的快速查找资料) 纸介质 向ModelSim公司索取 在线PDF格式 从ModelSim的HELP菜单(选择SE/EE Documentation > SE/EEQuick Guide),或者在路径\modeltech\docs 目录中找se_guide.pdf文件。也可以从我们的网站www.model.com中获得。 ModelSim SE/EE Tutorial 在线PDF格式 从ModelSim的HELP菜单中找SE/EE Documentation 组,或者在光盘路径\modeltech\docs 目录中找se_man.pdf文件。也可以从我们的网站www.model.com中获得。 ModelSim SE/EEUser’s Manual(用户手册) 在线PDF格式 从ModelSim的HELP菜单中找SE/EE Documentation 组,或者在光盘路径\modeltech\docs 目录中找man.pdf文件。也可以在安装完成后的硬盘中找到。 ModelSim SE/EE Command Reference 在线PDF格式 从ModelSim的HELP菜单中找SE/EE Documentation 组,或者在光盘路径\modeltech\docs 目录中找se_cmds.pdf文件。也可以在安装完成后的硬盘中找到。 Tcl man pages (Tcl 手册) HTML格式 用WINDOWS主菜单选择Help > Tcl Man Pages ,或者通过路径\modeltech\docs\html找contents.html文件 tech notes ASCII格式 在完成安装后的\modeltech\docs\technotes目录里或者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的主窗口。 创建一个项目 在 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 或测试的HDL设计下,一个项目提供一个实体。 最小配置情况下,有一个根目录,一个操作库,和一个会话状态,这些都存储在项目的根目录下一个a .mpf文件里。 一个项目由以下几个部分组成: HDL资源文件 子目录 本地库 整体库的资料 如果需要更多有关项目文件使用的信息,请看ModelSim的用户手册。 注意:从5.3版开始,ModelSim 公司 后缀为.mpf的扩展文件是指项目文件。在过去的版本里modelsim.ini 文件(系统初始化文件)被作为项目文件。 1.下列其中一种方式可以启动ModelSim 在UNIX的Shell模式下键入vsim 在你的Windows操作系统下,可以通过点击开始菜单里的Windows快捷图标modelsim.exe或者在DOS模式下执行文件modelsim.exe 2.在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.开始时,为这个练习创建一个新的路径(防止与其它用户正在做的工作混淆)。把这个路径创建出来以后,我们把 \\modeltech\examples 目录下的所有VHDL(*.vhd)文件拷贝进来。 我们通过从这个新的路径下面调用ModelSim或者从ModelSim的主窗口选择File>Change Directory命令来确保我们的当前工作路径就是新建的路径。 2.用下列两种方法之一运行ModelSim: 对于UNIX在命令行下敲入: vsim –gui 对于Windows-你可以选择点击快捷方式图标进入或者从开始菜单进入或者在DOS命令行下敲入: modelsim.exe 注意:如果在安装ModelSim的时候,你没有将它添加到你的查找目录中去的话,那么当你在DOS下敲入命令时,你必须同时敲入完整的路径。 3.在你编译任何HDl源代码之前,你需要有一个设计库以便保存编译的结果。要想创建一个新的设计库,你需要在主窗口中选择Design>Creat 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一样),那么点击plus-box prefix来查看所有相关结构。 6.选择实体counter并且选择Load接受它的设置。 7.下一步,从主窗口菜单中选择View>All来打开所有VSIM窗口。 窗口说明可以参考ModelSim的用户手册。 8.从信号窗口菜单中,选择View>List>Signals in Region.这个命令将在列表窗口中显示顶层信号。 9.接下来通过选择View>Wave>Signals in Region from the Signals把顶层信号添加入波形窗口之中。 运行仿真 我们是通过给输入时钟激励来运行仿真的。 1.点击Main window,在VSIM提示符下输入如下命令: force clk 1 50,0 100 –repeat 100 VSIM如下翻译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.为练习创建一个新的路径,从\\modeltech\examples目录拷贝如下VHDL文件到新的目录。 ·gates.vhd ·adder.vhd ·testadder.vhd 当前的路径一定要是新建的路径。你可以使用的方法有:从新建路径下调用ModelSim或者在ModelSim主窗口中点击File>Change Directory. 2.采用下述两种方法之一启动ModelSim; 对于UNIX来说,在命令行下敲入: vsim –gui 对于Windows来说,可以从快捷方式图标进入或者从开始菜单进入或者在DOS下敲入: modelsim.exe 3.在ModelSim提示符下敲入如下命令以创建一个新的库: vlib library_2 4.通过在系统提示符下面敲入如下命令,把源文件编译到新的库中去: vcom –work library_2 gates.vhd adder.vhd testadder.vhd 5.现在让我们把新库映射到工作库中去。想创建一个映射你可以:编辑modelsim.ini文件的[Library]字段或者用vmap命令创建一个逻辑库名: vmap work library_2 ModelSim会帮你修改modelsim.ini文件。 6.通过在主窗口点选Design>Load New Design或者直接点击Load Design快捷图标来启动仿真器。Load Design对话框如下显示。 7.在对话框中进行如下步骤: ·确保仿真器的设置为缺省值(缺省设置为ns) ·在Design Unit菜单项中选择test_adder_structural一项 ·点击Load完成设置。 8.要打开所有的VSIM窗口,你可以在主窗口的VSIM提示符下输入如下指令: view * 如果在上次你做完练习以后没有人启动仿真器进行新的设置的话,ModelSim将会在你上一次练习同样的位置打开所有窗口。 9.将高层信号以下列方式拖到列表窗口中去:在确保层没有越界(没有负框),用Edit>Select All全选窗口中的所有信号,拖曳他们到列表窗口。 10.输入如下命令,把顶层信号加入波形窗口: add wave * 11.现在把工具条中运行长度那一项的值改为1000(ns)。点击运行长度那一项的域就可以改值了(注意那里的箭头对你改值的用处) 仿真的运行与调试 1.点击工具条中的RUN按钮运行仿真。现在窗口中显示了一条错误声明信息,让我们看看错在那里了。进行如下步骤跟踪仿真。 2.首先,选择Options>Simulation改变仿真声明的选项。 3.选择Assertions页。在Break on Assertion项中选择Error然后点OK。这会使仿真器在声明出现后停止在那一行HDL代码处。 4.在工具条中选择Restart按钮重启仿真器。你要把Restart对话框中的选项全选中,再点Restart按钮。 5.在工具条中选择Run按钮。注意资源窗口中的箭头指向声明段。 6.如果你看一下Variables窗口,你会看到i=6。这表明仿真在循环测试第六次以后停止。 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,使用菜单Edit>Change。 12.在value域中通过在它们上拖拉选上后四位bit,然后用0111替代,点击change按钮。(注意这仅仅是暂时的编辑,你要永久的变化还得去修改源代码。) 13.在主窗口中选中run按钮。这样的话,模拟将会无错地运行。 修改新行的触发 在list窗口中,默认的情况下一个列表中的信号的每个传输都会触发出示一个新行。下面的步骤是把这种触发该为每隔100ns一下。 1.在list窗口中,点击菜单Prop>Display Props。 2.在Trigger页执行下列步骤: 取消Trigger On:Signals, 选中Trigger On:Strobe, 在Strobe Period域中写入100, 在First Strobe at域中写入70, 点击OK。 3.你的最后一个操作是将信号a,b,和sum修改为十进制。 选中菜单Prop>signal Props,它会打开一信号属性窗口。 4.这时你就可以在list窗口中选中信号,修改它们的属性,现在做如下改动: 选中信号a,然后选上Decimal,点击按钮Apply; 选中信号b,然后选上Decimal,点击按钮Apply; 选中信号b,然后选上Decimal,点击按钮OK; 仅仅熟悉一下菜单系统,就到了这节课的结束,要退出系统可以使用命令:quit –force 第四章 批处理模式模拟 本课目的: ·运行批处理模式模拟 ·执行宏文件(do) ·察看保存的模拟 批处理模式允许你执行几条命令,它们被写在一个文本文件中。即你用你想运行的命令创建一个文本文件,当你启动Modelsim时,指定它,这在你重复运行一个模拟或一套命令时非常有用。 重点:批处理模式必须运行在DOS或UNIX提示符下,在Windows95/98/NT中,可以沿着Start>Programs>Command Prompt得到DOS,没有另外指示,这课所有的命令都是在DOS或UNIX提示符下。 1.在这课开始之前,你需要创建一个新的目录,使它为当前路径,把下列这个文件拷贝到你的新目录中: \\modeltech\examples\counter.vhd 2.创建一个新的设计库(记住:所有的命令都在DOS或UNIX下) vlib work 3.映射库: vmap work work 4.然后编译源文件: vcom counter.vhd 5.用一个宏文件为counter提供触动。为了你的方便,跟随Modelsim已经把这个文件提供给你了,你需要把这宏文件从安装的目录拷到当前目录上: \modeltech\examples\stim.do 6.用编辑器创建一个批文件,命名为yourfile,在编辑器中,把下列命令分别写成行: add list -decimal * do stim.do write format list counter.lst 保存在当前目录中。 7.输入下列命令,运行批处理模式模拟: vsim -wav saved.wav counter < yourfile 这步所做的工作: ·在设计单元counter上调用VISM模拟 ·开关参数-wav指示模拟器将模拟结果保存到一个名为saved.wav的log文件中 ·使用yourfile的内容是为了指定那些数值以十进制列出,触发文件为stim.do,并将列出的结果写到名为counter.lst,默认的设计单元是counter 8.既然你已将模拟的结果保存在saved.wav,你可以启动参数-view的VSIM命令: vsim -view saved.wav 9.在主窗口中用菜单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程序提供给你了,你只需把它从安装的目录拷到你的当前目录即可: \\modeltech\examples\startup.do 2.接着,为了在设计单元加载后执行一个指定的命令,你要到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_intersection traffic.vhd queue.vhd tb_traffic.vhd connect_lights vsim -lib vhdl/ work tb_traffic examine -value draw_queues draw_controls force -freeze $var $val ns TK窗口小器件 这十字路口图解指出了几个Tcl/Tk“窗口小器件”,一个窗口小器件仅仅是一个用户接口的元素,如同菜单和滚动条一样。Tk窗口小器件是参照Tcl程序创建图形界面对象的,Tk工具箱包括几种窗口小器件,另外一些可以使用这几种来创建。 控制模拟 在Modelsim中,十字路口界面组成部件友谊下作用: 节省时间; 既然几个十字路口空间能调用一个VSIM命令产生一个动作(比如滚动调的动作),这种界面相对从提示符和Modelsim菜单调用命令要节省时间。 几个例子的原始文件的副本 另外几个例子的原始文件的副本的地址是: ..\examples\tcl_tutorial\originals directory 例子的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 通过这个交叉路口实例你应该会修改Tcl文件来完成交叉路口的最终版本。你将会在tcl_tutorial\solutions路径中找到一套完整可以运行的交叉路口实例,在Modelsim命令提示符下调用命令可以运行它们。 cd solutions do 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.tcl image_example 2.拖动鼠标交叉按键,注意主界面发生了什么。 按下其中一个按键;将看到一个出错对话框。可以通过修改文件images.tcl解决这个问题。 3.在图象显示的底部按下See Source Code按键或在ModelSim提示下调用notepad查看源文件。 notepad images.tcl 会发现程序pushme不见了;这在images.tcl中注明。 4.用notepad中的菜单选项Edit>Find搜索“proc push”。去掉注释(“#”符号)返回函数到你的源文件,然后用Destroy按键关闭图象窗口。 5.当程序pushme正确运行时将打印它的一个参数——对象名——到界面。 添加程序pushme到你的源文件之后,需要用这些命令重新查找和运行Tcl程序(用向上箭头滚动过这些命令或执行!source): source images.tcl image_example 按下所有键,注意主界面中的对象名。之后关闭图象例程的窗口。 例程3-模拟一个十字路口交通灯 在这个例子中将模拟一个十字路口交通灯。所创建的仿真界面允许高效运行“假设”情景。 引入交通十字路口窗口部件 我们的例程这部分介绍交通十字路口窗口部件。你将为这个十字路口添加其它部件来创建一个交通仿真环境。 再次强调,开始这个例程之前应确定已完成“初始化安装” (6-54)。 1.在ModelSim提示下调用这个命令和程序画出十字路口: source intersection.tcl draw_intersection 2.由ModelSim提示,用程序set_light_state来改变灯的颜色: set_light_state green .traffic.i.ns_light set_light_state green .traffic.i.ew_light 可以从原有的命令用主工具栏的复制和粘贴键来帮助建立指令。 3.在ModelSim提示下用这个命令查看源代码: notepad intersection.tcl 可以从主菜单中用Edit>Find查找程序(位于文件中部)。 将交通灯连接到仿真 利用十字路口窗口部件,添加when状态把灯连接到实时仿真。当连接完成,仿真交通灯控制器,观察灯的变化。 当需要的仿真条件发生时,用VISM when状态来给仿真做条件调用Tcl程序。对于我们的例子,需要的条件是灯的状态。仿真中无论何时灯改变状态,我们都希望在屏幕上看到灯颜色的变化。 4.在ModelSim提示下用这个命令加载你编译的VHDL库为这些例子作准备: vsim tb_traffic 确定在程序connect_lights开始前调用这个命令,如果不加载库,就没有设计用来仿真。 5.用下面这个命令和程序把灯连接到仿真: source lights.tcl connect_lights 现在试运行仿真;或者选择十字路口的运行键。如果用Run Forever键则选择Break。注意源窗口是如何打开和提示要执行的下一行的。(当中断发生时如果仿真器并不评估执行的程序,源窗口就不打开。)只有东/西方向灯工作时,你可以通过编译lights.tcl文件使两灯都工作。 6.用notepad编辑lights.tcl文件,给南/北方向灯添加一个when状态。 notepad lights.tcl 因为当前状态仅仅针对东/西方向灯,所以需要添加这条命令。可以找到已注释的结论。(记住改变文件的只读状态,这样你可以进行编辑。)你可以在文件末尾找到代码注释(重试Edit>Find)。 7.进行改变之后,重新加载、再次运行仿真。 source lights.tcl connect_lights 现在灯全部工作。 注意:记住,如果你需要返回到原来的Tcl文件(也许你已经编译了文件但没有正常工作)你会发现文件在tcl_tutorial/originals库中。 将窗口部件添加到显示仿真消息 运行交通灯可能是有趣的,但不是很有用,添加一些显示,这会告诉我们在十字路口的汽车发生了什么。 现在添加队列部件来显示我们所仿真的每两个队列长度的总和。 8.已经提供了东/西窗口部件,用它来显示东/西队列总的长度。让我们编辑源文件为南/北方向添加显示。使用notepad: notepad queues.tcl 在queues.tcl中有结论注释。 队列显示部件用两个标志部件组成一个封闭框架。第一个标志是一个简单的文字字符串。第二个标志是队列长度值。无论何时队列长度改变,第二个标志中的文字将更新。 9.在添加南/北部件之后,调用这个命令运行你的程序: source queues.tcl draw_queues 根据交通指示,汽车以同一速度离开十字路口。那看来很直观,但如果要根据交通流量设计一个十字路口,你可能想改变交通灯的周期。也许某一方向比另一方向有更多的输入交通流。 以比例部件形式添加控制,使得你能快速改变十字路口假设的交通流。 添加“比例”部件控制仿真 下面将添加Tk“比例”部件用来控制到达速度和灯亮的长度。 10.已经有控制东/西队列相互到达时间的东/西部件。可以编辑源代码来添加南/北方向的控制。用这个命令: notepad controls.tcl 可以去掉代码中的注释来作改变。 同样的,添加南/北部件来控制灯亮的长度。已有对灯进行控制的东/西部件。(也可以去掉代码中的注释来作改变。) 这些控制部件用Tk“比例”部件执行,封装在一个框架内。 当比例部件的值改变时,调用每个比例上用-command选项详细说明的命令。 11.在添加南/北部件之后,调用这个命令运行你的程序: source controls.tcl draw_controls 现在你完成了一个完整的十字路口界面。试运行按键和the slider scales.你也可以查看ModelSim的GUI仿真。检查源窗口看VHDL文件,给示意窗口加信号(加wave*)。也可以改变主窗口的运行长度。试用主窗口和十字路口窗口的运行键。 保持路口仿真运行状态以完成下一个例程。如果你想快点重新创建最终的路口环境,就从ModelSim提示中调用这些命令(在“初始化安装”之后(6-54)): cd solutions vmap work work do traffic.do 例程4——画一个代表仿真的状态机 在这个最终的例子中,要画一个代表仿真的状态机,并把它连接到交通灯控制器内部的状态信号。控制器所作的每次转换随着它的发生而显示出来。 原来例子的路口环境需要为这个例子运行。从ModelSim提示中调用这些命令以使其快点运行(在“初始化安装”之后(6-54))。 cd solutions do traffic.do 1.用这些命令运行状态机: source state-machine.tcl draw_state_machine 让我们改变灯的颜色和转换箭头。 2.用这个命令打开源文件: notepad state-machine.tcl 注意文件中的“ModelSim EXAMPLE part 1”注释。可以把“both_red”状态匹配条件x=125,y=50变为任何条件。(在作出改变之前不需要检查编辑菜单的只读选项。) 3.注意文件中的“ModelSim EXAMPLE part 2”注释。可以将转换箭头匹配条件变为相应的新的“both_red”状态匹配条件。 4.注意文件中的“ModelSim EXAMPLE part 3”注释。将现在的颜色从“黑色”变为“紫色”。 5.准备运行状态机时,再用原来的命令(记住,要复制原来的命令到当前命令行,选择原来的ModelSim提示): source state-machine.tcl draw_state_machine 注意变化。有兴趣的话,尝试一些条件的改变。 Tcl/Tk例程结束了。如果愿意可以继续修改和测试例程;可以随时覆盖tcl_tutorial\originals目录下的源文件。 第七章 基础Verilog仿真 本课目标: ·编译一个Verilog设计 ·检查设计的十六进制文件 ·列出设计中的信号 ·改变列表属性 ·设置断点 ·在波形显示中添加和删除光标 注意:本讲中必须使用ModelSim SE/EE-VLOG, ModelSim EE/PLUS, or ModelSim SE/MIXED 准备仿真 如果你已完成原来的任何一个VHDL课程就会注意到Verilog和VHDL仿真过程几乎相同。 1.创建并修改到一个新目录使其为当前目录。 可以通过从新目录调用ModelSim或者从ModelSim主窗口用File>Change Directory命令将目录变为当前目录。 2.从\\modeltech\examples目录将Verilog文件(以“v”为扩展名的文件)复制到当前目录。 在编译一个Verilog设计之前,需要在新目录下创建一个设计库。如果你只熟悉已说明的Verilog仿真,如Cadence Verilog XL,那么这对你来说将是一个新的思想。因为ModelSim是一个已编译的Verilog,就需要为编译所设的目标设计库。如果需要,ModelSim能够将VHD
本文档为【ModelSim用户手册】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_176339
暂无简介~
格式:doc
大小:223KB
软件:Word
页数:37
分类:工学
上传时间:2010-11-21
浏览量:47