大多數(shù)為FPCA布局圖(通常認(rèn)為兩個(gè)主要的布局圖階段:布局和布線)的實(shí)現(xiàn)工具提供設(shè)計(jì)者成打的優(yōu)化選項(xiàng),設(shè)計(jì)者利用這些選項(xiàng)運(yùn)行中的問題類似于用綜合優(yōu)化運(yùn)行中的問題,即一般不完全理解所有這些選項(xiàng)的含義。所以,一些優(yōu)化常常利用在不需要它們的地方,對(duì)性能有顯著影響的其他優(yōu)化則沒有利用。
本章描述布局布線優(yōu)化最重要的方面,提供實(shí)際的立即可以被讀者利用的探索。在這章的課程期間,將討論以下的內(nèi)容:
在布局布線之前產(chǎn)生優(yōu)化的約束
布局和布線之間的關(guān)系。
用邏輯復(fù)制減少布線延時(shí)
把寄存器封裝進(jìn) I/O 緩沖器
封裝因子的用途
當(dāng)封裝邏輯進(jìn) RAM 時(shí)
寄存器排序
改變布局的種子
與布局布線的指導(dǎo)更大的一致
1.優(yōu)化約束
在著手實(shí)際的布局布線優(yōu)化本身之前,強(qiáng)調(diào)定義一組完全的時(shí)序約束的重要性是必要的。這個(gè)內(nèi)容首先列出的原因是要保證,在本章中包含的優(yōu)化直到足夠的時(shí)間已經(jīng)花費(fèi)在產(chǎn)生準(zhǔn)確的設(shè)計(jì)約束后才講述。
應(yīng)該在任何優(yōu)化發(fā)生之前產(chǎn)生一組完全的約束
對(duì)每個(gè)設(shè)計(jì)必須包含的約束包括全部時(shí)鐘的定義、VO延時(shí)、引腳位置、以及任何放寬的含有多周期和假路徑的約束。雖然一個(gè)實(shí)際的路徑可能不是關(guān)鍵的時(shí)序路徑,常常對(duì)無關(guān)路徑放寬技術(shù)要求,布局和布線資源可能對(duì)更多的關(guān)鍵路徑是隨意的。關(guān)于這些約束的更多信息見第18 章。
常常不被FPGA典型的時(shí)序分析覆蓋的一類約束(不包含在第18章)包括電壓和溫度技術(shù)條件。電壓/溫度技術(shù)條件在這組約束中間是最常被設(shè)計(jì)者忽略的,但是在許多情況提供最方便的方式達(dá)到顯著的時(shí)序改善。
大多數(shù)設(shè)計(jì)者知道,所有的FPGA器件(類似大多數(shù)半導(dǎo)體器件)規(guī)定最壞條件的電壓和溫度,在這些條件下器件可以運(yùn)行。從FPCA時(shí)序分析的角度,最壞條件的溫度是最高的溫度,最壞條件的電壓是最低的電壓,因?yàn)檫@二者的約束將增加傳播延時(shí)(一般不擔(dān)憂FPGA中的保持延時(shí),因?yàn)樽钚〉难訒r(shí)建立在布線矩陣中)。例如,XilinxFPGA高端的商用溫度范圍是85℃,最壞條件的電壓標(biāo)稱值通常在推薦的運(yùn)行電壓的5%和10%之間變化,對(duì)應(yīng)地有1.2V電源電壓近似為1.14V,3.3V電源電壓近似為3V,依此類推。
當(dāng)執(zhí)行最壞條件的時(shí)序分析時(shí),這些情況的電壓和溫度條件缺省被使用。但是,幾乎沒有系統(tǒng)要求FPCA運(yùn)行在85℃(FPGA的結(jié)溫度)和電源電壓下降10%的極端條件。事實(shí)上,大多數(shù)系統(tǒng)只經(jīng)歷遠(yuǎn)低于極端的條件。
如果 FPGA 運(yùn)行其中的系統(tǒng)設(shè)計(jì)在確定的溫度和電壓條件內(nèi),則FPGA時(shí)序分析可以并且應(yīng)該在相同的條件下執(zhí)行。
當(dāng)注意到這個(gè)時(shí),許多工程師發(fā)現(xiàn),可以把全部納秒從關(guān)鍵路徑削去(當(dāng)然取決于器件的工藝),如果時(shí)序沖突比這個(gè)增量改善少的時(shí)候,工程師發(fā)現(xiàn)與時(shí)序沖突的斗爭(zhēng)實(shí)際不存在。
考慮16位計(jì)數(shù)器的例子,在缺省時(shí)序分析條件下,這個(gè)計(jì)數(shù)器在VirtexⅡ器件中運(yùn)行在276MHz。在圖16-1的菜單中表示缺省的電壓和溫度設(shè)置,它們將傳遞到Xiinx的時(shí)序分析工具。
在這個(gè)情況中,最壞條件的電壓設(shè)置為規(guī)定的供電電壓的95%,5%的電壓變化對(duì)開關(guān)電源是合理的,但是如果這是線性電源的運(yùn)行偏離,可以比足夠的電流更多的提供給芯核,這個(gè)技術(shù)條件是過多的。此外,結(jié)溫度設(shè)置在85℃,功能設(shè)計(jì)大概不會(huì)產(chǎn)生這樣一個(gè)溫度,因此這個(gè)技術(shù)條件又是過多的。對(duì)假定的“輕便”系統(tǒng)可以減少這些要求到更合理的參數(shù),其中供電電壓只變化2%,溫度從不超過45℃(圖16-2)。
結(jié)果是計(jì)數(shù)器現(xiàn)在運(yùn)行在290MHz之下。這個(gè)性能改善不要求FPGA任何實(shí)際的改變,只是在正確的條件下分析設(shè)計(jì)的簡(jiǎn)單事情。
調(diào)整電壓和溫度設(shè)置不要求FPGA 實(shí)現(xiàn)任何改變,可以提供一個(gè)方便的手段增量地改善最壞條件的性能。
這種方法的唯一缺點(diǎn)是,在廠商允許存取到這個(gè)選項(xiàng)之前,器件需要按照電壓和溫度完全表征。由于在FPCA廠商之間持續(xù)的競(jìng)爭(zhēng),在他們的競(jìng)爭(zhēng)之前生產(chǎn)更快的FPGA,一般在器件特性已經(jīng)完成之前釋放器件。事實(shí)上,如果已經(jīng)利用新品種工藝,通常可以計(jì)及沒有生效的這個(gè)選項(xiàng)。在時(shí)序分析工具中,這個(gè)選項(xiàng)是不可使用的。這是利用一個(gè)帶適度成熟的器件的優(yōu)點(diǎn)之一
2.布局和布線之間的關(guān)系
大多數(shù)現(xiàn)代的FPGA布局布線工具做很好的工作,達(dá)到時(shí)序與自動(dòng)算法一致,因此人工布局和/或布線不再是平常的。但是,許多FPCA設(shè)計(jì)工程師已經(jīng)被自動(dòng)實(shí)現(xiàn)工具“損害”到除了極高速設(shè)計(jì)之外從不考慮布局圖的程度。缺少這方面的注意已經(jīng)產(chǎn)生缺乏理解,所以十分無效地利用各種對(duì)布局圖有效地實(shí)現(xiàn)選項(xiàng)。目標(biāo)為速度或面積的所有這些選項(xiàng)最重要的是與處理器努力有關(guān)的布局布線的關(guān)系。
特別是我們認(rèn)為提供給設(shè)計(jì)者與后端工具的掛鉤,允許設(shè)計(jì)者調(diào)整處理器的努力程度和相應(yīng)的布局布線算法的精致程度。這些選項(xiàng)幾乎總是獨(dú)立地引入和控制,不幸的是由于它們具有
很強(qiáng)的關(guān)系。在基本的訓(xùn)練中,工程師們被告知,他們可以增加布局布線的努力來達(dá)到更好的結(jié)果。我們?cè)趯?shí)驗(yàn)經(jīng)歷中實(shí)踐增加努力的程度和觀察其改善。實(shí)際上,我們看到類似的改善。所以,是什么問題?問題是如果向上調(diào)整布線器的努力程度,在有一個(gè)最佳布局之前超出平常的努力,實(shí)際是浪費(fèi)時(shí)間。因?yàn)榇蠖鄶?shù)項(xiàng)目帶有最后期限的進(jìn)度表,大多數(shù)FPGA設(shè)計(jì)者在達(dá)到時(shí)序閉合之前經(jīng)歷許多次迭代,一些事情確實(shí)值得考慮。
這里理解的基本概念是,布線與布局有密切的關(guān)系。對(duì)于任何復(fù)雜度的設(shè)計(jì),好的布線只用好的布局來達(dá)到。大多數(shù)FPGA設(shè)計(jì)工程師們沒有運(yùn)行足夠的實(shí)驗(yàn)來獨(dú)自地認(rèn)識(shí)這個(gè)關(guān)系,但是布局比布線對(duì)性能是更重要得多。由于布線矩陣的粗粒度特性(在ASIC中有更多的靈活性用布線產(chǎn)生),這特別對(duì)FPCA成立。
如果做一個(gè)典型的設(shè)計(jì),運(yùn)行幾百次布局和布線努力程度的組合,然后繪圖數(shù)據(jù),似乎看到十分類似于圖16-3 所示的圖形。
從圖16-3中的曲線可以看出,布局對(duì)設(shè)計(jì)性能有主要的影響(稱它為一階影響),布線有相對(duì)小的影響。
布局努力對(duì)性能有主要的影響,而布線努力有相對(duì)小的影響。
為了決定最佳的布局布線努力程度,設(shè)計(jì)者應(yīng)該遵循這個(gè)過程:
1)設(shè)置布局布線努力程度為最小。2)運(yùn)行布局布線確定是否最壞條件的時(shí)序是由于次優(yōu)的布局圖,不是由于過大的邏輯層次。
3)增量布局努力直到時(shí)序滿足,或者最大的努力已經(jīng)達(dá)到。
4)如果最大布局努力的時(shí)序不滿足,開始增量地增加布線的努力。
5)如果時(shí)序閉合不可以滿足,重新回到設(shè)計(jì)的結(jié)構(gòu)。
6)如果要求高的布線努力來滿足時(shí)序,回到設(shè)計(jì)結(jié)構(gòu)優(yōu)化時(shí)序(見第1章)可能是好的主意。
?
審核編輯:黃飛
?
評(píng)論