基于FPGA的DSP設(shè)計(jì)方法
DSP正在成為一種幾乎無處不在的技術(shù),不僅應(yīng)用在眾多消費(fèi)電子、汽車與電話產(chǎn)品中,而且也進(jìn)入越來越先進(jìn)的設(shè)備。
諸如無線基站、雷達(dá)信號(hào)處理、指紋識(shí)別以及軟件無線電等應(yīng)用都要求極高的處理能力。這些新類型的高性能DSP應(yīng)用推動(dòng)獨(dú)立處理器的性能走高,而為了提升性能,硬件解決方案也在不斷發(fā)展。
在90年代初,設(shè)計(jì)者面臨的挑戰(zhàn)是,如何采用多個(gè)處理器以匯聚更多的處理能力,從而滿足他們的性能要求。但是在協(xié)調(diào)多個(gè)處理器的功能時(shí),系統(tǒng)級(jí)設(shè)計(jì)變得極為困難,更不用說這種方法既昂貴又浪費(fèi)資源。
當(dāng)?shù)谝环N實(shí)現(xiàn)DSP的FPGA出現(xiàn)時(shí),DSP設(shè)計(jì)者開始利用這種器件來支援處理器的能力。在這種方法中,F(xiàn)PGA通過加速DSP算法的關(guān)鍵部分(這對(duì)性能至關(guān)重要),可以補(bǔ)充處理器的不足。
今天的專用FPGA,如Xilinx公司的Virtex 4或Altera公司的Stratix II等蘊(yùn)藏著巨大的潛力,可通過并行化來提高性能。的確,DSP專用FPGA技術(shù)已顯示出可提供比其它實(shí)現(xiàn)方案高100倍的性能優(yōu)勢(shì)(表1)。
圖1:FPGA提供100倍于DSP的
MACOPS(每秒乘/加運(yùn)算數(shù))。MACOPS是
時(shí)鐘頻率與乘法器個(gè)數(shù)的乘積。
因此,在FPGA中包含一顆標(biāo)準(zhǔn)DSP的情況變得越來越普遍,而且預(yù)計(jì)以此種方式來使用FPGA的設(shè)計(jì)將迅速增加。
設(shè)計(jì)挑戰(zhàn)
不過,伴隨著這種強(qiáng)大的硬件能力,設(shè)計(jì)者面臨如何有效實(shí)現(xiàn)這些基于FPGA的DSP系統(tǒng)的問題。這種大型的復(fù)雜設(shè)計(jì)對(duì)傳統(tǒng)的 DSP設(shè)計(jì)方法提出了挑戰(zhàn)。這在很大程度上是因?yàn)橐韵率聦?shí),即在DSP應(yīng)用中,傳統(tǒng)的FPGA設(shè)計(jì)流程沒有充分利用一個(gè)高效設(shè)計(jì)流程的兩個(gè)關(guān)鍵要素:綜合技術(shù)與可移植IP。
那些利用綜合技術(shù)來設(shè)計(jì)ASIC的人都很清楚綜合技術(shù)的優(yōu)勢(shì)。對(duì)基于FPGA的DSP來說,該技術(shù)是關(guān)鍵,它使設(shè)計(jì)進(jìn)入處于高級(jí)的抽象水平并能自動(dòng)探索面積與性能之間的折衷??焖僭O(shè)計(jì)進(jìn)入與高抽象水平及自動(dòng)化的結(jié)合,不僅能提供單一的設(shè)計(jì)示例,而且還能提供各種可供選擇的實(shí)現(xiàn)結(jié)果。
對(duì)于性能優(yōu)先于面積的應(yīng)用來說,它可能需要包含數(shù)百個(gè)乘法器的實(shí)現(xiàn)方案。這種方法將具有很快的速度,但也會(huì)消耗大量硅片面積。同樣,對(duì)于那些對(duì)面積更敏感的應(yīng)用來說,實(shí)現(xiàn)方案應(yīng)使用性能較低、數(shù)量較少的乘法器,以得到占位面積更小的結(jié)果。這些類型的折衷對(duì)基于FPGA的高級(jí) DSP的開發(fā)來說至關(guān)重要,因而要求有功能強(qiáng)大的工具。
高效DSP開發(fā)的另一個(gè)關(guān)鍵要素是擁有恰當(dāng)?shù)臉?gòu)建模塊或IP。適合于這些應(yīng)用的IP具有兩個(gè)主要屬性:可擴(kuò)展性與可移植性。
與適用性相對(duì)較低的同類IP相比,可擴(kuò)展IP使設(shè)計(jì)者無需犧牲效率即能構(gòu)建定制IP功能。新功能模塊是高效的,因?yàn)樵诤罄m(xù)的綜合過程中,未用的或不必要的部分將被優(yōu)化掉。
可移植性也能保證效率。DSP設(shè)計(jì)者必須能在設(shè)計(jì)出算法以后,無需進(jìn)行修改即可在任何FPGA供應(yīng)商的產(chǎn)品上運(yùn)行它們。這種可移植性將提供極大的效率與自由度,以方便選擇一種最佳實(shí)現(xiàn)方案。
DSP驗(yàn)證也構(gòu)成挑戰(zhàn)。當(dāng)驗(yàn)證DSP時(shí),信號(hào)調(diào)試與分析變得更復(fù)雜,并不僅僅限于檢查時(shí)域、頻域曲線及散布圖。由于數(shù)字信號(hào)的特征取決于其采樣時(shí)間和離散幅度,DSP驗(yàn)證工具必須能有效定義及操作多速率DSP應(yīng)用中的時(shí)間。
此外,它們還必須易于從全精度浮點(diǎn)仿真轉(zhuǎn)換到有限字長(zhǎng)定點(diǎn)仿真。同時(shí),它們還需要一種用于對(duì)DSP算法進(jìn)行建模的語(yǔ)言,包括對(duì)時(shí)間、定點(diǎn)資源與并行性等概念的本地支持。
整合方法
設(shè)計(jì)技術(shù)方面的最新進(jìn)展為解決DSP設(shè)計(jì)者的獨(dú)特挑戰(zhàn)提供了令人興奮的解決方案。由Mathworks公司提供的 Simulink是一種基于數(shù)學(xué)模型的系統(tǒng)設(shè)計(jì)環(huán)境,為DSP設(shè)計(jì)者提供了強(qiáng)大的建模與仿真功能。該環(huán)境能處理多速率離散時(shí)間定義與管理以及單源浮點(diǎn)仿真等DSP問題。
圖2:基于FPGA的DSP設(shè)計(jì)流程。
對(duì)于FPGA實(shí)現(xiàn)來說,DSP綜合是一項(xiàng)將DSP驗(yàn)證與最佳DSP實(shí)現(xiàn)鏈接在一起的關(guān)鍵創(chuàng)新。借助嵌入在Synplify DSP工具中的能力,設(shè)計(jì)者可以采用一種自動(dòng)式且獨(dú)立于器件的方法來檢查實(shí)現(xiàn)過程的折衷并完成目標(biāo)映射。
將DSP綜合與Simulink聯(lián)合使用,可將系統(tǒng)架構(gòu)師與硬件設(shè)計(jì)師的專長(zhǎng)整合到一個(gè)公共環(huán)境中。系統(tǒng)架構(gòu)師可以為Simulink創(chuàng)建一個(gè)獨(dú)立于供應(yīng)商的模型,使設(shè)計(jì)進(jìn)入點(diǎn)保持在純算法層面,從而將他的注意力集中在更高層次的設(shè)計(jì)功能上。
當(dāng)模型轉(zhuǎn)交給硬件設(shè)計(jì)師時(shí),規(guī)范沒有任何架構(gòu)含義。只要建模環(huán)境中的DSP驗(yàn)證工具允許無縫集成綜合引擎,硬件設(shè)計(jì)師無需修改驗(yàn)證源就可檢查架構(gòu)方面的折衷。
由于驗(yàn)證源保持一致,所以系統(tǒng)架構(gòu)師不用擔(dān)心硬件實(shí)現(xiàn)問題,而硬件設(shè)計(jì)師也不必費(fèi)勁地去研究DSP算法規(guī)范。此外,這還能保證設(shè)計(jì)完整性與最優(yōu)化,并提高兩個(gè)團(tuán)隊(duì)成員的工作效率。
該設(shè)計(jì)方法的關(guān)鍵是采用通用DSP庫(kù)。供應(yīng)商專有的IP會(huì)使算法設(shè)計(jì)陷入到不必要的實(shí)現(xiàn)細(xì)節(jié)中。采用一個(gè)與架構(gòu)參數(shù)無關(guān)的通用DSP功能庫(kù),設(shè)計(jì)將根據(jù)高層規(guī)范來產(chǎn)生輸出。
借助一個(gè)高層功能庫(kù),甚至與DSP功能有關(guān)的延時(shí)也能被推遲到架構(gòu)優(yōu)化階段來處理。這是通過DSP綜合來完成的。諸如DSP 綜合、Simulink及可移植庫(kù)等創(chuàng)新都是改進(jìn)DSP設(shè)計(jì)的關(guān)鍵元素,但將這些能力集成到一個(gè)總的方法學(xué)中也非常關(guān)鍵。最佳的DSP設(shè)計(jì)流程可為現(xiàn)有設(shè)計(jì)能力增加通用庫(kù)以及整合DSP綜合與Simulink的能力(參見圖2)。
在設(shè)計(jì)規(guī)范時(shí),系統(tǒng)架構(gòu)師只需在純粹的算法抽象層面上操作。通過使用功能塊,設(shè)計(jì)師可用類似的DSP概念來捕獲算法。
在設(shè)計(jì)流程的后期,由于Simulink具有DSP驗(yàn)證環(huán)境特性,算法驗(yàn)證因而變得非常容易??梢暬?、調(diào)試以及內(nèi)置的加速器等能力使設(shè)計(jì)者更容易實(shí)現(xiàn)離散時(shí)間設(shè)計(jì)的快速仿真。
這種設(shè)計(jì)方法的引擎就是DSP綜合,它決定了面積、性能等系統(tǒng)級(jí)目標(biāo)。這個(gè)步驟旨在創(chuàng)造出一種能消耗最少的資源并達(dá)到所需性能的架構(gòu)。通過采用折疊、系統(tǒng)范圍重定時(shí)以及增加延時(shí)等適當(dāng)?shù)南到y(tǒng)級(jí)優(yōu)化技術(shù),DSP綜合能滿足系統(tǒng)級(jí)性能目標(biāo)。
所得到的架構(gòu)可由獨(dú)立于供應(yīng)商的可綜合RTL代碼來生成。由于設(shè)計(jì)保留了獨(dú)立于供應(yīng)商的特性,RTL綜合工具的全部能力可以被用于執(zhí)行進(jìn)一步的設(shè)計(jì)優(yōu)化。
與傳統(tǒng)設(shè)計(jì)流程相比,上述DSP設(shè)計(jì)方法具有明顯的優(yōu)勢(shì)。隨著設(shè)計(jì)規(guī)模增大,僅是由于其無延時(shí)的算法及無需時(shí)間來同步多條路徑,DSP綜合流程就超過了傳統(tǒng)方法。
比較DSP綜合與傳統(tǒng)流程的設(shè)計(jì)結(jié)果表明,即使在不同的優(yōu)化情況下,前者也一樣有改進(jìn)。當(dāng)在DSP綜合期間不執(zhí)行高級(jí)優(yōu)化時(shí),所得到的任何優(yōu)化主要?dú)w功于RTL綜合。即使沒有DSP綜合優(yōu)化,在所有測(cè)試電路中采用的邏輯單元數(shù)量也會(huì)一如既往地減少,而性能也會(huì)得到改善。
我們需要考慮幾種不同的優(yōu)化情況。當(dāng)允許進(jìn)行資源共享時(shí),常常希望在資源利用上有明顯的改進(jìn),即使以犧牲某些性能為代價(jià)。測(cè)試電路已經(jīng)證明了這一點(diǎn),即以性能的明顯下降為代價(jià)可以顯著減少消耗的資源。
這種優(yōu)化技術(shù)最適合在資源有限但允許性能有一定下降的情況下使用。重定時(shí)優(yōu)化技術(shù)是增強(qiáng)DSP綜合結(jié)果的另一個(gè)選項(xiàng)。采用這種方法時(shí),盡管可能要以消耗更多的資源為代價(jià),但與單獨(dú)的DSP綜合及傳統(tǒng)設(shè)計(jì)方法相比,性能將有顯著提升。
為達(dá)到定時(shí)目的,一些DSP綜合解決方案在架構(gòu)層上重新分配寄存器并引入一些管道。采用門級(jí)重定時(shí)可以補(bǔ)充這種高級(jí)定時(shí),兩者的結(jié)合使用將獲得最佳的優(yōu)化結(jié)果,且無需增加任何資源即可獲得明顯的性能改進(jìn)。