如何實現(xiàn)復(fù)雜FPGA設(shè)計的時序收斂.doc_第1頁
如何實現(xiàn)復(fù)雜FPGA設(shè)計的時序收斂.doc_第2頁
如何實現(xiàn)復(fù)雜FPGA設(shè)計的時序收斂.doc_第3頁
如何實現(xiàn)復(fù)雜FPGA設(shè)計的時序收斂.doc_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

如何實現(xiàn)復(fù)雜FPGA設(shè)計的時序收斂2007-10-05 09:27:30“打鼴鼠”是一個古老(電子時代之前)的休閑游戲。在桌面上有許多洞,每個洞里都藏著鼴鼠。當(dāng)有鼴鼠從洞里鉆出來時,你就用錘子打它,讓鼴鼠退回洞里,你因此而得分。當(dāng)鼴鼠返回洞里時,又有一只鼴鼠會隨機地從另外一個洞里鉆出來,你需要近乎瘋狂地?fù)舸螨B鼠頭部直到得了高分,這樣心情也很舒暢。需要說明的是,游戲中并不是真的鼴鼠。世界有些地方把這種游戲叫“打老鼠”,我也不明白為什么嚙齒動物在外面總是人人喊打。要實現(xiàn)復(fù)雜FPGA芯片設(shè)計的時序收斂,就非常類似于這一古老的游戲,但趣味自然少了許多。 為什么FPGA設(shè)計類似“打鼴鼠”?在FPGA設(shè)計中(除驗證外),最主要的時間陷阱(Time Sink)是時序收斂。時序收斂常常是一個不斷反復(fù)的過程,以確保設(shè)計中的每個路徑都滿足時序要求。在相對較小、速度較慢的設(shè)計中,時序收斂比較容易,而且是自動收斂的,因此對FPGA器件或?qū)崿F(xiàn)工具的要求不高。然而,實際中的大多數(shù)設(shè)計并非如此輕松,它們要求對每個關(guān)鍵路徑進行調(diào)整,以滿足時序要求,而期間又會不斷有新的關(guān)鍵路徑被發(fā)現(xiàn)或出現(xiàn)。圖1是迭代的時序收斂示意圖。在第一階段,只有路徑C的時間裕量是負(fù)數(shù)。為改善路徑C,對設(shè)計進行修改。隨著對路徑C實現(xiàn)約束,路經(jīng)B和E又成為關(guān)鍵路徑(見第二階段),然后又對路徑B和E進行改善。以此類推,直到所有路徑都滿足時序要求。圖1:迭代的時序收斂示意圖。很顯然,這種過程非常類似于打鼴鼠游戲;只不過并不像游戲那樣輕松,而是讓我們緊張。全新的FPGA產(chǎn)品系列真能解決這一問題嗎?實際上,F(xiàn)PGA廠商已開發(fā)出優(yōu)異的新一代FPGA以滿足用戶對更高性能和更高容量的需求。然而,F(xiàn)PGA用戶更善于發(fā)掘推動FPGA突破容量限制的新方法,從而將FPGA引入更多新的應(yīng)用領(lǐng)域。FPGA已不再是一系列均勻分布的查找表(LUT)和由各種不同長度和速度的布線資源連接起來的觸發(fā)器。目前,業(yè)界領(lǐng)先的FPGA設(shè)計包含多個時鐘域,并使用嵌入式累積乘法(MAC)功能塊,包括嵌入式處理器和各種存儲器資源。FPGA的應(yīng)用也隨著器件內(nèi)各種特定資源的增多而得以擴展,并準(zhǔn)備著在FPGA內(nèi)部實現(xiàn)這些特定的功能塊。這是個好現(xiàn)象,但從某種程度上說,這種嵌入式資源的分布將導(dǎo)致時序收斂的問題更加突出。正如下文的RAM示例所指出的,嵌入式功能本身就是導(dǎo)致布線差異的根源。這里假設(shè)設(shè)計需要做一些修改,以根據(jù)最新功能要求增加RAM的容量。在FPGA器件中可能有豐富的RAM資源,但需要使用不同的RAM資源,比如使用一個大的塊RAM,而不是一組分布式RAM。綜合工具能夠輕松映射到所需的RAM,但新的塊RAM可能只存在于FPGA器件上的特定列中,因此這時的設(shè)計布局將不同于原始布局。關(guān)鍵路徑的連線從含有新RAM的列開始或向其延伸,或者重新布局以使關(guān)鍵路徑靠近新的RAM,但其它收斂或發(fā)散的路徑卻會延長。使用傳統(tǒng)的綜合工具很難避免這種問題。因此需要密切注意這些時序收斂問題。為什么布線預(yù)測如此重要?布線延遲本質(zhì)上是不可預(yù)測的,因為FPGA內(nèi)各個驅(qū)動與負(fù)載之間存在許多不同的布線路徑。每個路徑的延遲不同,在工具流程開始的時候,邏輯綜合無法預(yù)測流程結(jié)束時布局布線算法將要選擇哪條路徑。最快的布線資源通常是最缺乏的,布線阻塞常導(dǎo)致非最優(yōu)的布線延時。僅靠開發(fā)具有更多、更快布線資源的FPGA器件并非解決方法,因為此時FPGA的面積使用效率更低、成本更高、功耗也更大。隨著采用更先進的CMOS工藝的新一代FPGA的推出,布線延遲將不可避免地成為關(guān)鍵路徑總延遲中最關(guān)鍵的部分,因此綜合和布局布線流程中的時序可預(yù)測性也變得一代不如一代。最終,導(dǎo)致時序收斂的原因可以歸結(jié)為綜合預(yù)測的路徑時序與布局/布線實際實現(xiàn)的時序之間的差異。解決方法是在整個流程中較早引入布局(并最好也同時引入布線)并融入綜合過程。這種全新的綜合/布局布線工具將大幅減少時序收斂所需的迭代數(shù),這也正是FPGA物理綜合實際能達到的效果。如何在“打鼴鼠”游戲中獲勝?下面以帶多個復(fù)雜模塊的大型設(shè)計(圖2)為例來討論。很多情況下,一個時序問題的解決將改變RTL,并且一些改進時序的做法也會增加資源的使用。圖2:RTL變化如何使路徑發(fā)生變化。在圖2中,模塊A緊鄰模塊B和模塊B,當(dāng)為解決某個時序問題而修改模塊A的RTL時,模塊A會擴展到模塊B和C使用的區(qū)域。這將迫使B和C中的器件發(fā)生移動,路徑延長,從而產(chǎn)生新的關(guān)鍵路徑。請注意,模塊B或C中的邏輯沒有變化,正常的邏輯綜合流程不會由于模塊A的尺寸變化而改變它對B或C中的互連延時的估計,因為模塊A的RTL變化和B或C中新的關(guān)鍵路徑之間的因果關(guān)系是物理上的。一般情況下,導(dǎo)致設(shè)計迭代具有不可預(yù)測性的本質(zhì)原因是物理特性,因此真正的物理綜合當(dāng)仁不讓成為首選解決方案。在真正的物理綜合中,當(dāng)模塊A的RTL發(fā)生改變并延長模塊B和C中的走線時,新的更長連線可以被正確估算和考慮,這樣在同樣的物理綜合過程中,圍繞新的關(guān)鍵路徑所進行的優(yōu)化、布局和局部布線就可以自動解決這些問題。本文小結(jié)估計FPGA中的總路徑延遲很困難,因此時序收斂已成為當(dāng)前許多設(shè)計的時間陷阱。物理綜合可以提供所需的布局可預(yù)測性,從而更好地控制和預(yù)測時序收斂。真正的物理綜合有助于FPGA項目在較短時間內(nèi)獲得成功。附:什么是“真正的物理綜合?”很多工具聲稱可實施物理綜合,然而事實上這些工具只是使用先前的布局布線的時序信息重新優(yōu)化綜

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論