基于FPGA的可配置通信平臺設計
【關(guān)鍵詞】:FPGA,配置,重構,DSP,SOPC
1 引言
為了適應通信應用要求的多樣性, 需要一種可以實(shí)現快速設計、快速驗證、快速移植的軟硬件驗證與測試平臺。該平臺可以提供通信系統最基本的硬件架構、軟件環(huán)境、靈活的接口以及系統可配置的設計功能,方便用戶(hù)根據應用要求在該平臺上設計和配置所需的通信系統,并測試該系統的功能和性能,進(jìn)而直接在該平臺上實(shí)現設計到設備的轉化。
該平臺的實(shí)現有基于DSP和基于FPGA兩種解決方案 [1]?;贒SP的實(shí)現方式中,固定的數據總線(xiàn)寬度是當前主流DSP處理器的一個(gè)瓶頸,且只適合于軟件可重構設計,此外還面臨并行性等問(wèn)題。相反,基于FPGA的實(shí)現方式既可以解決并行性和順序性的矛盾,又具有大容量、高速度、高靈活性和軟硬件重構的優(yōu)勢,故基于FPGA的解決方案更具實(shí)用性。
2 平臺設計
本開(kāi)發(fā)平臺采用基于FPGA的解決方案,利用Matlab、Modlesim以及Altera公司的綜合/配置/下載專(zhuān)用軟件等相關(guān)工具,在PC環(huán)境下構建出一個(gè)軟件開(kāi)發(fā)平臺,用于算法驗證和性能仿真;利用基于FPGA的硬件平臺――如Altera的DSP 開(kāi)發(fā)板――來(lái)完成設計的下載、驗證與測試;并通過(guò)定制的內嵌軟核CPU實(shí)現對系統內部各功能模塊和存儲器、I/O接口等資源模塊的配置和管理,從而達到按不同通信系統的要求和特點(diǎn)迅速完成設計、驗證和移植的目的,此外,還能靈活的修改、升級甚至重新配置。
2.1平臺的構建
設計涉及到具體的芯片信息,使得目前不同的FPGA芯片的設計流程有所不同,無(wú)法完全實(shí)現采用較為通用的軟件進(jìn)行前端設計(包括系統設計、算法開(kāi)發(fā)、功能仿真和綜合實(shí)現),采用芯片支持的專(zhuān)用軟件進(jìn)行后端設計(包括時(shí)序仿真、布局布線(xiàn)和下載)。因此,采用Altera的FPGA后,平臺組成分為三部分:基于PC的設計和測試軟件部分,設計和測試的硬件開(kāi)發(fā)板部分,觀(guān)測和其他輔助部分。
其中,基于PC的設計和測試軟件部分包括設計和測試的各種軟件,即:Matlab/Simulink、Modlesim、DspBuilder、SOPCBuilder、Quartus等;硬件開(kāi)發(fā)板則可用Altera公司的NIOS、ARM、DSP各種開(kāi)發(fā)系統,也可以根據需要自主開(kāi)發(fā)添加各種軟硬件應用接口并對外圍器件進(jìn)行調配后的FPGA開(kāi)發(fā)板;觀(guān)測和其他輔助部分包括平臺內觀(guān)測的人機界面等軟硬件、平臺外觀(guān)測的示波器或邏輯分析儀以及噪聲發(fā)生器、信號發(fā)生器、接收機等。
2.2平臺的設計測試流程
平臺的設計測試流程實(shí)現框圖如下圖1所示:
圖1
平臺的設計流程側重于系統的算法驗證和控制實(shí)現,其中算法部分主要通過(guò)DSP Builder實(shí)現,為圖中用實(shí)線(xiàn)連接部分;控制部分由Nios II IDE和SOPC Builder完成,為圖中短線(xiàn)連接部分。
平臺的測試流程主要結合開(kāi)發(fā)板實(shí)現設計指標的驗證,為圖中點(diǎn)線(xiàn)連接部分,有外部觀(guān)測和內部觀(guān)測兩種方法。其中,外部觀(guān)測通過(guò)外加示波器或邏輯分析儀完成;內部觀(guān)測可以通過(guò)平臺的人機操作界面完成,也可以通過(guò)配套軟件來(lái)實(shí)現,根據復雜度和測試內容的不同分為自動(dòng)流程和手動(dòng)流程。
自動(dòng)流程包括如下四個(gè)步驟[1]:(1)Matlab/Simulink/DspBuilder建模。(2)平臺仿真。(3)DspBuilder完成VHDL轉換、綜合、適配、下載。(4)嵌入式邏輯分析儀――SignalTap完成實(shí)時(shí)測試。手動(dòng)流程包括如下七個(gè)步驟:(1)Matlab/Simulink/DspBuilder建模。(2)平臺仿真。(3)DspBuilder完成VHDL轉換、綜合、適配。(4)Modlesim對TestBench功能仿真。(5)Quartus II完成適配、時(shí)序仿真。(6)芯片引腳鎖定、配置下載、編程。(7)嵌入式邏輯分析儀――SignalTap完成實(shí)時(shí)測試。
3可配置設計
在可重構系統中,硬件的配置信息可以類(lèi)似軟件程序一樣被動(dòng)態(tài)調用或修改,進(jìn)而達到電路的實(shí)時(shí)重構,這樣既保留了硬件的快速性,又兼具軟件的靈活性。因此,實(shí)時(shí)電路重構的實(shí)質(zhì)就是利用可編程器件能多次重復配置資源和功能的特性,既可以在運行時(shí)根據需要動(dòng)態(tài)改變系統的部分參數或部分電路結構,也可以通過(guò)重加載完成整個(gè)系統的軟硬件升級[2]。
整個(gè)系統的可配置內容和實(shí)現流程[3]如圖2所示:
圖2
如上圖所示,平臺的可配置設計主要體現在四個(gè)方面:參數的可重加載;模塊的可重選擇;系統的可重下載;硬件的可重定制。
參數的可重加載是針對類(lèi)型相同,參數不同的信號與系統,其系統結構基本不變,只是系統中模塊的參數可以重新進(jìn)行設置和調整。
模塊的可重選擇是對結構相似,類(lèi)型不同的信號,只對系統中相應的部分進(jìn)行重新加載或重新組合。
系統的可重下載是指:如果目前加載的系統用前面兩種調整方式依然不能滿(mǎn)足要求時(shí),則可以根據需要重新設計下載,或者在需要進(jìn)行系統升級時(shí)通過(guò)重新下載完成。
硬件的可重定制主要針對基于本平臺進(jìn)行嵌入式系統的開(kāi)發(fā),這也是本方案與傳統方案的最大區別之處。它通過(guò)采用Altera公司的SOPC Builder解決方案來(lái)實(shí)現。即將處理器、存儲器、I/O口、總線(xiàn)等系統設計需要的功能模塊集成在一個(gè)FPGA芯片上,從而構建出一個(gè)硬件可定制的片上系統。
4基于平臺的設計實(shí)例
下面我們結合簡(jiǎn)單全數字通用接收機設計實(shí)例來(lái)說(shuō)明該平臺可配置的特點(diǎn)和設計測試流程。
全數字通用接收機[4]的基本結構為:解調+解碼+數據恢復+配置控制。其中輸入信號的格式可以是連續或離散方式、可以是固定或可變速率;解碼方式為RS或Turbo或Viterbi;解調方式是M-PSK系列或M-QAM系列。如下圖3所示:
圖3
系統配置舉例:實(shí)現連續模式下,數據速率1Mbit/s,DQPSK調制,RS編碼,2Mhz載波,8dB信噪比,1%頻偏,1%相偏,16倍采樣輸出信號的同步、解調和解碼。模塊的選擇和參數的配置方法流程如前,配置后的系統[5][6]如下圖4所示:
圖4
具體算法實(shí)現:數據源采用連續或間斷的M序列模擬連續和突發(fā)信號,速率通過(guò)平臺時(shí)鐘控制;調制解調部分的數控振蕩器NCO、Fir濾波器和RS編解碼由IP core實(shí)現;軟件仿真階段,頻偏相偏通過(guò)調制端NCO的頻率和相位控制字實(shí)現,噪聲通過(guò)程序內加實(shí)現;硬件測試階段,頻差、相差、時(shí)鐘誤差、噪聲則在直接通過(guò)外接實(shí)際信號發(fā)生設備或噪聲源實(shí)現。
測試流程:仿真階段采用程序內加噪聲模擬并通過(guò)程序自行實(shí)時(shí)比較的方法,下載后測試則采用外加噪聲源后通過(guò)實(shí)時(shí)回讀數據并自動(dòng)比較的方法。其中回讀數據采用自動(dòng)流程,其原理是通過(guò)將設置為測試點(diǎn)的數據實(shí)時(shí)存儲到一定容量的片內RAM中,并利用下載線(xiàn)再讀回到軟件環(huán)境中進(jìn)行顯示、比較或存儲。
測試結果:圖5是在輸入信號的X、Y分路信號和合路后加噪前后的信號,圖6是收端恢復出X、Y路濾波前后的信號,圖7是收發(fā)兩端X、Y分路和合路后在硬件平臺上的回讀信號,其中第1、3、5行是輸入的X、Y和分路前的數據,第2、4、6行是恢復后的X、Y和合路后的數據,包含了硬件實(shí)際的延時(shí)。系統采用16倍采樣,圖5圖6觀(guān)測1024個(gè)采樣點(diǎn),圖7觀(guān)測1024個(gè)回讀采樣點(diǎn)。
圖5 圖6 圖7
5總結
本文采用實(shí)時(shí)軟硬件重構技術(shù)設計了一種基于FPGA的、通用可配置的通信開(kāi)發(fā)與測試平臺,其中,內嵌軟核CPU協(xié)調各模塊的工作和提供用戶(hù)接口,FPGA完成DSP運算等主要工作。并通過(guò)軟硬件的可配置能實(shí)現該平臺多用途和可升級的設計。
作為一種SOPC的解決方案,該平臺已經(jīng)完成了實(shí)際應用開(kāi)發(fā),并為各種通信系統從軟件仿真到硬件實(shí)現、從設計驗證到設備測試提供了一種實(shí)用、快速而又具高性?xún)r(jià)比的實(shí)現方法。
參考文獻
[1] SOPC技術(shù)實(shí)用教程,潘松 黃繼業(yè) 曾毓,清華大學(xué)出版社,2005。
[2] 一種可重構處理器的設計,董培良 俞承芳,復旦學(xué)報(自然科學(xué)版),2004年2月第43 卷 第1期。
[3] 挑戰SOC―基于NIOS的SOPC設計與實(shí)踐,周博 邱衛東 陳燕 周學(xué)功 方茁等,清華大學(xué)出版社,2004。
[4] Carrier frequency recovery in all-digital modems for burst-mode transmissions, Marco Luke, Ruggero Reggiannini, IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 43, NO. 2/3/4, 1995。
[5] 基于FPGA的QPSK解調器的設計與實(shí)現,趙海潮 周榮花 沈業(yè)兵,微計算機信息,2004年第20卷第7期。
[6] Advanced Electronic Communications Systems Sixth Edition(Sixth Edition),Wayne Tomasi,Publishing House of Electronics Industry,2004。
評論