基于DSP+FPGA協(xié)處理架構(gòu)的無(wú)線子系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
您可以顯著提高無(wú)線系統(tǒng)中信號(hào)處理功能的性能。怎樣提高呢?有效方法是利用FPGA結(jié)構(gòu)的靈活性和目前受益于并行處理的FPGA架構(gòu)中的嵌入式DSP模塊。
常見(jiàn)于無(wú)線應(yīng)用中這類處理包括有限沖激響應(yīng)(FIR)濾波、快速傅里葉變換(FFT)、數(shù)字上下變頻和前向誤差校正(FEC)。Xilinx? Virtex-4和Virtex-5架構(gòu)提供多達(dá)512個(gè)并行嵌入式DSP乘法器,這些乘法器的工作頻率高于500MHz,最高可提供256 GMAC的DSP性能。
將需要高速并行處理的工作卸載給FPGA,而將需要高速串行處理的工作留給處理器,這樣即可在降低系統(tǒng)要求的同時(shí)優(yōu)化整體系統(tǒng)的性價(jià)比。
子系統(tǒng)劃分選擇方案
FPGA可與DSP處理器一起使用,作為獨(dú)立的預(yù)處理器(有時(shí)是后處理器)器件,或者作為協(xié)處理器。在預(yù)處理架構(gòu)中,F(xiàn)PGA直接位于數(shù)據(jù)通路中負(fù)責(zé)信號(hào)預(yù)處理,預(yù)處理后的信號(hào)可以高效又經(jīng)濟(jì)地移交給DSP處理器進(jìn)行速率較低的后續(xù)處理。
在協(xié)處理架構(gòu)中,F(xiàn)PGA與DSP并列而置,后者將特定算法函數(shù)卸載給FPGA,以便實(shí)現(xiàn)比單獨(dú)采用DSP處理器能達(dá)到的速度更高的處理速度。FPGA的處理結(jié)果傳回DSP,或者送至其他器件進(jìn)一步進(jìn)行處理、傳輸或存儲(chǔ)(圖1)。
選擇預(yù)處理、后處理還是協(xié)處理,常常取決于在處理器和FPGA之間移動(dòng)數(shù)據(jù)所需的時(shí)序余量及其對(duì)整體延遲的影響。雖然協(xié)處理解決方案是設(shè)計(jì)人員最常考慮的拓?fù)浣Y(jié)構(gòu)(主要是因?yàn)镈SP可以更直接地控制數(shù)據(jù)移交過(guò)程),但這并不一定總是最佳的總體策略。
例如,最新的3G LTE規(guī)范將傳輸時(shí)間間隔(TTI)從HSDPA的2ms和WCDMA的10ms縮短到了1ms。這實(shí)質(zhì)上是要求從接收器一直到MAC層輸出之間的數(shù)據(jù)處理時(shí)間短于1,000?sec。
圖1:FPGA 用作預(yù)處理器和協(xié)處理器的解決方案
如圖2所示,在運(yùn)行速度為3.125Gbps的DSP上使用SRIO端口(使用8b/10b編碼,Turbo解碼功能需要200比特的額外開(kāi)銷)會(huì)造成230?sec的DSP到FPGA傳輸延遲(也就是說(shuō)TTI時(shí)段中有將近四分之一僅用來(lái)傳輸數(shù)據(jù))。加之其他可預(yù)見(jiàn)的延遲,為滿足這些系統(tǒng)時(shí)序,當(dāng)用戶為50個(gè)時(shí),所需的Turbo編解碼器性能就是高達(dá)75.8Mbps。
圖2:協(xié)處理數(shù)據(jù)傳輸延遲問(wèn)題的 LTE 示例
使用FPGA將Turbo編解碼器作為基本上獨(dú)立的后處理器來(lái)處理,不僅可消除DSP延遲,還能節(jié)省時(shí)間,因?yàn)椴恍枰愿邘捲贒SP和FPGA之間傳輸數(shù)據(jù)。這樣做可將Turbo解碼器的吞吐量降至47Mbps,因而可選用更多比較經(jīng)濟(jì)的器件,并且可以減少系統(tǒng)功耗。
另一項(xiàng)考慮是在XilinxFPGA上是否使用軟嵌入式或硬嵌入式處理器IP來(lái)卸載某些系統(tǒng)處理任務(wù),進(jìn)而可能進(jìn)一步減少成本、功耗和占用空間。有了如此大量的信號(hào)處理資源,就可以在DSP處理器、FPGA可配置邏輯塊(CLB)、嵌入式FPGA DSP模塊和FPGA嵌入式處理器之間更好地分配各種復(fù)雜功能(如基帶處理中的復(fù)雜功能)。Xilinx提供了兩種類型的嵌入式處理器:MicroBlaze軟核處理器(常用于系統(tǒng)控制)和性能更高的PowerPC硬核嵌入式處理器(用于更復(fù)雜的任務(wù))。
FPGA嵌入式處理器提供的有利條件允許將所有非關(guān)鍵性操作都合并到在嵌入式處理器上運(yùn)行的軟件中,從而盡量減少整體系統(tǒng)所需的硬件資源總量。
軟件和IP的重要性
關(guān)鍵問(wèn)題是如何將這種潛在能力全部釋放出來(lái)。必須考慮需要用哪些軟件對(duì)問(wèn)題的復(fù)雜性進(jìn)行抽象以及可以使用哪些IP,應(yīng)該考慮利用FPGA為關(guān)鍵部分提供最佳解決方案。
Xilinx致力于開(kāi)發(fā)行業(yè)領(lǐng)先的工具和體系,能夠在比HDL工具(如MATLAB模型和C代碼)所能提供的更高的抽象層上實(shí)現(xiàn)高效的FPGA解決方案。利用Xilinx專門(mén)用于DSP的系統(tǒng)生成開(kāi)發(fā)工具和AccelDSP綜合工具,可以盡可能無(wú)縫實(shí)現(xiàn)從算法到硅片的鏈接。
目前有一個(gè)日益重要的工具提供商團(tuán)隊(duì),其產(chǎn)品通過(guò)C/C++到邏輯門(mén)的設(shè)計(jì)流程把開(kāi)發(fā)提升到電子系統(tǒng)級(jí)(ESL)。ESL設(shè)計(jì)工具的目的是提供一種完備的系統(tǒng)級(jí)方法,以便生成和集成硬件加速功能以及控制這些功能的處理器的控制代碼。
沒(méi)有哪一種高級(jí)語(yǔ)言或軟件工具能適合當(dāng)今復(fù)雜系統(tǒng)中所見(jiàn)的所有不同單元。語(yǔ)言和設(shè)計(jì)流程的選擇取決于客戶,有時(shí)取決于具體的工程師。因此,Xilinx開(kāi)發(fā)了一套齊全的集成功能,以滿足客戶需求并提供最佳設(shè)計(jì)環(huán)境(見(jiàn)圖3)。
圖3:系統(tǒng)級(jí)到 FPGA 設(shè)計(jì)流程
本文小結(jié)
另外,Xilinx正在斥巨資提供一套功能廣泛的高價(jià)值IP、電路板和參考設(shè)計(jì),以涵蓋射頻卡和基帶應(yīng)用中的許多關(guān)鍵部分,其中包括FFT/iFFT、調(diào)制、數(shù)字上下變頻和波峰系數(shù)的降低電路等。
這一重點(diǎn)舉措的一個(gè)例子是開(kāi)發(fā)針對(duì)特定無(wú)線標(biāo)準(zhǔn)和FPGA架構(gòu)優(yōu)化的行業(yè)領(lǐng)先的高性能FEC功能,如Turbo編碼器和解碼器。正如我們?cè)诜治?GLTE延遲和Turbo解碼器流量要求時(shí)所示,F(xiàn)EC功能的硬件加速及其對(duì)系統(tǒng)架構(gòu)的作用在現(xiàn)代無(wú)線設(shè)備設(shè)計(jì)中是日漸緊要的當(dāng)務(wù)之需。
雖然一些專家級(jí)DSP處理器陸續(xù)以嵌入式模塊的形式集成這類功能,但是,從制訂出符合新無(wú)線標(biāo)準(zhǔn)的FEC功能參數(shù)到形成嵌入式加速模塊出現(xiàn)在硅片中,通常需要好幾個(gè)月。一旦實(shí)現(xiàn)了嵌入,也還會(huì)有遺留的難題,偶爾還會(huì)有嵌入式模塊中的功能并非都能按要求工作的局面出現(xiàn)。同時(shí),標(biāo)準(zhǔn)演化迅速,現(xiàn)標(biāo)準(zhǔn)中不時(shí)納入一些固定嵌入式模塊不能支持的新要求。