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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論