Modelsim仿真调试从入门到精通

📚 共计 30 章节
01
Modelsim入门
EDA工具链概览 · Modelsim在FPGA开发中的角色 · 版本选择与安装
安装概览
02
Modelsim基础操作
启动界面 · 工作区(Workspace) · 库管理 · 创建工程
界面
03
第一个仿真工程
编写Verilog · 编译(Compile) · 仿真启动 · 查看波形
波形编译
04
Testbench基础
Testbench结构 · 时钟与复位 · initial与always块
TB时钟
05
波形查看与分析
波形窗口详解 · 信号添加/删除 · 缩放测量 · 光标
波形光标
06
仿真库管理
库创建/映射 · 编译到指定库 · 资源库配置
映射
07
多文件仿真
多模块编译顺序 · 依赖管理 · 通配符 · .do文件
多文件.do
08
Tcl脚本入门
Tcl语法 · 变量/列表 · 控制流 · 过程定义
Tcl脚本
09
DO文件基础
创建/运行DO文件 · restart/run/quit · 自动化仿真
DO自动化
10
波形保存与重载
WLF/DO格式 · 波形管理 · 重载对比 · log命令
波形WLF
11
信号强制赋值
force命令 · deposit/freeze · noforce · 错误注入
force调试
12
断点调试
设置断点(break) · 条件断点 · 单步执行 · 变量查看
断点调试
13
覆盖率分析
代码覆盖率概念 · 收集/查看报告 · 覆盖率驱动验证
覆盖率分析
14
性能优化
仿真速度瓶颈 · 编译优化 · 减少波形 · 优化开关
性能优化
15
内存调试
内存初始化 · 读取/修改 · $readmemh/$writememh
内存系统函数
16
系统函数与任务
$display/$monitor · 文件I/O · $random
系统函数I/O
17
参数化仿真
parameter/localparam · defparam · generate仿真
参数generate
18
功能覆盖率
covergroup/coverpoint · bin设定 · 交叉覆盖率
功能覆盖率covergroup
19
断言(SVA)基础
立即/并发断言 · $asserton/off · 断言覆盖率
SVA断言
20
UVM框架入门
UVM概念 · 树形结构 · uvm_component/object · 简单环境
UVM框架
21
UVM序列与驱动
sequence/sequencer · driver/monitor · TLM · factory
UVMsequence
22
后仿真(门级仿真)
SDF反标 · 时序检查 · 后仿真差异 · 常见问题
后仿真SDF
23
功耗仿真
翻转率分析 · VCD/SAIF · 功耗估计 · 低功耗验证
功耗VCD
24
脚本化回归测试
回归流程 · 自动化脚本 · 结果比对 · 邮件通知
回归自动化
25
波形对比
vcompare命令 · 差异分析 · 自动化比对脚本
波形对比vcompare
26
多语言混合仿真
Verilog+VHDL · SV+C/C++(DLL/PLI) · 混合配置
混合PLI
27
调试技巧与常见问题
仿真卡死 · X态传播 · 竞争冒险 · 综合不一致
调试X态
28
Modelsim与其他工具协同
Vivado/Quartus集成 · Matlab协同 · Python交互
协同Vivado
29
高级Tcl脚本
GUI自动化 · 自定义菜单/快捷键 · 批量处理 · Tcl扩展
Tcl高级
30
综合实战项目
搭建验证环境 · 测试用例 · 覆盖率收集 · 项目复盘
实战项目