📘 IP验证环境搭建
自动化脚本实战
🎯 30章 · 从入门到实战
01
IP验证环境概述
什么是IP验证 · 验证在芯片设计流程中的位置 · 验证工程师的职责与技能树
02
验证方法论基础
定向测试与随机测试 · 覆盖率驱动验证(CDV) · 断言验证(SVA)基础概念
03
Linux环境搭建
虚拟机安装Ubuntu · 配置SSH与VNC · 安装开发工具(gcc, make, git, vim)
04
版本控制入门
Git安装与配置 · 常用命令(clone,commit,push,pull,branch,merge) · GitFlow工作流
05
Makefile基础
Makefile语法入门 · 变量与自动变量 · 规则与依赖 · 常见函数(wildcard, patsubst)
06
仿真工具介绍
主流仿真器对比(VCS,NC-Verilog,Modelsim) · VCS编译运行流程 · 波形查看(Verdi)
07
SystemVerilog基础 (上)
数据类型(logic,bit,int,struct,enum) · 操作符 · 过程块(always, initial)
08
SystemVerilog基础 (下)
接口(interface) · 时钟块(clocking block) · 断言(assertion)入门
09
UVM基础概念
UVM是什么 · 核心类(uvm_component,uvm_object,uvm_sequence) · UVM树形结构
10
UVM环境搭建
搭建最简单的UVM testbench · uvm_test, uvm_env, uvm_agent, uvm_driver
11
UVM序列与事务
uvm_sequence_item · uvm_sequence · uvm_sequencer · sequence启动与执行
12
UVM监视器与记分板
uvm_monitor · uvm_scoreboard · TLM通信(put, get, analysis port)
13
UVM配置机制
uvm_config_db的使用 · 配置对象 · 字段宏(`uvm_field_*)
14
UVM工厂模式
工厂重载(override) · 类型重载与实例重载 · `uvm_component_utils宏
15
UVM寄存器模型 (RAL)
RAL模型结构 · 前门访问与后门访问 · 寄存器预测与镜像
16
脚本语言选型
为什么选择Python做验证脚本 · Python vs Tcl vs Perl · Python环境配置
17
Python基础回顾
文件操作(open,read,write) · 正则表达式(re模块) · 命令行参数(argparse)
18
自动化编译脚本
用Python生成Makefile · 调用VCS编译命令 · 解析编译日志 · 错误定位
19
自动化回归脚本
批量运行测试用例 · 并行执行(multiprocessing) · 结果汇总与报告生成
20
覆盖率收集与分析
覆盖率类型(代码覆盖率,功能覆盖率) · 脚本合并覆盖率 · 生成HTML报告
21
日志解析与报告
解析仿真日志(pass/fail) · 提取关键信息 · 生成Excel/HTML测试报告
22
环境配置管理
用YAML/JSON管理验证环境配置 · 多项目环境切换 · 环境一致性检查
23
Docker容器化验证环境
Docker基础 · 编写Dockerfile · 挂载卷与端口映射 · CI/CD集成
24
CI/CD集成
GitLab CI配置 · Jenkins Pipeline · 自动化触发回归 · 邮件通知
25
验证计划管理
用Excel/Google Sheets管理验证计划 · Python读取验证计划 · 自动生成测试列表
26
波形调试自动化
用Python调用Verdi/Simvision API · 自动加载波形 · 设置断点与触发条件
27
性能监控与优化
监控仿真资源(CPU,内存) · 分析仿真瓶颈 · 优化脚本执行效率
28
多项目复用策略
验证IP(VIP)的封装与复用 · 参数化环境 · 跨项目共享脚本库
29
实战案例:完整IP验证环境
从零搭建IP验证环境 · 编写自动化回归脚本 · 集成覆盖率与报告
30
课程总结与进阶方向
常见问题FAQ · 推荐学习资源 · 从IP验证走向SoC验证的路径