Xilinx FPGA權(quán)威設計指南:基于Vivado 2023設計套件
定 價:198 元
叢書名:電子系統(tǒng)EDA新技術(shù)叢書
- 作者:何賓
- 出版時間:2024/4/1
- ISBN:9787121475160
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP331.2-62
- 頁碼:632
- 紙張:
- 版次:01
- 開本:16開
本書全面系統(tǒng)介紹了Xilinx新一代集成開發(fā)環(huán)境Vivado 2023的設計方法、設計流程和具體實現(xiàn)。全書共11章,內(nèi)容包括:Xilinx新一代UltraScale+架構(gòu)FPGA、Vivado設計套件導論、Vivado工程模式基本設計實現(xiàn)、Vivado非工程模式基本設計實現(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設計套件設計資料,理論與應用并重,將Xilinx最新的設計理論貫穿在具體的設計實現(xiàn)中。
何賓,知名的嵌入式和EDA技術(shù)專家,長期從事電子設計自動化方面的教學和科研工作,與全球多家知名的半導體廠商和EDA工具廠商密切合作。已經(jīng)出版電子信息方面的著作共40余部,內(nèi)容涵蓋電路仿真、電路設計、FPGA、數(shù)字信號處理、單片機、嵌入式系統(tǒng)等。典型的代表作有《模擬電子系統(tǒng)設計指南(基礎篇):從半導體、分立元件到TI集成電路的分析與實現(xiàn)》、《模擬電子系統(tǒng)設計指南(實踐篇):從半導體、分立元件到TI集成電路的分析與實現(xiàn)》、《Xilinx Zynq-7000嵌入式系統(tǒng)設計與實現(xiàn)-基于ARM Cortex-A9雙核處理器和Vivado的設計方法》、《Altium Designer17一體化設計標準教程-從仿真原理和PCB設計到單片機系統(tǒng)》、《STC8系列單片機開發(fā)指南:面向處理器、程序設計和操作系統(tǒ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 多路復用器 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設計套件導論 113
2.1 Vivado設計套件框架 113
2.1.1 Vivado設計套件功能 113
2.1.2 Vivado設計套件支持的工業(yè)標準 114
2.1.3 Vivado對第三方工具的支持 114
2.2 Vivado系統(tǒng)級設計流程 114
2.3 Vivado兩種設計流程模式 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 運行設計的交互窗口 138
2.11 Vivado支持的屬性 142
第 章 Vivado工程模式基本設計實現(xiàn) 159
3.1 創(chuàng)建新的設計工程 159
3.2 修改工程屬性 162
3.2.1 修改目標語言設置 162
3.2.2 General設置參數(shù)含義 163
3.3 創(chuàng)建并添加一個新的設計文件 164
3.4 設計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 設計綜合和分析 187
3.6.1 綜合的概念和特性 187
3.6.2 設計綜合選項 188
3.6.3 執(zhí)行設計綜合 191
3.6.4 打開綜合后的設計 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 設計實現(xiàn)和分析 212
3.9.1 設計實現(xiàn)原理 213
3.9.2 設計實現(xiàn)設置 214
3.9.3 設計實現(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非工程模式基本設計實現(xiàn) 255
4.1 非工程模式基本命令和功能 255
4.1.1 非工程模式基本命令列表 255
4.1.2 典型Tcl腳本的使用 256
4.2 Vivado集成開發(fā)環(huán)境分析設計 257
4.2.1 啟動Vivado集成開發(fā)環(huán)境 257
4.2.2 打開設計檢查點的方法 257
4.3 修改設計路徑 258
4.4 設置設計輸出路徑 258
4.5 讀取設計文件 259
4.6 運行設計綜合 259
4.7 運行設計布局 260
4.8 運行設計布線 262
4.9 生成比特流文件 263
4.10 下載比特流文件 263
第 章 Vivado創(chuàng)建和封裝用戶IP核流程 265
5.1 Vivado IP設計方法 265
5.1.1 Vivado IP設計流程 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 設置定制IP的庫名和目錄 268
5.2.3 封裝定制IP的實現(xiàn) 270
5.3 調(diào)用并驗證包含源文件的IP設計 273
5.3.1 創(chuàng)建新的用于調(diào)用IP的工程 273
5.3.2 設置包含調(diào)用IP的路徑 274
5.3.3 創(chuàng)建基于IP的系統(tǒng) 275
5.3.4 執(zhí)行行為級仿真 279
5.3.5 系統(tǒng)設計綜合 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)建新的設計工程 282
5.4.3 設置定制IP的庫名和目錄 283
5.4.4 封裝定制IP的實現(xiàn) 283
5.5 調(diào)用并驗證不包含源文件的IP設計 285
5.5.1 創(chuàng)建新的用于調(diào)用IP的工程 285
5.5.2 設置包含調(diào)用IP的路徑 285
5.5.3 創(chuàng)建基于IP的系統(tǒng) 285
5.5.4 系統(tǒng)設計綜合 287
第 章 Vivado時序和物理約束原理及實現(xiàn) 288
6.1 時序檢查的概念 288
6.1.1 基本術(shù)語 288
6.1.2 時序路徑 288
6.1.3 建立和保持松弛 290
6.1.4 時序分析關鍵概念 291
6.2 定義時鐘 297
6.2.1 關于時鐘 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 關于總線偏移約束 357
6.5.2 set_bus_skew命令的語法 358
6.6 物理約束原理 359
6.6.1 關于布局約束 359
6.6.2 網(wǎng)表約束 360
6.6.3 布局約束原理 361
6.6.4 布線約束原理 362
6.7 配置約束 363
6.8 定義相對布局的宏 363
6.8.1 定義設計元素集 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 設計調(diào)試原理和方法 384
7.2 創(chuàng)建新的調(diào)試設計 385
7.2.1 創(chuàng)建新的FIFO調(diào)試工程 385
7.2.2 添加FIFO IP到設計中 386
7.2.3 添加頂層設計文件 389
7.2.4 在頂層文件中添加設計代碼 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原理和應用 408
7.6.1 設計原理 409
7.6.2 添加VIO核 409
7.6.3 生成比特流文件 413
7.6.4 下載并調(diào)試設計 414
第 章 Vivado動態(tài)功能交換原理及實現(xiàn) 416
8.1 動態(tài)功能交換導論 416
8.1.1 動態(tài)功能交換介紹 416
8.1.2 術(shù)語解釋 417
8.1.3 設計考慮 418
8.1.4 常見應用 421
8.1.5 Vivado軟件流程 424
8.2 基于工程的動態(tài)功能交換實現(xiàn) 425
8.2.1 設計原理 425
8.2.2 建立動態(tài)功能交換工程 427
8.2.3 創(chuàng)建新的分區(qū)定義 429
8.2.4 添加新的可重配置模塊 430
8.2.5 設置不同的配置選項 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 綜合設計 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)功能交換控制器的原理及應用 453
8.4.1 動態(tài)功能交換控制器原理 453
8.4.2 實現(xiàn)原理 460
8.4.3 創(chuàng)建和配置新的設計 461
8.4.4 添加和配置ILA核 464
8.4.5 添加和配置DFXC核 465
8.4.6 創(chuàng)建新的分區(qū)定義 467
8.4.7 設置不同的配置選項 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)建應用工程 475
8.4.13 創(chuàng)建啟動鏡像 480
8.4.14 從SD卡啟動引導系統(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ū)動任務 501
9.3.2 數(shù)據(jù)驅(qū)動任務級并行 501
9.3.3 控制驅(qū)動任務級并行 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 復合類型 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 建立新的設計工程 562
10.1.3 添加設計文件 565
10.1.4 工具欄的功能 566
10.1.5 流程導航器的功能 567
10.1.6 執(zhí)行高級綜合 567
10.1.7 添加用戶命令優(yōu)化設計 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 導出RTL 580
10.2 基于Vitis HLS實現(xiàn)時序邏輯 583
10.2.1 創(chuàng)建新的設計工程 583
10.2.2 添加設計文件 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 導出RTL 591
10.3 基于Vitis HLS實現(xiàn)矩陣相乘 594
10.3.1 創(chuàng)建新的設計工程 594
10.3.2 添加設計文件 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 比較設計結(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)整體設計結(jié)構(gòu) 618