第1章 概述 1
1.1 IC设计与ModelSim 2
1.1.1 IC设计基本流程 2
1.1.2 ModelSim概述 3
1.2 ModelSim应用基本流程 5
1.3 ModelSim基本仿真流程 5
1.3.1 创建一个工作库 6
1.3.2 编译设计文件 7
1.3.3 运行仿真 8
1.3.4 查看结果 9
1.4 ModelSim工程仿真流程 9
1.4.1 创建工程及工程库 10
1.4.2 创建新文件 11
1.4.3 加载设计文件 12
1.4.4 编译源文件 13
1.4.5 运行仿真和查看结果 14
1.4.6 工程调试 14
第2章 操作界面 16
2.1 整体界面 17
2.2 菜单栏 17
2.2.1 File菜单 18
2.2.2 Edit菜单 25
2.2.3 View菜单 27
2.2.4 Compile菜单 28
2.2.5 Simulate菜单 30
2.2.6 Add菜单 33
2.2.7 Tools菜单 33
2.2.8 Layout菜单 39
2.2.9 Bookmarks菜单 39
2.2.10 Window菜单 40
2.2.11 Help菜单 41
2.3 工具栏 42
2.4 标签区 42
2.5 命令窗口 43
2.6 MDI窗口 44
2.6.1 源文件窗口 44
2.6.2 波形窗口 45
2.6.3 列表窗口 46
2.6.4 数据流窗口 46
2.6.5 属性窗口 47
2.6.6 进程窗口 48
2.6.7 对象窗口 48
2.6.8 存储器窗口 48
2.6.9 原理图窗口 49
2.6.10 观察窗口 50
2.7 界面的设置 50
2.7.1 定制用户界面 50
2.7.2 设置界面参数 52
第3章 工程和库 54
3.1 ModelSim工程 55
3.1.1 删除原有工程 55
3.1.2 开始一个新工程 55
3.1.3 工程标签 57
3.1.4 工程编译 58
3.1.5 仿真环境配置 61
3.1.6 工程文件组织 63
3.1.7 工程及文件属性设置 64
实例3-1工程文件管理 69
3.2 ModelSim库 73
3.2.1 概述 73
3.2.2 库的创建及管理 74
3.2.3 资源库管理 76
3.2.4 导入FPGA的库 77
3.2.5 本节实例 78
第4章 ModelSim对不同语言的仿真 84
4.1 VHDL仿真 85
4.1.1 VHDL文件编译 85
4.1.2 VHDL设计优化 86
4.1.3 VHDL设计仿真 91
4.1.4 还原点和仿真恢复 96
4.1.5 TEXTIO的使用 97
实例4-1 VHDL设计的仿真全过程 99
4.2 Verilog仿真 104
4.2.1 Verilog文件编译 104
4.2.2 Verilog设计优化 105
4.2.3 Verilog设计仿真 106
4.2.4 还原点和仿真恢复 111
4.2.5 单元库 111
4.2.6 系统任务和系统函数 112
4.2.7 编译指令 114
实例4-232 位浮点乘法器的Verilog仿真过程 115
4.3 C调试 121
4.3.1 概述 121
4.3.2 C步进调试与调试设置 123
4.4 SystemC仿真 124
4.4.1 概述 124
4.4.2 SystemC文件的编译和链接 125
4.4.3 设计仿真和调试 130
4.4.4 常见错误 132
4.5 混合语言仿真 134
4.5.1 编译过程与公共设计库 134
4.5.2 映射数据类型 136
4.5.3 VHDL调用Verilog 139
4.5.4 Verilog调用VHDL 141
4.5.5 SystemC调用Verilog 141
4.5.6 Verilog调用SystemC 142
4.5.7 SystemC调用VHDL 143
4.5.8 VHDL调用SystemC 144
实例4-3 systemC与Verilog混合仿真过程 145
第5章 利用ModelSim进行仿真分析 148
5.1 仿真概述 149
5.2 WLF文件和虚拟对象 150
5.2.1 保存仿真状态 150
5.2.2 Dataset结构 153
5.2.3 Dataset管理 154
5.2.4 虚拟对象 156
5.3 利用波形编辑器产生激励 159
5.3.1 创建波形 159
5.3.2 编辑波形 165
5.3.3 导出激励文件并使用 168
5.4 采用描述语言生成激励 170
5.5 ModelSim波形分析 175
5.5.1 波形窗口和列表窗口 175
5.5.2 时间标记 178
5.5.3 窗口的缩放 178
5.5.4 在窗口中搜索 180
5.5.5 窗口的格式编排 181
5.5.6 波形和列表的保存 184
5.5.7 信号总线 186
5.5.8 光标操作 186
5.5.9 其他功能 187
5.5.10 波形比较 188
5.6 存储器的查看和操作 194
5.6.1 存储器的查看 194
5.6.2 存储数据的导出 196
5.6.3 存储器初始化 197
5.6.4 存储器调试 198
5.7 数据流窗口的使用 199
5.7.1 概述 199
5.7.2 设计连通性分析 200
5.7.3 信号追踪和查找 201
5.7.4 设置和保存打印 203
5.7.5 本节实例 204
5.8 原理图窗口的使用 208
5.9 ModelSim的剖析工具 211
5.9.1 运行性能剖析和存储器剖析 211
5.9.2 查看性能剖析结果 212
5.9.3 查看存储器剖析报告 215
5.9.4 保存结果 216
5.10 覆盖率检测 217
5.10.1 启用代码覆盖 217
5.10.2 覆盖率的查看 222
5.10.3 覆盖率检测的过滤 225
5.10.4 覆盖信息报告 227
5.11 信号探测 230
5.12 采用JobSpy控制批处理仿真 232
5.12.1 JobSpy功能与流程 233
5.12.2 运行JobSpy 233
5.13 综合实例 235
实例5-1三分频时钟的分析 235
实例5-2同步FIFO的仿真分析 242
实例5-3基2的SRT除法器的仿真分析 248
第6章 ModelSim的协同仿真 256
6.1 ModelSim与Debussy的协同仿真 257
6.1.1 Debussy工具介绍 257
6.1.2 Debussy配置方法 261
实例6-1与Debussy的协同仿真 264
6.2 ModelSim与Matlab的协同仿真 271
实例6-2与Matlab的协同仿真 274
实例6-3与Simulink的协同仿真 278
实例6-4 使用cosimWizard进行协同仿真 286
第7章 ModelSim对不同公司器件的后仿真 294
7.1 ModelSim对Altera器件的后仿真 295
7.1.1 Quartus Ⅱ简介 295
7.1.2 后仿真流程 297
实例7-1直接采用Quartus Ⅱ调用ModelSim进行仿真 298
实例7-2先用Quartus Ⅱ创建工程,再用ModelSim进行时序仿真 310
7.2 ModelSim对Xilinx器件的后仿真 317
7.2.1 ISE简介 317
7.2.2 后仿真流程 319
实例7-3用ISE对全加器进行时序仿真 319
实例7-4用ISE直接调用ModelSim进行时序仿真 327
7.3 ModelSim对Lattice器件的后仿真 336
7.3.1 Diamond简介 336
7.3.2 后仿真流程 337
实例7-5用Diamond对全加器进行时序仿真 337
实例7-6用Diamond完成布局绕线,使用ModelSim进行时序仿真 343
7.4 ModelSim对Actel器件的后仿真 345
实例7-7用Libero IDE调用ModelSim进行时序仿真 346
第8章 ModelSim的文件和脚本 354
8.1 SDF文件 355
8.1.1 SDF文件的指定和编译 355
8.1.2 VHDL的SDF 357
8.1.3 Verilog的SDF 357
8.1.4 SDF文件信息 359
8.2 VCD文件 361
8.2.1 创建一个VCD文件 361
8.2.2 使用VCD作为激励 363
8.2.3 VCD任务 364
8.2.4 端口驱动数据 365
8.3 Tcl和DO文件 367
8.3.1 Tcl命令 367
8.3.2 Tcl语法 367
8.3.3 ModelSim的Tcl时序命令 368
8.3.4 宏命令 369
8.3.5 本节实例 371