版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
10分鐘教會你UltraFAST十大準則UltraFast是Xilinx在2013年底推出的一套設(shè)計方法學(xué)指導(dǎo),旨在指引用戶最大限度地利用現(xiàn)有資源,提升系統(tǒng)性能,降低風險,實現(xiàn)更快速且可預(yù)期的設(shè)計。面向Vivado的UltraFast方法學(xué)的主體是UG949文檔,配合相應(yīng)的Checklist,隨Vivado版本同時更新,用戶可以在Xilinx的主頁上免費下載。目前,針對Vivado設(shè)計套件的UltraFast中文版也已經(jīng)上市,另外一套全新的針對嵌入式可編程設(shè)計的UltraFast嵌入式設(shè)計方法指南UG1046也已經(jīng)在Xilinx官網(wǎng)上開放下載。盡管UltraFast這個字眼經(jīng)常在網(wǎng)上看到,不論官方還是其他媒體上說起Vivado設(shè)計套件時也常常提到,但很多用戶仍然對這個概念十分模糊,有不少人下載文檔后看到300頁的PDF頓時也失去了深入學(xué)習和了解的興趣。適逢《Vivado使用誤區(qū)與進階》系列連載半年多,大部分預(yù)先列好的主題也都已經(jīng)按照計劃完成,我們準備把這些短文集結(jié)為一本電子書,方便更多讀者隨手翻閱或是必要時用作設(shè)計參考。借此機會,套用在Xilinx內(nèi)部被譽為“Vivado之父”的產(chǎn)品營銷總監(jiān)GregDaughtry在去年第一屆ClubVivado中所提出的“時序收斂十大準則”的概念,試著用十分鐘的篇幅來概括一下什么是UltraFast,以及怎樣利用UItraFast真正幫助我們的FPGA設(shè)計。時序設(shè)計的十大準則,基本上也涵蓋了UltraFast設(shè)計方法指南的基本要點。UG949中將FPGA設(shè)計分為設(shè)計創(chuàng)建、設(shè)計實現(xiàn)和設(shè)計收斂幾大部分來討論,除了介紹所有可用的設(shè)計方法和資源,更多的是一些高級方法學(xué)技巧,這些技巧基本上都跟時序收斂有關(guān)或是以時序收斂為目標,有些通用的方法和技巧甚至脫離了具體選用的FPGA器件的限制,適用于更廣泛意義上的時序收斂。最寶貴的是,所有這些UltraFast設(shè)計方法學(xué)技巧都來自一線技術(shù)支持人員的經(jīng)驗以及客戶的反饋,是業(yè)界第一本真正意義上完全面向用戶的指南,這一點只要你試著讀過一兩節(jié)UG949就會有明顯感覺,所有其中提到的技巧和方法都具有很高的可操作性,可以帶來立竿見影的效果。接下來我們就由這十大準則展開,帶領(lǐng)各位讀者在十分鐘內(nèi)理清UltraFast方法學(xué)的脈絡(luò),一探其究竟。準則一:合適的代碼風格
理想環(huán)境下,源代碼可以獨立于最終用于實現(xiàn)的器件,帶來最佳的可移植性和可復(fù)用性。但是,底層器件各自獨特的結(jié)構(gòu),決定了通用代碼的效率不佳,要最大化發(fā)揮硬件的性能,必然需要為實現(xiàn)工具和器件量身定制代碼。關(guān)于Xilinx器件和Vivado適用的代碼風格,我們有以下建議:
準則二:精準的時序約束
精準的時序約束是設(shè)計實現(xiàn)的基礎(chǔ),對時序驅(qū)動工具Vivado來說,約束就是最高指示,是其努力實現(xiàn)的目標。很多時候我們發(fā)現(xiàn),約是有經(jīng)驗的工程師約是喜歡用一些舊有經(jīng)驗套用在Vivado上,例如很多人偏愛用過約束的方式來追求更高的性能,但實際上對Vivado來說,大部分的過約束只會阻礙時序收斂。簡要概括而言,精簡而準確的約束是時序收斂的必要條件,而UltraFast中提出的Baseline基線方法則是充分條件。具體的約束方法我們在《XDC約束技巧》中有詳細討論,除了保證語法正確,還要注意設(shè)置XDC約束的順序,通常第一次運行時只需要約束所有時鐘,然后在內(nèi)部路徑基本滿足時序約束的情況下加入關(guān)鍵I/O的約束,其次再考慮必要的時序例外約束。所有這些約束都必須遵循精簡而準確的原則,且可以借助Vivado中的XDCTemplates以及TimingConstraintWizard的幫助來進行。Baseline基線方法可以說是UltraFast的靈魂部分,強烈建議所有Vivado的用戶都能精讀UG949中的這部分內(nèi)容,并將之應(yīng)用在具體的設(shè)計中。有機會我會深入展開一篇專門介紹Baseline方法的短文,這里先將其核心的概念做一個總結(jié)。
上圖展示了同一個設(shè)計在三個不同階段用同樣的命令報告時序所得到的最差路徑,可以清晰的看出,即使不做任何源代碼上的改動,設(shè)計中真正最差的路徑已經(jīng)不會作為最差路徑出現(xiàn)在布局布線后的報告中。這正是因為Vivado時序驅(qū)動的天性決定了其在設(shè)計實現(xiàn)的每一步都是以開始時讀到的設(shè)計輸入和約束為依據(jù),盡量將最好的資源用在最差的路徑上,從而盡最大可能實現(xiàn)時序收斂。這便是Baseline理論的基礎(chǔ),除了按順序設(shè)置精準的時序約束,在設(shè)計實現(xiàn)的每一步,用戶都需要關(guān)注時序報告,并以其為依據(jù)來調(diào)整設(shè)計源代碼或是應(yīng)用其他必要的約束和選項來優(yōu)化設(shè)計。保證每一階段之后的時序報告都滿足約束或是僅余300ps以內(nèi)的時序違例,再進入下一階段的設(shè)計實現(xiàn)過程,否則,應(yīng)該繼續(xù)在當前階段或是退回到上一階段調(diào)整后重跑設(shè)計,直到滿足要求再繼續(xù)。越早發(fā)現(xiàn)和定位問題,越是可以通過少量的努力來達到更大范圍的改進。準則三:管理高扇出網(wǎng)絡(luò)
高扇出網(wǎng)絡(luò)幾乎是限制FPGA設(shè)計實現(xiàn)更高性能的第一大障礙,所以我們需要很嚴肅地對待設(shè)計中的高扇出網(wǎng)絡(luò)。很多人會陷入一個誤區(qū),反復(fù)糾結(jié)到底多大的扇出值算是大?其實這一點不是絕對的,在資源充裕時序要求不高的情況下幾千甚至上萬都不算大,反之在局部關(guān)鍵路徑上僅有幾十的扇出也可能需要進一步降低。在Vivado中,我們除了關(guān)注時序報告,尤其是布局后布線前的報告來定位關(guān)鍵路徑上影響時序的高扇出網(wǎng)絡(luò)外,還有一個專門的命令report_high_fanout_nets,在給其加上-timing的選項后,可以在報告高扇出路徑的同時報告出這條路徑的Slack,幫助用戶直觀了解當前路徑的時序裕量。此外,這個命令在報告中還會指出高扇出網(wǎng)絡(luò)的驅(qū)動類型,是FF或是LUT等。找到目標后,可以利用max_fanout來限定其扇出值,讓工具在實現(xiàn)過程中復(fù)制驅(qū)動端寄存器來優(yōu)化。如果高扇出網(wǎng)絡(luò)并不是由同步邏輯來驅(qū)動,則可能需要修改代碼。還有一些工具層面上的降扇出方法,比如選擇更強更有針對性的策略,或是允許多次物理優(yōu)化phys_opt_design,甚至是通過我們在《用Tcl定制Vivado設(shè)計實現(xiàn)流程》中提到的“鉤子”腳本等方式來進行局部降扇出的物理優(yōu)化等等。但有一點需要注意,Vivado綜合選項中的全局扇出限定要慎用,不要將其設(shè)置的過低以免綜合出的網(wǎng)表過于龐大,帶來資源上的浪費,并可能導(dǎo)致局部擁塞。準則四:層次化設(shè)計結(jié)構(gòu)
隨著設(shè)計規(guī)模的不斷擴大,以及SoC設(shè)計的興起,越來越多的IP被整合到大設(shè)計中,曾經(jīng)為高性能設(shè)計而生,便于統(tǒng)一管理和控制的自頂向下的設(shè)計流程變得不再適用,F(xiàn)PGA設(shè)計也跟大規(guī)模SoC設(shè)計一樣,需要采用層次化的設(shè)計流程,即自底向上的流程。這也要求設(shè)計者在源代碼階段就考慮到最終的實現(xiàn),處理好模塊的層次邊界。Vivado中的IP設(shè)計是原生的自底向上流程,用戶可以將IP生成獨立的DCP再加入到頂層設(shè)計中去。我們也鼓勵用戶將某些相對固定或獨立的模塊綜合成DCP后加入頂層設(shè)計,這么做除了加快設(shè)計迭代外,也更利于設(shè)計開始階段的調(diào)試和問題的定位。Vivado中的OOC模式甚至還支持完全層次化的設(shè)計,即將底層模塊的布局布線結(jié)果也進行復(fù)用,這么做雖然流程復(fù)雜,卻帶來了更全面的控制性,也是部分可重配置技術(shù)的實現(xiàn)基礎(chǔ)。準則五:處理跨時鐘域設(shè)計
FPGA設(shè)計中通常都帶有跨時鐘域的路徑,如何處理這些CDC路徑非常重要。由于Vivado支持的約束標準XDC在處理CDC路徑上與上一代ISE中支持的UCF約束有本質(zhì)區(qū)別,如何約束以及怎樣從設(shè)計上保證CDC路徑的可靠性就成了重中之重?!禭DC約束技巧之CDC篇》中對Vivado中的跨時鐘域設(shè)計有詳細描述,UG949中也有不少篇幅用來討論CDC路徑的各種設(shè)計技巧和約束方法。建議用戶深入學(xué)習和了解這部分的內(nèi)容,其中有不少概念并不僅僅局限于FPGA設(shè)計中的跨時鐘域設(shè)計,放在其他IC設(shè)計上也一樣有效。需要提醒大家的是,一定要利用好Vivado中的各種報告功能,例如report_cdc和DRC報告中的methodology_checks來檢測設(shè)計中的CDC結(jié)構(gòu)問題,并作出具體的設(shè)計調(diào)整或是補全CDC約束。另外要注意各種不同的CDC路徑處理方法之間的優(yōu)劣,選擇最適合自己設(shè)計的方式,配合相應(yīng)的約束來保證跨時鐘域路徑的安全。準則六:少而精的物理約束
不同于對時序約束尤其是時鐘約束之全面而精準的要求,Vivado對物理約束的要求只有一個字:少。這里的物理約束更多強調(diào)的是除了I/O引腳位置這些必要項之外的約束,例如對RAMB和DSP48的位置約束,還有局部的floorplan計劃。很多資深工程師非常喜歡畫floorplan,因為其對設(shè)計的數(shù)據(jù)流和資源使用情況了如指掌,根據(jù)自己理解畫出的floorplan通常也算合理。但是,floorplan在Vivado中的重要性遠低于以往在ISE上的作用。根據(jù)客戶的實際經(jīng)驗反饋,絕大多數(shù)的設(shè)計中都無需任何floorplan(某些時序要求較高的SSI芯片設(shè)計上可能需要),因為算法的改進,Vivado在布局上比上一代ISE更聰明,沒有任何物理約束(除了IO引腳位置約束)的設(shè)計反而能在更短的時間內(nèi)更好地滿足時序要求。在確實需要鎖定某些宏單元以及進行floorplan的設(shè)計中,一般我們會推薦先不加任何物理約束來跑設(shè)計,在其他諸如改進源代碼,設(shè)置約束和選項,改變策略等辦法都試過后,再嘗試物理約束。而且,最好只在少量關(guān)鍵的設(shè)計區(qū)域進行floorplan,切忌過度約束,不要創(chuàng)建資源利用率過高的pblocks,同時避免重疊的pblocks區(qū)域。順便提一下,VivadoIDE中的Device視圖可以通過設(shè)置不同顏色來高亮顯示不同模塊,用戶可以根據(jù)當前設(shè)計的布局結(jié)果配合時序報告和關(guān)鍵路徑來創(chuàng)建和調(diào)整floorplan,操作非常便捷。
準則七:選擇實現(xiàn)策略
從ISE升級到Vivado后,很多用戶發(fā)現(xiàn)SmartXplorer功能不見了,當設(shè)計進行到后期,假如不能遍歷種子,常讓人感到無所適從,甚至懷疑到了這一步Vivado便無計可施。那么事實到底如何呢?嚴格來講,CostTable其實是一種無奈之舉,說明工具只能通過隨機種子的改變來“撞大運”般篩選出一個最佳結(jié)果,這也解釋了為何改變CostTable的結(jié)果是隨機的,一次滿足時序,并不代表一直可以滿足。因為更高級算法的引入,Vivado中的設(shè)計實現(xiàn)變得更加可靠,而且是真正意義上的可預(yù)計的結(jié)果。但這并不代表在Vivado中對同一個設(shè)計進行布局布線只能有一種結(jié)果。我們可以通過“策略”來控制實現(xiàn)過程中的算法側(cè)重,從而可以產(chǎn)生更優(yōu)化的結(jié)果。策略(Strategy)是一組工具選項和各個階段指示(Directive)的組合,VivadoIDE中內(nèi)置了幾十種可供用戶直接選用,但如果窮盡各種組合,整個實現(xiàn)過程大約有上千種策略。當然,我們沒必要遍歷每種策略。而且因為策略是一種可預(yù)計可重現(xiàn)的實現(xiàn)方法,所以對同一個設(shè)計,可以在選擇幾種有側(cè)重點的策略后挑選出效果最好的那個,只要設(shè)計后期沒有大的改動,便可一直延用同樣的策略。具體策略的特性,請參考UG949和UG904等文檔,也可以在Vivado中通過help菜單了解。更多時候,選擇怎樣的策略是一種經(jīng)驗的體現(xiàn),另外,即使找到了最佳實現(xiàn)策略,也仍舊有可能不滿足時序要求,這時候我們還可以參考《用Tcl定制Vivado設(shè)計實現(xiàn)流程》中所述,對設(shè)計實現(xiàn)的流程進行進一步的個性化定制。另外要強調(diào)一點,修改策略來提升性能必須放在調(diào)整代碼、約束和選項等更直接高效的優(yōu)化方法之后進行,其能帶來的性能提升比起前述優(yōu)化方法來說也更加局限。準則八:共享控制信號
共享控制信號這一點充分體現(xiàn)了設(shè)計必須考慮到用于底層實現(xiàn)的芯片結(jié)構(gòu)的重要性,在Xilinx的芯片上,時鐘、置位/復(fù)位和時鐘使能等信號通稱為ControlSet,進入同一個SLICE的ControlSet必須統(tǒng)一。換句話說,不同ControlSet控制下的FFs不能被Vivado放進同一個SLICE。為了提升SLICE的利用率,獲得更高效的布局方案,提升時序性能,我們必須控制一個設(shè)計中ControlSet的總數(shù),盡量共享控制信號。具體做法包括:
盡量整合頻率相同的時鐘和時鐘使能信號;
在生成IP時選擇“共享邏輯”功能,則可以在不同IP間盡可能的共享時鐘資源;
遵循Xilinx建議的復(fù)位準則:
盡量少使用復(fù)位
必須復(fù)位時采用同步復(fù)位
確保使用高電平有效的復(fù)位
避免異步復(fù)位(RAMB和DSP48模塊中不支持異步復(fù)位)Xilinx的復(fù)位準則必須嚴格遵守,根據(jù)現(xiàn)場支持的經(jīng)驗來看,很多設(shè)計性能的瓶頸就在于設(shè)計源代碼時沒有考慮底層實現(xiàn)器件的硬件結(jié)構(gòu)特點,尤其以復(fù)位信號的實現(xiàn)問題最為突出。準則九:讀懂日志和報告
任何一個工具的日志和報告都是衡量其性能最重要的一環(huán),正因為有了完備的日志與報告,用戶才可以通過其中顯示的信息,定位設(shè)計中可能的問題,決定優(yōu)化方向。Vivado日志中將信息顯示為三大類,分別為Error、CriticalWarning和一般Warning/Notes等。Error會導(dǎo)致工具直接中斷,其他警告不會中斷工具運行,但所有的CriticalWarning都需要用戶逐一檢查并通過修改設(shè)計、增加約束或設(shè)置選項之類的辦法來修復(fù)。Vivado的報告功能很強大,除了《讀懂用好TimingReport》中描述的時序分析報告,還有很多重要的報告,小到檢查設(shè)計中的特定時序元件和鏈路,大到各種預(yù)置和自定義的DRC檢查,不僅提供給了用戶多樣的選擇,也進一步保證了設(shè)計的可靠性。Vivado也一直在增強和更新報告的種類,比如2014.3之后還增加了一個設(shè)計分析報告report_design_analysis,用來報告關(guān)鍵路徑上的潛在問題以及設(shè)計的擁塞程度。完整的report命令和功能可以在UG835中查詢。準則十:發(fā)揮Tcl的作用
Tcl在Vivado中的作用不容小覷,不僅設(shè)計流程和報告全面支持Tcl腳本,就連XDC約束根本上也來自于Tcl,用戶甚至可以直接把包含有循環(huán)等功能的高級約束以Tcl的形
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度企業(yè)知識產(chǎn)權(quán)質(zhì)押貸款合同-@-2
- 課題申報參考:能源轉(zhuǎn)型下居民親環(huán)境行為的變遷趨勢及提升路徑研究
- 課題申報參考:面向韌性發(fā)展的城市群醫(yī)療資源供需適配研究
- 2025年個人無息借款合同樣本:無息借款協(xié)議:扶持文化藝術(shù)項目2篇
- 二零二五版民政局批準離婚協(xié)議書范本8篇
- 2025年度綠色能源項目內(nèi)部股東權(quán)益轉(zhuǎn)讓合同4篇
- 二零二五年度南京市房產(chǎn)局制定的房屋抵押權(quán)登記合同模板4篇
- 2025年度戀愛期間共同理財規(guī)劃與投資合同4篇
- 2025年度個人信用借款擔保合同范本3篇
- 2025版車輛抵押借款合同(含貸款利率調(diào)整)4篇
- 護理飲食指導(dǎo)整改措施及方案
- 項目工地春節(jié)放假安排及安全措施
- 印染廠安全培訓(xùn)課件
- 紅色主題研學(xué)課程設(shè)計
- 胸外科手術(shù)圍手術(shù)期處理
- 裝置自動控制的先進性說明
- 《企業(yè)管理課件:團隊管理知識點詳解PPT》
- 移動商務(wù)內(nèi)容運營(吳洪貴)任務(wù)二 軟文的寫作
- 英語詞匯教學(xué)中落實英語學(xué)科核心素養(yǎng)
- 《插畫設(shè)計》課程標準
- 高中英語名詞性從句講解
評論
0/150
提交評論