內容簡介
本書涵蓋了Vivado的四大主題:設計流程、時序約束、設計分析和Tcl腳本的使用,結合實例深入淺出地闡述了Vivado的使用方法,精心總結了Vivado在實際工程套用中的一些技巧和注意事項,既包含圖形界面操作方式,也包含相應的Tcl命令。本書語言流暢,圖文並茂。全書共包含405張圖片、17個表格、172個Tcl腳本和39個HDL代碼,同時,本書配有41個電子教學課件,為讀者提供了直觀而生動的資料。本書可供電子工程領域內的本科高年級學生和研究生學習參考,也可供FPGA工程師和自學者參考使用。
目錄信息
第1章 FPGA技術分析 / 1
1.1 FPGA內部結構分析 / 1
1.1.1 Xilinx 7系列FPGA內部結構分析 / 1
1.1.2 Xilinx UltraScale系列FPGA內部結構分析 / 18
1.2 FPGA設計流程分析 / 22
1.3 Vivado概述 / 25
1.3.1 Vivado下的FPGA設計流程 / 25
1.3.2 Vivado的兩種工作模式 / 26
1.3.3 Vivado的5個特徵 / 30
參考文獻 / 31
第2章 設計綜合 / 32
2.1 常用綜合選項的設定 / 32
2.1.1 -flatten_hierarchy對綜合結果的影響 / 32
2.1.2 -fsm_extraction對狀態機編碼方式的影響 / 35
2.1.3 -keep_equivalent_registers的含義 / 36
2.1.4 -resource_sharing對算術運算的影響 / 38
2.1.5 -control_set_opt_threshold對觸發器控制集的影響 / 38
2.1.6 -no_lc對查找表資源的影響 / 40
2.1.7 -shreg_min_size對移位暫存器的影響 / 41
2.2 合理使用綜合屬性 / 43
2.2.1 async_reg在異步跨時鐘域場合的套用 / 43
2.2.2 max_fanout對高扇出信號的影響 / 44
2.2.3 ram_style和rom_style對存儲性能的影響 / 46
2.2.4 use_dsp48在實現加法運算時的作用 / 48
2.3 out-of-context(OOC)綜合模式 / 50
2.3.1 Project模式下使用OOC / 50
2.3.2 Non-Project模式下使用OOC / 54
2.4 綜合後的設計分析 / 54
2.4.1 時鐘網路分析 / 54
2.4.2 跨時鐘域路徑分析 / 56
2.4.3 時序分析 / 60
2.4.4 資源利用率分析 / 72
2.4.5 扇出分析 / 73
2.4.6 觸發器控制集分析 / 75
參考文獻 / 75
第3章 設計實現 / 76
3.1 理解實現策略 / 76
3.1.1 Project模式下套用實現策略 / 76
3.1.2 Non-Project模式下套用實現策略 / 80
3.2 理解物理最佳化 / 81
3.3 增量實現 / 82
3.3.1 Project模式下套用增量實現 / 82
3.3.2 Non-Project模式下套用增量實現 / 87
3.4 實現後的設計分析 / 88
3.4.1 資源利用率分析 / 88
3.4.2 時序分析 / 88
3.5 生成配置檔案 / 90
3.6 下載配置檔案 / 93
參考文獻 / 99
第4章 設計驗證 / 100
4.1 行為級仿真 / 100
4.1.1 基於Vivado Simulator的行為級仿真 / 100
4.1.2 基於ModelSim/QuestaSim的行為級仿真 / 111
4.2 實現後的時序仿真 / 115
4.3 使用VLA(Vivado Logic Analyzer) / 118
4.3.1 使用ILA(Integrated Logic Analyzer) / 118
4.3.2 使用VIO(Virtual Input/Output) / 126
4.3.3 VLA中的數據分析 / 128
4.4 使用add_probe / 133
參考文獻 / 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的屬性與狀態 / 156
5.5 IP的約束 / 159
5.6 封裝IP / 164
5.6.1 通過Vivado工程封裝用戶代碼 / 164
5.6.2 通過指定目錄封裝用戶代碼 / 177
參考文獻 / 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的基本對應關係 / 217
6.4.2 理解層次標識符在UCF和XDC中的區別 / 219
6.5 時序約束編輯輔助工具 / 220
6.5.1 時序約束編輯器 / 220
6.5.2 時序約束嚮導 / 223
6.6 關於約束檔案 / 224
參考文獻 / 226
第7章 Tcl在Vivado中的套用 / 227
7.1 Vivado對Tcl的支持 / 227
7.2 Vivado中Tcl命令的對象及屬性 / 232
7.2.1 檔案對象及屬性 / 232
7.2.2 網表對象及屬性 / 234
7.3 Tcl命令與網表視圖的互動使用 / 241
7.4 典型套用 / 242
7.4.1 流程管理 / 242
7.4.2 定製報告 / 246
7.4.3 網表編輯 / 249
7.5 其他套用 / 253
參考文獻 / 256