01
课程导论与项目初始化
HDL代码重构的意义、工具目标设定、Python项目结构搭建、虚拟环境配置。
导论环境
02
Verilog语法解析基础
词法分析入门、Token定义、正则表达式基础、Python re模块实战。
词法正则
03
词法分析器开发(上)
关键字与标识符识别、数字与字符串处理、注释与空白符跳过。
解析Token
04
词法分析器开发(下)
操作符与分隔符识别、错误处理机制、单元测试编写。
错误处理测试
05
抽象语法树(AST)设计
AST节点定义、树形数据结构、Verilog语法树建模。
AST数据结构
06
语法分析器开发(上)
递归下降解析法、模块声明解析、端口列表解析。
解析器模块
07
语法分析器开发(下)
always块解析、assign语句解析、实例化语句解析。
always实例化
08
AST遍历与模式匹配
访问者模式、树遍历算法、信号与模块关系提取。
遍历模式
09
代码异味检测(上)
过长信号名检测、魔法数字检测、冗余逻辑检测。
异味检测
10
代码异味检测(下)
组合逻辑环路检测、未使用信号检测、驱动冲突检测。
环路冲突
11
重构规则引擎设计
规则基类定义、规则注册机制、规则优先级与冲突解决。
引擎规则
12
信号重命名重构
作用域分析、重命名映射表、依赖更新与传播。
重命名依赖
13
模块拆分重构
子模块提取算法、接口自动生成、顶层连接重连。
拆分接口
14
参数化重构
parameter提取、localparam优化、generate语句重构。
参数generate
15
代码格式化重构
缩进标准化、换行规则、对齐美化、自定义风格配置。
格式化风格
16
注释生成与优化
文档注释自动生成、Doxygen风格支持、注释与代码同步。
注释Doxygen
17
时钟域交叉(CDC)处理重构
同步器插入、多bit总线处理、CDC检查报告生成。
CDC同步
18
状态机重构(上)
状态编码检测、独热码与格雷码转换、状态表提取。
FSM编码
19
状态机重构(下)
冗余状态消除、状态合并、FSM输出逻辑优化。
优化合并
20
Testbench自动生成重构
端口映射、时钟与复位生成、激励模板生成。
TB自动生成
21
代码克隆检测与消除
相似度计算、克隆检测算法、公共模块提取。
克隆复用
22
层次化设计重构
扁平化设计转层次化、层次化转扁平化、跨层次信号优化。
层次扁平
23
时序约束辅助重构
SDC约束提取、时序路径分析、约束与代码一致性检查。
时序SDC
24
功耗优化重构
门控时钟插入、数据路径优化、低功耗编码风格转换。
低功耗门控
25
可测试性设计(DFT)重构
扫描链插入辅助、测试点插入、ATPG友好代码生成。
DFT扫描链
26
版本控制集成
Git diff生成、重构前后对比、回滚机制、重构日志记录。
Git版本
27
图形用户界面(GUI)开发
PyQt5基础、重构操作可视化、树形视图与代码预览。
GUIPyQt5
28
插件系统设计
插件接口定义、动态加载、社区插件示例(UVM风格重构)。
插件UVM
29
大型项目实战
多文件项目重构、构建系统集成(Makefile/Tcl)、性能优化与内存管理。
实战性能
30
课程总结与未来展望
工具发布与打包、持续集成(CI)集成、AI辅助重构展望。
CIAI