Verilog解析器开发实战
📚 共计 30 章节
第01章
Verilog语言基础回顾
模块结构、数据类型、运算符、赋值语句。
基础
回顾
第02章
词法分析原理
正则表达式、有限自动机、Token定义。
词法
理论
第03章
词法分析器实现
从字符流到Token流,处理标识符、关键字、数字、字符串。
实现
词法
第04章
语法分析基础
上下文无关文法、产生式、推导与归约。
语法
CFG
第05章
递归下降解析器
手写解析器,处理模块声明、端口列表。
递归下降
手写
第06章
表达式解析
运算符优先级与结合性,处理算术、逻辑、位运算表达式。
表达式
优先级
第07章
语句解析
连续赋值、过程块(always)、阻塞与非阻塞赋值。
语句
always
第08章
模块实例化解析
参数传递、端口连接(按名/按序)。
实例化
端口
第09章
generate语句解析
generate for、if、case的静态展开。
generate
静态
第10章
解析错误处理
错误恢复策略、友好的错误信息生成。
错误处理
恢复
第11章
抽象语法树(AST)设计
节点类型定义、树形结构构建。
AST
设计
第12章
AST遍历与访问者模式
遍历树、收集符号信息。
遍历
访问者
第13章
符号表构建
作用域管理、模块/信号/参数符号的存储与查找。
符号表
作用域
第14章
语义分析(一)
类型检查、位宽推断、常量折叠。
语义
类型
第15章
语义分析(二)
端口匹配检查、未声明信号检测、多重驱动检查。
语义
检查
第16章
中间表示(IR)设计
从AST到三地址码或SSA形式。
IR
三地址码
第17章
代码生成(一)
将Verilog模块映射到目标语言(如C++/Python)的框架。
代码生成
映射
第18章
代码生成(二)
生成组合逻辑与时序逻辑的模拟代码。
组合逻辑
时序
第19章
测试框架搭建
单元测试解析器各个组件,使用pytest或unittest。
测试
pytest
第20章
集成测试
用真实Verilog代码测试完整解析流程。
集成
验证
第21章
性能优化
词法/语法分析的速度优化,内存管理技巧。
性能
优化
第22章
支持Verilog-2001特性
ANSI风格端口、多维数组、带符号类型。
Verilog-2001
ANSI
第23章
支持Verilog-2005特性
`begin_keywords、`celldefine等编译器指令。
Verilog-2005
指令
第24章
支持SystemVerilog基础
logic类型、always_comb/always_ff、接口。
SystemVerilog
接口
第25章
预处理器的实现
处理`define、`include、`ifdef等宏。
预处理器
宏
第26章
增量解析与增量编译
只解析修改过的部分,提升大型项目效率。
增量
编译
第27章
IDE集成
为VS Code或Vim开发语法高亮与错误提示插件。
IDE
插件
第28章
解析器输出格式
生成JSON/YAML格式的AST,便于其他工具消费。
JSON
YAML
第29章
开源Verilog解析器对比
Icarus Verilog、Verilator、Surelog的架构分析。
对比
开源
第30章
实战项目:解析工具链
构建一个完整的Verilog到逻辑网表的解析工具链。
实战
网表