基于FPGA部分動(dòng)態(tài)可重構(gòu)的信號(hào)解調(diào)系統(tǒng)的實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:針對(duì)調(diào)制樣式在不同環(huán)境下的變化,采用了FPGA部分動(dòng)態(tài)可重構(gòu)的新方法,通過(guò)對(duì)不同調(diào)制樣式信號(hào)的解調(diào)模塊的動(dòng)態(tài)加載,來(lái)實(shí)現(xiàn)了不同環(huán)境下針對(duì)不同調(diào)制樣式的解調(diào)這種方式比傳統(tǒng)的設(shè)計(jì)方式具有更高的靈活性、可擴(kuò)展性,并減低了成本和功耗該設(shè)計(jì)方案同時(shí)也介紹了FPGA部分動(dòng)態(tài)可重構(gòu)的概念和特點(diǎn),可以對(duì)其它通信信號(hào)處理系統(tǒng)設(shè)計(jì)提供一定的參考。
關(guān)鍵詞:部分動(dòng)態(tài)可重構(gòu);信號(hào)解調(diào);FPGA;硬件實(shí)現(xiàn)
隨著現(xiàn)代通信技術(shù)的迅速發(fā)展,信號(hào)的調(diào)制方式向多樣化發(fā)展,解淵技術(shù)也隨之不斷向前發(fā)展。為了對(duì)高速大帶寬的信號(hào)進(jìn)行實(shí)時(shí)解調(diào),現(xiàn)在很多的解調(diào)關(guān)鍵算法都是在高速硬件上用可編程邏輯器件(FPGA)實(shí)觀,利用FPGA強(qiáng)大的資源和實(shí)時(shí)處理能力來(lái)快速的實(shí)現(xiàn)信號(hào)的跟蹤、鎖定和解調(diào)但是,基于硬件的實(shí)現(xiàn)方案和基于軟件的方案相比,往往存在不能迅速適應(yīng)調(diào)制樣式改變的問(wèn)題。為了有效斛決這個(gè)問(wèn)題,筆者通過(guò)基下FPGA部分動(dòng)態(tài)町重構(gòu)技術(shù),提出了相應(yīng)的解決方案。
1 FPGA部分動(dòng)態(tài)可重構(gòu)技術(shù)介紹
從九零年代以來(lái),隨著FPGA芯片技術(shù)的逐步成熟和發(fā)展,F(xiàn)PGA在各個(gè)領(lǐng)域中的應(yīng)用逐漸擴(kuò)大,芯片內(nèi)部的資源規(guī)模也成倍增加。但是,隨著FPGA容量的擴(kuò)大,F(xiàn)PGA的設(shè)計(jì)和實(shí)現(xiàn)也漸漸出現(xiàn)了下面的瓶頸問(wèn)題:
1)FPGA芯片內(nèi)部布線隨著設(shè)計(jì)復(fù)雜度的增加,布線的難度成平方增加,布線的時(shí)間也成倍增加。
2)對(duì)于大容量的FPGA,為了保證設(shè)計(jì)時(shí)約定的性能,為了滿足時(shí)序約束條件,最終實(shí)現(xiàn)版本的實(shí)際資源利用率反而下降。
3)大容量的FPGA一旦設(shè)計(jì)完成后,對(duì)其進(jìn)行部分模塊的調(diào)整和優(yōu)化經(jīng)常需要很長(zhǎng)時(shí)間。
在此上述這些原因的基礎(chǔ)上,F(xiàn)PGA的重配置技術(shù)應(yīng)需而生。FPGA重配置技術(shù)分為完全重配置技術(shù)和部分動(dòng)態(tài)可重構(gòu)技術(shù)兩種。其中FPGA完全重配置技術(shù)就是通過(guò)FPGA外部的配置處理單元,通過(guò)對(duì)FPGA配置管腳的編程,來(lái)實(shí)現(xiàn)整個(gè)FPGA內(nèi)容的切換,這種方式在目前已經(jīng)得到了較為廣泛的應(yīng)用。而FPGA部分動(dòng)態(tài)可重構(gòu)技術(shù)是通過(guò)FPGA內(nèi)部或外部的配置處理單元,對(duì)FPGA內(nèi)部部分資源的時(shí)分復(fù)用,來(lái)實(shí)現(xiàn)FPGA內(nèi)部部分模塊的切換。
對(duì)這兩種配置技術(shù)進(jìn)行比較,可以看到FPGA部分動(dòng)態(tài)可重構(gòu)技術(shù)的優(yōu)勢(shì)在于以下這些方面:
1)提高了配置速度。完全重配置需要配置整個(gè)FPGA的比特流文件,而部分動(dòng)態(tài)可重構(gòu)技術(shù)只需要配置相應(yīng)模塊的邏輯內(nèi)容,文什大小相差懸殊,在相同的配置時(shí)鐘頻率下,部分動(dòng)態(tài)可重構(gòu)技術(shù)的配置速度是完全配置的幾分之一或者幾十分之一。
2)省略了完全配置后的復(fù)位、下達(dá)參數(shù)的流程。完全重配置在配置完成后,整個(gè)FPGA處于初始狀態(tài),需要重新對(duì)接口進(jìn)行初始化,并配置運(yùn)行參數(shù)。而部分動(dòng)態(tài)可重構(gòu)技術(shù)不用進(jìn)行全局復(fù)位,下達(dá)參數(shù)也只需要針對(duì)重構(gòu)的模塊。
3)保存了FPGA運(yùn)行的中間結(jié)果和數(shù)據(jù)。完全重配置很難保存FPGA運(yùn)行的中間結(jié)果,如果外接DDR SDRAM等存儲(chǔ)單元,也會(huì)因?yàn)榻涌诘闹匦聫?fù)位而導(dǎo)致數(shù)據(jù)混亂,而部分動(dòng)態(tài)可重構(gòu)技術(shù)完全不用擔(dān)心這些問(wèn)題。
部分動(dòng)態(tài)可重構(gòu)技術(shù)具有上述相對(duì)與完全重配置技術(shù)的優(yōu)勢(shì)外,也和完全重配置技術(shù)一樣,具有低功耗和靈動(dòng)性高的優(yōu)點(diǎn),并且具備遠(yuǎn)程加載功能,可以通過(guò)有線網(wǎng)絡(luò)或者無(wú)線網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)超距環(huán)境下的FPGA功能變更。
部分動(dòng)態(tài)可重構(gòu)技術(shù)和完全重配置技術(shù)相比,對(duì)FPGA設(shè)計(jì)人員的開(kāi)發(fā)能力和規(guī)劃能力要求更高,下面通過(guò)對(duì)一個(gè)簡(jiǎn)單的數(shù)字信號(hào)解調(diào)系統(tǒng),來(lái)給出部分動(dòng)態(tài)可重構(gòu)技術(shù)的實(shí)現(xiàn)途徑。
2 FPGA部分動(dòng)態(tài)可重構(gòu)技術(shù)的硬件實(shí)現(xiàn)方案
FPGA部分動(dòng)態(tài)可重構(gòu)的硬件實(shí)現(xiàn)如圖1所示,為了保證FPGA配置的可靠性,本文采用了FPGA外部單元控制配置流程的實(shí)現(xiàn)方式。一個(gè)基本的實(shí)現(xiàn)結(jié)構(gòu)除了被配置的FPGA外,需要有配置控制模塊、配置接口模塊和配置存儲(chǔ)模塊這3個(gè)部分。其巾配置控制模塊一般由DSP、單片機(jī)、ARM處理器或者PowerPC選擇,主要功能是從配置存儲(chǔ)模塊或者外部接口中獲取配置比特流文件,并在需要部分動(dòng)態(tài)重構(gòu)的時(shí)刻把配置比特流文件傳送到配置接口模塊。配置接口模塊一般由FPGA或者CPLD實(shí)現(xiàn),功能是接收配置控制模塊傳輸?shù)呐渲帽忍亓鳎M(jìn)行相應(yīng)的時(shí)序轉(zhuǎn)換,產(chǎn)生滿足FPGA配置時(shí)序的信號(hào),從而對(duì)FPGA進(jìn)行配置。配置存儲(chǔ)模塊一般是FLASH或者SDRAM,可以長(zhǎng)期或者臨時(shí)保存多個(gè)配置比特流文件。
在圖1的結(jié)構(gòu)中,配置接口模塊是實(shí)現(xiàn)的關(guān)鍵模塊,根據(jù)配置速度和穩(wěn)定性的要求,可以采用Slave SelectMap或者Slave Setial配置模式,從性能考慮,一般選擇Slave SelectMap這種并行配置模式,在配置時(shí)鐘最高50MHz、配置管腳32位的情況下,配置速度可以達(dá)到1.6Gb ps。在Slave SelectMap模式下,配置接口模塊和FPGA的管腳連接可以參考XilinxVinex-5 Configuration User Guide中相應(yīng)章節(jié),本文不再贅述。并根據(jù)如圖2所示的配置時(shí)序,來(lái)實(shí)現(xiàn)FPGA完全配置比特流文件的下載和功能實(shí)現(xiàn)。
在進(jìn)行配置部分動(dòng)態(tài)可重構(gòu)比特流文件時(shí),因?yàn)樵摫忍亓魑募幌裢暾呐渲帽忍亓魑募粯泳哂形募^,而是只有幀地址、配置數(shù)據(jù)及校驗(yàn)和,當(dāng)所有配置內(nèi)容傳輸?shù)紽PGA后,不會(huì)有DONE信號(hào)拉高來(lái)表示配置結(jié)束。在這種情況下,必須監(jiān)視傳輸來(lái)的配置數(shù)據(jù),當(dāng)出現(xiàn)部分重配置文件的結(jié)束標(biāo)志DESYNCH(0000000D)時(shí),就可以判斷部分重構(gòu)流程結(jié)束,可以運(yùn)行新的重構(gòu)模塊。
3 基于FPGA部分動(dòng)態(tài)可重構(gòu)的信號(hào)解調(diào)系統(tǒng)開(kāi)發(fā)流程
3.1 FPGA模塊劃分
在完成了支持FPGA部分動(dòng)態(tài)可重構(gòu)的硬件實(shí)現(xiàn)后,下面開(kāi)始規(guī)劃信號(hào)解調(diào)系統(tǒng)的FPGA設(shè)計(jì)架構(gòu)。如圖3所示,信號(hào)解調(diào)系統(tǒng)主要由信道化模塊,可重構(gòu)解調(diào)模塊和數(shù)傳接口模塊組成。
信道化模塊主要是把AD數(shù)據(jù)進(jìn)行信道化處理,進(jìn)行濾波,下變頻、信道選擇和抽取??芍貥?gòu)解調(diào)模塊是針對(duì)不同調(diào)制樣式的分別實(shí)現(xiàn)不同的解調(diào)模塊,并根據(jù)實(shí)際需要進(jìn)行部分重構(gòu)。數(shù)傳接口模塊是把解調(diào)的結(jié)果傳輸?shù)紽PGA外,進(jìn)行后續(xù)處理和在界面中顯示。
3.2 FPGA模塊的設(shè)計(jì)和實(shí)現(xiàn)
按照?qǐng)D3所示的結(jié)構(gòu),按照下面步驟進(jìn)行基于部分動(dòng)態(tài)可重構(gòu)技術(shù)的FPGA程序設(shè)計(jì):
1)把需要部分重構(gòu)的FPGA模塊設(shè)計(jì)為一個(gè)空盒,即只有輸入輸出管腳,沒(méi)有實(shí)際內(nèi)容的空模塊。在進(jìn)行空模塊的管腳規(guī)劃時(shí)要綜合考慮多種解調(diào)樣式下的接口兼容性,保證一個(gè)模塊接口能涵蓋需要處理的所有樣式。
2)分別完成不需要部分重構(gòu)的FPGA予模塊,并完成FPGA頂層模塊。
3)對(duì)FPGA頂層模塊進(jìn)行綜合,產(chǎn)生頂層網(wǎng)表。
4)按照步驟1)中的模塊定義格式完成針對(duì)不同調(diào)制模式的解淵模塊,如qpsk_demod,fsk_demod等,并通過(guò)仿真驗(yàn)證,然后逐模塊分別綜合成單獨(dú)的模塊網(wǎng)表文件,保存到不同的目錄中。
5)在PlanAhead工具中導(dǎo)入FPGA頂層網(wǎng)表,注意在導(dǎo)入選項(xiàng)中選擇支持部分重構(gòu)。在PlanAhead工具中把2個(gè)空的可重構(gòu)解調(diào)模塊設(shè)定為可重構(gòu)分區(qū)(ReconfigurablePartition),如圖4所示,并把步驟4)中綜合好的模塊網(wǎng)表指定為可重構(gòu)模塊下的可選內(nèi)容。
6)在PlanAhead工具的Device視圖中,對(duì)可重構(gòu)模塊劃分分區(qū)(PBlock),目前分區(qū)只支持矩形,要求分區(qū)包含的資源數(shù)目略大于解淵模塊所需資源的最大值,其中包括邏輯資源(查找表和寄存器),乘法器(DSP48E)和RAM資源。
7)根據(jù)對(duì)2個(gè)可重構(gòu)解調(diào)模塊的不同配置,產(chǎn)生多個(gè)配置文件,配置文件的一個(gè)例子如表1所示,并逐一進(jìn)行布局布線,產(chǎn)生完整的配置比特流文件和用于部分重構(gòu)的比特流文件。對(duì)于每一組配置文件,會(huì)產(chǎn)生一個(gè)包含靜態(tài)邏輯的完整配置比特流文件,和2個(gè)用于部分重構(gòu)的比特流文件,分別對(duì)應(yīng)2個(gè)不同的分區(qū),配置加載時(shí)不能隨便互換。
8)對(duì)表1中配置文件進(jìn)行設(shè)計(jì)規(guī)則檢查比較,保證各組配置文件生成的完整配置的比特流文件是一致的。
9)完成以上設(shè)計(jì)后,首先調(diào)用任意一個(gè)完整配置文件進(jìn)行加載,保證FPGA成功運(yùn)行靜態(tài)邏輯,然后根據(jù)需要,選擇表1中的配置文件表中的任何1組,進(jìn)行部分動(dòng)態(tài)加載。
4 應(yīng)用結(jié)果
以上設(shè)計(jì)經(jīng)過(guò)實(shí)際驗(yàn)證,可以實(shí)現(xiàn)2路信號(hào)在不同調(diào)制樣式的解調(diào),當(dāng)信號(hào)樣式變化時(shí),動(dòng)態(tài)加載相應(yīng)的解調(diào)模塊,可以迅速完成功能切換,實(shí)現(xiàn)對(duì)應(yīng)的解調(diào)功能。經(jīng)過(guò)實(shí)際測(cè)試,部分動(dòng)態(tài)可重構(gòu)模塊的加載速度存10 ms以內(nèi),極大的提高了原有系統(tǒng)的性能。
5 結(jié)論
目前國(guó)際上對(duì)FPGA可重構(gòu)技術(shù)的研究極為廣泛,本文介紹了一種基于Xilinx FPGA的部分動(dòng)態(tài)可重構(gòu)技術(shù)的信號(hào)解調(diào)系統(tǒng),可以把不同的解調(diào)模塊定位到芯片內(nèi)部同一邏輯資源部分,通過(guò)重構(gòu)這些資源來(lái)實(shí)現(xiàn)不同樣式信號(hào)的解調(diào),同時(shí)保持其他部分電路功能正常運(yùn)行,從而提高了系統(tǒng)的適應(yīng)能力。
本系統(tǒng)可以存通信系統(tǒng)中得到應(yīng)用,對(duì)航天、電力等領(lǐng)域的類似系統(tǒng)也有參考價(jià)值,可以提高相應(yīng)系統(tǒng)的靈活性和擴(kuò)展性,減低系統(tǒng)功耗,縮短系統(tǒng)開(kāi)發(fā)時(shí)間。