硬件描述语言编译器核心实现

📚 共计 30 章节
01
HDL编译器概述
什么是VHDL/Verilog · 编译器在数字芯片流程中的位置 · 核心模块总览
词法分析语法分析中间表示
02
词法分析器基础
Token定义与分类 · 正则表达式 · 有限状态自动机 · 字符流→Token流
FSA正则Token
03
词法分析器实现
手动实现Verilog词法分析 · 关键字/标识符/数字/注释/运算符
手写LexerVerilog
04
语法分析器基础
上下文无关文法 · 产生式与推导 · AST概念 · 自顶向下/自底向上
CFGAST
05
递归下降解析器
递归下降原理 · 左递归消除 · First/Follow集 · Verilog子集解析
递归下降First集
06
语法分析器生成工具
Yacc/Bison · ANTLR · 生成Verilog解析器 · 文法调试
ANTLRBison
07
语义分析基础
符号表设计 · 作用域管理 · 类型系统与类型检查
符号表类型检查
08
Verilog语义分析实战
模块实例化检查 · 端口连接 · 信号声明 · 敏感列表
语义检查Verilog
09
中间表示(IR)设计
为什么需要IR · 三地址码 · SSA · 自定义HDL-IR
TACSSA
10
从AST到IR的转换
遍历AST生成TAC · 条件分支/循环 · 阻塞与非阻塞赋值
AST→IRTAC生成
11
数据流分析基础
到达定值 · 活跃变量分析 · 可用表达式
数据流活跃变量
12
控制流分析
控制流图构建 · 支配树 · 循环检测与自然循环
CFG支配树
13
编译器优化(一)
常量折叠/传播 · 死代码消除 · 复制传播
常量折叠DCE
14
编译器优化(二)
公共子表达式消除 · 循环不变式外提 · 强度削弱
CSELICM
15
编译器优化(三)
寄存器分配基础 · 图着色算法 · 线性扫描
寄存器分配图着色
16
代码生成基础
目标平台(ASIC/FPGA) · IR→网表映射 · 逻辑门/触发器生成
网表映射
17
逻辑综合基础
组合逻辑综合 · 时序逻辑综合 · 状态机综合
综合FSM
18
技术映射
基于图覆盖 · DAG模式匹配 · 库单元绑定
Tech MappingDAG
19
时序分析与优化
静态时序分析(STA) · 关键路径 · 时序驱动优化
STA关键路径
20
编译器前端集成
词法/语法/语义整合 · 错误处理与恢复
前端流水线错误恢复
21
编译器后端集成
优化/代码生成/技术映射整合 · 输出EDIF/Verilog网表
后端流水线EDIF
22
测试与验证
编译器测试策略 · 回归测试 · OpenCores验证
测试回归
23
调试与诊断
诊断信息输出 · AST/IR可视化 · 性能分析
可视化诊断
24
支持SystemVerilog特性
logic/bit/struct · Interface · Assertion解析
SystemVerilog接口
25
支持VHDL语言
VHDL与Verilog差异 · 扩展词法/语法 · 语义特殊性
VHDL多语言
26
增量编译技术
增量编译概念 · 依赖图管理 · 重编译最小化
增量编译依赖图
27
高层次综合(HLS)基础
C/C++→RTL · 调度与绑定 · HLS与HDL编译器关系
HLS调度
28
开源HDL编译器案例分析
Yosys · Verilator · Icarus Verilog 架构与代码走读
YosysVerilator
29
编译器性能优化
并行解析 · 内存管理 · 大规模设计编译策略
性能并行
30
未来趋势与扩展
机器学习在编译器中的应用 · 敏捷硬件开发 · 开源生态
ML敏捷硬件