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