在大多数工程师的日常工作中:
写 RTL
设约束
点综合
跑布局布线
看 Timing 报告
但你是否真正思考过:
综合工具到底如何做逻辑优化?
布局布线算法核心是什么?
为什么有的设计很容易收敛,有的却反复失败?
时序分析工具如何计算 slack?
Open-source FPGA CAD 到底做到什么程度?
如果你对这些问题有兴趣,那么:
《FPGA EDA Design Principles and Implementation》
是一本真正讲“工具内部机制”的书。
这本书讲什么?
它不是讲如何使用 Vivado / Quartus。
它讲的是:
FPGA 工具链的算法、数据结构与实现原理。
内容覆盖从:
逻辑综合
技术映射
物理综合
布局
布线
时序分析
开源 FPGA CAD 架构
是一整套完整的 FPGA EDA 后端体系。
全书结构梳理

1️⃣ FPGA CAD 总览
介绍 FPGA 工具链的整体流程:
RTL
→ 逻辑综合
→ 技术映射
→ Packing→ Placement→ Routing
→ Timing Analysis
解释每个阶段解决的问题与输入输出。
2️⃣ 逻辑综合(Logic Synthesis)
核心内容包括:
布尔网络表示
AIG(And-Inverter Graph)
逻辑优化
重写与重构算法
技术映射(Technology Mapping)
LUT 映射算法
重点讲:
如何把抽象布尔逻辑转换为 LUT 结构。
这部分非常偏算法。
3️⃣ Packing(逻辑打包)
FPGA 不是只有 LUT。
一个 CLB 里可能包含:
LUT
FF
Carry Chain
DSP
BRAM
Packing 的问题是:
如何把逻辑节点组合进 FPGA 物理资源结构中?
涉及:
资源冲突
结构限制
组合优化
4️⃣ Placement(布局)
讲解:
Analytical placement
Simulated annealing
Quadratic placement
Timing-driven placement
核心问题:
在二维网格上如何最优摆放逻辑单元?
目标包括:
最小化线长
优化时序
减少拥塞
5️⃣ Routing(布线)
这是 FPGA EDA 中最复杂的部分之一。
涉及:
FPGA 可编程互连结构
Channel routing
Negotiated congestion
Timing-driven routing
核心思想:
在有限布线资源中寻找可行路径,并不断调整权重以避免拥塞。
6️⃣ Static Timing Analysis(静态时序分析)
讲解:
Arrival time
Required time
Slack
时钟树
多时钟域分析
约束建模
你会真正理解:
Timing Analyzer 到底在算什么。
7️⃣ Open-source FPGA CAD
书中还涉及:
VTR(Verilog-to-Routing)
ABC 逻辑优化框架
开源 FPGA 工具链架构
这部分非常适合做研究或工具开发的人。
这本书的价值在哪?
我们平时遇到的工程问题:
为什么增加 pipeline 反而 timing 更差?
为什么布线拥塞?
为什么逻辑优化后 LUT 数变多?
为什么 placement 改变影响 timing?
这本书能帮你理解:
工具背后的算法逻辑。
一旦理解底层:
你写 RTL 会更“EDA 友好”
你会设计更容易收敛的架构
你会知道什么时候是算法问题,什么时候是结构问题
总结
本书聚焦于FPGA EDA工具,即FPGA技术的基础。本书并非着重讲解如何使用这些工具,而是深入剖析工具本身,揭示其设计原理及改进方向。与其他半导体器件不同,FPGA的EDA分为两个阶段:芯片设计EDA和应用设计EDA。本书主要关注最先进的算法、数据模型和设计方法/标准,这将极大地帮助FPGA EDA工程师和研究人员对这一复杂的知识体系有一个清晰的认识。在芯片设计EDA部分,本书介绍了全定制和半定制方法,并阐述了类似ASIC的EDA工具;在应用设计EDA部分,本书则详细讨论了包括高级综合、逻辑综合、物理实现、比特流配置等在内的典型主题。

扫码加微信直接与工作人员沟通