01
RTL检查工具概述
什么是RTL检查工具、为什么需要、行业主流工具介绍 (SpyGlass, Design_Lint, Verilator等)
概念工具对比
02
开发环境搭建
Python环境配置、Tcl/Tk环境、Git版本控制、VS Code插件推荐
环境工具链
03
词法分析基础
正则表达式入门、Python re模块详解、Token定义与分类
正则Token
04
语法分析入门
抽象语法树(AST)概念、Python ast模块使用、简单表达式解析
AST解析
05
Verilog语法基础
模块定义、端口声明、wire/reg类型、always块、assign语句
VerilogHDL
06
Verilog词法分析器开发
关键字识别、标识符处理、注释过滤、宏定义展开
词法解析器
07
Verilog语法分析器开发
模块解析、端口列表解析、语句块解析
语法解析
08
检查规则引擎设计
规则注册机制、规则匹配模式、规则优先级管理
引擎架构
09
命名规范检查
信号/模块/参数命名规则、统一前缀/后缀检查
命名规范
10
代码风格检查
缩进规范、空行规范、注释规范、代码行长度限制
风格Lint
11
时钟域检查
单时钟域检查、多时钟域检测、跨时钟域(CDC)基本检查
时钟CDC
12
复位逻辑检查
同步/异步复位、复位信号完整性、复位树检查
复位完整性
13
状态机检查
状态编码检查、状态跳转完整性、默认状态、冗余状态检测
FSM状态机
14
组合逻辑检查
组合环路检测、敏感列表不完整、锁存器推断检查
组合Latch
15
时序逻辑检查
寄存器推断、时钟门控检查、同步使能信号检查
时序寄存器
16
接口协议检查
握手信号检查、FIFO深度检查、总线协议合规检查
协议接口
17
可综合性检查
不可综合语法检测、综合指令(synopsys translate_off/on)处理
综合Synthesis
18
仿真与综合一致性检查
阻塞赋值与非阻塞赋值混用、敏感列表不一致
一致性仿真
19
代码复杂度分析
圈复杂度计算、代码行数统计、嵌套深度检测
复杂度度量
20
报告生成模块
文本/HTML/JSON报告输出、报告分级(error/warning/info)
报告输出
21
命令行界面开发
argparse参数解析、交互式模式、批处理模式、退出码设计
CLIargparse
22
图形用户界面开发
Tkinter基础、文件选择对话框、结果展示树、过滤与搜索
GUITkinter
23
插件系统设计
插件接口定义、加载机制、热更新、第三方规则集成
插件扩展
24
配置文件管理
JSON/YAML配置文件解析、规则开关配置、阈值配置、用户自定义规则
配置YAML
25
性能优化
大文件分块处理、多线程检查、缓存机制、增量检查
性能多线程
26
单元测试框架
pytest基础、测试用例编写、Mock技术、覆盖率报告
测试pytest
27
持续集成集成
GitHub Actions配置、Jenkins集成、自动化回归测试、质量门禁
CIDevOps
28
实战案例一 (上)
综合项目实战——开发一个完整的RTL代码检查工具 (上)
实战项目
29
实战案例二 (中)
综合项目实战——开发一个完整的RTL代码检查工具 (中)
实战项目
30
实战案例三 (下)
综合项目实战——开发一个完整的RTL代码检查工具 (下)
实战项目