2.2 菜单栏
在软件界面的最上端是菜单栏,整体界面图只能看到位置,看不清楚具体内容,这里把菜单栏放大,如图2-2所示。图中上方“ModelSim SE-64 10.4”是软件的标题栏,说明软件名称和具体的版本号,标题栏的下方就是菜单栏。菜单栏按功能不同划分了 File、Edit、View、Compile、Simulate、Add、Tools、Layout、Bookmarks、Window、Help 共 11 个大的选项。需要注意的是,菜单栏里并不包含所有 ModelSim 能实现的功能。换言之,有些功能是在 ModelSim 菜单栏中找不到的。如果要运行这些功能,必须采用命令行操作方式,这将会在命令窗口部分介绍。
图2-2 菜单栏
另外,在 Add 和 Tools 之间的 Project 菜单并不是固定菜单,根据鼠标选择的窗口不同,会显示不同的菜单。此图鼠标选中的是 ModelSim 启动后的 Project 标签,故而出现了Project 菜单。如果选中源文件、命令窗口、波形窗口或者库等,则会对应出现 Source、Transcrip、Wave或者Library等菜单。因为此菜单不固定,所以本章暂不介绍该菜单,留待对应使用的章节再一一说明。
2.2.1 File菜单
File 菜单,顾名思义,包含的功能是对文件进行管理和操作。单击 File,会出现如图 2-3所示的下拉菜单,可以看到包含的具体功能。其中有些功能的文字是黑色的,这些功能是当前可使用的功能;有些功能的文字是浅灰色的,这些功能是当前不可使用的功能,需要编译或仿真进行到一定阶段或者设计文件中有一些特殊的器件时才可使用。除了 File 菜单,其他菜单也采用这种表示方式,后面就不再一一重复了。
File 菜单功能较多,这里详细介绍重要的功能,对于一些简单的或显而易见的功能,只是略带几笔描述一下基本功能,读者完全可以自己在实际使用过程中掌握。
图2-3 File菜单
(1)New(新建)
New是File菜单的第一个命令,也是常用的命令之一。New命令有六种新建类型,分别是 Folder (文件夹)、Source (源文件)、Project (工程)、Library(库)、Debug Archive(调试存档)和 Results Analysis Database(分析数据报告),如图2-4所示。
若选择【Folder】命令,会弹出对话框,要求用户输入新文件夹的名称,如图 2-5 所示,这时会在默认的目录下新建一个文件夹。在本书中 ModelSim 的默认目录是 C:\modeltech_10.4\examples,新建的文件都会默认存储在这个目录下。
图2-4 六种新建类型
图2-5 新建文件夹
若选择【Source】命令,则可新建 5 种不同类型的源文件,如图 2-6 所示,分别是VHDL文件、Verilog文件、SystemVerilog文件、Do文件和Other文件,相比之前的版本,每类文件前都有对应的图标显示,使用起来更加方便和直观。一般情况下,VHDL 文件后缀名是“.vhd”,Verilog 文件后缀名是“.v”,SystemVerilog 文件后缀名是“.sv”,Do 文件后缀名是“.do”,Other文件没有确定的文件后缀名。
图2-6 五种新建源文件
若选择【Project】命令,则可新建一个工程。这个命令在第1章快速入门的实例中曾经使用过,可以参考第 1 章的有关内容,这里不再赘述。
若选择【Library】命令,ModelSim 会新建一个设计库,并映射该设计库。选中该命令后会弹出如图2-7所示的对话框。对话框中有三个选项可选,分别是a new library(创建一个新库)、a map to an existing Library(映射到已有库)和a new Library and a logical mapping to it(创建一个新库并映射到该库),分别如图 2-7 中(a)、(b)、(c)所示。不同的选项需要有不同的输入,这部分将在第3章中详细阐述。
若选择【Window】命令,则可新建三种不同的窗口,分别是 Dataflow(数据流)窗口、List(列表)窗口、Wave(波形)窗口。这三个窗口在仿真的过程中都有重要的用途,在本章的MDI窗口中会有更加详细的介绍。
图2-7 Create a New Library对话框
选择【Debug Archive】命令,会建立一个调试文档,该选项会在启动仿真后激活,能够把调试的结果保存下来,写成“.dbar”文件类型,如图2-8所示。
图2-8 Create Debug Archive对话框
最后一个【Results Analysis Database】命令,可以建立一个对已有数据文件或者波形等记录信息文件的分析文档,可以用来筛选保存一些关键的信号和端口。
(2)Open(打开)
这个命令很简单,执行打开文件的操作。ModelSim 具有很好的文件管理功能,在可打开的文件类型中包含各种常用文件类型,如图2-9所示。当选中一种文件类型时,其他类型的文件就会被暂时屏蔽掉,使操作和选择界面更加简洁。
图2-9 丰富的文件类型
(3)Load(载入)
载入命令可以为 ModelSim 载入三种文件,分别是 Macro File (宏文件)、Debug Archive(调试存档)和UCDB Testanalysis(UCDB测试分析),如图2-10所示。Mocro File是以“.do”或“.tcl”后缀的文件,这些文件一般是一个指令的集合形式。例如,在使用Wave window(波形窗口)的时候就可以生成一个“Wave.do”的文件,保存一个波形的信息,使用Load命令就可以载入并执行这些预先存储的文件。Debug Archive可以载入调试文件或者日志文件。
(4)Close(关闭)
选择该命令会关闭选中的目标。例如,选中一个源文件,执行Close 命令,源文件就会被关闭;选中工程标签,工程就会被关闭。可以被关闭的还有仿真、波形、列表等各种形式。
(5)Import(导入)
在 ModelSim 进行仿真的时候,有时需要将已有的文件导入,这时可以选择导入命令。Import命令执行导入操作,可以导入如图2-11所示的五种类型的文件:Library(库文件)、EVCD (仿真转储文件)、Memory Data (存储器数据)、Testplan (测试计划)、Column Configuration(列配置)。选择不同的命令会弹出相应的对话框,按照提示一步一步选择需要导入的文件即可。
图2-10 Load命令载入的文件类型
图2-11 Import命导入的文件类型
导入库文件命令,主要针对FPGA器件。适用于FPGA的源文件一般都使用到了FPGA自带的基本元器件,这些源文件若要在 ModelSim 中仿真,必须把器件库导入 ModelSim中。另外,一些规模较大的设计可能需要多个小组并行开发,所设计的各个单元器件也要进入单元库,在最终合并设计的时候也需要把各自的库进行合并。
导入 EVCD 文件命令,只有在波形窗口被激活的时候才是可选的选项。该命令可以把预先用ModelSim波形编辑器编辑的EVCD文件导入波形窗口中。
导入存储器数据命令,只在设计中存在存储器的情况下是可选选项,该命令的功能是导入一个预先存储好的数据文件,初始化设计中的存储器,这一部分会在使用存储器窗口的章节中介绍。
导入测试计划命令,仅在验证管理窗口打开的时候才能使用,可以导入一个事先存储的XML文件,这个文件可以显示覆盖率等测试信息,并且和UCDB文件联合使用。
导入列配置命令,可以修改 ModelSim 各个窗口中的列选项,用户可以根据个人喜好来修改窗口视图,使窗口中自己不需要的部分不再显示。导入的文件是一个“.do”文件,这个文件需要事先存储好,在随后的导入命令和工具条中会给出此文件的详细说明。
(6)Export(导出)
导出命令与导入命令相对应,只是可导出的文件种类与导入的种类略有不同,其类型如图 2-12 所示。Export 命令可以导出 Waveform(波形)、Tabular list(表单)、Event list (事件表)、TSSI list(TSSI 表)、Image(图像)、Memory Data(存储器数据)、Column Configuration(列配置)和HTML(网页)共8种文件。波形、图像、存储器数据这三种文件格式容易理解,Tabular list(表单)、Event list(事件表)、TSSI list(TSSI表)三种格式将在后面的列表部分中使用时介绍。
导出 Column Configuration (列配置)命令需要选中某个窗口,这里以第 1 章中的Project 标签页为例,选中此窗口后,Column Configuration(列配置)选项变为可选,这时可以将本窗口的配置信息保存为“.do”文件,留待以后使用。修改列配置的方式需要使用到工具条中的ColumnLayout工具,如图2-13所示。
图2-12 导出的文件类型
图2-13 列配置工具条
该工具可以在工具条区域找到,在下拉菜单中选中并单击Configure ColumnLayout后会出现如图 2-14 所示的对话框。对话框的左侧是所有已有配置的名称,右侧是对这些配置信息的管理按钮。单击 Edit 按钮之后会出现如图 2-15 所示的对话框,这里会显示选中窗口的所有列名,左侧是不显示的列,右侧是显示的列,可以通过中间的 Add、Delete 和Reset 进行左右移动和重置。这里将 Modified 列设置为不显示,单击 OK 按钮确认后,可以看到Project标签中的Modified列已经消失,如图2-16所示。
图2-14 列配置窗口
图2-15 编辑列配置
图2-16 列配置前后对比
在 ModelSim 中,所有窗口中的列配置都可以使用这种方法来进行重新设置,可以只留下自己想要的信息,使窗口变得更加简洁。其他按钮如 Create(创建)、Rename(重命名)等的操作比较简单,读者简单尝试即可掌握其功能,这里不再一一介绍。
导出网页命令可以把窗口中显示的各种信息保存为网页形式,这里依然以第 1 章的例子为例。在启动仿真之后,会出现Objects窗口,如图2-17(a)所示,此时选中Objects窗口,选择导出页面文件,会出现对话框,让设计者输入保存的名称。输入名称并确定保存后,一个网页文件就生成了。这时,使用浏览器打开刚刚保存的网页文件,就会看到如图 2-17(b)所示的页面信息,这里仅截取了页面中的有效显示部分。
图2-17 保存网页文件对比图
(7)Save(保存)
该命令比较简单,也会根据在 ModelSim 窗口选中目标的不同,自动选择存储的类型。例如,选中一个源文件,ModelSim 就会默认保存为“.v”或“.vhd”的文件;选中一个波形文件,ModelSim会默认保存为“.do”的文件。
(8)Save As(另存为)
与保存命令相同,只是可以重新定义文件名称而已。
(9)Report(报告)
产生一个文本格式的报告,储存了当前活动窗口的信息。如在仿真过程中选择 Objects (对象)窗口,生成报告,报告的内容就是Objects窗口的内容,包括端口列表和数据值。
(10)Change Directory(改变路径)
这个命令可以改变当前工作的路径。前面已经介绍了,ModelSim 具有自己的默认路径,选择这个命令后,会有对话框提示用户选择要改变的目录,如图 2-18 所示。这里Directory path是ModelSim的默认路径,用户可以根据自己的需要选择新的目录作为工作目录。不过有一点需要注意,若当前已经打开了一个工程文件,则更改工作路径时必须关闭先前的工程,在更改工作路径后需要新建工程,而新建的工程也会保存在更改后的路径中。也就是说,在 ModelSim 中如果把一个工程目录复制到另一个位置,必须使用本命令指定新的路径。
图2-18 改变工作路径
(11)Use Source(使用源文件)
该命令可以替换一个选中的文件。选中一个源文件,再使用 Use Source 命令,会弹出对话框,让用户选择一个替换文件。选好后,该替换文件就会替换掉当前的文件。但是这个替换不是永久性的,该替换文件只对当前仿真有效,而且自动出现在工程文件列表中。而且此命令仅在Structure window(结构窗口)中使用有效。
(12)Source Directory(源文件目录)
选择该命令会弹出如图 2-19 所示的对话框,从这个对话框中可以选择一个目录,用来添加或者移除源文件。
图2-19 指定源文件目录
(13)Dataset
打开 Dataset 浏览器来打开或保存一个 Dataset,如图 2-20 所示。此浏览器打开后默认显示的是当前仿真运行中的 Dataset 文件,此时可以方便地保存此文件,或者根据需要打开一个新的Dataset文件,Dataset文件一般保存的是仿真中的各种信息。
图2-20 Datase浏览器
(14)Environment(环境)
环境命令有四个可选项,如图2-21所示,分别是Follow current dataset、Fix to dataset Selection、Follow Context Selection和Fix to Current Connext。Follow current dataset可以根据当前的Dataset更新对象窗口,Fix to dataset Selection会把对象窗口的内容固定在一个特定的 Dataset 中,Follow Context Selection 会根据工作区中仿真结构标签的选择来更新窗口内容,Fix to Current Context 会维持当前波形,不进行更新。该命令只在 Structure、Locals、Processes和Objects窗口中才生效。
图2-21 环境选项
(15)Page Setup(页面设置)
Page Setup是打印设置命令,只有某可打印窗口出现时才会变为可选选项。在前面的内容中也介绍过,有些选项是需要一定条件的,用户可以多动手操作,慢慢摸索,熟悉各个选项需要的条件是什么,这样的效果将会更好。例如,在出现波形窗口后选中页面设置命令,会弹出如图 2-22 所示的对话框,其中包含多个选项,主要用来更改打印页面的显示配置,在打印不同窗口时显示的选项也不尽相同。
图2-22 Page Setup对话框
(16)Print(打印)
打印命令区、源文件窗口或者波形窗口的内容。
(17)Print Postscript(页面打印)
采用页面描述语言打印或保存源文件、波形文件。注意:命令区只可以采用 Print 命令打印。
(18)Recent Directory(新近目录)
这里会显示最近打开的目录信息。
(19)Recent Projects(新近工程)
这里会显示最近打开的工程信息。可以方便用户在不同的工程间切换。
(20)Close Window(关闭窗口)
选中某个打开的窗口时,选择此命令可以关闭该窗口。
(21)Quit(退出)
退出命令。选中此命令后会退出ModelSim仿真软件。
2.2.2 Edit菜单
Edit 菜单中的选项大多数都是常用的编辑命令,与 Word 等软件类似,如图 2-23 所示。包含的常用命令有 Undo(撤销)、Redo(重做)、Cut(剪切)、Copy(复制)、Paste (粘贴)、Delete(删除)、Clear(清除)、Select All(选择所有)、Unselect All(取消全选)、Expand (展开)、Goto (跳转)、Find (查找)、Replace (替换)、Signal Search (信号搜索)、Find In Files (多文件查找)、Previous Coverage Miss (前一个覆盖缺失)和 Next Coverage Miss(后一个覆盖缺失)。从Undo到Unselect All的8个命令相信读者已经非常熟悉,在其他的编辑软件中这些都是基本命令。下面只从Expand命令开始介绍。
(1)Expand(展开)
展开命令可用于Workspace的sim标签中,共有四个命令,分别是Expand Selected(展开所选)、Collapse Selected(合并所选)、Expand All(展开全部)和 Collapse All(合并全部),如图2-24所示。
展开命令可以在具有层次化显示的窗口中使用,用来显示或合并选中的层次信息。例如,仿真初始时的 sim 标签栏,其中只有一个顶层模块,使用 Expand 命令可以展开顶层模块,并逐级观察模块的内部信息,可展开成如图2-25所示的层次结构图。模块前端的“+”号表示该模块可被展开,模块前端的“-”号表示该模块已经被展开。被展开模块的内部信息会以树形结构的形式表示。
图2-23 Edit菜单
图2-24 Expand命令
图2-25 可展开和合并的项
(2)Goto(跳转)
跳转命令在其他软件中也有应用,完成在当前文件或窗口中的跳转。根据所选文件或窗口的不同,弹出的窗口略有不同。例如,在源文件中选择跳转命令,会出现跳转到某一行的提示,而在仿真波形窗口中选择跳转命令,会出现跳转到某个仿真时间,如图2-26所示。
图2-26 跳转命令对话框
(3)Find(查找)&Replace(替换)
这两个命令用于源文件编辑,Find 命令用于在当前的文件窗口内查找一个字符串,Replace命令可以在查找的基础上,把查找到的字符串用另一指定的字符串代替。
(4)Signal Search(信号搜索)
这个命令用于搜索波形窗口或列表窗口中某个特定的信号值或者特定的信号跳变。在波形窗口中选择此命令会出现如图 2-27 所示的对话框,可以搜索上升沿、下降沿、特定值、特定表达式等各种信号。在列表窗口中使用此命令也会出现类似的窗口。
图2-27 信号搜索
(5)Find In Files(多文件查找)
选择此命令后会出现如图2-28所示的对话框。这个命令是Find命令的加强版,可以在Find what中输入需要查找的字符串,在File patterns中指定查找文件的类型,在In folder中指定查找文件的目录范围,还可以在指定目录的子目录中继续进行查找。
图2-28 多文件查找
(6)Previous/Next Coverage Miss(前/后一个覆盖缺失)
这个命令在当前的源文件窗口中使用,用来显示前/后一个代码覆盖的缺失行。
2.2.3 View菜单
View 菜单用来控制显示,包含的命令如图 2-29 所示。ModelSim 具有很多窗口,在实际工作中,这些窗口大多是被隐藏的,只会根据当前进行的仿真步骤,显示几个经常使用的窗口,这些窗口可以完成基本的仿真功能,但是如果需要用到其他的窗口,就需要用户自己操作,调出未显示的窗口。在图中的 View 菜单中,除去最后的 New Window (新窗口)、Sort (排序)、Filter (筛选)、Justify (对齐)、Properties(属性)五个命令外,其他命令的作用都是把所选名称的窗口显示在当前的工作窗口中,这些命令在本章后面的窗口介绍部分会详细说明,这里只介绍后五个命令。
图2-29 View菜单
(1)New Window(新窗口)
这个命令可以新打开一个 Schematic (原理图)、Dataflow (数据流)、List(列表)、Wave(波形)、UVM Details(验证细节)窗口,如图2-30所示。
(2)Sort(排序)
Sort 可以把对象窗口或波形窗口中的项按一定顺序排序。图2-31 显示了排序的种类,可以有 Ascending(升序)、Descending (降序)、Ascending Full path (全路径升序)、Descending Full path(全路径降序)和 Declaration Order(声明顺序)五种排序选择。
(3)Filter(筛选)
筛选命令用于控制 Objects 窗口或 Structure 窗口中的模块列表,图 2-32 显示了可筛选的种类,可以看到,有两种筛选方案,一种是根据Port Mode(端口模式)来选择;另一种是根据Object Kind(对象类型)来选择。ModelSim的初始设置是显示设计中所有的端口和信号,如若用户不需要显示某类信号,可以根据自己的需要来调整显示端口。例如,不需要显示 InOut端口,只需要取消【Port Mode】下方【InOut Ports】前的对号即可。
图2-30 新建窗口
图2-31 排序的方式
(4)Justify(对齐)
这个命令可以改变所选窗口中的对齐方式,有左对齐和右对齐两种方式可供选择,默认为左对齐方式。
(5)Properties(属性)
显示所选对象的详细属性信息,在选中 File 标签或者 Source 窗口的时候可选,图 2-33显示了一个Verilog HDL文件的详细信息。
图2-32 Filter命令可筛选的种类
图2-33 文件属性信息
2.2.4 Compile菜单
Compile 菜单主要包含编译的命令,如图 2-34 所示。编译即对源文件进行查错的过程,在 ModelSim 中只有编译通过的源文件才能被仿真。一个源文件编写后往往存在很多问题,需要进行多次编译以得到正确的设计,所以编译也是一个重要的操作步骤。Compile菜单包含的命令如下。
(1)Compile(编译)
该命令将文件编译到设计库中。
(2)Compile Options(编译选项)
该命令用来进行编译设置,包括可以设置 VHDL、Verilog&SystemVerilog、Coverage 和 SystemC 文件的编译原则,如图 2-35 所示。对话框内的选项很多,这里暂且不提,会在第 4 章详细讲解各选项的用途。
图2-34 Compile菜单
图2-35 编译选项
(3)SystemC Link(SystemC链接)
该命令用来链接已编译好的 C/C++文件,注意被链接的文件必须是被编译过的。选中此命令会弹出如图 2-36 所示的对话框,单击 Add 按钮,可以选择在不同设计库中的文件,之后单击 Link 按钮,可以在当前的工作库中建立指向这些文件的链接,链接文件是“.so”格式的。
图2-36 SystemC链接
(4)Compile All/Selected(编译全部/所选)
用来编译当前工程内的所有可编译文件或者编译当前被选中的一个或多个文件。
(5)Compile Order(编译顺序)
该命令可以调整编译文件的顺序,因为在有些编译过程中需要先编译某些源文件,否则仿真器就会报错,这样就可以方便地设置需要的编译顺序。
(6)Compile Report/Summary(编译报告/总结)
Compile Report命令可以查看选中文件的编译报告,一个查看窗口只能查看一个文件的编译报告,如果同时选中了多个文件,则这些文件的编译报告会被分别打开,如图2-37所示。
图2-37 Compile Report窗口
Compile Summary命令用来查看当前工程中的所有已编译文件的编译报告,没有被编译的文件是不会出现的,而且所有文件的编译报告会出现在同一个窗口中,如图 2-38 所示,这些报告还可以以文本的形式保存到指定的目录。
图2-38 Compile Summary窗口
2.2.5 Simulate菜单
Simulate 菜单提供的仿真选项,如图 2-39 所示。严格意义上讲,Simulate 应该称为模拟,Emulate 才应该称为仿真。鉴于目前中文翻译没有分得那么清楚,都把 Simulate 称为仿真,为了防止造成不必要的误解,本书也称Simulate为仿真。
相对于前面几个菜单,Simulate 菜单具有的选项比较少,这是因为 Simulate 菜单只是提供了一些基本的操作,例如,仿真的开始、结束和初始设置等,而具体到仿真过程中的操作和设置都是在对应窗口或多标签页区域中进行的。下面依次介绍菜单中各个选项的作用。
(1)Design Optimization(设计优化)
图2-39 Simulate菜单
这个命令选项可以对当前库中的模块进行优化。选中此命令后会弹出如图 2-40 所示的窗口选项。选中需要优化的设计,在【Design Unit(s)】中会出现设计的名称,在右侧的【Output Design Name】中填入输出的设计,ModelSim 就会把优化好的设计保存为【Output Design Name】中的名称。同时,这个对话窗口中还提供了立即仿真的功能。选中【Start immediately】选项,ModelSim就会在优化设计后对设计进行仿真。
图2-40 Design Optimization窗口
(2)Start Simulation(开始仿真)
Start Simulation 可以选择要进行仿真的设计模块,选中该命令会弹出如图 2-41 所示的窗口,在work库中选择要进行仿真的设计即可。
图2-41 Start Simulation窗口
(3)Runtime Options(运行时间选项)
该选项会有如图 2-42 所示的选项窗口。在这里,可以设置【Defaults】、【Message Severity】、【WLF Files】三个标签中的不同选项。Modelsim 10.4 版本默认会显示进制,在波形信号等信号值的前方会有进制显示,如不需要,可以把Showbase前面的勾选取消。
图2-42 Runtime Options窗口
(4)Run(运行)
Run命令选项中有子菜单,如图2-43所示。选择【Run 100ns】会运行100ns的仿真,这个命令运行时间的长短取决于在【Runtime Options】中的设置。选择【Run-All】会运行全部仿真,如果设计中没有跳出或中止命令,仿真就会一直进行下去。【Continue】命令从当前暂停的仿真时间开始,一直运行到仿真结束。
(5)Step(步进)
Step 命令是按步进方式进行仿真,如图 2-44 所示。【Step-Over】是单步跟踪,单击一次执行一条语句,如果当前语句是用户函数或调用的事件名,则将整个函数或事件处理程序作为一条可执行语句。【Step-Out】是对仿真输出做步进仿真处理。
图2-43 Run菜单
图2-44 Step命令
(6)Restart(重新开始)
Restart 命令可保留当前仿真中的一切设置,包括数据流、波形、载入的线网等,只是将时间清零,重新开始仿真。选中此命令后会出现如图2-45所示的窗口,可以选择需要保留的选项。
(7)Break&End Simulation(中断和结束仿真)
Break 命令可以跳出当前运行的仿真,但是仿真的所有设置还会保留,只是将时间暂停住,这个命令适用于没有中断或跳出指令的测试平台。End Simulation 命令则不同,该命令在仿真运行时是不可选的,在停止或中断仿真后才变为可选。选择此命令会完全退出仿真界面,同时会关闭与仿真相关的各个窗口,主要包括Workspace和MDI中的相关窗口。
图2-45 重新开始仿真
2.2.6 Add菜单
Add 菜单向窗口中添加各种信号信息,如图 2-46 所示。可以向 Wave、List、Log、Schematic、Dataflow、Watch 窗口添加需要的信息,添加模式有三种:Selected Signals(添加选中的信号)、Signals in Region(添加当前窗口的信号)和Signals in Design(添加设计中的信号),Add菜单命令的功能如下。
图2-46 Add菜单
· To Wave(波形):在仿真运行时可以操作,向波形窗口添加信号。
· To List(列表):在仿真运行时可以操作,向列表窗口添加信号。
· To Log(日志):在仿真运行时可以操作,向日志文件中添加信号。
· To Schematic(原理图):在仿真运行时可以操作,向原理图窗口添加信号。
· To Dataflow(数据流):在仿真运行时可以操作,向数据流窗口添加信号。
· To Watch(监视窗口):在仿真运行时可以操作,向监视窗口添加信号。
· Window Pane(窗格):波形窗口激活时可选,把当前的波形窗口划分为两个区域,两个子窗口可以指定不同的波形,便于观察。
2.2.7 Tools菜单
Tools 菜单提供各种实用的工具,如图 2-47 所示。例如,菜单中第一个命令就是Waveform Compare (波形比较),可以方便地对比不同的波形,将人为操作变为软件操作。Tools 菜单还提供了 Tcl 代码的调试等功能。可以说 ModelSim 软件中集成的编译环境非常全面,凡是与设计相关的编程语言,在 ModelSim 中都是可以调试的。Tools 菜单中具体的命令介绍如下。
(1)Waveform Compare(波形比较)
波形比较命令有子菜单,内含9 个命令,如图2-48 所示。下面分别介绍这 9 个命令的用途。
· Start Comparison(开始比较):开始进行波形比较。选中这个命令后会弹出如图2-49所示的对话框。选择两个不同的波形文件,即可进行波形信号的比较。
· Comparison Wizard(比较向导):如果是初学者,ModelSim 还提供了本命令供使用。选中这个命令后,会一步一步地出现操作步骤,同时在选项旁边有文字提示,说明本步骤的作用和应该如何进行操作。用户按照提示进行操作,就可以完成一次波形比较。
图2-47 Tools菜单
图2-48 Waveform Compare子菜单
图2-49 Start Comparison对话框
· Run Comparison(运行比较):选中信号后,运行此命令可以开始比较波形的不同。
· End Comparison(结束比较):关闭比较标签,并且移除所有比较用到的波形。
· Add(添加):这个命令可以添加比较项,可以选择按信号比较或者按区域比较。
· Options(选项):这个命令可以打开比较的选项,主要是一些值的设定,如图 2-50所示。
· Differences(差别):具有4个命令,即Clear、Show、Save和Report。Clear命令用来清除所有的不同并重新开始比较,Show 命令用来在主窗口的命令区显示出所有的不同,Save命令用来把这些不同点保存为一个文件,Report可以输出差别报告。
· Rules(规则):具有两个命令,即 Show 和 Save。Show 命令用来显示之前已经设置好的比较规则,Save命令用来保存比较规则。
· Reload(重载):波形的不同或者比较的规则可以保存为文件,这个命令可以载入这些文件。
图2-50 Comparison Options部分选项
(2)Code Coverage (代码覆盖)
代码覆盖命令需要在仿真选项中设置,在【Start Simulation】命令中,选中【Enable Code Coverage】选项,就可以激活带代码覆盖率的仿真,本命令才会变成可选命令。代码覆盖命令包含如图2-51所示的子命令。
图2-51 Code Coverage子菜单
· Clear Date(清除数据):清空当前激活的代码覆盖数据库信息。
· Show Coverage Data(显示覆盖数据):显示或隐藏源文件窗口中被覆盖的代码行。
· Show Branch Coverage(显示分支覆盖):在源文件窗口中显示或隐藏分支覆盖行。
· Show Coverage Numbers(显示覆盖数目):在源文件窗口中显示或隐藏覆盖行的数目。
· Show Coverage By Instance(按实例显示覆盖):在工作区的结构标签中显示被选中实例的数目。
(3)Functional Coverage(功能覆盖)
该命令与代码覆盖命令类似。代码覆盖是检测仿真中运行的代码占所有设计代码的比例,功能覆盖命令是检测仿真中运行到的功能占总设计功能的比例,这个比例越接近 100%越好,表示仿真验证的功能越全面。
(4)Toggle Coverage(开关覆盖)
开关覆盖命令用来收集和计算特定节点的状态变化。这些节点包括 Verilog HDL 中的nets 和 register,还包括 VHDL 中的 bit 和 std_logic_vector 等。开关覆盖的度量方式与其他覆盖的度量方式是完全一致的,也希望尽量接近100%。
(5)Coverage Save(覆盖率保存)
该命令会把覆盖率数据保存为UCDB文件,如图2-52所示,主要是为代码覆盖率服务。
图2-52 覆盖率保存
(6)Coverage Report(覆盖率报告)
覆盖率报告的输出选项,会在第5章中使用到。
(7)Coverage Configuraion(覆盖率配置)
配置覆盖率显示的相关信息。
(8)Profile(属性)
属性命令有 5 个子命令,如图 2-53 所示,分别是 Performance、Memory、Collapse Sections、Clear Profile Data和Profile Report。
· Performance(性能):启动性能的取样统计。
· Memory(存储器):启动存储器配置分析。
· Collapse Sections(合并部分):报告合并的进程和功能。
· Clear Profile Data(清除属性数据):清除所有的属性数据,包括以上的三项报告。
· Profile Report(属性报告):启动属性报告对话框,输出属性报告。
图2-53 属性菜单
(9)Garbage Collector(垃圾收集)
用于System Verilog,包含Run和Configure两个选项,单击Run会立刻运行垃圾收集并清空存储空间,单击 Configure 会弹出如图 2-54 所示的配置信息,可以选择是在 Run 命令结束后还是在每一个操作步进行处理。
图2-54 配置信息
(10)Breakpoints(中断点)
打开中断点对话框,如图2-55所示,可以向指定的文件行添加仿真的中断点。
(11)Dataset Snapshot(Dataset快照)
选中此命令会生成一个Dataset快照,即生成一个.wlf文件的快照,如图2-56所示。选中上方的Enabled 选项可以激活下方所有设置,可以对仿真时间及路径进行设置,默认选择Disabled,直接使用默认配置信息。
图2-55 中断点对话框
图2-56 Dataset快照
(12)Trace(跟踪)
可以在一些窗口中跟踪数据信号,比如可以在数据流窗口中选中某个信号,跟踪变化。
(13)JobSpy(工作探测)
这个命令可以调出一个 JobSpy 窗口,用这个窗口可以处理批量的仿真,窗口中可以实时显示所有运行的仿真,并且可以方便地访问这些仿真。
(14)Tcl
此命令可以执行宏文件(即 DO 文件),或者调出 Tcl 的调试工具,主要功能是编辑和执行Tcl文件。
(15)Wildcard Filter(通配符过滤)
选择此命令后会出现如图 2-57 所示的通配符过滤窗口,可以根据建模语言的不同选择相应的过滤通配符。
图2-57 通配符过滤
(16)Edit Preferences(编辑优选)
这个命令主要是设置用户的各种偏好,用来设置 ModelSim的使用界面。这部分内容将在2.7节中介绍。
2.2.8 Layout菜单
Layout 菜单的功能是对 ModelSim 用户界面进行设置,设置的内容包括各个窗口的工具条情况,窗口中的背景颜色、模块显示方式等,相关功能会在2.7节中进行介绍。
2.2.9 Bookmarks菜单
Bookmarks菜单的功能是对一些窗口添加书签,例如波形窗口、源文件窗口等,方便用户快速切换到需要的位置,其包含的功能如图2-58所示。
图2-58 Bookmarks菜单
· Add(添加):在当前鼠标或光标位置添加一个书签,书签没有名称,仅保存位置信息。
· Add Custom(添加定制):选中该项后会出现如图 2-59所示的对话框,可以添加一个书签,书签可以在Alias一栏中命名,并在 Line 一栏中输入需要加入书签的位置,默认位置是当前鼠标位置。
图2-59 定制书签
· Delete All(删除全部):此命令可以删除全部书签,包括Active Window Only(当前活动窗口)和 All Windows(所有窗口)两个选项,可以分别删除当前窗口或所有窗口的全部书签。
· Manage(书签管理):书签管理界面如图2-60所示,可以对当前已有的全部书签进行管理。
· Reload from File(重新载入):此命令有Active Window Only(当前活动窗口)和All Windows(所有窗口)两个选项,可以从窗口中提取书签。
除了这 5 个命令之外,菜单最后两行的信息是不固定的,在文件中有书签的时候就会对应显示书签的名称。
图2-60 书签管理
2.2.10 Window菜单
Window 菜单包含两大部分,第一部分是关于窗口的一些设置选项,第二部分是当前已打开的窗口,如图2-61所示。
图2-61 Window菜单
第一部分包括如下操作。
· Cascade(层叠命令):将当前所有打开的窗口以层叠状态显示。
· Tile Horizontally(水平展开):按水平的方向分割品目,将所有打开的窗口在分割的窗口中显示。
· Tile Vertically(垂直展开):与水平展开类似,按垂直方向分割并显示窗口。
· Icon Children(缩为图标子集):除了主窗口外,其他窗口都被缩为图标的形式。
· Icon All(全为图标):将打开的所有窗口都缩为图标的形式。
· Deicon All(恢复图标):将所有表示成图标形式的窗口还原。
· Show Toobar(显示工具条):可以显示或隐藏工具条区域。
· Show Window Headers(显示窗头):显示窗口的头信息,即如图2-62所示部分。
图2-62 窗口信息
· Focus Follows Mouse(鼠标跟随):使鼠标跟随选中的窗口。
· Keyboard Shortcuts(快捷键):添加快捷键,ModelSim菜单中所有包含的选项都可以被设置成快捷键,使用这些快捷键可以大大加快仿真的操作速度。
· Add Toobar Button(添加工具条按钮):单击该项后可以选择快捷按钮添加到现有工具条中。
图2-63 Toobars子菜单
· Enable Scribble Mode(启动涂鸦模式):该命令在Linux操作系统下使用。启动该命令后,鼠标会变成绘画模式,这样可以在当前的视图中快速做出标记,并保存下来用于交流使用。例如可以将重点波形圈出,或者对某个信号有疑问而做一个标记。
· Toobars(工具条):选择显示或隐藏某些工具,如图 2-63所示,可以通过 Custom Toobar 添加,然后在图中进行选择,显示必要的工具条。
第二部分包括所有当前打开的窗口,可以利用菜单在窗口之间切换。最后一个 Window 选项可以打开一个对话框,对话框中是所有已显示的窗口,用户可以时其进行管理。
2.2.11 Help菜单
Help 菜单,主要分为三个部分,如图 2-64 所示。第一个部分提供一些简单的帮助信息,例如,【About ModelSim】命令提供ModelSim的基本信息,【Release Notes】命令包含版本注释信息,【Welcome Menu】命令提供欢迎信息,【Command Completion】命令提供命令行的简单提示,【Register File Type】命令可以让ModelSim关联版本软件使用到所有设计文件格式,如“.v”“.mpf”等。这些提示信息都不复杂,即便是最实用的 Command Completion,也只是在输入命令行时提供可选取的各种子命令或提示命令的输入格式,详细的帮助文件还需要在第二和第三部分中查找。
图2-64 Help菜单
第二部分是 ModelSim 的文档说明,提供两种形式的帮助信息,有网络信息或者本地的PDF文件,即便是本地的PDF手册,对本软件的介绍也非常详细。
第三部分是对 Tcl 语言的一些帮助信息,Tcl 的帮助文件是 CHM 格式的文件。第二部分和第三部分看到的文件都可以在 ModelSim 的安装文件夹中的 docs 目录中找到,不需要启动ModelSim就可以阅读其内容。