本書涵蓋了Vivado的四大主題:設(shè)計流程、時序約束、設(shè)計分析和Tcl腳本的使用,結(jié)合實例深入淺出地闡述了Vivado的使用方法,精心總結(jié)了Vivado在實際工程應(yīng)用中的一些技巧和注意事項,既包含圖形界面操作方式,也包含相應(yīng)的Tcl命令。本書語言流暢,圖文并茂。全書共包含405張圖片、17個表格、172個Tcl腳本和39個HDL代碼,同時,本書配有41個電子教學(xué)課件,為讀者提供了直觀而生動的資料。本書可供電子工程領(lǐng)域內(nèi)的本科高年級學(xué)生和研究生學(xué)習(xí)參考,也可供FPGA工程師和自學(xué)者參考使用。
高亞軍,Xilinx 資深戰(zhàn)略應(yīng)用工程師。多年來使用Xilinx FPGA 實現(xiàn)數(shù)字處理算法,精通Xilinx FPGA 器件架構(gòu),對開發(fā)工具Vivado/Vitis HLS/System Generator 的實戰(zhàn)經(jīng)驗深厚。
第1章 FPGA技術(shù)分析 1
1.1 FPGA內(nèi)部結(jié)構(gòu)分析 1
1.1.1 Xilinx 7系列FPGA內(nèi)部結(jié)構(gòu)分析 1
1.1.2 Xilinx UltraScale系列FPGA內(nèi)部結(jié)構(gòu)分析 18
1.2 FPGA設(shè)計流程分析 22
1.3 Vivado概述 25
1.3.1 Vivado下的FPGA設(shè)計流程 25
1.3.2 Vivado的兩種工作模式 26
1.3.3 Vivado的5個特征 30
參考文獻(xiàn) 31
第2章 設(shè)計綜合 32
2.1 常用綜合選項的設(shè)置 32
2.1.1 -flatten_hierarchy對綜合結(jié)果的影響 32
2.1.2 -fsm_extraction對狀態(tài)機(jī)編碼方式的影響 35
2.1.3 -keep_equivalent_registers的含義 36
2.1.4 -resource_sharing對算術(shù)運(yùn)算的影響 38
2.1.5 -control_set_opt_threshold對觸發(fā)器控制集的影響 38
2.1.6 -no_lc對查找表資源的影響 40
2.1.7 -shreg_min_size對移位寄存器的影響 41
2.2 合理使用綜合屬性 43
2.2.1 async_reg在異步跨時鐘域場合的應(yīng)用 43
2.2.2 max_fanout對高扇出信號的影響 44
2.2.3 ram_style和rom_style對存儲性能的影響 46
2.2.4 use_dsp48在實現(xiàn)加法運(yùn)算時的作用 48
2.3 out-of-context(OOC)綜合模式 50
2.3.1 Project模式下使用OOC 50
2.3.2 Non-Project模式下使用OOC 54
2.4 綜合后的設(shè)計分析 54
2.4.1 時鐘網(wǎng)絡(luò)分析 54
2.4.2 跨時鐘域路徑分析 56
2.4.3 時序分析 60
2.4.4 資源利用率分析 72
2.4.5 扇出分析 73
2.4.6 觸發(fā)器控制集分析 75
參考文獻(xiàn) 75
第3章 設(shè)計實現(xiàn) 76
3.1 理解實現(xiàn)策略 76
3.1.1 Project模式下應(yīng)用實現(xiàn)策略 76
3.1.2 Non-Project模式下應(yīng)用實現(xiàn)策略 80
3.2 理解物理優(yōu)化 81
3.3 增量實現(xiàn) 82
3.3.1 Project模式下應(yīng)用增量實現(xiàn) 82
3.3.2 Non-Project模式下應(yīng)用增量實現(xiàn) 87
3.4 實現(xiàn)后的設(shè)計分析 88
3.4.1 資源利用率分析 88
3.4.2 時序分析 88
3.5 生成配置文件 90
3.6 下載配置文件 93
參考文獻(xiàn) 99
第4章 設(shè)計驗證 100
4.1 行為級仿真 100
4.1.1 基于Vivado Simulator的行為級仿真 100
4.1.2 基于ModelSim/QuestaSim的行為級仿真 111
4.2 實現(xiàn)后的時序仿真 115
4.3 使用VLA(Vivado Logic Analyzer) 117
4.3.1 使用ILA(Integrated Logic Analyzer) 117
4.3.2 使用VIO(Virtual Input/Output) 126
4.3.3 VLA中的數(shù)據(jù)分析 128
4.4 使用add_probe 133
參考文獻(xiàn) 134
第5章 IP的管理 135
5.1 定制IP 135
5.1.1 在Vivado工程中定制IP 135
5.1.2 在Manage IP中定制IP 139
5.2 IP的兩種生成文件形式:xci和xcix 144
5.3 對IP的幾個重要操作 148
5.3.1 IP的綜合 148
5.3.2 IP的仿真 150
5.3.3 IP的更新 151
5.3.4 IP輸出文件的編輯 155
5.4 IP的屬性與狀態(tài) 156
5.5 IP的約束 159
5.6 封裝IP 164
5.6.1 通過Vivado工程封裝用戶代碼 164
5.6.2 通過指定目錄封裝用戶代碼 177
參考文獻(xiàn) 178
第6章 約束的管理 179
6.1 基本時序理論 179
6.2 兩類基本約束 180
6.2.1 時鐘周期約束 180
6.2.2 引腳分配 201
6.3 兩種時序例外 210
6.3.1 多周期路徑約束 210
6.3.2 偽路徑約束 214
6.4 從UCF到XDC 217
6.4.1 UCF與XDC的基本對應(yīng)關(guān)系 217
6.4.2 理解層次標(biāo)識符在UCF和XDC中的區(qū)別 219
6.5 時序約束編輯輔助工具 220
6.5.1 時序約束編輯器 220
6.5.2 時序約束向?qū)?223
6.6 關(guān)于約束文件 224
參考文獻(xiàn) 226
第7章 Tcl在Vivado中的應(yīng)用 227
7.1 Vivado對Tcl的支持 227
7.2 Vivado中Tcl命令的對象及屬性 232
7.2.1 文件對象及屬性 232
7.2.2 網(wǎng)表對象及屬性 234
7.3 Tcl命令與網(wǎng)表視圖的交互使用 241
7.4 典型應(yīng)用 242
7.4.1 流程管理 242
7.4.2 定制報告 246
7.4.3 網(wǎng)表編輯 249
7.5 其他應(yīng)用 253
參考文獻(xiàn) 256