Xilinx FPGA權(quán)威設(shè)計(jì)指南:基于Vivado 2023設(shè)計(jì)套件
定 價(jià):198 元
叢書(shū)名:電子系統(tǒng)EDA新技術(shù)叢書(shū)
- 作者:何賓
- 出版時(shí)間:2024/4/1
- ISBN:9787121475160
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP331.2-62
- 頁(yè)碼:632
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)全面系統(tǒng)介紹了Xilinx新一代集成開(kāi)發(fā)環(huán)境Vivado 2023的設(shè)計(jì)方法、設(shè)計(jì)流程和具體實(shí)現(xiàn)。全書(shū)共11章,內(nèi)容包括:Xilinx新一代UltraScale+架構(gòu)FPGA、Vivado設(shè)計(jì)套件導(dǎo)論、Vivado工程模式基本設(shè)計(jì)實(shí)現(xiàn)、Vivado非工程模式基本設(shè)計(jì)實(shí)現(xiàn)、Vivado創(chuàng)建和封裝用戶IP核流程、Vivado時(shí)序和物理約束原理及實(shí)現(xiàn)、Vivado調(diào)試工具原理及實(shí)現(xiàn)、Vivado動(dòng)態(tài)功能交換原理及實(shí)現(xiàn)、Vitis HLS原理詳解、Vitis HLS實(shí)現(xiàn)過(guò)程詳解,以及HDMI顯示屏驅(qū)動(dòng)原理和實(shí)現(xiàn)。本書(shū)參考了Xilinx最新的Vivado 2023設(shè)計(jì)套件設(shè)計(jì)資料,理論與應(yīng)用并重,將Xilinx最新的設(shè)計(jì)理論貫穿在具體的設(shè)計(jì)實(shí)現(xiàn)中。
何賓,知名的嵌入式和EDA技術(shù)專家,長(zhǎng)期從事電子設(shè)計(jì)自動(dòng)化方面的教學(xué)和科研工作,與全球多家知名的半導(dǎo)體廠商和EDA工具廠商密切合作。已經(jīng)出版電子信息方面的著作共40余部,內(nèi)容涵蓋電路仿真、電路設(shè)計(jì)、FPGA、數(shù)字信號(hào)處理、單片機(jī)、嵌入式系統(tǒng)等。典型的代表作有《模擬電子系統(tǒng)設(shè)計(jì)指南(基礎(chǔ)篇):從半導(dǎo)體、分立元件到TI集成電路的分析與實(shí)現(xiàn)》、《模擬電子系統(tǒng)設(shè)計(jì)指南(實(shí)踐篇):從半導(dǎo)體、分立元件到TI集成電路的分析與實(shí)現(xiàn)》、《Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-基于ARM Cortex-A9雙核處理器和Vivado的設(shè)計(jì)方法》、《Altium Designer17一體化設(shè)計(jì)標(biāo)準(zhǔn)教程-從仿真原理和PCB設(shè)計(jì)到單片機(jī)系統(tǒng)》、《STC8系列單片機(jī)開(kāi)發(fā)指南:面向處理器、程序設(shè)計(jì)和操作系統(tǒng)的分析與應(yīng)用》等。
目 錄
第 章 Xilinx新一代UltraScale+架構(gòu)FPGA 1
1.1 UltraScale+結(jié)構(gòu)特點(diǎn) 1
1.1.1 Artix UltraScale+ FPGA系列 1
1.1.2 Kintex UltraScale+ FPGA系列 2
1.1.3 Virtex UltraScale+ FPGA系列 3
1.2 可配置邏輯塊 4
1.2.1 查找表功能和配置 7
1.2.2 多路復(fù)用器 10
1.2.3 進(jìn)位邏輯 21
1.2.4 存儲(chǔ)元件 29
1.2.5 分布式RAM(只有SLICEM) 33
1.2.6 只讀存儲(chǔ)器(ROM) 37
1.2.7 移位寄存器(只有SLICEM) 42
1.3 時(shí)鐘資源和時(shí)鐘管理模塊 45
1.3.1 時(shí)鐘架構(gòu)概述 45
1.3.2 時(shí)鐘布線資源概述 46
1.3.3 CMT概述 46
1.3.4 時(shí)鐘資源 47
1.3.5 時(shí)鐘管理模塊 52
1.4 存儲(chǔ)器資源 56
1.4.1 BRAM資源 56
1.4.2 UltraRAM資源 66
1.5 專用的DSP模塊 72
1.6 SelectIO資源 83
1.6.1 SelectIO接口資源 83
1.6.2 SelectIO接口通用指南 87
1.6.3 SelectIO接口邏輯資源 90
1.6.4 高密度I/O組 99
1.7 高速串行收發(fā)器 100
1.7.1 GTH和GTY收發(fā)器 101
1.7.2 GTM收發(fā)器 103
1.8 系統(tǒng)監(jiān)控器模塊 104
1.9 互聯(lián)資源 107
1.10 配置模塊 107
1.10.1 配置模式概述 108
1.10.2 JTAG連接 110
1.10.3 保護(hù)比特流 111
1.11 參考資料 112
第 章 Vivado設(shè)計(jì)套件導(dǎo)論 113
2.1 Vivado設(shè)計(jì)套件框架 113
2.1.1 Vivado設(shè)計(jì)套件功能 113
2.1.2 Vivado設(shè)計(jì)套件支持的工業(yè)標(biāo)準(zhǔn) 114
2.1.3 Vivado對(duì)第三方工具的支持 114
2.2 Vivado系統(tǒng)級(jí)設(shè)計(jì)流程 114
2.3 Vivado兩種設(shè)計(jì)流程模式 117
2.3.1 工程模式 117
2.3.2 非工程模式 117
2.3.3 兩種模式不同點(diǎn)比較 118
2.3.4 兩種模式命令的區(qū)別 119
2.4 Vivado中電路結(jié)構(gòu)的網(wǎng)表描述 120
2.5 Vivado中工程數(shù)據(jù)的目錄結(jié)構(gòu) 121
2.6 Vivado中Journal文件和Log文件功能 121
2.6.1 Journal文件(Vivado.jou) 121
2.6.2 Log文件(Vivado.log) 122
2.7 Vivado中XDC文件 124
2.7.1 XDC的特性 124
2.7.2 XDC與UCF區(qū)別 125
2.7.3 約束文件的使用方法 125
2.7.4 約束順序 126
2.7.5 XDC命令 127
2.8 Vivado IDE的啟動(dòng)方法 128
2.9 Vivado IDE主界面 128
2.9.1 Quick Start分組 129
2.9.2 Tasks分組 132
2.9.3 Learning Center分組 132
2.10 Vivado IDE工程界面及功能 133
2.10.1 流程處理主界面及功能 133
2.10.2 Sources窗口及功能 134
2.10.3 工程總結(jié)窗口 136
2.10.4 運(yùn)行設(shè)計(jì)的交互窗口 138
2.11 Vivado支持的屬性 142
第 章 Vivado工程模式基本設(shè)計(jì)實(shí)現(xiàn) 159
3.1 創(chuàng)建新的設(shè)計(jì)工程 159
3.2 修改工程屬性 162
3.2.1 修改目標(biāo)語(yǔ)言設(shè)置 162
3.2.2 General設(shè)置參數(shù)含義 163
3.3 創(chuàng)建并添加一個(gè)新的設(shè)計(jì)文件 164
3.4 設(shè)計(jì)RTL分析 169
3.4.1 運(yùn)行Linter 169
3.4.2 詳細(xì)描述的實(shí)現(xiàn) 170
3.4.3 運(yùn)行方法檢查 173
3.4.4 報(bào)告DRC 174
3.4.5 報(bào)告噪聲 176
3.4.6 生成HDL例化模板 177
3.5 行為級(jí)仿真 179
3.5.1 仿真功能概述 179
3.5.2 編譯仿真庫(kù)(可選) 179
3.5.3 行為級(jí)仿真的實(shí)現(xiàn) 180
3.5.4 仿真器界面的功能 184
3.6 設(shè)計(jì)綜合和分析 187
3.6.1 綜合的概念和特性 187
3.6.2 設(shè)計(jì)綜合選項(xiàng) 188
3.6.3 執(zhí)行設(shè)計(jì)綜合 191
3.6.4 打開(kāi)綜合后的設(shè)計(jì) 193
3.6.5 打開(kāi)綜合后的原理圖 194
3.6.6 查看綜合報(bào)告 196
3.6.7 添加其他報(bào)告 197
3.6.8 創(chuàng)建新的運(yùn)行 198
3.7 綜合后的仿真 199
3.8 創(chuàng)建實(shí)現(xiàn)約束 200
3.8.1 實(shí)現(xiàn)約束的原理 200
3.8.2 I/O規(guī)劃工具 201
3.8.3 添加引腳約束 206
3.8.4 添加時(shí)序約束 210
3.9 設(shè)計(jì)實(shí)現(xiàn)和分析 212
3.9.1 設(shè)計(jì)實(shí)現(xiàn)原理 213
3.9.2 設(shè)計(jì)實(shí)現(xiàn)設(shè)置 214
3.9.3 設(shè)計(jì)實(shí)現(xiàn)及分析 228
3.9.4 靜態(tài)時(shí)序分析 236
3.10 布局布線后時(shí)序仿真 241
3.11 生成編程文件 242
3.11.1 配置器件屬性 242
3.11.2 修改生成編程文件選項(xiàng) 248
3.11.3 執(zhí)行生成可編程文件 249
3.12 下載比特流文件到FPGA 249
3.13 生成并燒寫(xiě)PROM文件 251
第 章 Vivado非工程模式基本設(shè)計(jì)實(shí)現(xiàn) 255
4.1 非工程模式基本命令和功能 255
4.1.1 非工程模式基本命令列表 255
4.1.2 典型Tcl腳本的使用 256
4.2 Vivado集成開(kāi)發(fā)環(huán)境分析設(shè)計(jì) 257
4.2.1 啟動(dòng)Vivado集成開(kāi)發(fā)環(huán)境 257
4.2.2 打開(kāi)設(shè)計(jì)檢查點(diǎn)的方法 257
4.3 修改設(shè)計(jì)路徑 258
4.4 設(shè)置設(shè)計(jì)輸出路徑 258
4.5 讀取設(shè)計(jì)文件 259
4.6 運(yùn)行設(shè)計(jì)綜合 259
4.7 運(yùn)行設(shè)計(jì)布局 260
4.8 運(yùn)行設(shè)計(jì)布線 262
4.9 生成比特流文件 263
4.10 下載比特流文件 263
第 章 Vivado創(chuàng)建和封裝用戶IP核流程 265
5.1 Vivado IP設(shè)計(jì)方法 265
5.1.1 Vivado IP設(shè)計(jì)流程 265
5.1.2 IP核術(shù)語(yǔ) 266
5.2 創(chuàng)建并封裝包含源文件的IP 266
5.2.1 創(chuàng)建新的用于創(chuàng)建IP的工程 266
5.2.2 設(shè)置定制IP的庫(kù)名和目錄 268
5.2.3 封裝定制IP的實(shí)現(xiàn) 270
5.3 調(diào)用并驗(yàn)證包含源文件的IP設(shè)計(jì) 273
5.3.1 創(chuàng)建新的用于調(diào)用IP的工程 273
5.3.2 設(shè)置包含調(diào)用IP的路徑 274
5.3.3 創(chuàng)建基于IP的系統(tǒng) 275
5.3.4 執(zhí)行行為級(jí)仿真 279
5.3.5 系統(tǒng)設(shè)計(jì)綜合 281
5.3.6 系統(tǒng)實(shí)現(xiàn)和驗(yàn)證 281
5.4 創(chuàng)建并封裝不包含源文件的IP 282
5.4.1 創(chuàng)建網(wǎng)表文件 282
5.4.2 創(chuàng)建新的設(shè)計(jì)工程 282
5.4.3 設(shè)置定制IP的庫(kù)名和目錄 283
5.4.4 封裝定制IP的實(shí)現(xiàn) 283
5.5 調(diào)用并驗(yàn)證不包含源文件的IP設(shè)計(jì) 285
5.5.1 創(chuàng)建新的用于調(diào)用IP的工程 285
5.5.2 設(shè)置包含調(diào)用IP的路徑 285
5.5.3 創(chuàng)建基于IP的系統(tǒng) 285
5.5.4 系統(tǒng)設(shè)計(jì)綜合 287
第 章 Vivado時(shí)序和物理約束原理及實(shí)現(xiàn) 288
6.1 時(shí)序檢查的概念 288
6.1.1 基本術(shù)語(yǔ) 288
6.1.2 時(shí)序路徑 288
6.1.3 建立和保持松弛 290
6.1.4 時(shí)序分析關(guān)鍵概念 291
6.2 定義時(shí)鐘 297
6.2.1 關(guān)于時(shí)鐘 297
6.2.2 基本時(shí)鐘 298
6.2.3 虛擬時(shí)鐘 299
6.2.4 生成時(shí)鐘 300
6.2.5 時(shí)鐘組 309
6.2.6 時(shí)鐘延遲、抖動(dòng)和不確定性 315
6.3 I/O延遲約束 316
6.3.1 輸入延遲 316
6.3.2 輸出延遲 318
6.4 時(shí)序例外 332
6.4.1 多周期路徑 333
6.4.2 假路徑 345
6.4.3 最大和最小延遲 346
6.4.4 Case分析 355
6.4.5 禁止時(shí)序弧 356
6.5 CDC約束 357
6.5.1 關(guān)于總線偏移約束 357
6.5.2 set_bus_skew命令的語(yǔ)法 358
6.6 物理約束原理 359
6.6.1 關(guān)于布局約束 359
6.6.2 網(wǎng)表約束 360
6.6.3 布局約束原理 361
6.6.4 布線約束原理 362
6.7 配置約束 363
6.8 定義相對(duì)布局的宏 363
6.8.1 定義設(shè)計(jì)元素集 363
6.8.2 創(chuàng)建宏 364
6.8.3 單元分配到RPM集 364
6.8.4 分配相對(duì)位置 365
6.8.5 分配固定位置到RPM 368
6.9 布局約束實(shí)現(xiàn) 369
6.9.1 修改綜合屬性 369
6.9.2 布局約束方法 370
6.10 布線約束實(shí)現(xiàn) 372
6.10.1 手工布線 373
6.10.2 進(jìn)入分配布線模式 373
6.10.3 分配布線節(jié)點(diǎn) 375
6.10.4 取消分配布線節(jié)點(diǎn) 375
6.10.5 完成并退出分配布線模式 375
6.10.6 鎖定LUT負(fù)載上的單元輸入 376
6.10.7 分支布線 376
6.10.8 直接約束布線 377
6.11 修改邏輯實(shí)現(xiàn) 378
6.12 增量編譯 379
6.12.1 增量編譯流程 379
6.12.2 運(yùn)行增量布局和布線 379
6.12.3 使用增量編譯 381
6.12.4 增量編譯高級(jí)分析 383
第 章 Vivado調(diào)試工具原理和實(shí)現(xiàn) 384
7.1 設(shè)計(jì)調(diào)試原理和方法 384
7.2 創(chuàng)建新的調(diào)試設(shè)計(jì) 385
7.2.1 創(chuàng)建新的FIFO調(diào)試工程 385
7.2.2 添加FIFO IP到設(shè)計(jì)中 386
7.2.3 添加頂層設(shè)計(jì)文件 389
7.2.4 在頂層文件中添加設(shè)計(jì)代碼 389
7.2.5 添加約束文件 393
7.3 網(wǎng)表插入調(diào)試探測(cè)流程的實(shí)現(xiàn) 395
7.3.1 網(wǎng)表插入調(diào)試探測(cè)流程的方法 395
7.3.2 網(wǎng)表插入調(diào)試探測(cè)流程的實(shí)現(xiàn) 396
7.4 添加HDL屬性調(diào)試探測(cè)流程的實(shí)現(xiàn) 404
7.5 添加HDL例化調(diào)試核探測(cè)流程的實(shí)現(xiàn) 405
7.6 VIO原理和應(yīng)用 408
7.6.1 設(shè)計(jì)原理 409
7.6.2 添加VIO核 409
7.6.3 生成比特流文件 413
7.6.4 下載并調(diào)試設(shè)計(jì) 414
第 章 Vivado動(dòng)態(tài)功能交換原理及實(shí)現(xiàn) 416
8.1 動(dòng)態(tài)功能交換導(dǎo)論 416
8.1.1 動(dòng)態(tài)功能交換介紹 416
8.1.2 術(shù)語(yǔ)解釋 417
8.1.3 設(shè)計(jì)考慮 418
8.1.4 常見(jiàn)應(yīng)用 421
8.1.5 Vivado軟件流程 424
8.2 基于工程的動(dòng)態(tài)功能交換實(shí)現(xiàn) 425
8.2.1 設(shè)計(jì)原理 425
8.2.2 建立動(dòng)態(tài)功能交換工程 427
8.2.3 創(chuàng)建新的分區(qū)定義 429
8.2.4 添加新的可重配置模塊 430
8.2.5 設(shè)置不同的配置選項(xiàng) 432
8.2.6 查看/修改分區(qū)的布局 436
8.2.7 執(zhí)行DRC 437
8.2.8 實(shí)現(xiàn)第一個(gè)運(yùn)行配置并生成比特流文件 439
8.2.9 實(shí)現(xiàn)第二個(gè)運(yùn)行配置并生成比特流文件 439
8.2.10 實(shí)現(xiàn)第三個(gè)運(yùn)行配置并生成比特流文件 440
8.2.11 實(shí)現(xiàn)第四個(gè)運(yùn)行配置并生成比特流文件 440
8.2.12 下載不同運(yùn)行配置的部分比特流 441
8.3 基于非工程的動(dòng)態(tài)功能交換實(shí)現(xiàn) 442
8.3.1 查看腳本 443
8.3.2 綜合設(shè)計(jì) 443
8.3.3 實(shí)現(xiàn)第一個(gè)配置 444
8.3.4 實(shí)現(xiàn)第二個(gè)配置 449
8.3.5 驗(yàn)證配置 451
8.3.6 生成比特流 451
8.3.7 部分重配置FPGA 453
8.4 動(dòng)態(tài)功能交換控制器的原理及應(yīng)用 453
8.4.1 動(dòng)態(tài)功能交換控制器原理 453
8.4.2 實(shí)現(xiàn)原理 460
8.4.3 創(chuàng)建和配置新的設(shè)計(jì) 461
8.4.4 添加和配置ILA核 464
8.4.5 添加和配置DFXC核 465
8.4.6 創(chuàng)建新的分區(qū)定義 467
8.4.7 設(shè)置不同的配置選項(xiàng) 469
8.4.8 定義分區(qū)的布局 471
8.4.9 實(shí)現(xiàn)第一個(gè)運(yùn)行配置并生成比特流文件 473
8.4.10 實(shí)現(xiàn)第二個(gè)運(yùn)行配置并生成比特流文件 474
8.4.11 實(shí)現(xiàn)第三個(gè)運(yùn)行配置并生成比特流文件 474
8.4.12 創(chuàng)建應(yīng)用工程 475
8.4.13 創(chuàng)建啟動(dòng)鏡像 480
8.4.14 從SD卡啟動(dòng)引導(dǎo)系統(tǒng) 482
第 章 Vitis HLS原理詳解 483
9.1 高級(jí)綜合工具概述 483
9.1.1 硬件實(shí)現(xiàn)算法的優(yōu)勢(shì) 483
9.1.2 高級(jí)綜合工具的概述 484
9.1.3 Vitis HLS工具的優(yōu)勢(shì) 485
9.1.4 從C中提取硬件結(jié)構(gòu) 486
9.1.5 從不同角度理解代碼 489
9.1.6 吞吐量和性能定義 492
9.1.7 FPGA編程的三種模式 492
9.2 高級(jí)綜合工具調(diào)度和綁定 497
9.3 HLS的抽象并行編程模型 500
9.3.1 控制和數(shù)據(jù)驅(qū)動(dòng)任務(wù) 501
9.3.2 數(shù)據(jù)驅(qū)動(dòng)任務(wù)級(jí)并行 501
9.3.3 控制驅(qū)動(dòng)任務(wù)級(jí)并行 504
9.3.4 混合數(shù)據(jù)驅(qū)動(dòng)和控制驅(qū)動(dòng)模型 511
9.3.5 小結(jié) 513
9.4 函數(shù) 513
9.4.1 函數(shù)內(nèi)聯(lián) 514
9.4.2 函數(shù)流水線 514
9.4.3 函數(shù)例化 515
9.5 循環(huán) 515
9.5.1 循環(huán)流水線 516
9.5.2 展開(kāi)循環(huán) 524
9.5.3 合并循環(huán) 525
9.5.4 嵌套循環(huán) 526
9.5.5 可變循環(huán)邊界 528
9.6 數(shù)據(jù)類型 529
9.6.1 標(biāo)準(zhǔn)類型 530
9.6.2 復(fù)合類型 534
9.6.3 任意精度類型 542
9.6.4 指針 544
9.7 數(shù)組 546
9.7.1 數(shù)組的映射 547
9.7.2 數(shù)組分割 548
9.7.3 數(shù)組重組 550
9.8 Vitis HLS優(yōu)化技術(shù) 551
9.9 接口及信號(hào)定義 552
9.9.1 模塊級(jí)控制協(xié)議 552
9.9.2 端口級(jí)協(xié)議 555
第 章 Vitis HLS實(shí)現(xiàn)過(guò)程詳解 561
10.1 基于Vitis HLS實(shí)現(xiàn)組合邏輯 561
10.1.1 修改Vitis HLS環(huán)境參數(shù) 561
10.1.2 建立新的設(shè)計(jì)工程 562
10.1.3 添加設(shè)計(jì)文件 565
10.1.4 工具欄的功能 566
10.1.5 流程導(dǎo)航器的功能 567
10.1.6 執(zhí)行高級(jí)綜合 567
10.1.7 添加用戶命令優(yōu)化設(shè)計(jì) 570
10.1.8 打開(kāi)調(diào)度查看器 572
10.1.9 運(yùn)行協(xié)同仿真 574
10.1.10 查看RTL仿真結(jié)果 576
10.1.11 運(yùn)行實(shí)現(xiàn) 577
10.1.12 導(dǎo)出RTL 580
10.2 基于Vitis HLS實(shí)現(xiàn)時(shí)序邏輯 583
10.2.1 創(chuàng)建新的設(shè)計(jì)工程 583
10.2.2 添加設(shè)計(jì)文件 584
10.2.3 添加用戶命令 585
10.2.4 執(zhí)行高級(jí)綜合 585
10.2.5 打開(kāi)調(diào)度查看器 587
10.2.6 運(yùn)行協(xié)同仿真 588
10.2.7 查看RTL仿真結(jié)果 589
10.2.8 運(yùn)行實(shí)現(xiàn) 590
10.2.9 導(dǎo)出RTL 591
10.3 基于Vitis HLS實(shí)現(xiàn)矩陣相乘 594
10.3.1 創(chuàng)建新的設(shè)計(jì)工程 594
10.3.2 添加設(shè)計(jì)文件 594
10.3.3 執(zhí)行高級(jí)綜合 595
10.3.4 打開(kāi)調(diào)度查看器 597
10.3.5 添加C++測(cè)試文件 597
10.3.6 運(yùn)行和調(diào)試C工程 598
10.3.7 運(yùn)行協(xié)同仿真 599
10.3.8 查看RTL仿真結(jié)果 600
10.3.9 添加用戶策略 601
10.3.10 添加策略后的高級(jí)綜合 602
10.3.11 查看RTL仿真結(jié)果 603
10.3.12 比較設(shè)計(jì)結(jié)果 604
第 章 HDMI顯示屏驅(qū)動(dòng)原理和實(shí)現(xiàn) 606
11.1 HDMI的發(fā)展歷史 606
11.2 HDMI視頻顯示接口定義 607
11.3 HDMI鏈路結(jié)構(gòu) 608
11.4 HDMI鏈路時(shí)序要求 609
11.5 HDMI編碼算法 609
11.6 HDMI并行編碼數(shù)據(jù)轉(zhuǎn)換原理及實(shí)現(xiàn) 613
11.6.1 數(shù)據(jù)并行-串行轉(zhuǎn)換 613
11.6.2 三態(tài)并行-串行轉(zhuǎn)換器 614
11.6.3 OSERDESE2原語(yǔ) 614
11.6.4 TMDS信號(hào)轉(zhuǎn)換模塊 616
11.6.5 HDMI并行編碼數(shù)據(jù)轉(zhuǎn)換的實(shí)現(xiàn) 616
11.7 系統(tǒng)整體設(shè)計(jì)結(jié)構(gòu) 618