借助物理綜合提高FPGA設(shè)計(jì)效能
隨著FPGA密度的增加,系統(tǒng)設(shè)計(jì)人員能夠開發(fā)規(guī)模更大、更復(fù)雜的設(shè)計(jì),從而將密度優(yōu)勢發(fā)揮到最大。這些大規(guī)模設(shè)計(jì)基于這樣的設(shè)計(jì)需求——需要在無線通道卡或者線路卡等現(xiàn)有應(yīng)用中加入新功能,或者通過把兩種芯片功能合并到一個(gè)器件中,減小電路板面積,或者針對(duì)新應(yīng)用開發(fā)新設(shè)計(jì)。
這些不同的設(shè)計(jì)含有應(yīng)用程序已有代碼,或者是對(duì)延時(shí)要求較高的DSP。對(duì)于這類設(shè)計(jì),綜合工具可能無法優(yōu)化設(shè)計(jì),使其達(dá)到最優(yōu),導(dǎo)致關(guān)鍵通路出現(xiàn)較長的延時(shí)。關(guān)鍵通路延時(shí)較長的原因在于邏輯綜合工具依靠估算的延時(shí)來綜合設(shè)計(jì)。
這些延時(shí)較長的關(guān)鍵通路帶來了時(shí)序逼近問題,導(dǎo)致性能劣化,迫使設(shè)計(jì)人員重新編寫RTL代碼以改進(jìn)這些延時(shí)較長的關(guān)鍵通路。此外,用戶在得到滿足時(shí)序規(guī)范的最佳RTL代碼之前,還需要進(jìn)行多次迭代。這就進(jìn)一步推遲了產(chǎn)品面市時(shí)間。
邏輯利用率較高的設(shè)計(jì)中出現(xiàn)的另一問題是布線擁塞。設(shè)計(jì)人員必須重新編寫RTL或者在布局布線工具中嘗試不同的設(shè)置,以提高這些關(guān)鍵通路的性能。這種“嘗試出錯(cuò)”的方法也導(dǎo)致產(chǎn)品推遲面市,降低了效能。
設(shè)計(jì)人員在進(jìn)行時(shí)序逼近時(shí),這兩個(gè)問題的確是很大的挑戰(zhàn),時(shí)序逼近成為系統(tǒng)設(shè)計(jì)人員面臨的主要難題。能夠同時(shí)解決這兩個(gè)問題并提高性能的一種解決方案是采用物理綜合工具。物理綜合工具由FPGA供應(yīng)商提供,有時(shí)也由第三方EDA工具供應(yīng)商提供。物理綜合工具的主要功能是以盡可能少的迭代次數(shù),通過減少關(guān)鍵通路的數(shù)量來提高時(shí)序逼近(即性能),從而縮短了產(chǎn)品面市時(shí)間。
物理綜合工具的設(shè)計(jì)流程如圖1所示,按以下方式進(jìn)行工作。邏輯綜合工具使用邏輯復(fù)制等算法復(fù)制扇出較多的邏輯,對(duì)較長的邏輯通路中的寄存器重新定時(shí),以提高性能。物理綜合工具不同于邏輯綜合工具,它使用相似的算法,利用精確的延時(shí)和精確的信息來優(yōu)化關(guān)鍵通路。邏輯綜合工具更多的依靠全局延時(shí)估算,而物理綜合工具使用精確的延時(shí)。
圖1. 物理綜合工具是整個(gè)綜合設(shè)計(jì)流程的一部分。
圖1顯示了物理綜合工具也是整個(gè)綜合流程的一部分。物理綜合工具作為綜合工具的一部分在邏輯綜合之后運(yùn)行,為進(jìn)一步澄清概念,可以把它稱為早期物理綜合。在這一流程中,邏輯綜合之后,工具對(duì)整個(gè)設(shè)計(jì)的布局布線進(jìn)行建模,再次使用重新定時(shí)和復(fù)制等算法來提高關(guān)鍵通路的性能。某些EDA供應(yīng)商開發(fā)了基于這一級(jí)精度的工具來解決時(shí)序逼近問題。
圖2顯示了另一物理綜合工具流程,在典型流程中,布局階段之后首先調(diào)用這一流程。在這一階段,對(duì)設(shè)計(jì)進(jìn)行全面布局,對(duì)互聯(lián)延時(shí)進(jìn)行延時(shí)估算,因此,能夠更精確地預(yù)測關(guān)鍵通路。通過使用上面介紹的算法,可以改進(jìn)關(guān)鍵通路來滿足性能要求。不需要修改RTL代碼的任何一行就可以完成這些處理工作。在綜合工具中有可能以不精確的延時(shí)對(duì)寄存器重新定時(shí),導(dǎo)致性能下降,而通過對(duì)設(shè)計(jì)進(jìn)行布局,使物理工具做出智能判斷,從而有助于預(yù)測對(duì)哪些寄存器重新定時(shí),提高性能。
圖2. Quartus II設(shè)計(jì)軟件中的物理綜合工具設(shè)置。
目前的FPGA體系結(jié)構(gòu)有兩個(gè)級(jí)別或者層次。第一級(jí)是邏輯模塊,它是LAB邏輯單元組或者集合。層次的第二級(jí)由邏輯單元組成,每個(gè)邏輯單元含有一對(duì)寄存器,一對(duì)查找表和一對(duì)全加器。在Altera FPGA中,這類邏輯單元被稱為自適應(yīng)邏輯模塊(ALM)。這些邏輯模塊堆疊成陣列的形式,通過一定數(shù)量的連線(布線)與片內(nèi)存儲(chǔ)器模塊、DSP模塊和IO模塊連接起來,從而構(gòu)成了FPGA體系結(jié)構(gòu)。
在典型設(shè)計(jì)流程中,進(jìn)行兩次布局。第一步是在邏輯模塊級(jí)對(duì)整個(gè)設(shè)計(jì)進(jìn)行布局。完成后,布局算法將邏輯放在邏輯單元級(jí)。由于物理綜合工具依靠精確的信息,因此經(jīng)過第二次布局后,很容易看出物理綜合結(jié)果得到了提高,產(chǎn)生質(zhì)量更好的結(jié)果(QoR),從而提高了效能。
物理綜合工具能夠提高效能的另一應(yīng)用是結(jié)合漸進(jìn)式設(shè)計(jì)流程進(jìn)行設(shè)計(jì)。在這種方法中,不是在整個(gè)設(shè)計(jì)中使用物理綜合,而是將其應(yīng)用到每個(gè)模塊上。由于物理綜合工具重點(diǎn)放在它需要的模塊上,因此,這不但有助于縮短編譯時(shí)間,而且還提高了性能。
物理綜合工具是Altera Quartus II布局布線工具的一部分。物理綜合工具為用戶提供優(yōu)化選擇和努力等級(jí),以提高性能和效能。下面列出了用戶可以控制的某些優(yōu)化選項(xiàng)。
可提高性能的物理綜合
組合邏輯物理綜合:工具基于精確的信息來進(jìn)一步優(yōu)化組合邏輯。這一選項(xiàng)使Quartus II物理綜合工具能夠重新綜合設(shè)計(jì)中的組合邏輯,縮短關(guān)鍵通路的延時(shí),提高性能。
異步流水線物理綜合:裝入和清除等流水線異步信號(hào)。這一選項(xiàng)使Quartus II物理綜合工具能夠在裝入和清除信號(hào)中插入流水線寄存器,提高性能。
用于寄存器的物理綜合
重新定時(shí):使工具能夠自動(dòng)進(jìn)行寄存器平衡。這一選項(xiàng)使Quartus II能夠在組合電路間移動(dòng)寄存器,提高性能。
寄存器復(fù)制:對(duì)扇出較多寄存器進(jìn)行復(fù)制。這一選項(xiàng)使Quartus II能夠根據(jù)布局信息來復(fù)制寄存器,提高性能。
用于適配的物理綜合
組合邏輯物理綜合:這是對(duì)組合電路進(jìn)行第二次優(yōu)化。Quartus II對(duì)組合電路進(jìn)行第二次優(yōu)化,以幫助適配設(shè)計(jì)。
完成邏輯至存儲(chǔ)器映射:這將組合邏輯映射到存儲(chǔ)器,從而減小面積。Quartus II將組合邏輯自動(dòng)映射到未使用的存儲(chǔ)器模塊中,以減小面積,適配設(shè)計(jì)。
Quartus II還提供漸進(jìn)式設(shè)計(jì)流程,同時(shí)支持自上而下和自下而上的設(shè)計(jì)流程。這類流程用于縮短編譯時(shí)間,提高性能。
本文小結(jié)
當(dāng)今的大部分企業(yè)都希望在競爭中能夠?qū)⒆约旱漠a(chǎn)品率先推向市場。作為主動(dòng)戰(zhàn)略,提高效能和產(chǎn)品及時(shí)面市是任何產(chǎn)品獲得成功的關(guān)鍵。利用物理綜合工具來提高設(shè)計(jì)性能意味著更短的設(shè)計(jì)周期和更高的效能。能夠高效地使用這類工具的設(shè)計(jì)人員必將獲勝。
來源:洋國0次