內容簡介
《Xilinx FPGA/CPLD設計手冊》從
初學者的角度出發,以全新的
視角、合理的布局系統地介紹了Xilinx FPGA/CPLD的設計流程,以及集成設計工具ISE 10.x的基本使用方法和技巧,並提供了一些經典設計實例,供讀者學習和參考。
《Xilinx FPGA/CPLD設計手冊》共14章,循序漸進地介紹了ISE 10.x中各種設計工具的基本操作方法,內容包括設計輸入工具的使用、基於ModelSim的設計仿真、Synplify Pro和XST綜合工具的使用、設計實現、器件配置以及線上調試等,並輔以4個綜合實例,讓讀者能更加深入地理解Xilinx FPGA/CPLD的設計流程。隨書附帶的光碟中提供了書中所有示例的完整工程檔案和設計源檔案,讀者可以結合書本上的實例操作流程,自行操作練習,以加深理解。
《Xilinx FPGA/CPLD設計手冊》內容系統,實用性、專業性強,是Xilinx FPGA/CPLD設計初學者入門和提高的學習寶典。本書可以作為高等院校
通信工程、
電子工程、
微電子和
半導體學等工科專業的教材,也可以作為FPGA電子設計工程師的實用參考書。
目錄
目 錄
第1章 Xilinx FPGA/CPLD簡介 1
1.2 FPGA簡介 2
1.3 CPLD簡介 3
1.4 FPGA/CPLD的特點 4
1.6 Xilinx簡介 5
1.6.1 Xilinx公司概述 5
1.6.2 Xilinx FPGA/CPLD
器件 6
1.7 Xilinx FPGA/CPLD的基本
結構 10
1.7.1 Xilinx CPLD的基本結構 10
1.7.2 Xilinx FPGA的基本結構 11
1.8 小結 14
第2章 ISE系統簡介 15
2.1 ISE系列產品的特點 15
2.1.1 ISE特點綜述 15
2.1.2 ISE 10.x新增特性 16
2.2 ISE 10.x支持的器件 17
2.3 ISE的軟體系列 17
2.4 ISE的系統配置和安裝 18
2.4.1 推薦的系統配置 18
2.4.2 ISE的安裝 18
2.5 ISE設計流程實例:32位加/減法器設計 22
2.5.1 ISE 10.x集成開發環境界面 23
2.5.2 設計輸入 25
2.5.3 功能仿真 29
2.5.4 設計綜合 32
2.5.5 工程實現 33
2.5.7 器件配置 34
第3章 ISE工程管理與設計輸入 38
3.1 ISE工程管理器——Project Navigator 38
3.1.1 Project Navigator簡介 38
3.1.2 實例3-1:使用Project Navigator創建並管理工程 38
3.2 HDL語言輸入工具——HDL Editor 41
3.2.1 HDL Editor綜述 41
3.2.2 原始碼輸入助手——Language Templates 41
3.2.3 實例3-2:使用HDL Editor設計16位移位暫存器 42
3.3 狀態機輸入工具——StateCAD 43
3.3.1 StateCAD簡介 43
3.3.2 實例3-3:使用StateCAD設計加法器 44
3.4 原理圖輸入工具——ECS 50
3.4.1 ECS簡介 50
3.4.2 基於ECS的混合設計方法 50
3.5
IP核生成工具——CORE Generator 50
3.5.1 CORE Generator簡介 51
3.5.2 實例3-4:使用CORE Generator生成Block RAM 52
3.6 測試激勵生成器——HDL Bencher 54
3.6.1 HDL Bencher簡介 54
3.6.2 實例3-5:使用HDL Bencher生成測試激勵 54
3.7 設計結構嚮導——Architecture Wizard 58
3.7.1 Architecture Wizard簡介 58
3.7.2 實例3-6:使用Architecture Wizard生成DCM 58
3.8 小結 61
第4章 功能仿真工具 62
4.1 ModelSim簡介 62
4.1.1 ModelSim的安裝 64
4.2 ModelSim仿真流程 71
4.2.1 啟動ModelSim 71
4.2.2 編譯ModelSim仿真庫 73
4.2.3 編譯原始碼 75
4.2.4 執行仿真 78
4.3 ModelSim中的調試方法 79
4.3.1 源檔案視窗調試 79
4.3.2 波形視窗調試 81
4.3.3 列表視窗調試 83
4.3.4 數據流視窗調試 84
4.3.5 存儲器視窗調試 86
4.4 ModelSim仿真進階 87
4.4.1 批處理仿真 87
4.4.2 WLF檔案和波形比較 89
4.4.3 代碼覆蓋率檢測 93
4.4.4 SDF時序反標 95
4.4.5 VCD檔案套用 96
4.5 後仿真實例 97
4.6 小結 103
第5章 ISE綜合工具 104
5.1 Synplify/Synplify Pro綜合工具 104
5.1.1 Synplify/Synplify Pro的功能與特點 104
5.1.2 Synplify Pro的用戶界面 108
5.1.3 實例5-1:Synplify Pro綜合流程 110
5.2 Xilinx內嵌的綜合工具——XST 117
5.2.1 XST綜述 117
5.2.2 XST綜合屬性設定 118
5.2.3 實例5-2:XST綜合流程 121
5.3 全局時鐘和第二全局時鐘資源 124
5.3.1 全局時鐘資源簡介 124
5.3.2 Xilinx全局資源的使用方法 124
5.3.3 第二全局時鐘資源 126
5.4 小結 126
第6章 約束設定 127
6.1 時序約束基礎 127
6.1.1 周期約束 128
6.1.2 偏移約束 131
6.1.3 專用約束 132
6.1.4 分組約束 135
6.2 約束編輯器——Constraints Editor 139
6.2.1 Constraints Editor用戶界面 139
6.2.2 實例:在Constraints Editor中附加約束 140
6.3 引腳與區域約束編輯器——Floorplan Editor 147
6.3.1 利用Floorplan完成引腳配置和區域約束 147
6.3.2 利用PACE進行引腳分配 149
6.4 約束檔案 150
6.4.1 約束檔案簡介 150
6.4.2 UCF、NCF檔案的基本語法規則 151
6.4.3 引腳和區域約束語法 154
6.5 小結 156
第7章 設計實現 157
7.1 布局規劃器——Floorplanner 157
7.1.1 Floorplanner的用戶界面 158
7.1.2 Floorplanner的特點及作用 158
7.1.3 Floorplan設計流程 159
7.1.4 實例7-1:布局規劃實例 162
7.2 FPGA底層編輯器——FPGA Editor 164
7.2.1 FPGA Editor用戶界面 165
7.2.2 FPGA Editor的作用 165
7.2.3 FPGA Editor輸入/輸出檔案 167
7.2.4 FPGA Editor設計流程 167
7.2.5 實例7-2:FPGA Editor設計實例 167
7.3 小結 174
第8章 輔助設計工具 175
8.1 時序分析器——Timing Analyzer 175
8.1.1 時序分析基礎 175
8.1.2 Timing Analyzer簡介 182
8.1.3 實例8-1:時序分析器使用實例 185
8.2 虛擬邏輯分析儀——ChipScope Pro 190
8.2.1 ChipScope Pro綜述 190
8.2.2 ChipScope Pro核的使用 191
8.2.3 ChipScope Pro Analyzer使用簡介 199
8.2.4 實例8-2:基於ChipScope Pro Core Inserter線上調試實例 204
8.2.5 實例8-3:基於CORE Generator的線上調試示例 210
8.3 功耗分析器——XPower 213
8.3.1 XPower綜述 214
8.3.2 XPower用戶界面 215
8.3.3 實例8-4:XPower功耗分析實例 216
8.4 小結 220
第9章 Xilinx器件配置 221
9.1 Xilinx器件配置簡介 221
9.3 Xilinx器件配置模式 224
9.3.2 從串模式 226
9.3.3 位元組寬度外部接口並行配置(BPI)模式 227
9.3.4 JTAG模式 228
9.4 Xilinx器件配置下載電纜 230
9.5 程式下載器——iMPACT 230
9.5.1 iMPACT綜述 231
9.5.2 iMPACT用戶界面 231
9.5.3 iMPACT程式下載實例 238
9.6 小結 241
第10章 FPGA系統設計原則和技巧 242
10.1 時鐘管理模組使用技巧 242
10.1.1 DCM模組 242
10.1.2 實例:DCM設計實例 245
10.2 FPGA系統設計的基本原則 251
10.2.1 面積與速度的平衡互換原則 252
10.2.2 硬體可實現原則 253
10.2.3 同步設計原則 253
10.3 FPGA系統設計的常用技巧 255
10.3.1 桌球操作技巧 255
10.3.2 串並/並串轉換技巧 256
10.3.3 硬體流水線設計技巧 257
10.4 小結 258
第11章 綜合實例1——FIFO設計 259
11.1 FIFO的基本原理 259
11.2 FIFO的空/滿檢測 260
11.3 Gray碼 265
11.4 異步FIFO代碼設計 267
11.5 異步FIFO代碼仿真驗證 274
11.6 異步FIFO代碼綜合 282
11.7 異步FIFO設計實現 288
11.8 小結 296
第12章 綜合實例2——SPI匯流排設計 297
12.1 SPI匯流排概述 297
12.2 SPI匯流排原始碼設計 301
12.3 SPI設計綜合 311
12.4 SPI設計的FPGA實現 312
12.5 小結 316
第13章 綜合實例3——NAND Flash控制器設計 317
13.1 NAND Flash簡介 317
13.2 NAND Flash的結構和基本操作 318
13.3 NAND Flash控制器結構 324
13.4 ECC模組設計 326
13.5 生成雙連線埠RAM 331
13.6 NAND Flash控制器代碼設計 335
13.7 NAND Flash控制器代碼仿真 343
13.8 NAND Flash控制器代碼綜合 347
13.9 NAND Flash控制器代碼實現 351
13.10 小結 360
第14章 綜合實例4——CRC校驗器設計 361
14.1 CRC校驗原理 361
14.2 CRC校驗器的結構 363
14.3 CRC校驗器原始碼設計 365
14.4 CRC校驗器代碼綜合及仿真驗證 369
14.5 CRC校驗器的FPGA實現 371
14.6 小結 374
附錄 IC和FPGA專業術語中/英文對照 375