AMD FPGA设计优化宝典:面向Vivado/VHDL
定 价:125 元
丛书名:EDA精品智汇馆
- 作者:高亚军
- 出版时间:2023/3/1
- ISBN:9787121450983
- 出 版 社:电子工业出版社
- 中图法分类:TP332.1
- 页码:
- 纸张:
- 版次:
- 开本:16开
本书以Xilinx公司(目前已被AMD公司收购)的7系列FPGA、UltraScale/UltraScale+ FPGA和Versal ACAP内部架构为基础,介绍与之匹配的RTL代码的风格(采用VHDL语言)和基于Vivado的设计分析方法。全书共10章,包括时钟网络、组合逻辑、触发器、移位寄存器、存储器、乘加运算单元和状态机的代码风格和优化方法,也包含扇出和布线拥塞的优化方法。本书可供电子工程领域的本科生和研究生学习参考,也可供FPGA工程师和自学者参考使用。
高亚军,FPGA技术分享者,设计优化和时序收敛专家,Vivado工具使用专家,数字信号处理专家,现任Xilinx资深战略应用工程师,多年来使用Xilinx FPGA实现数字信号处理算法,对Xilinx FPGA器件架构、开发工具Vivado/Vitis HLS/Model Composer及其设计理念有深厚的理论和实战经验。
第1章 FPGA技术分析1
1.1 芯片架构的演变1
1.2 设计方法的演变15
1.3 面临的挑战20
1.4 四大基本原则22
1.4.1 硬件原则23
1.4.2 同步原则24
1.4.3 流水原则25
1.4.4 面积与速度的平衡与互换原则27
1.5 性能指标29
1.6 思考空间31
第2章 优化时钟网络32
2.1 时钟资源32
2.1.1 7系列FPGA中的时钟资源32
2.1.2 UlatraScale/UltraScale+ FPGA中的时钟资源42
2.1.3 Versal ACAP中的时钟资源47
2.2 时钟偏移52
2.3 时钟抖动64
2.4 安全的时钟启动方式71
2.5 时钟规划75
2.6 创建输出时钟79
2.7 思考空间80
第3章 优化组合逻辑81
3.1 组合逻辑资源81
3.2 译码器与编码器82
3.2.1 译码器代码风格82
3.2.2 编码器代码风格93
3.3 多路复用器与多路解复用器104
3.3.1 多路复用器代码风格104
3.3.2 多路解复用器代码风格117
3.4 加法器与累加器119
3.4.1 加法器代码风格119
3.4.2 累加器代码风格134
3.5 其他组合逻辑电路149
3.5.1 移位器代码风格149
3.5.2 比较器代码风格153
3.5.3 奇偶校验电路代码风格166
3.5.4 二进制码与格雷码互转电路代码风格167
3.6 避免组合逻辑环路170
3.7 思考空间171
第4章 优化触发器172
4.1 触发器资源172
4.1.1 7系列FPGA中的触发器资源172
4.1.2 UltraScale/UltraScale+ FPGA中的触发器资源174
4.1.3 Versal ACAP中的触发器资源175
4.2 建立时间和保持时间179
4.3 亚稳态181
4.4 控制集184
4.5 复位信号的代码风格189
4.5.1 异步复位还是同步复位189
4.5.2 全局复位还是局部复位192
4.5.3 是否需要上电复位195
4.6 同步边沿检测电路代码风格199
4.7 串并互转电路代码风格201
4.8 避免意外生成的锁存器206
4.9 思考空间209
第5章 优化移位寄存器211
5.1 移位寄存器资源211
5.1.1 7系列FPGA中的移位寄存器资源211
5.1.2 UltraScale/UltraScale+ FPGA中的移位寄存器资源212
5.1.3 Versal ACAP中的移位寄存器资源212
5.2 移位寄存器的代码风格216
5.3 移位寄存器的应用场景227
5.4 管理时序路径上的移位寄存器228
5.5 思考空间232
第6章 优化存储器234
6.1 存储器资源234
6.1.1 分布式RAM234
6.1.2 BRAM235
6.1.3 UltraRAM242
6.2 单端口RAM代码风格246
6.3 简单双端口RAM代码风格266
6.4 真双端口RAM代码风格276
6.5 RAM的初始化与ROM代码风格284
6.6 同步FIFO代码风格287
6.7 异步FIFO代码风格301
6.8 平衡BlockRAM的功耗与性能310
6.9 异构RAM312
6.10 以IP方式使用RAM和FIFO312
6.11 以XPM方式使用RAM或FIFO319
6.12 管理时序路径上的BRAM和UltraRAM322
6.13 思考空间328
第7章 优化乘加运算单元329
7.1 乘加器资源329
7.1.1 7系列FPGA中的乘加器资源329
7.1.2 UltraScale/UltraScale+ FPGA中的乘加器资源332
7.1.3 Versal ACAP中的乘加器资源332
7.2 以乘法为核心运算的代码风格335
7.3 复数乘法运算代码风格363
7.4 向量内积代码风格378
7.5 以加法为核心运算的电路结构380
7.6 管理时序路径上的乘加器386
7.7 思考空间387
第8章 优化状态机388
8.1 基本概念388
8.2 状态机代码风格390
8.3 状态编码方式410
8.4 基于ROM的控制器413
8.5 思考空间416
第9章 优化扇出417
9.1 生成扇出报告417
9.2 利用设计流程降低扇出419
9.3 利用约束降低扇出421
9.4 从代码层面降低扇出424
9.5 改善扇出的正确流程424
9.6 思考空间425
第10章 优化布线拥塞426
10.1 布线拥塞的三种类型426
10.2 利用设计流程改善布线拥塞428
10.3 利用约束缓解布线拥塞429
10.4 从代码层面降低布线拥塞程度430
10.5 缓解布线拥塞的正确流程430
10.6 思考空间432