01
HDL解析器概述
什么是HDL解析器 · 应用场景(综合/仿真/验证) · 课程目标与学习路径
概念导学
02
Verilog HDL基础回顾
模块结构 · wire/reg · 运算符 · always块与assign
Verilog基础
03
Python语法速查
面向对象 · 正则表达式 · 文件I/O · 列表/字典推导式
Python速查
04
词法分析原理
词法分析作用 · Token定义分类 · 正则表达式应用
词法原理
05
手写词法分析器 (上)
Token类型枚举 · 字符流读取器 · 空白与注释处理
实现词法
06
手写词法分析器 (下)
识别关键字/标识符/数字 · 运算符与分隔符
实现词法
07
词法分析器测试与调试
单元测试 · 边界情况(转义/多行注释) · 性能优化
测试调试
08
语法分析基础
上下文无关文法(CFG) · 产生式与推导 · AST概念
语法CFG
09
递归下降解析法
设计思想 · 左递归消除 · 回溯处理
解析递归
10
表达式解析
二元运算符(+-*/) · 优先级与结合性
表达式优先级
11
语句解析
赋值语句 · if-else · case语句解析
语句控制流
12
模块解析
module/endmodule · 端口列表(input/output/inout)
模块端口
13
实例化解析
模块实例化 · 参数传递#() · 端口连接.name()
实例化参数
14
always块解析
敏感列表(posedge/negedge) · 阻塞/非阻塞赋值
always时序
15
generate块解析
generate for/if/case 结构解析
generate结构
16
构建AST数据结构
设计AST节点类(ModuleNode等) · 节点遍历方法
AST数据结构
17
AST可视化
graphviz/文本输出 · 调试技巧
可视化调试
18
语义分析基础
符号表设计 · 作用域管理 · 变量声明检查
语义符号表
19
类型检查与推断
wire/reg兼容性 · 位宽推断与匹配
类型位宽
20
连接检查
端口连接正确性 · 未连接警告 · 重复驱动检查
连接检查
21
常量折叠与传播
编译期常量计算 · 参数替换 · localparam
常量优化
22
代码生成 (上)
从AST生成Verilog · 缩进与格式化
代码生成格式化
23
代码生成 (下)
生成实例化代码 · 生成testbench框架
代码生成testbench
24
解析器集成
词法·语法·语义串联成完整流水线
集成流水线
25
错误处理与恢复
语法错误定位 · 错误格式化 · panic模式恢复
错误处理恢复
26
解析器性能优化
缓存机制 · 多线程解析 · 大文件分块
性能优化
27
扩展支持
SystemVerilog特性(logic/interface/struct)扩展
SV扩展
28
实战项目 (一)
RTL lint检查工具 · 检测编码风格问题
实战lint
29
实战项目 (二)
模块依赖关系分析器 · 生成调用图
实战依赖
30
课程总结与展望
经验总结 · 开源HDL解析器 · 进阶建议
总结展望