本書作者憑借多年工作經驗,深入地討論了Intel FPGA/CPLD的設計和優化技巧。在討論FPGA/CPLD設計指導原則的基礎上,介紹了Intel FPGA器件的高-級應用;引-領讀者學習邏輯鎖定設計工具,詳細討論了時序約束與靜態時序分析的方法;針對市場應用需求,分別介紹了SoC FPGA和OpenCL系統應用技術;結合實例討論如何進行設計優化,介紹了Intel的可編程器件的高-級設計工具與系統級設計技巧。
本書所有實例的完整工程、源代碼和使用說明文件,都以云存儲的方式存放在云端,讀者可以通過掃描二維碼的方式進行下載。
本書可作為高等院校通信工程、電子工程、計算機、微電子與半導體等專業的教材,也可作為硬件工程師和IC工程師的實用工具書。
Intel公司審校,Intel資-深FAE傾力打造,權-威的Intel器件類圖書
Intel公司推薦FPGA/CPLD培訓教材
深入討論Intel FPGA/CPLD設計和優化技巧
掃碼下載所有實例的完整工程、源代碼和使用說明文件
王誠:西安電子科技大學/通信與電子信息系統/碩士 高-級工程師 Lattice公司中國區總經理,工作經驗豐富研究領域:擴頻通信、CDMA通信、3G基帶設計、FPGA/數字ASIC設計、優化、驗證取得成果:兩項WCDMA實現技術專利發明人,在一級期刊上發表多篇CDMA技術論文,發表數篇國內外FPGA/ASIC設計技術研討會論文,編寫圖書《FPGA/CPLD設計工具──Xilinx ISE 使用詳解》、《Altera FPGA/CPLD設計(基礎篇)》、《Altera FPGA/CPLD設計(高-級篇)》 王江宏 西北工業大學 通信與信息系統專業 碩士研究生 畢業后先后加入中興通訊 上海貝爾 Altera Intel工作 主要從事無線通信設備技術研發, FPGA+ARM技術支持。
第1章可編程邏輯設計指導原則1
1.1可編程邏輯基本設計原則1
1.1.1面積和速度的平衡與互換原則1
1.1.2硬件原則11
1.1.3系統原則13
1.1.4同步設計原則16
1.2可編程邏輯常用設計思想與技巧19
1.2.1乒乓操作19
1.2.2串并轉換21
1.2.3流水線操作21
1.2.4異步時鐘域數據同步22
1.3Altera推薦的Coding Style26
1.3.1Coding Style的含義27
1.3.2結構層次化編碼(Hierarchical Coding)27
1.3.3模塊劃分的技巧(Design Partitioning)28
1.3.4組合邏輯的注意事項29
1.3.5時鐘設計的注意事項32
1.3.6全局異步復位資源38
1.3.7判斷比較語句case和if...else的優先級39
1.3.8使用Pipelining技術優化時序39
1.3.9模塊復用與Resource Sharing39
1.3.10邏輯復制41
1.3.11香農擴展運算43
1.3.12信號敏感表45
1.3.13狀態機設計的一般原則46
1.3.14Altera Megafunction資源的使用48
1.3.15三態信號的設計48
1.3.16加法樹的設計49
1.4小結51
1.5問題與思考52
第2章Altera器件高級特性與應用53
2.1時鐘管理53
2.1.1時序問題53
2.1.2鎖相環應用60
2.2Arria10硬浮點數字信號處理模塊69
2.2.1硬浮點DSP塊介紹69
2.2.2Altera FPGA中浮點DSP實現的演進69
2.2.3硬浮點DSP的優勢70
2.2.4Xilinx Ultrascale DSP48E274
2.3片外高速存儲器74
2.3.1外部存儲接口方案的關鍵特性74
2.3.2支持的存儲標準75
2.3.3存儲接口寬度75
2.3.4I/O管腳76
2.3.5外部存儲接口IP支持類型76
2.3.6Arria10外部存儲接口架構78
2.4Hybrid Memory Cube83
2.4.1存儲帶寬面臨的挑戰83
2.4.2HMC的優勢84
2.4.3Altera HMC交互操作平臺85
2.4.4Altera HMC路標87
2.4.5網絡系統應用案例88
2.5Altera JESD204B Megacore90
2.5.1基本介紹90
2.5.2功能描述94
2.5.3Debug指導97
2.6高速串行收發器100
2.6.1Arria10 Transceiver概述100
2.6.2Transceiver設計流程104
2.6.3PLL和時鐘網絡107
2.6.4復位Transceiver通道112
2.6.5重配接口和動態重配115
2.6.6校準118
2.7小結119
2.8問題與思考119
第3章SoC FPGA嵌入式設計基礎120
3.1SoC FPGA簡介120
3.1.1SoC FPGA系列器件組合120
3.1.2SoC FPGA的工具和軟件124
3.1.3SoC FPGA的生態系統124
3.2基于ARM Coretex A9 MPCore的硬件處理系統126
3.2.1硬核處理器系統框圖與系統集成127
3.2.2Endian支持129
3.2.3HPS-FPGA橋接129
3.2.4HPS地址映射130
3.3Qsys系統集成工具131
3.3.1Qsys簡介131
3.3.2在Qsys中例化硬核處理器系統組件132
3.4SoC嵌入式設計套裝 (Embedded Design Suite)140
3.4.1SoC EDS介紹140
3.4.2Embedded Command Shell143
3.4.3ARM DS-5 AE143
3.4.4啟動工具使用指南144
3.4.5硬件庫(Hardware Library)145
3.4.6HPS Flash編程器146
3.4.7裸金屬編譯器147
3.4.8Linux軟件開發工具147
3.5小結148
3.6問題與思考148
第4章時序約束與時序分析149
4.1時序約束與時序分析基礎149
4.1.1周期與最高頻率150
4.1.2利用Quartus II工具分析設計152
4.1.3時鐘建立時間155
4.1.4時鐘保持時間156
4.1.5時鐘輸出延時156
4.1.6引腳到引腳的延遲157
4.1.7Slack157
4.1.8時鐘偏斜158
4.1.9Quartus II 時序分析工具和優化向導158
4.2設置時序約束的常用方法159
4.2.1指定全局時序約束160
4.2.2指定個別時鐘約束164
4.3高級時序分析172
4.3.1時鐘偏斜172
4.3.2多時鐘域174
4.3.3多周期約束174
4.3.4偽路徑181
4.3.5修正保持時間違例183
4.3.6異步時鐘域時序分析184
4.4最小化時序分析185
4.5使用Tcl工具進行高級時序分析186
4.6TimeQuest簡介187
4.7小結190
4.8問題與思考190
第5章設計優化191
5.1解讀設計191
5.1.1內部時鐘域192
5.1.2多周期路徑和偽路徑193
5.1.3I/O接口的時序要求194
5.1.4平衡資源的使用194
5.2設計優化的基本流程和首次編譯195
5.2.1設計優化基本流程195
5.2.2首次編譯的約束和設置196
5.2.3查看編譯報告198
5.3資源利用優化200
5.3.1設計代碼優化201
5.3.2資源重新分配201
5.3.3解決互連資源緊張的問題203
5.3.4邏輯綜合面積優化203
5.3.5網表面積優化207
5.3.6寄存器打包209
5.3.7Quartus II中的資源優化顧問211
5.4I/O時序優化211
5.4.1執行時序驅動的編譯211
5.4.2使用IOE中的觸發器212
5.4.3可編程輸入/輸出延時215
5.4.4使用鎖相環對時鐘移相217
5.4.5其他I/O時序優化方法218
5.5最高時鐘頻率優化219
5.5.1設計代碼優化219
5.5.2邏輯綜合速度優化225
5.5.3布局布線器設置227
5.5.4網表優化和物理綜合228
5.5.5使用LogicLock對局部進行優化233
5.5.6位置約束、手動布局和反標注234
5.5.7Quartus II中的時序優化顧問235
5.6使用DSE工具優化設計236
5.6.1為什么需要DSE236
5.6.2什么是DSE,如何使用236
5.7如何減少編譯時間238
5.8設計優化實例239
5.9小結242
5.10問題與思考243
第6章Altera OpenCL開發套件和其他高級工具244
6.1命令行與Tcl腳本244
6.1.1命令行腳本245
6.1.2Tcl腳本249
6.1.3使用命令行和Tcl腳本253
6.2DSP Builder工具254
6.2.1DSP Builder設計流程254
6.2.2與SOPC Builder一起構建系統258
6.3Altera OpenCL軟件開發套件259
6.3.1OpenCL基本介紹259
6.3.2OpenCL架構260
6.3.3AOCL的安裝和應用264
6.3.4AOCL FPGA編程267
6.4小結272
6.5問題與思考272
第7章FPGA系統級設計技術273
7.1信號完整性及常用I/O電平標準273
7.1.1信號完整性273
7.1.2單端標準278
7.1.3差分標準282
7.1.4偽差分標準285
7.1.5片上終端電阻285
7.2電源完整性設計286
7.2.1電源完整性286
7.2.2同步翻轉噪聲287
7.2.3非理想回路290
7.2.4低阻抗電源分配系統293
7.3功耗分析和熱設計297
7.3.1功耗的挑戰297
7.3.2FPGA的功耗297
7.3.3熱設計299
7.4SERDES與高速系統設計301
7.4.1SERDES的基本概念302
7.4.2Altera Stratix IV GX中SERDES的基本結構305
7.4.3典型高速系統應用框圖舉例311
7.4.4高速PCB設計注意事項315
7.5小結317
7.6問題與思考318