第1章
01 重构入门
重构入门:什么是代码重构?为什么FPGA代码需要重构?重构与重写的区别。
理解重构本质,明确FPGA硬件描述语言的特殊性,区分重构与重写。
第2章
02 坏味道识别
坏味道识别:过长模块、重复代码、过度耦合、命名混乱、魔法数字。
掌握典型代码坏味道,建立重构直觉。
第3章
03 模块化基础
模块化设计三原则(高内聚、低耦合、接口清晰),模块划分粒度。
模块化核心原则与粒度控制。
第4章
04 接口设计规范
AXI-Stream、AXI-Lite、自定义接口标准化设计,接口文档化。
统一接口规范,提升可复用性。
第5章
05 参数化设计
使用parameter和localparam实现可配置模块,避免硬编码。
灵活配置,适应不同场景。
第6章
06 状态机重构
三段式状态机模板,状态编码优化(One-hot vs Binary),状态机拆分。
状态机整洁之道。
第7章
07 组合逻辑重构
避免组合环路,使用always_comb规范,敏感列表管理。
组合逻辑可靠性与可读性。
第8章
08 时序逻辑重构
同步复位 vs 异步复位,寄存器分组,时钟域同步策略。
时序逻辑稳健设计。
第9章
09 代码复用技巧
generate语句、函数与任务、包(package)的合理使用。
复用让代码更高效。
第10章
10 层次化设计
顶层模块、子模块、叶模块的职责划分,实例化规范。
层次清晰,管理复杂度。
第11章
11 命名规范
信号命名、模块命名、文件命名、统一前缀后缀规则。
命名即注释。
第12章
12 注释与文档
自文档化代码,模块头注释,关键逻辑注释,修改记录。
文档与代码同步。
第13章
13 仿真环境重构
testbench模块化,断言(assertion)使用,覆盖率驱动。
高效仿真环境搭建。
第14章
14 验证组件复用
VIP(验证IP)设计,BFM(总线功能模型)封装,scoreboard设计。
验证组件标准化。
第15章
15 综合与实现优化
资源占用优化,时序收敛技巧,面积与速度权衡。
综合实现调优。
第16章
16 时钟域处理
CDC(跨时钟域)设计模式,同步器实现,握手协议。
安全跨越时钟域。
第17章
17 复位策略
全局复位、局部复位、复位树设计,复位释放时序。
可靠复位设计。
第18章
18 流水线设计
流水线插入原则,平衡延迟,流水线冒险处理。
流水线提升吞吐。
第19章
19 数据通路重构
数据路径分离,控制路径与数据路径解耦,流水线寄存器。
数据通路整洁化。
第20章
20 存储单元封装
BRAM、URAM、分布式RAM的统一封装接口,读写冲突处理。
存储抽象与封装。
第21章
21 DSP单元封装
DSP48E2的抽象封装,乘加运算标准化,级联设计。
DSP高效复用。
第22章
22 接口协议封装
SPI、I2C、UART等通用接口的模块化封装,参数化配置。
协议模块化。
第23章
23 错误处理机制
超时检测、错误标志传递、错误恢复状态机。
系统鲁棒性设计。
第24章
24 功耗优化重构
门控时钟、操作数隔离、状态机编码优化。
低功耗重构技巧。
第25章
25 可测试性设计
扫描链、BIST(内建自测试)、调试接口(ILA/VIO)。
DFT让调试更简单。
第26章
26 版本控制与协作
Git在FPGA项目中的应用,代码审查清单,分支策略。
团队协作基石。
第27章
27 重构流程
重构前的评估、测试用例准备、小步重构、回归验证。
系统化重构步骤。
第28章
28 代码质量度量
圈复杂度、模块扇入扇出、代码行数、注释率。
量化代码质量。
第29章
29 实战案例一
SPI控制器从混乱到整洁的重构全过程。
完整重构实战。
第30章
30 实战案例二
图像处理流水线的模块化拆分与性能优化。
流水线重构与优化。