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