《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的DSP設(shè)計(jì)方法
基于FPGA的DSP設(shè)計(jì)方法
摘要: 當(dāng)?shù)谝环N實(shí)現(xiàn)DSP的FPGA出現(xiàn)時(shí),,DSP設(shè)計(jì)者開(kāi)始利用這種器件來(lái)支援處理器的能力,。在這種方法中,F(xiàn)PGA通過(guò)加速DSP算法的關(guān)鍵部分(這對(duì)性能至關(guān)重要),,可以補(bǔ)充處理器的不足,。
關(guān)鍵詞: FPGA DSP
Abstract:
Key words :

DSP正在成為一種幾乎無(wú)處不在的技術(shù),,不僅應(yīng)用在眾多消費(fèi)電子、汽車(chē)與電話產(chǎn)品中,,而且也進(jìn)入越來(lái)越先進(jìn)的設(shè)備,。

諸如無(wú)線基站、雷達(dá)信號(hào)處理,、指紋識(shí)別以及軟件無(wú)線電等應(yīng)用都要求極高的處理能力,。這些新類(lèi)型的高性能DSP應(yīng)用推動(dòng)獨(dú)立處理器的性能走高,而為了提升性能,,硬件解決方案也在不斷發(fā)展,。

在90年代初,設(shè)計(jì)者面臨的挑戰(zhàn)是,,如何采用多個(gè)處理器以匯聚更多的處理能力,,從而滿足他們的性能要求。但是在協(xié)調(diào)多個(gè)處理器的功能時(shí),,系統(tǒng)級(jí)設(shè)計(jì)變得極為困難,,更不用說(shuō)這種方法既昂貴又浪費(fèi)資源。

當(dāng)?shù)谝环N實(shí)現(xiàn)DSP的FPGA出現(xiàn)時(shí),,DSP設(shè)計(jì)者開(kāi)始利用這種器件來(lái)支援處理器的能力,。在這種方法中,F(xiàn)PGA通過(guò)加速DSP算法的關(guān)鍵部分(這對(duì)性能至關(guān)重要),,可以補(bǔ)充處理器的不足,。

今天的專(zhuān)用FPGA,如Xilinx公司的Virtex 4或Altera公司的Stratix II等蘊(yùn)藏著巨大的潛力,,可通過(guò)并行化來(lái)提高性能,。的確,DSP專(zhuān)用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的情況變得越來(lái)越普遍,,而且預(yù)計(jì)以此種方式來(lái)使用FPGA的設(shè)計(jì)將迅速增加,。


設(shè)計(jì)挑戰(zhàn)


不過(guò),伴隨著這種強(qiáng)大的硬件能力,,設(shè)計(jì)者面臨如何有效實(shí)現(xiàn)這些基于FPGA的DSP系統(tǒng)的問(wèn)題,。這種大型的復(fù)雜設(shè)計(jì)對(duì)傳統(tǒng)的 DSP設(shè)計(jì)方法提出了挑戰(zhàn)。這在很大程度上是因?yàn)橐韵率聦?shí),,即在DSP應(yīng)用中,,傳統(tǒng)的FPGA設(shè)計(jì)流程沒(méi)有充分利用一個(gè)高效設(shè)計(jì)流程的兩個(gè)關(guān)鍵要素:綜合技術(shù)與可移植IP。


那些利用綜合技術(shù)來(lái)設(shè)計(jì)ASIC的人都很清楚綜合技術(shù)的優(yōu)勢(shì),。對(duì)基于FPGA的DSP來(lái)說(shuō),,該技術(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)用來(lái)說(shuō),它可能需要包含數(shù)百個(gè)乘法器的實(shí)現(xiàn)方案,。這種方法將具有很快的速度,,但也會(huì)消耗大量硅片面積。同樣,,對(duì)于那些對(duì)面積更敏感的應(yīng)用來(lái)說(shuō),,實(shí)現(xiàn)方案應(yīng)使用性能較低、數(shù)量較少的乘法器,,以得到占位面積更小的結(jié)果,。這些類(lèi)型的折衷對(duì)基于FPGA的高級(jí) DSP的開(kāi)發(fā)來(lái)說(shuō)至關(guān)重要,因而要求有功能強(qiáng)大的工具,。


