Xilinx FPGA權威設計指南:基于Vivado 2018集成開發(fā)環(huán)境
定 價:129 元
叢書名:電子系統(tǒng)EDA新技術叢書
- 作者:何賓
- 出版時間:2018/10/1
- ISBN:9787121349379
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP331.2-62
- 頁碼:548
- 紙張:
- 版次:01
- 開本:16開
本書系統(tǒng)地介紹了Xilinx新一代集成開發(fā)環(huán)境Vivado 2018的設計方法、設計流程和具體實現(xiàn)。全書共11章,內容包括Xilinx新一代UltraScale結構、Vivado集成設計環(huán)境導論、Vivado工程模式基本設計實現(xiàn)、Vivado非工程模式基本設計實現(xiàn)、創(chuàng)建和封裝用戶IP核流程、Vivado高級約束原理及實現(xiàn)、Vivado調試工具原理及實現(xiàn)、Vivado部分可重配置原理及實現(xiàn)、Vivado HLS原理詳解、Vivado HLS實現(xiàn)過程詳解、HDMI顯示屏驅動原理和實現(xiàn)。 本書參考了Xilinx新一代的Vivado 2018設計套件設計資料,理論與應用并重,將Xilinx新一代的設計理論貫穿在具體的設計實現(xiàn)中。
何賓 任教于北京化工大學信息學院,長期從事電子設計自動化方面的教學和科研工作,與全球多家知名的半導體廠商和EDA工具廠商大學計劃保持緊密合作。目前已經出版EDA方面的著作共20余部,內容涵蓋電路仿真、電路設計、FPGA、單片機、嵌入式系統(tǒng)等。典型的代表作有《Xilinx FPGA設計權威指南》《Xilinx All Programmable Zynq-7000 SoC設計指南》《Altium Designer13.0電路設計、仿真與驗證權威指南》《Xilinx FPGA數(shù)字設計-從門級到行為級的雙重描述》《Xilinx FPGA數(shù)字信號處理權威指南-從HDL、模型到C的描述》《模擬與數(shù)字系統(tǒng)協(xié)同設計權威指南-Cypress集成開發(fā)環(huán)境》。
目 錄
第 章 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 高速串行收發(fā)器 41
1.8 PCI-E模塊 43
1.9 Interlaken集成塊 43
1.10 Ethernet模塊 43
1.11 系統(tǒng)監(jiān)控器模塊 44
1.12 配置模塊 44
1.13 互聯(lián)資源 45
第 章 Vivado集成設計環(huán)境導論 46
2.1 Vivado系統(tǒng)級設計流程 46
2.2 Vivado功能和特性 48
2.3 Vivado中電路結構的網(wǎng)表描述 49
2.4 Vivado中工程數(shù)據(jù)的目錄結構 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集成設計環(huán)境的啟動方法 59
2.9 Vivado集成設計環(huán)境主界面 60
2.10 Vivado設計主界面及功能 63
2.10.1 流程處理主界面及功能 63
2.10.2 工程管理器主界面及功能 64
2.10.3 工作區(qū)窗口 66
2.10.4 設計運行窗口 67
2.11 Vivado支持的屬性 68
第 章 Vivado工程模式基本設計實現(xiàn) 76
3.1 創(chuàng)建新的設計工程 76
3.2 創(chuàng)建并添加一個新的設計文件 80
3.3 RTL詳細描述和分析 85
3.3.1 詳細描述的實現(xiàn) 85
3.3.2 生成HDL例化模板 87
3.4 設計綜合和分析 89
3.4.1 綜合過程的關鍵問題 89
3.4.2 設計綜合選項 89
3.4.3 執(zhí)行設計綜合 92
3.4.4 綜合報告的查看 96
3.5 設計行為級仿真 97
3.6 創(chuàng)建實現(xiàn)約束 102
3.6.1 實現(xiàn)約束的原理 102
3.6.2 I/O規(guī)劃器功能 103
3.6.3 添加引腳約束 104
3.6.4 添加簡單的時鐘約束 109
3.7 設計實現(xiàn)和分析 111
3.7.1 設計實現(xiàn)原理 112
3.7.2 設計實現(xiàn)選項 112
3.7.3 設計實現(xiàn)及分析 117
3.7.4 靜態(tài)時序分析 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非工程模式基本設計實現(xiàn) 136
4.1 非工程模式基本命令和功能 136
4.1.1 非工程模式基本命令列表 136
4.1.2 典型Tcl腳本的使用 137
4.2 Vivado集成開發(fā)環(huán)境分析設計 138
4.2.1 啟動Vivado集成開發(fā)環(huán)境 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
第 章 創(chuàng)建和封裝用戶IP核流程 148
5.1 Vivado定制IP流程 148
5.2 創(chuàng)建并封裝包含源文件的IP 149
5.2.1 創(chuàng)建新的用于創(chuàng)建IP的工程 149
5.2.2 設置定制IP的庫名和目錄 150
5.2.3 封裝定制IP的實現(xiàn) 151
5.3 調用并驗證包含源文件的IP設計 155
5.3.1 創(chuàng)建新的用于調用IP的工程 156
5.3.2 設置包含調用IP的路徑 156
5.3.3 創(chuàng)建基于IP的系統(tǒng) 158
5.3.4 系統(tǒng)行為級仿真 162
5.3.5 系統(tǒng)設計綜合 165
5.3.6 系統(tǒng)實現(xiàn)和驗證 166
5.4 創(chuàng)建并封裝不包含源文件的IP 166
5.4.1 創(chuàng)建網(wǎng)表文件 166
5.4.2 創(chuàng)建新的設計工程 167
5.4.3 設置定制IP的庫名和目錄 168
5.4.4 封裝定制IP的實現(xiàn) 168
5.5 調用并驗證不包含源文件的IP設計 169
5.5.1 創(chuàng)建新的用于調用IP的工程 169
5.5.2 設置包含調用IP的路徑 170
5.5.3 創(chuàng)建基于IP的系統(tǒng) 170
5.5.4 系統(tǒng)設計綜合 171
第 章 Vivado高級約束原理及實現(xiàn) 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 網(wǎng)表約束 219
6.5.2 布局約束 220
6.5.3 布線約束 221
6.6 布局約束實現(xiàn) 223
6.6.1 修改綜合屬性 224
6.6.2 布局約束方法 224
6.7 布線約束實現(xiàn) 227
6.7.1 手工布線 227
6.7.2 進入分配布線模式 228
6.7.3 分配布線節(jié)點 230
6.7.4 取消分配布線節(jié)點 230
6.7.5 完成并退出分配布線模式 230
6.7.6 鎖定LUT負載上的單元輸入 231
6.7.7 分支布線 231
6.7.8 直接約束布線 233
6.8 修改邏輯實現(xiàn) 233
6.9 配置約束原理 235
6.10 增量編譯 235
6.10.1 增量編譯流程 235
6.10.2 運行增量布局和布線 236
6.10.3 使用增量編譯 238
6.10.4 增量編譯高級分析 240
第 章 Vivado調試工具原理及實現(xiàn) 241
7.1 設計調試原理和方法 241
7.2 創(chuàng)建新的設計 242
7.2.1 創(chuàng)建新的FIFO調試工程 242
7.2.2 添加FIFO IP到設計中 243
7.2.3 添加頂層設計文件 246
7.2.4 使用HDL例化添加FIFO到設計中 247
7.2.5 添加約束文件 251
7.3 網(wǎng)表插入調試探測流程方法及實現(xiàn) 253
7.3.1 網(wǎng)表插入調試探測流程的方法 253
7.3.2 網(wǎng)表插入調試探測流程的實現(xiàn) 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部分可重配置原理及實現(xiàn) 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 基于工程的部分可重配置實現(xiàn) 285
8.2.1 設計原理 285
8.2.2 建立可重配置工程 289
8.2.3 創(chuàng)建新的分區(qū)定義 291
8.2.4 添加新的可重配置模塊 292
8.2.5 設置不同的配置選項 294
8.2.6 定義分區(qū)的布局 298
8.2.7 執(zhí)行DRC 301
8.2.8 實現(xiàn)第一個運行配置并生成比特流文件 302
8.2.9 實現(xiàn)第二個運行配置并生成比特流文件 304
8.2.10 實現(xiàn)第三個運行配置并生成比特流文件 304
8.2.11 實現(xiàn)第四個運行配置并生成比特流文件 305
8.2.12 下載不同運行配置的部分比特流 305
8.3 基于非工程的部分可重配置實現(xiàn) 307
8.3.1 查看腳本 307
8.3.2 綜合設計 309
8.3.3 實現(xiàn)第一個配置 310
8.3.4 實現(xiàn)第二個配置 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 實現(xiàn)原理 324
8.4.3 創(chuàng)建和配置新的設計 325
8.4.4 添加ILA核 327
8.4.5 添加和設置PRC核 328
8.4.6 設置不同的配置選項 331
8.4.7 定義分區(qū)的布局 334
8.4.8 實現(xiàn)第一個運行配置并生成比特流文件 335
8.4.9 實現(xiàn)第二個運行配置并生成比特流文件 337
8.4.10 實現(xiàn)第三個運行配置并生成比特流文件 337
8.4.11 創(chuàng)建板支持包工程 338
8.4.12 創(chuàng)建應用程序工程 339
8.4.13 創(chuàng)建zynq_fsbl應用 343
8.4.14 創(chuàng)建啟動鏡像 343
8.4.15 從SD卡啟動引導系統(tǒng) 345
第 章 Vivado HLS原理詳解 347
9.1 高級綜合工具概述 347
9.1.1 高級綜合工具的功能和特點 347
9.1.2 Vivado HLS工具的優(yōu)勢 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 函數(shù) 357
9.3.2 類型 357
9.3.3 循環(huán) 364
9.3.4 數(shù)組 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 循環(huán)的處理 377
9.8 改善吞吐量 380
9.8.1 數(shù)據(jù)流優(yōu)化 381
9.8.2 流水線優(yōu)化 384
9.9 性能瓶頸——數(shù)組 390
9.9.1 數(shù)組分割 391
9.9.2 數(shù)組重組 394
9.9.3 數(shù)據(jù)打包 395
9.10 改善面積和資源 396
9.10.1 綁定配置 396
9.10.2 分配命令 397
9.10.3 指定資源 397
9.10.4 函數(shù)內聯(lián) 398
9.10.5 循環(huán)合并和平坦化 401
9.10.6 映射數(shù)組 401
9.10.7 任意精度整數(shù) 403
9.11 I/O類型 404
9.11.1 組合和時序邏輯設計 404
9.11.2 Vivado HLS I/O選項 405
9.11.3 模塊級協(xié)議說明 408
9.11.4 端口級I/O協(xié)議 412
9.12 命令和編譯指示 422
第 章 Vivado HLS實現(xiàn)過程詳解 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數(shù)字系統(tǒng)實現(xiàn) 453
10.7.1 基于HLS實現(xiàn)組合邏輯 453
10.7.2 基于HLS實現(xiàn)時序邏輯 468
10.7.3 基于HLS實現(xiàn)矩陣相乘 476
第 章 HDMI顯示屏驅動原理和實現(xiàn) 495
11.1 HDMI的發(fā)展歷史 495
11.2 HDMI視頻顯示接口定義 496
11.3 HDMI鏈路結構 497
11.4 HDMI鏈路時序要求 499
11.5 HDMI編碼算法 500
11.6 HDMI并行編碼數(shù)據(jù)轉換原理及實現(xiàn) 504
11.6.1 數(shù)據(jù)并行-串行轉換 505
11.6.2 三態(tài)并行-串行轉換器 505
11.6.3 OSERDESE2原語 505
11.6.4 TMDS信號轉換模塊 508
11.6.5 HDMI并行編碼數(shù)據(jù)轉換的實現(xiàn) 508
11.7 系統(tǒng)整體設計結構 510
附錄 a7-edp-1開發(fā)板原理圖 512