ModelSim是优秀的HDL仿真软件之一,它能提供友好的仿真环境,是业界唯一单内核支持VHDL和Verilog混合仿真的仿真器,它采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是Window平台上FPGA/ASIC设计的首选仿真软件。本书以ModelSim SE 2020.4版软件为平台,由浅入深、循序渐进地介绍ModelSim SE 2020.4软件各部分知识,包括ModelSim SE 2020.4基础、菜单命令、库和工程的建立与管理、Verilog/VHDL文件编译仿真、采用多种方式分析仿真结果,以及与多种主流软件的联合仿真等。书中配有大量插图,并结合实例详细地讲解使用ModelSim仿真的基本知识和操作的方法技巧,配套资料中有本书实例操作的视频讲解和全部源代码。本书适合具有一定HDL基础的读者使用,同时对相关领域(如FPGA开发、测试等)的专业技术人员也有较高的参考价值,也可作为大中专院校电子类相关专业和培训班的教材。
2008.7至今,哈尔滨理工大学任职教师。主要科研方向为集成电路数字前端设计、信息安全及加解密芯片的硬件设计。主要科研项目经历如下:(1)黑龙江省普通本科高等学校青年创新人才培养计划,可重构信息安全芯片低熵掩码关键技术研究,排名2/7,设计及仿真验证工作;(2)黑龙江省自然科学基金优秀青年项目,基于可重构计算的芯片设计及应用研究,排名2/7,设计及仿真验证工作;(3)国家重点研发计划子课题 "安全算法结构特征及实现方法研究”,排名3/9,设计及仿真验证工作;(4)国家自然基金项目,三角变换快速算法及其粒度可配置可重构计算架构研究,排名6/10,测试工作。
目 录
第1章 概述
1.1 IC设计与ModelSim
1.1.1 IC设计基本流程
1.1.2 ModelSim概述
1.2 ModelSim应用基本流程
1.3 ModelSim基本仿真流程
1.3.1 创建一个工作库
1.3.2 编译设计文件
1.3.3 运行仿真
1.3.4 查看结果
1.4 ModelSim工程仿真流程
1.4.1 创建工程及工程库
1.4.2 创建新文件
1.4.3 加载设计文件
1.4.4 编译源文件
1.4.5 运行仿真和查看结果
1.4.6 工程调试
第2章 操作界面
2.1 整体界面
2.2 菜单栏
2.2.1 File菜单
2.2.2 Edit菜单
2.2.3 View菜单
2.2.4 Compile菜单
2.2.5 Simulate菜单
2.2.6 Add菜单
2.2.7 Tools菜单
2.2.8 Layout菜单
2.2.9 Bookmarks菜单
2.2.10 Window菜单
2.2.11 Help菜单
2.3 工具栏
2.4 标签区
2.5 命令窗口
2.6 MDI窗口
2.6.1 源文件窗口
2.6.2 波形窗口
2.6.3 列表窗口
2.6.4 数据流窗口
2.6.5 属性窗口
2.6.6 进程窗口
2.6.7 对象窗口
2.6.8 存储器窗口
2.6.9 原理图窗口
2.6.10 观察窗口
2.6.11 状态机窗口
2.7 界面的设置
2.7.1 定制用户界面
2.7.2 设置界面参数
第3章 工程和库
3.1 ModelSim工程
3.1.1 删除原有工程
3.1.2 开始一个新工程
3.1.3 工程标签
3.1.4 工程编译
3.1.5 仿真环境配置
3.1.6 工程文件组织
3.1.7 工程及文件属性设置
实例3-1 工程文件管理
3.2 ModelSim库
3.2.1 概述
3.2.2 库的创建及管理
3.2.3 资源库管理
3.2.4 导入FPGA的库
3.2.5 本节实例
第4章 ModelSim对不同语言的仿真
4.1 VHDL仿真
4.1.1 VHDL文件编译
4.1.2 VHDL设计优化
4.1.3 VHDL设计仿真
4.1.4 还原点和仿真恢复
4.1.5 TEXTIO的使用
实例4-1 VHDL设计的仿真全过程
4.2 Verilog仿真
4.2.1 Verilog文件编译
4.2.2 Verilog设计优化
4.2.3 Verilog设计仿真
4.2.4 还原点和仿真恢复
4.2.5 单元库
4.2.6 系统任务和系统函数
4.2.7 编译命令
实例4-2 32位浮点乘法器的Verilog仿真过程
4.3 SystemC仿真
4.3.1 概述
4.3.2 SystemC文件的编译和链接
4.3.3 设计仿真和调试
4.3.4 常见错误
4.4 混合语言仿真
4.4.1 编译过程与公共设计库
4.4.2 映射数据类型
4.4.3 VHDL调用Verilog
4.4.4 Verilog调用VHDL
4.4.5 SystemC调用Verilog
4.4.6 Verilog调用SystemC
4.4.7 SystemC调用VHDL
4.4.8 VHDL调用SystemC
第5章 利用ModelSim进行仿真分析
5.1 仿真概述
5.2 WLF文件和虚拟对象
5.2.1 保存仿真状态
5.2.2 Dataset结构
5.2.3 Dataset管理
5.2.4 虚拟对象
5.3 利用波形编辑器产生激励
5.3.1 创建波形
5.3.2 编辑波形
5.3.3 导出激励文件并使用
5.4 ModelSim波形分析
5.4.1 波形窗口和列表窗口
5.4.2 时间标记
5.4.3 窗口的缩放
5.4.4 在窗口中搜索
5.4.5 窗口的格式编排
5.4.6 波形和列表的保存
5.4.7 信号总线
5.4.8 光标操作
5.4.9 其他功能
5.4.10 波形比较
5.5 存储器的查看和操作
5.5.1 存储器的查看
5.5.2 存储数据的导出
5.5.3 存储器初始化
5.5.4 存储器调试
5.6 数据流窗口的使用
5.6.1 概述
5.6.2 设计连通性分析
5.6.3 信号追踪和查找
5.6.4 设置和保存打印
5.6.5 本节实例
5.7 原理图窗口的使用
5.8 状态机窗口的使用
5.9 ModelSim的剖析工具
5.9.1 运行性能剖析和存储器剖析
5.9.2 查看性能剖析结果
5.9.3 查看存储器剖析报告
5.9.4 保存结果
5.10 覆盖率检测
5.10.1 启用代码覆盖
5.10.2 覆盖率的查看
5.10.3 覆盖率检测的过滤
5.10.4 覆盖信息报告
5.11 信号探测
5.12 采用JobSpy控制批处理仿真
5.12.1 JobSpy功能与流程
5.12.2 运行JobSpy
5.13 综合实例
实例5-1 三分频时钟的分析
实例5-2 同步FIFO的仿真分析
实例5-3 基2的SRT除法器仿真分析
第6章 ModelSim的协同仿真
6.1 ModelSim与Debussy的协同仿真
6.1.1 Debussy工具介绍
6.1.2 Debussy配置方式
实例6-1 与Debussy的协同仿真
6.2 ModelSim与Matlab的协同仿真
实例6-2 与Matlab的协同仿真
实例6-3 与Simulink的协同仿真
实例6-4 使用cosimWizard进行协同仿真
第7章 ModelSim对不同公司器件的后仿真
7.1 ModelSim对Intel器件的后仿真
7.1.1 QuartusPrime简介
7.1.2 后仿真流程
实例7-1 直接采用QuartusPrime调用ModelSim进行仿真
实例7-2 先用QuartusPrime创建工程,再用ModelSim进行时序仿真
7.2 ModelSim对Xilinx器件的后仿真
7.2.1 VIVADO简介
7.2.2 后仿真流程
实例7-3 用VIVADO对全加器进行时序仿真
实例7-4 用VIVADO直接调用ModelSim进行时序仿真
7.3 ModelSim对Lattice器件的后仿真
7.3.1 Diamond简介
7.3.2 后仿真流程
实例7-5 用Diamond对全加器进行时序仿真
实例7-6 用Diamond完成布局绕线,使用ModelSim进行时序仿真
第8章 ModelSim的文件和脚本
8.1 SDF文件
8.1.1 SDF文件的指定和编译
8.1.2 VHDL的SDF
8.1.3 Verilog的SDF
8.1.4 SDF文件信息
8.2 VCD文件
8.2.1 创建一个VCD文件
8.2.2 使用VCD作为激励
8.2.3 VCD任务
8.2.4 端口驱动数据
8.3 Tcl和DO文件
8.3.1 Tcl命令
8.3.2 Tcl语法
8.3.3 ModelSim的Tcl时序命令
8.3.4 宏命令
8.3.5 本节实例
8.4 Linux系统下的ModelSim脚本
8.4.1 Linux下的Modelsim配置
8.4.2 Linux下的Modelsim启动及验证脚本
8.4.3 Linux下的验证环境建立及脚本分析
实例8-1 Windows下全加器的验证脚本实例
实例8-2 Linux下全加器的验证文件结构及脚本实例
第9章 ModelSim下建立UVM验证环境
9.1 验证方法学与UVM
9.2 UVM验证方法学框架结构
9.3 在ModelSim下运行UVM环境的仿真
9.4 建立UVM环境运行脚本
9.5 VIVADO与ModelSim的联合仿真中使用UVM环境
实例9-1 使用ModelSim运行UVM实例
实例9-2 使用VIVADO在ModelSim下建立UVM环境及仿真