第1章 FPGA技術分析 1
1.1 芯片架構的演變 1
1.2 設計方法的演變 15
1.3 面臨的挑戰(zhàn) 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章 優(yōu)化時鐘網絡 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 時鐘規(guī)劃 75
2.6 創(chuàng)建輸出時鐘 79
2.7 思考空間 80
第3章 優(yōu)化組合邏輯 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 避免組合邏輯環(huán)路 170
3.7 思考空間 171
第4章 優(yōu)化觸發(fā)器 172
4.1 觸發(fā)器資源 172
4.1.1 7系列FPGA中的觸發(fā)器資源 172
4.1.2 UltraScale/UltraScale+ FPGA中的觸發(fā)器資源 174
4.1.3 Versal ACAP中的觸發(fā)器資源 175
4.2 建立時間和保持時間 179
4.3 亞穩(wěn)態(tài) 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章 優(yōu)化移位寄存器 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章 優(yōu)化存儲器 234
6.1 存儲器資源 234
6.1.1 分布式RAM 234
6.1.2 BRAM 235
6.1.3 UltraRAM 242
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 異構RAM 312
6.10 以IP方式使用RAM和FIFO 312
6.11 以XPM方式使用RAM或FIFO 319
6.12 管理時序路徑上的BRAM和UltraRAM 322
6.13 思考空間 328
第7章 優(yōu)化乘加運算單元 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章 優(yōu)化狀態(tài)機 388
8.1 基本概念 388
8.2 狀態(tài)機代碼風格 390
8.3 狀態(tài)編碼方式 410
8.4 基于ROM的控制器 413
8.5 思考空間 416
第9章 優(yōu)化扇出 417
9.1 生成扇出報告 417
9.2 利用設計流程降低扇出 419
9.3 利用約束降低扇出 421
9.4 從代碼層面降低扇出 424
9.5 改善扇出的正確流程 424
9.6 思考空間 425
第10章 優(yōu)化布線擁塞 426
10.1 布線擁塞的三種類型 426
10.2 利用設計流程改善布線擁塞 428
10.3 利用約束緩解布線擁塞 429
10.4 從代碼層面降低布線擁塞程度 430
10.5 緩解布線擁塞的正確流程 430
10.6 思考空間 432