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