Tools菜单提供各种实用的工具,如图2-47所示。例如,菜单中第一个命令就是Waveform Compare(波形比较),可以方便对比不同的波形,将人为操作变为软件操作。Tools菜单还提供了Tcl代码调试等功能。可以说ModelSim软件中集成的编译环境非常全面,凡是与设计相关的编程语言,在ModelSim中都可以被调试。Tools菜单中具体的命令介绍如下。
(1)Waveform Compare(波形比较)。
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)Code Coverage(代码覆盖)。
Code Coverage命令需要在仿真选项中被设置,在“Start Simulation”命令中,选中“Enable Code Coverage”选项,就可以激活带代码覆盖率的仿真,本命令才会变成可选命令。Code Coverage子菜单如图2-51所示。
图2-50 Comparison Options部分选项
图2-51 Code Coverage子菜单
● Clear Date(清除数据):清空当前激活的代码覆盖数据库信息。
● Show Coverage Data(显示覆盖数据):显示或隐藏源文件窗口中被覆盖的代码行。
● Show Branch Coverage(显示分支覆盖):在源文件窗口中显示或隐藏分支覆盖行。
● Show Coverage Numbers(显示覆盖数目):在源文件窗口中显示或隐藏覆盖行的数目。
● Show Coverage By Instance(按实例显示覆盖):在工作区的结构标签中显示被选中实例的数目。
(3)Functional Coverage(功能覆盖)。
Functional Coverage命令与Code Coverage命令类似。Code Coverage命令是检测仿真中运行的代码占所有设计代码的比例,Functional Coverage命令是检测仿真中运行到的功能占总设计功能的比例,这个比例越接近100%越好,表示仿真验证的功能越全面。
(4)Toggle Coverage(开关覆盖)。
Toggle Coverage命令用来收集和计算特定节点的状态变化。这些节点包括Verilog HDL中的nets和register,还包括VHDL中的bit和std_logic_vector等。Toggle Coverage命令的度量方式与其他覆盖的度量方式是完全一致的,也希望尽量接近100%。
(5)Coverage Save(覆盖率保存)。
Coverage Save命令会把覆盖率数据保存为UCDB文件,如图2-52所示,主要是为代码覆盖率服务。
图2-52 Coverage Save命令
(6)Coverage Report(覆盖率报告)。
Coverage Report命令的输出选项,会在第5章中使用到。
(7)Coverage Configuration(覆盖率配置)。
Coverage Configuration命令配置覆盖率显示的相关信息。
(8)Profile(属性)。
Profile命令有5个子命令,如图2-53所示,分别是Performance、Memory、Collapse Sections、Clear Profile Data和Profile Report。
● Performance(性能):启动性能的取样统计。
● Memory(存储器):启动存储器配置分析。
● Collapse Sections(合并部分):报告合并的进程和功能。
● Clear Profile Data(清除属性数据):清除所有的属性数据,包括以上的三项报告。
● Profile Report(属性报告):启动属性报告对话框,输出属性报告。
(9)Garbage Collector(垃圾收集)。
Garbage Collector命令用于System Verilog,包含Run和Configure两个选项,单击“Run”按钮会立刻运行垃圾收集并清空存储空间,单击“Configure”按钮会弹出图2-54所示的配置信息,可以选择是在Run命令结束后还是在每个操作步进行处理。
图2-53 属性菜单
图2-54 配置信息
(10)Breakpoints(中断点)。
打开Breakpoints对话框,如图2-55所示,可以向指定的文件行添加仿真的中断点。
(11)Dataset Snapshot(Dataset快照)。
选中Dataset Snapshot命令会生成一个Dataset快照,即生成一个.wlf文件的快照,如图2-56所示。选中上方的“Enabled”选项可以激活下方所有设置,可以对仿真时间及路径进行设置,默认为“Disabled”选项,直接使用默认配置信息。
图2-55 Breakpoints对话框
图2-56 Dataset快照
(12)Trace(跟踪)。
Trace命令即可以在一些窗口中跟踪数据信号,如可以在数据流窗口中选中某个信号,跟踪变化。
(13)JobSpy(工作探测)。
JobSpy命令可以调出一个JobSpy窗口,用这个窗口可以处理批量的仿真,窗口中可以实时显示所有运行的仿真,并且可以方便访问这些仿真。
(14)Tcl.
Tcl命令可以执行宏文件(Do文件),或者调出Tcl的调试工具,主要功能是编辑和执行Tcl文件。
(15)Wildcard Filter(通配符过滤)。
选择Wildcard Filter命令后会出现图2-57所示的通配符过滤窗口,可以根据建模语言的不同选择相应的过滤通配符。
图2-57 通配符过滤窗口
(16)Edit Preferences(编辑优选)。
Edit Preferences命令主要是设置用户的各种偏好,用来设置ModelSim的使用界面。这部分内容将在2.7节中介绍。