《Xilinx FPGA權威設計指南:基於Vivado 2018集成開發環境》是2018年10月電子工業出版社出版的圖書,作者是何賓。
基本介紹
- 中文名:Xilinx FPGA權威設計指南:基於Vivado 2018集成開發環境
- 作者:何賓
- 出版社: 電子工業出版社
- 出版時間:2018年
- 頁數:548 頁
- 定價:129 元
- 開本:16 開
- ISBN:9787121349379
內容簡介,目 錄,
內容簡介
本書系統地介紹了Xilinx新一代集成開發環境Vivado 2018的設計方法、設計流程和具體實現。全書共11章,內容包括Xilinx新一代UltraScale結構、Vivado集成設計環境導論、Vivado工程模式基本設計實現、Vivado非工程模式基本設計實現、創建和封裝用戶IP核流程、Vivado高級約束原理及實現、Vivado調試工具原理及實現、Vivado部分可重配置原理及實現、Vivado HLS原理詳解、Vivado HLS實現過程詳解、HDMI顯示屏驅動原理和實現。 本書參考了Xilinx新一代的Vivado 2018設計套件設計資料,理論與套用並重,將Xilinx新一代的設計理論貫穿在具體的設計實現中。
目 錄
第 章 Xilinx新一代UltraScale結構 1
1.1 UltraScale結構特點 1
1.2 可配置邏輯塊 2
1.2.1 可配置邏輯塊的特點 2
1.2.2 多路復用器 6
1.2.3 進位邏輯 9
1.2.4 存儲元素 13
1.2.5 分散式RAM 16
1.2.6 唯讀存儲器(ROM) 18
1.2.7 移位暫存器 21
1.3 時鐘資源和時鐘管理模組 23
1.3.1 時鐘資源 25
1.3.2 時鐘管理模組 28
1.4 塊存儲器資源 29
1.5 專用的DSP模組 33
1.6 SelectIO資源 36
1.7 高速串列收發器 41
1.8 PCI-E模組 43
1.9 Interlaken集成塊 43
1.10 Ethernet模組 43
1.11 系統監控器模組 44
1.12 配置模組 44
1.13 互聯資源 45
第 章 Vivado集成設計環境導論 46
2.1 Vivado系統級設計流程 46
2.2 Vivado功能和特性 48
2.3 Vivado中電路結構的網表描述 49
2.4 Vivado中工程數據的目錄結構 50
2.5 Vivado中Journal檔案和Log檔案功能 50
2.5.1 Journal檔案(Vivado.jou) 50
2.5.2 Log檔案(Vivado.log) 51
2.6 Vivado兩種設計流程模式 52
2.6.1 工程模式和非工程模式不同點比較 53
2.6.2 工程模式和非工程模式命令的不同 53
2.7 Vivado中的XDC檔案 55
2.7.1 XDC的特性 55
2.7.2 XDC與UCF比較 55
2.7.3 約束檔案的使用方法 56
2.7.4 約束順序 56
2.7.5 XDC約束命令 58
2.8 Vivado集成設計環境的啟動方法 59
2.9 Vivado集成設計環境主界面 60
2.10 Vivado設計主界面及功能 63
2.10.1 流程處理主界面及功能 63
2.10.2 工程管理器主界面及功能 64
2.10.3 工作區視窗 66
2.10.4 設計運行視窗 67
2.11 Vivado支持的屬性 68
第 章 Vivado工程模式基本設計實現 76
3.1 創建新的設計工程 76
3.2 創建並添加一個新的設計檔案 80
3.3 RTL詳細描述和分析 85
3.3.1 詳細描述的實現 85
3.3.2 生成HDL例化模板 87
3.4 設計綜合和分析 89
3.4.1 綜合過程的關鍵問題 89
3.4.2 設計綜合選項 89
3.4.3 執行設計綜合 92
3.4.4 綜合報告的查看 96
3.5 設計行為級仿真 97
3.6 創建實現約束 102
3.6.1 實現約束的原理 102
3.6.2 I/O規劃器功能 103
3.6.3 添加引腳約束 104
3.6.4 添加簡單的時鐘約束 109
3.7 設計實現和分析 111
3.7.1 設計實現原理 112
3.7.2 設計實現選項 112
3.7.3 設計實現及分析 117
3.7.4 靜態時序分析 123
3.8 設計時序仿真 126
3.9 生成編程檔案 127
3.9.1 配置器件屬性 127
3.9.2 生成可程式檔案 128
3.9.3 生成可程式檔案選項 128
3.10 下載比特流檔案到FPGA 130
3.11 生成並燒寫PROM檔案 132
第 章 Vivado非工程模式基本設計實現 136
4.1 非工程模式基本命令和功能 136
4.1.1 非工程模式基本命令列表 136
4.1.2 典型Tcl腳本的使用 137
4.2 Vivado集成開發環境分析設計 138
4.2.1 啟動Vivado集成開發環境 138
4.2.2 打開設計檢查點的方法 139
4.3 修改設計路徑 139
4.4 設定設計輸出路徑 140
4.5 讀取設計檔案 140
4.6 運行設計綜合 141
4.7 運行設計布局 142
4.8 運行設計布線 144
4.9 生成比特流檔案 145
4.10 下載比特流檔案 145
第 章 創建和封裝用戶IP核流程 148
5.1 Vivado定製IP流程 148
5.2 創建並封裝包含源檔案的IP 149
5.2.1 創建新的用於創建IP的工程 149
5.2.2 設定定製IP的庫名和目錄 150
5.2.3 封裝定製IP的實現 151
5.3 調用並驗證包含源檔案的IP設計 155
5.3.1 創建新的用於調用IP的工程 156
5.3.2 設定包含調用IP的路徑 156
5.3.3 創建基於IP的系統 158
5.3.4 系統行為級仿真 162
5.3.5 系統設計綜合 165
5.3.6 系統實現和驗證 166
5.4 創建並封裝不包含源檔案的IP 166
5.4.1 創建網表檔案 166
5.4.2 創建新的設計工程 167
5.4.3 設定定製IP的庫名和目錄 168
5.4.4 封裝定製IP的實現 168
5.5 調用並驗證不包含源檔案的IP設計 169
5.5.1 創建新的用於調用IP的工程 169
5.5.2 設定包含調用IP的路徑 170
5.5.3 創建基於IP的系統 170
5.5.4 系統設計綜合 171
第 章 Vivado高級約束原理及實現 173
6.1 時序檢查概念 173
6.1.1 基本術語 173
6.1.2 時序路徑 173
6.1.3 建立和保持鬆弛 175
6.1.4 建立和保持檢查 176
6.1.5 恢復和去除檢查 179
6.2 時序約束概念 180
6.2.1 時鐘定義 180
6.2.2 時鐘組 186
6.2.3 I/O延遲約束 189
6.2.4 時序例外 192
6.3 生成時序報告 205
6.4 添加時序約束 212
6.4.1 時序約束策略1 212
6.4.2 時序約束策略2 214
6.5 物理約束原理 219
6.5.1 網表約束 219
6.5.2 布局約束 220
6.5.3 布線約束 221
6.6 布局約束實現 223
6.6.1 修改綜合屬性 224
6.6.2 布局約束方法 224
6.7 布線約束實現 227
6.7.1 手工布線 227
6.7.2 進入分配布線模式 228
6.7.3 分配布線節點 230
6.7.4 取消分配布線節點 230
6.7.5 完成並退出分配布線模式 230
6.7.6 鎖定LUT負載上的單元輸入 231
6.7.7 分支布線 231
6.7.8 直接約束布線 233
6.8 修改邏輯實現 233
6.9 配置約束原理 235
6.10 增量編譯 235
6.10.1 增量編譯流程 235
6.10.2 運行增量布局和布線 236
6.10.3 使用增量編譯 238
6.10.4 增量編譯高級分析 240
第 章 Vivado調試工具原理及實現 241
7.1 設計調試原理和方法 241
7.2 創建新的設計 242
7.2.1 創建新的FIFO調試工程 242
7.2.2 添加FIFO IP到設計中 243
7.2.3 添加頂層設計檔案 246
7.2.4 使用HDL例化添加FIFO到設計中 247
7.2.5 添加約束檔案 251
7.3 網表插入調試探測流程方法及實現 253
7.3.1 網表插入調試探測流程的方法 253
7.3.2 網表插入調試探測流程的實現 255
7.4 使用添加HDL屬性調試探測流程 261
7.5 使用HDL例化調試核調試探測流程 262
7.6 VIO原理及套用 267
7.6.1 設計原理 267
7.6.2 添加VIO核 268
7.6.3 生成比特流檔案 271
7.6.4 下載並調試設計 272
第 章 Vivado部分可重配置原理及實現 274
8.1 可重配置導論 274
8.1.1 可重配置的概念 274
8.1.2 可重配置的套用 275
8.1.3 可重配置的特點 278
8.1.4 可重配置術語解釋 280
8.1.5 可重配置的要求 282
8.1.6 可重配置的標準 283
8.1.7 可重配置的流程 285
8.2 基於工程的部分可重配置實現 285
8.2.1 設計原理 285
8.2.2 建立可重配置工程 289
8.2.3 創建新的分區定義 291
8.2.4 添加新的可重配置模組 292
8.2.5 設定不同的配置選項 294
8.2.6 定義分區的布局 298
8.2.7 執行DRC 301
8.2.8 實現第一個運行配置並生成比特流檔案 302
8.2.9 實現第二個運行配置並生成比特流檔案 304
8.2.10 實現第三個運行配置並生成比特流檔案 304
8.2.11 實現第四個運行配置並生成比特流檔案 305
8.2.12 下載不同運行配置的部分比特流 305
8.3 基於非工程的部分可重配置實現 307
8.3.1 查看腳本 307
8.3.2 綜合設計 309
8.3.3 實現第一個配置 310
8.3.4 實現第二個配置 315
8.3.5 驗證配置 317
8.3.6 生成比特流 317
8.3.7 部分重配置FPGA 318
8.4 部分重配置控制器PRC的原理及套用 320
8.4.1 部分重配置控制器原理 320
8.4.2 實現原理 324
8.4.3 創建和配置新的設計 325
8.4.4 添加ILA核 327
8.4.5 添加和設定PRC核 328
8.4.6 設定不同的配置選項 331
8.4.7 定義分區的布局 334
8.4.8 實現第一個運行配置並生成比特流檔案 335
8.4.9 實現第二個運行配置並生成比特流檔案 337
8.4.10 實現第三個運行配置並生成比特流檔案 337
8.4.11 創建板支持包工程 338
8.4.12 創建應用程式工程 339
8.4.13 創建zynq_fsbl套用 343
8.4.14 創建啟動鏡像 343
8.4.15 從SD卡啟動引導系統 345
第 章 Vivado HLS原理詳解 347
9.1 高級綜合工具概述 347
9.1.1 高級綜合工具的功能和特點 347
9.1.2 Vivado HLS工具的優勢 348
9.1.3 HLS中使用術語說明 349
9.1.4 從C中提取硬體結構 350
9.1.5 不同的命令對HLS綜合結果的影響 352
9.2 高級綜合工具調度和綁定 354
9.2.1 高級綜合工具調度 355
9.2.2 高級綜合工具綁定 355
9.3 C代碼的關鍵屬性 356
9.3.1 函式 357
9.3.2 類型 357
9.3.3 循環 364
9.3.4 數組 366
9.3.5 I/O連線埠 366
9.3.6 運算符 367
9.4 C代碼級和RTL級算法驗證 368
9.5 添加命令 370
9.6 延遲和吞吐量的概念 373
9.6.1 設計延遲 373
9.6.2 設計吞吐量 374
9.7 改善延遲 374
9.7.1 延遲最小化 374
9.7.2 用戶延遲的定義 375
9.7.3 循環的處理 377
9.8 改善吞吐量 380
9.8.1 數據流最佳化 381
9.8.2 流水線最佳化 384
9.9 性能瓶頸——數組 390
9.9.1 數組分割 391
9.9.2 數組重組 394
9.9.3 數據打包 395
9.10 改善面積和資源 396
9.10.1 綁定配置 396
9.10.2 分配命令 397
9.10.3 指定資源 397
9.10.4 函式內聯 398
9.10.5 循環合併和平坦化 401
9.10.6 映射數組 401
9.10.7 任意精度整數 403
9.11 I/O類型 404
9.11.1 組合和時序邏輯設計 404
9.11.2 Vivado HLS I/O選項 405
9.11.3 模組級協定說明 408
9.11.4 連線埠級I/O協定 412
9.12 命令和編譯指示 422
第 章 Vivado HLS實現過程詳解 425
10.1 FIR濾波器不同語言的描述方式 425
10.1.1 C語言描述風格 425
10.1.2 C++語言描述風格 427
10.1.3 SystemC語言描述風格 428
10.2 Vivado HLS不支持的操作 429
10.3 測試平台編碼 431
10.4 指針的使用 432
10.5 流的使用 437
10.6 支持庫 438
10.6.1 FFT 439
10.6.2 FIR 442
10.6.3 移位暫存器 446
10.6.4 線性算法庫 447
10.6.5 OpenCV庫 448
10.7 Vivado HLS數字系統實現 453
10.7.1 基於HLS實現組合邏輯 453
10.7.2 基於HLS實現時序邏輯 468
10.7.3 基於HLS實現矩陣相乘 476
第 章 HDMI顯示屏驅動原理和實現 495
11.1 HDMI的發展歷史 495
11.2 HDMI視頻顯示接口定義 496
11.3 HDMI鏈路結構 497
11.4 HDMI鏈路時序要求 499
11.5 HDMI編碼算法 500
11.6 HDMI並行編碼數據轉換原理及實現 504
11.6.1 數據並行-串列轉換 505
11.6.2 三態並行-串列轉換器 505
11.6.3 OSERDESE2原語 505
11.6.4 TMDS信號轉換模組 508
11.6.5 HDMI並行編碼數據轉換的實現 508
11.7 系統整體設計結構 510
附錄 a7-edp-1開發板原理圖 512