Vivado 從此開始 (進階篇)

高亞軍

買這商品的人也買了...

相關主題

商品描述

全書共七章,力圖幫助讀者瞭解Vivado 2018版本的新特性,同時理解並掌握UltraFast設計方法學。UltraFast方法學是實踐經驗的總結,涉及板級規劃、設計流程、代碼風格、時序約束、時序收斂等方面。本書重點圍繞後三個方面進行闡述。此外,針對被越來越廣泛使用的SSI器件,本書也介紹了相應的設計指南,例如,如何在早期進行設計規劃、如何對跨die信號進行處理、如何使用LAGUNA寄存器、如何對基於SSI器件的設計進行分析等。除此之外,作者也根據實踐經驗總結了一些常用的技巧,盡可能地幫助讀者提高工作效率。

作者簡介

Xilinx戰略應用高級工程師,擁有多年利用Xilinx FPGA實現數字信號處理算法的經驗,對Xilinx FPGA的架構、開發工具Vivado和設計理念有深入理解。2012年發佈網絡視頻課程《Vivado入門與提高》、2015年出版《基於FPGA的數字信號處理(第2版)》一書,均獲得網友和讀者的廣泛認可和好評。

目錄大綱

 

第1章綜合階段1
1.1綜合設置分析1
1.1.1 ?flatten_hierarchy 1
1.1.2 ?control_set_opt_threshold 2
1.1.3 ?no_lc 4
1.1.4 ?keep_equivalent_registers 4
1.1.5 ?resource_sharing 6
1.1.6 ?gated_clock_conversion 7
1.1.7 ?fanout_limit 9
1.1.8 ?shreg_min_size和?no_srlextract 10
1.1.9 ?fsm_extraction 13
1.2綜合屬性分析14
1.2.1 ASYNC_REG 14
1.2.2 MAX_FANOUT 16
1.2.3 SRL_STYLE和SHREG_EXTRACT 18
1.2.4 USE_DSP 21
1.2.5 RAM_STYLE和ROM_STYLE 23
1.2.6 EXTRACT_ENABLE和EXTRACT_RESET 24
1.2.7 MARK_DEBUG 26
1.3模塊化綜合技術27
1.3.1模塊化綜合技術概述27
1.3.2模塊化綜合技術的應用場景29
1.4 OOC綜合方式30


第2章實現階段33
2.1實現階段的子步驟33
2.2關於邏輯優化33
2.2.1基本優化33
2.2 .2優化MUX 34
2.2.3優化LUT 34
2.2.4優化移位寄存器35
2.2.5優化進位鏈36
2.2.6優化控制集37
2.2.7優化扇出38
2.3關於佈局38
2.4關於物理優化39
2.4 .1基本優化39
2.4.2交互式物理優化39
2.5關於佈線41
2.5.1優先對關鍵路徑佈線41
2.5.2查看佈線報告42
2.6關於增量實現43
2.7關於ECO 44
2.7.1什麼是ECO 44
2.7.2 ECO流程45
2.7.3 ECO應用案例:替換ILA待測信號46


第3章高效設計51
3.1高效使用觸發器51
3.1.1同步復位與異步復位51
3.1.2觸發器的初始值53
3.1.3鎖存器54
3.2高效使用LUT 55
3.2.1 LUT用作邏輯函數發生器55
3.2.2 LUT用作移位寄存器59
3.2.3 LUT用作分佈式RAM 61
3.3高效使用Block RAM 63
3.3.1 Block RAM的基本結構63
3.3.2 Block RAM的性能與功耗65
3.4高效使用UltraRAM 67
3.4.1 UltraRAM的基本結構67
3.4.2 UltraRAM的讀寫操作方式70
3.4.3 UltraRAM的實例化方式70
3.5高效使用DSP48E2 73
3.5.1 DSP48E2的基本結構73
3.5.2 DSP48E2的性能與功耗74
3.6高效使用MMCM 76
3.6.1 MMCM的基本功能76
3.6.2 MMCM的功耗與輸出時鐘的抖動78
3.7高效設計異步跨時鐘域電路80
3.7.1單bit異步跨時鐘域電路80
3.7.2多bit異步跨時鐘域電路82


第4章時序約束83
4.1管理約束83
4.1.1約束文件83
4.1.2 4種時序路徑85
4.1.3 4個步驟完成時序約束85
4.2時鐘週期約束87
4.2.1主時鐘週期約束87
4.2.2生成時鐘週期約束89
4.2.3對同一時鐘源添加多個時鐘週期約束91
4.2.4調整時鐘特性約束93
4.3 I/O延遲約束93
4.4時序例外路徑約束95
4.4.1多周期路徑約束95
4.4.2偽路徑約束99
4.4.3最大/最小延遲約束101
4.4.4時序例外路徑約束的指導原則102
4.5使用create_generated_clock 103
4.6使用set_clock_groups 105
4.7調試約束108
4.7.1了解約束的優先級108
4.7.2了解約束文件的屬性和編譯順序110
4.7. 3借助TCE調試約束112
4.7.4借助Tcl命令調試約束113
4.8案例分析114


第5章時序收斂116
5.1時序收斂的標準116
5.1.1檢查約束116
5.1.2檢查建立時間裕量117
5.2基線設計117
5.3分析時序違例121
5.3.1分析時序違例的可能原因121
5.3.2確定時序違例的根本原因125
5.3.3分析邏輯級數128
5.3.4分析數據路徑延遲128
5.3.5分析時鐘歪斜129
5.4解決時序違例129
5.4.1降低邏輯延遲129
5.4.2降低佈線延遲131
5.4.3降低時鐘歪斜134
5.4.4降低時鐘不確定性136
5.5時序收斂技術137
5.5.1面向模塊的綜合技術137
5.5.2邏輯級數138
5.5.3控制集138
5.5.4高扇出網線141
5.5.5路徑優先級142
5.5.6保持時間違例143
5.5.7實現策略144
5.5.8多次迭代145
5.5.9過約束145
5.5.10增量編譯146
5.5.11手工佈局146
5.5.12復用佈局147


第6章SSI器件設計148
6.1 SSI器件設計面臨的挑戰148
6.2 SSI器件的基本結構150
6.2.1 SLR架構150
6.2.2跨die資源152
6.3 SSI器件的設計規劃154
6.3.1數據流154
6.3.2設計層次155
6.3.3跨die路徑160
6.4 SSI器件的設計分析163
6.4.1資源分析163
6.4.2時序分析165


第7章應用技巧168
7.1界面操作168
7.1.1快捷鍵168
7.1.2 Dashboard按鈕173
7.1.3各類報告175
7.1.4 Schematic視圖176
7.1.5 Device視圖179
7.2工程管理181
7.2.1揭秘DCP 181
7.2.2複製工程183
7.2.3複製IP 185
7.3資源利用率報告分析185
7.3.1 Block RAM的利用率185
7.3.2 LUT和LUTRAM的區別186
7.3.3 LUT的個數187
7.3.4 report_utilization命令的功能190
7.4時序報告分析192
7.4.1生成時序報告192
7.4.2閱讀時序報告194
7.5 Tcl命令應用197
7.5.1 report_high_fanout_nets 197
7.5.2 report_design_analysis 200
7.5.3 report_qor_suggestions 203
7.5.4 report_failfast 206
7.6其他技巧207
7.6.1設置多線程207
7.6.2復用Block的位置信息208
7.6.3獲取Package Delay 209
7.6.4快速生成IBIS模型210
7.6.5使用MAX_FANOUT 211


後記213