高效DSP開(kāi)發(fā)的另一個(gè)關(guān)鍵要素是擁有恰當(dāng)?shù)臉?gòu)建模塊或IP,。適合于這些應(yīng)用的IP具有兩個(gè)主要屬性:可擴(kuò)展性與可移植性。


與適用性相對(duì)較低的同類(lèi)IP相比,,可擴(kuò)展IP使設(shè)計(jì)者無(wú)需犧牲效率即能構(gòu)建定制IP功能,。新功能模塊是高效的,因?yàn)樵诤罄m(xù)的綜合過(guò)程中,,未用的或不必要的部分將被優(yōu)化掉,。


可移植性也能保證效率。DSP設(shè)計(jì)者必須能在設(shè)計(jì)出算法以后,,無(wú)需進(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問(wèn)題。


圖2:基于FPGA的DSP設(shè)計(jì)流程,。



對(duì)于FPGA實(shí)現(xiàn)來(lái)說(shuō),,DSP綜合是一項(xiàng)將DSP驗(yàn)證與最佳DSP實(shí)現(xiàn)鏈接在一起的關(guān)鍵創(chuàng)新。借助嵌入在Synplify DSP工具中的能力,,設(shè)計(jì)者可以采用一種自動(dòng)式且獨(dú)立于器件的方法來(lái)檢查實(shí)現(xiàn)過(guò)程的折衷并完成目標(biāo)映射,。


將DSP綜合與Simulink聯(lián)合使用,可將系統(tǒng)架構(gòu)師與硬件設(shè)計(jì)師的專(zhuān)長(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ī)范沒(méi)有任何架構(gòu)含義。只要建模環(huán)境中的DSP驗(yàn)證工具允許無(wú)縫集成綜合引擎,,硬件設(shè)計(jì)師無(wú)需修改驗(yàn)證源就可檢查架構(gòu)方面的折衷,。


由于驗(yàn)證源保持一致,所以系統(tǒng)架構(gòu)師不用擔(dān)心硬件實(shí)現(xiàn)問(wèn)題,,而硬件設(shè)計(jì)師也不必費(fèi)勁地去研究DSP算法規(guī)范,。此外,這還能保證設(shè)計(jì)完整性與最優(yōu)化,,并提高兩個(gè)團(tuán)隊(duì)成員的工作效率,。


該設(shè)計(jì)方法的關(guān)鍵是采用通用DSP庫(kù),。供應(yīng)商專(zhuān)有的IP會(huì)使算法設(shè)計(jì)陷入到不必要的實(shí)現(xiàn)細(xì)節(jié)中。采用一個(gè)與架構(gòu)參數(shù)無(wú)關(guān)的通用DSP功能庫(kù),,設(shè)計(jì)將根據(jù)高層規(guī)范來(lái)產(chǎn)生輸出,。


借助一個(gè)高層功能庫(kù),甚至與DSP功能有關(guān)的延時(shí)也能被推遲到架構(gòu)優(yōu)化階段來(lái)處理,。這是通過(guò)DSP綜合來(lái)完成的,。諸如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的能力(參見(jiàn)圖2)。


在設(shè)計(jì)規(guī)范時(shí),,系統(tǒng)架構(gòu)師只需在純粹的算法抽象層面上操作,。通過(guò)使用功能塊,設(shè)計(jì)師可用類(lèi)似的DSP概念來(lái)捕獲算法,。


在設(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),。通過(guò)采用折疊、系統(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代碼來(lái)生成。由于設(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ī)模增大,,僅是由于其無(wú)延時(shí)的算法及無(wú)需時(shí)間來(lái)同步多條路徑,DSP綜合流程就超過(guò)了傳統(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綜合,。即使沒(méi)有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)層上重新分配寄存器并引入一些管道,。采用門(mén)級(jí)重定時(shí)可以補(bǔ)充這種高級(jí)定時(shí),,兩者的結(jié)合使用將獲得最佳的優(yōu)化結(jié)果,且無(wú)需增加任何資源即可獲得明顯的性能改進(jìn),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。