Xilinx FPGA權(quán)威設(shè)計(jì)指南:基于Vivado 2018集成開發(fā)環(huán)境
定 價(jià):129 元
叢書名:電子系統(tǒng)EDA新技術(shù)叢書
- 作者:何賓
- 出版時(shí)間:2018/10/1
- ISBN:9787121349379
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP331.2-62
- 頁(yè)碼:548
- 紙張:
- 版次:01
- 開本:16開
本書系統(tǒng)地介紹了Xilinx新一代集成開發(fā)環(huán)境Vivado 2018的設(shè)計(jì)方法、設(shè)計(jì)流程和具體實(shí)現(xiàn)。全書共11章,內(nèi)容包括Xilinx新一代UltraScale結(jié)構(gòu)、Vivado集成設(shè)計(jì)環(huán)境導(dǎo)論、Vivado工程模式基本設(shè)計(jì)實(shí)現(xiàn)、Vivado非工程模式基本設(shè)計(jì)實(shí)現(xiàn)、創(chuàng)建和封裝用戶IP核流程、Vivado高級(jí)約束原理及實(shí)現(xiàn)、Vivado調(diào)試工具原理及實(shí)現(xiàn)、Vivado部分可重配置原理及實(shí)現(xiàn)、Vivado HLS原理詳解、Vivado HLS實(shí)現(xiàn)過程詳解、HDMI顯示屏驅(qū)動(dòng)原理和實(shí)現(xiàn)。 本書參考了Xilinx新一代的Vivado 2018設(shè)計(jì)套件設(shè)計(jì)資料,理論與應(yīng)用并重,將Xilinx新一代的設(shè)計(jì)理論貫穿在具體的設(shè)計(jì)實(shí)現(xiàn)中。
何賓 任教于北京化工大學(xué)信息學(xué)院,長(zhǎng)期從事電子設(shè)計(jì)自動(dòng)化方面的教學(xué)和科研工作,與全球多家知名的半導(dǎo)體廠商和EDA工具廠商大學(xué)計(jì)劃保持緊密合作。目前已經(jīng)出版EDA方面的著作共20余部,內(nèi)容涵蓋電路仿真、電路設(shè)計(jì)、FPGA、單片機(jī)、嵌入式系統(tǒng)等。典型的代表作有《Xilinx FPGA設(shè)計(jì)權(quán)威指南》《Xilinx All Programmable Zynq-7000 SoC設(shè)計(jì)指南》《Altium Designer13.0電路設(shè)計(jì)、仿真與驗(yàn)證權(quán)威指南》《Xilinx FPGA數(shù)字設(shè)計(jì)-從門級(jí)到行為級(jí)的雙重描述》《Xilinx FPGA數(shù)字信號(hào)處理權(quán)威指南-從HDL、模型到C的描述》《模擬與數(shù)字系統(tǒng)協(xié)同設(shè)計(jì)權(quán)威指南-Cypress集成開發(fā)環(huán)境》。
目 錄
第 章 Xilinx新一代UltraScale結(jié)構(gòu) 1
1.1 UltraScale結(jié)構(gòu)特點(diǎn) 1
1.2 可配置邏輯塊 2
1.2.1 可配置邏輯塊的特點(diǎn) 2
1.2.2 多路復(fù)用器 6
1.2.3 進(jìn)位邏輯 9
1.2.4 存儲(chǔ)元素 13
1.2.5 分布式RAM 16
1.2.6 只讀存儲(chǔ)器(ROM) 18
1.2.7 移位寄存器 21
1.3 時(shí)鐘資源和時(shí)鐘管理模塊 23
1.3.1 時(shí)鐘資源 25
1.3.2 時(shí)鐘管理模塊 28
1.4 塊存儲(chǔ)器資源 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集成設(shè)計(jì)環(huán)境導(dǎo)論 46
2.1 Vivado系統(tǒng)級(jí)設(shè)計(jì)流程 46
2.2 Vivado功能和特性 48
2.3 Vivado中電路結(jié)構(gòu)的網(wǎng)表描述 49
2.4 Vivado中工程數(shù)據(jù)的目錄結(jié)構(gòu) 50
2.5 Vivado中Journal文件和Log文件功能 50
2.5.1 Journal文件(Vivado.jou) 50
2.5.2 Log文件(Vivado.log) 51
2.6 Vivado兩種設(shè)計(jì)流程模式 52
2.6.1 工程模式和非工程模式不同點(diǎn)比較 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集成設(shè)計(jì)環(huán)境的啟動(dòng)方法 59
2.9 Vivado集成設(shè)計(jì)環(huán)境主界面 60
2.10 Vivado設(shè)計(jì)主界面及功能 63
2.10.1 流程處理主界面及功能 63
2.10.2 工程管理器主界面及功能 64
2.10.3 工作區(qū)窗口 66
2.10.4 設(shè)計(jì)運(yùn)行窗口 67
2.11 Vivado支持的屬性 68
第 章 Vivado工程模式基本設(shè)計(jì)實(shí)現(xiàn) 76
3.1 創(chuàng)建新的設(shè)計(jì)工程 76
3.2 創(chuàng)建并添加一個(gè)新的設(shè)計(jì)文件 80
3.3 RTL詳細(xì)描述和分析 85
3.3.1 詳細(xì)描述的實(shí)現(xiàn) 85
3.3.2 生成HDL例化模板 87
3.4 設(shè)計(jì)綜合和分析 89
3.4.1 綜合過程的關(guān)鍵問題 89
3.4.2 設(shè)計(jì)綜合選項(xiàng) 89
3.4.3 執(zhí)行設(shè)計(jì)綜合 92
3.4.4 綜合報(bào)告的查看 96
3.5 設(shè)計(jì)行為級(jí)仿真 97
3.6 創(chuàng)建實(shí)現(xiàn)約束 102
3.6.1 實(shí)現(xiàn)約束的原理 102
3.6.2 I/O規(guī)劃器功能 103
3.6.3 添加引腳約束 104
3.6.4 添加簡(jiǎn)單的時(shí)鐘約束 109
3.7 設(shè)計(jì)實(shí)現(xiàn)和分析 111
3.7.1 設(shè)計(jì)實(shí)現(xiàn)原理 112
3.7.2 設(shè)計(jì)實(shí)現(xiàn)選項(xiàng) 112
3.7.3 設(shè)計(jì)實(shí)現(xiàn)及分析 117
3.7.4 靜態(tài)時(shí)序分析 123
3.8 設(shè)計(jì)時(shí)序仿真 126
3.9 生成編程文件 127
3.9.1 配置器件屬性 127
3.9.2 生成可編程文件 128
3.9.3 生成可編程文件選項(xiàng) 128
3.10 下載比特流文件到FPGA 130
3.11 生成并燒寫PROM文件 132
第 章 Vivado非工程模式基本設(shè)計(jì)實(shí)現(xiàn) 136
4.1 非工程模式基本命令和功能 136
4.1.1 非工程模式基本命令列表 136
4.1.2 典型Tcl腳本的使用 137
4.2 Vivado集成開發(fā)環(huán)境分析設(shè)計(jì) 138
4.2.1 啟動(dòng)Vivado集成開發(fā)環(huán)境 138
4.2.2 打開設(shè)計(jì)檢查點(diǎn)的方法 139
4.3 修改設(shè)計(jì)路徑 139
4.4 設(shè)置設(shè)計(jì)輸出路徑 140
4.5 讀取設(shè)計(jì)文件 140
4.6 運(yùn)行設(shè)計(jì)綜合 141
4.7 運(yùn)行設(shè)計(jì)布局 142
4.8 運(yùn)行設(shè)計(jì)布線 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 設(shè)置定制IP的庫(kù)名和目錄 150
5.2.3 封裝定制IP的實(shí)現(xiàn) 151
5.3 調(diào)用并驗(yàn)證包含源文件的IP設(shè)計(jì) 155
5.3.1 創(chuàng)建新的用于調(diào)用IP的工程 156
5.3.2 設(shè)置包含調(diào)用IP的路徑 156
5.3.3 創(chuàng)建基于IP的系統(tǒng) 158
5.3.4 系統(tǒng)行為級(jí)仿真 162
5.3.5 系統(tǒng)設(shè)計(jì)綜合 165
5.3.6 系統(tǒng)實(shí)現(xiàn)和驗(yàn)證 166
5.4 創(chuàng)建并封裝不包含源文件的IP 166
5.4.1 創(chuàng)建網(wǎng)表文件 166
5.4.2 創(chuàng)建新的設(shè)計(jì)工程 167
5.4.3 設(shè)置定制IP的庫(kù)名和目錄 168
5.4.4 封裝定制IP的實(shí)現(xiàn) 168
5.5 調(diào)用并驗(yàn)證不包含源文件的IP設(shè)計(jì) 169
5.5.1 創(chuàng)建新的用于調(diào)用IP的工程 169
5.5.2 設(shè)置包含調(diào)用IP的路徑 170
5.5.3 創(chuàng)建基于IP的系統(tǒng) 170
5.5.4 系統(tǒng)設(shè)計(jì)綜合 171
第 章 Vivado高級(jí)約束原理及實(shí)現(xiàn) 173
6.1 時(shí)序檢查概念 173
6.1.1 基本術(shù)語(yǔ) 173
6.1.2 時(shí)序路徑 173
6.1.3 建立和保持松弛 175
6.1.4 建立和保持檢查 176
6.1.5 恢復(fù)和去除檢查 179
6.2 時(shí)序約束概念 180
6.2.1 時(shí)鐘定義 180
6.2.2 時(shí)鐘組 186
6.2.3 I/O延遲約束 189
6.2.4 時(shí)序例外 192
6.3 生成時(shí)序報(bào)告 205
6.4 添加時(shí)序約束 212
6.4.1 時(shí)序約束策略1 212
6.4.2 時(shí)序約束策略2 214
6.5 物理約束原理 219
6.5.1 網(wǎng)表約束 219
6.5.2 布局約束 220
6.5.3 布線約束 221
6.6 布局約束實(shí)現(xiàn) 223
6.6.1 修改綜合屬性 224
6.6.2 布局約束方法 224
6.7 布線約束實(shí)現(xiàn) 227
6.7.1 手工布線 227
6.7.2 進(jìn)入分配布線模式 228
6.7.3 分配布線節(jié)點(diǎn) 230
6.7.4 取消分配布線節(jié)點(diǎn) 230
6.7.5 完成并退出分配布線模式 230
6.7.6 鎖定LUT負(fù)載上的單元輸入 231
6.7.7 分支布線 231
6.7.8 直接約束布線 233
6.8 修改邏輯實(shí)現(xiàn) 233
6.9 配置約束原理 235
6.10 增量編譯 235
6.10.1 增量編譯流程 235
6.10.2 運(yùn)行增量布局和布線 236
6.10.3 使用增量編譯 238
6.10.4 增量編譯高級(jí)分析 240
第 章 Vivado調(diào)試工具原理及實(shí)現(xiàn) 241
7.1 設(shè)計(jì)調(diào)試原理和方法 241
7.2 創(chuàng)建新的設(shè)計(jì) 242
7.2.1 創(chuàng)建新的FIFO調(diào)試工程 242
7.2.2 添加FIFO IP到設(shè)計(jì)中 243
7.2.3 添加頂層設(shè)計(jì)文件 246
7.2.4 使用HDL例化添加FIFO到設(shè)計(jì)中 247
7.2.5 添加約束文件 251
7.3 網(wǎng)表插入調(diào)試探測(cè)流程方法及實(shí)現(xiàn) 253
7.3.1 網(wǎng)表插入調(diào)試探測(cè)流程的方法 253
7.3.2 網(wǎng)表插入調(diào)試探測(cè)流程的實(shí)現(xiàn) 255
7.4 使用添加HDL屬性調(diào)試探測(cè)流程 261
7.5 使用HDL例化調(diào)試核調(diào)試探測(cè)流程 262
7.6 VIO原理及應(yīng)用 267
7.6.1 設(shè)計(jì)原理 267
7.6.2 添加VIO核 268
7.6.3 生成比特流文件 271
7.6.4 下載并調(diào)試設(shè)計(jì) 272
第 章 Vivado部分可重配置原理及實(shí)現(xiàn) 274
8.1 可重配置導(dǎo)論 274
8.1.1 可重配置的概念 274
8.1.2 可重配置的應(yīng)用 275
8.1.3 可重配置的特點(diǎn) 278
8.1.4 可重配置術(shù)語(yǔ)解釋 280
8.1.5 可重配置的要求 282
8.1.6 可重配置的標(biāo)準(zhǔn) 283
8.1.7 可重配置的流程 285
8.2 基于工程的部分可重配置實(shí)現(xiàn) 285
8.2.1 設(shè)計(jì)原理 285
8.2.2 建立可重配置工程 289
8.2.3 創(chuàng)建新的分區(qū)定義 291
8.2.4 添加新的可重配置模塊 292
8.2.5 設(shè)置不同的配置選項(xiàng) 294
8.2.6 定義分區(qū)的布局 298
8.2.7 執(zhí)行DRC 301
8.2.8 實(shí)現(xiàn)第一個(gè)運(yùn)行配置并生成比特流文件 302
8.2.9 實(shí)現(xiàn)第二個(gè)運(yùn)行配置并生成比特流文件 304
8.2.10 實(shí)現(xiàn)第三個(gè)運(yùn)行配置并生成比特流文件 304
8.2.11 實(shí)現(xiàn)第四個(gè)運(yùn)行配置并生成比特流文件 305
8.2.12 下載不同運(yùn)行配置的部分比特流 305
8.3 基于非工程的部分可重配置實(shí)現(xiàn) 307
8.3.1 查看腳本 307
8.3.2 綜合設(shè)計(jì) 309
8.3.3 實(shí)現(xiàn)第一個(gè)配置 310
8.3.4 實(shí)現(xiàn)第二個(gè)配置 315
8.3.5 驗(yàn)證配置 317
8.3.6 生成比特流 317
8.3.7 部分重配置FPGA 318
8.4 部分重配置控制器PRC的原理及應(yīng)用 320
8.4.1 部分重配置控制器原理 320
8.4.2 實(shí)現(xiàn)原理 324
8.4.3 創(chuàng)建和配置新的設(shè)計(jì) 325
8.4.4 添加ILA核 327
8.4.5 添加和設(shè)置PRC核 328
8.4.6 設(shè)置不同的配置選項(xiàng) 331
8.4.7 定義分區(qū)的布局 334
8.4.8 實(shí)現(xiàn)第一個(gè)運(yùn)行配置并生成比特流文件 335
8.4.9 實(shí)現(xiàn)第二個(gè)運(yùn)行配置并生成比特流文件 337
8.4.10 實(shí)現(xiàn)第三個(gè)運(yùn)行配置并生成比特流文件 337
8.4.11 創(chuàng)建板支持包工程 338
8.4.12 創(chuàng)建應(yīng)用程序工程 339
8.4.13 創(chuàng)建zynq_fsbl應(yīng)用 343
8.4.14 創(chuàng)建啟動(dòng)鏡像 343
8.4.15 從SD卡啟動(dòng)引導(dǎo)系統(tǒng) 345
第 章 Vivado HLS原理詳解 347
9.1 高級(jí)綜合工具概述 347
9.1.1 高級(jí)綜合工具的功能和特點(diǎn) 347
9.1.2 Vivado HLS工具的優(yōu)勢(shì) 348
9.1.3 HLS中使用術(shù)語(yǔ)說明 349
9.1.4 從C中提取硬件結(jié)構(gòu) 350
9.1.5 不同的命令對(duì)HLS綜合結(jié)果的影響 352
9.2 高級(jí)綜合工具調(diào)度和綁定 354
9.2.1 高級(jí)綜合工具調(diào)度 355
9.2.2 高級(jí)綜合工具綁定 355
9.3 C代碼的關(guān)鍵屬性 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 運(yùn)算符 367
9.4 C代碼級(jí)和RTL級(jí)算法驗(yàn)證 368
9.5 添加命令 370
9.6 延遲和吞吐量的概念 373
9.6.1 設(shè)計(jì)延遲 373
9.6.2 設(shè)計(jì)吞吐量 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ù)內(nèi)聯(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 組合和時(shí)序邏輯設(shè)計(jì) 404
9.11.2 Vivado HLS I/O選項(xiàng) 405
9.11.3 模塊級(jí)協(xié)議說明 408
9.11.4 端口級(jí)I/O協(xié)議 412
9.12 命令和編譯指示 422
第 章 Vivado HLS實(shí)現(xiàn)過程詳解 425
10.1 FIR濾波器不同語(yǔ)言的描述方式 425
10.1.1 C語(yǔ)言描述風(fēng)格 425
10.1.2 C++語(yǔ)言描述風(fēng)格 427
10.1.3 SystemC語(yǔ)言描述風(fēng)格 428
10.2 Vivado HLS不支持的操作 429
10.3 測(cè)試平臺(tái)編碼 431
10.4 指針的使用 432
10.5 流的使用 437
10.6 支持庫(kù) 438
10.6.1 FFT 439
10.6.2 FIR 442
10.6.3 移位寄存器 446
10.6.4 線性算法庫(kù) 447
10.6.5 OpenCV庫(kù) 448
10.7 Vivado HLS數(shù)字系統(tǒng)實(shí)現(xiàn) 453
10.7.1 基于HLS實(shí)現(xiàn)組合邏輯 453
10.7.2 基于HLS實(shí)現(xiàn)時(shí)序邏輯 468
10.7.3 基于HLS實(shí)現(xiàn)矩陣相乘 476
第 章 HDMI顯示屏驅(qū)動(dòng)原理和實(shí)現(xiàn) 495
11.1 HDMI的發(fā)展歷史 495
11.2 HDMI視頻顯示接口定義 496
11.3 HDMI鏈路結(jié)構(gòu) 497
11.4 HDMI鏈路時(shí)序要求 499
11.5 HDMI編碼算法 500
11.6 HDMI并行編碼數(shù)據(jù)轉(zhuǎn)換原理及實(shí)現(xiàn) 504
11.6.1 數(shù)據(jù)并行-串行轉(zhuǎn)換 505
11.6.2 三態(tài)并行-串行轉(zhuǎn)換器 505
11.6.3 OSERDESE2原語(yǔ) 505
11.6.4 TMDS信號(hào)轉(zhuǎn)換模塊 508
11.6.5 HDMI并行編碼數(shù)據(jù)轉(zhuǎn)換的實(shí)現(xiàn) 508
11.7 系統(tǒng)整體設(shè)計(jì)結(jié)構(gòu) 510
附錄 a7-edp-1開發(fā)板原理圖 512