《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于FPGA的多模塊動態(tài)可重配置系統(tǒng)
基于FPGA的多模塊動態(tài)可重配置系統(tǒng)
劉 彬,,趙明生
摘要: 提出了一種基于現(xiàn)場可編程門陣列FPGA的多模塊動態(tài)可重配置系統(tǒng)平臺,,并在該平臺上實現(xiàn)了一個多模塊動態(tài)自重配置發(fā)射機(jī)系統(tǒng)。與傳統(tǒng)的動態(tài)可重配置系統(tǒng)相比,,多模塊動態(tài)可重配置系統(tǒng)的各動態(tài)模塊能夠單獨地進(jìn)行重配置,,重配置控制比較靈活,,部分重配置比特流較小,所需的部分重配置比特流數(shù)量較少,。
Abstract:
Key words :

  摘 要: 提出了一種基于現(xiàn)場可編程門陣列FPGA的多模塊動態(tài)可重配置系統(tǒng)平臺,,并在該平臺上實現(xiàn)了一個多模塊動態(tài)自重配置發(fā)射機(jī)系統(tǒng),。與傳統(tǒng)的動態(tài)可重配置系統(tǒng)相比,,多模塊動態(tài)可重配置系統(tǒng)的各動態(tài)模塊能夠單獨地進(jìn)行重配置,重配置控制比較靈活,,部分重配置比特流較小,,所需的部分重配置比特流數(shù)量較少。
    關(guān)鍵詞: 現(xiàn)場可編程門陣列,;動態(tài)部分重配置,;多模塊動態(tài)可重配置系統(tǒng)

   使用動態(tài)部分重配置技術(shù)構(gòu)建動態(tài)可重配置系統(tǒng)是近年來出現(xiàn)的一種新的方法,是當(dāng)前FPGA的主要發(fā)展方向和研究熱點之一,?;贔PGA的動態(tài)可重配置系統(tǒng),指的是支持不同工作模式的邏輯,,是通過對具有專門緩存邏輯資源的FPGA,,進(jìn)行局部的芯片邏輯的重配置而快速實現(xiàn)[1],而且在對局部的芯片邏輯進(jìn)行重配置的同時,,芯片的其他部分保持其實現(xiàn)功能不變且處于不間斷的運算狀態(tài),。動態(tài)可重配置系統(tǒng)具有配置速度快和可擴(kuò)展性好等優(yōu)點,。
    傳統(tǒng)的基于模塊化的動態(tài)可重配置系統(tǒng)只有1個動態(tài)模塊。在構(gòu)建系統(tǒng)時,,首先進(jìn)行動態(tài)模塊和靜態(tài)模塊的劃分,,將需要重配置的子模塊劃入動態(tài)模塊,其余子模塊劃入靜態(tài)模塊,,重配置是對動態(tài)模塊進(jìn)行的,。這種動態(tài)可重配置系統(tǒng)的主要缺點是重配置的靈活性不夠,不能對各子模塊進(jìn)行單獨地重配置,,在動態(tài)模塊中的1個子模塊需要更新時,,需要對整個動態(tài)模塊進(jìn)行重配置。
  本文基于Xilinx公司的FPGA芯片XC2VP30,,提出了一種多模塊動態(tài)可重配置系統(tǒng)平臺,。在該平臺上構(gòu)建的系統(tǒng)具有多個動態(tài)模塊,每個動態(tài)模塊可以單獨地進(jìn)行動態(tài)重配置,,具有較好的靈活性,。
1 動態(tài)部分重配置技術(shù)
1.1 Xilinx FPGA芯片對動態(tài)部分重配置技術(shù)的支持

  Xilinx公司是主要的FPGA芯片生產(chǎn)廠商之一,其生產(chǎn)的FPGA芯片支持基于模塊化的動態(tài)部分重配置技術(shù),,并且為模塊之間的通信提供了一種總線宏,。它允許信號穿過部分重配置模塊的邊界,保證穿過可重配置模塊邊界的布線資源是完全固定而且必須是靜態(tài)的,。每次實現(xiàn)部分重配置時,,總線宏用來確定模塊間的布線通道沒有改變,保證正確的連接[2],。
  Xilinx Virtex-II系列以后的FPGA芯片提供了內(nèi)部配置訪問端口ICAP(Internal Configuration Access Port),,這使得FPGA中內(nèi)嵌的處理器能夠直接在可編程邏輯器件內(nèi)部對其配置數(shù)據(jù)進(jìn)行操作[3]。使用ICAP使得芯片上的靜態(tài)模塊可以控制該芯片上動態(tài)區(qū)域的邏輯重配置,,但在重配置期間必須保證靜態(tài)模塊的完整性,。這種方式擴(kuò)展了動態(tài)部分重配置的概念,被稱為自重配置或者自重構(gòu),,是動態(tài)部分重配置的一種特殊形式[4],。
  為方便對ICAP的使用,Xilinx公司還提供了對ICAP封裝后的可直接掛在片上外設(shè)總線OPB(On-Chip Peripheral Bus)上的IP核——OPB_HWICAP,。
1.2 在Xilinx FPGA芯片中構(gòu)建基于模塊化的動態(tài)可重配置系統(tǒng)的流程
    在Xilinx FPGA芯片中構(gòu)建基于模塊化的動態(tài)可重配置系統(tǒng)需遵循如下的流程:
  (1)進(jìn)行動態(tài)模塊和靜態(tài)模塊的劃分,,需要重配置的子模塊為動態(tài)模塊,其他子模塊為靜態(tài)模塊,。
  (2)對頂層邏輯,、動態(tài)模塊和靜態(tài)模塊分別進(jìn)行設(shè)計與綜合。
  (3)編寫系統(tǒng)約束文件,,其主要內(nèi)容包括:為各I/O口指定管腳約束,、為各模塊分配位置,、指定待重配置的模塊為動態(tài)模塊、指定各總線宏和其他頂層邏輯的位置及指定時鐘約束等,。
  (4)對動態(tài)模塊和靜態(tài)模塊分別進(jìn)行激活,,即分別進(jìn)行轉(zhuǎn)換、映射和布局布線等操作,。
  (5)將各模塊激活后的布線結(jié)果組裝起來,,與頂層邏輯一同進(jìn)行轉(zhuǎn)換,、映射和布局布線,,生成最終的全局布線圖。
  (6)由全局布線圖生成初始全局比特流,,由各不同版本的動態(tài)模塊的布線圖生成部分重配置比特流[5],。
2 動態(tài)可重配置系統(tǒng)平臺
2.1 傳統(tǒng)的動態(tài)可重配置系統(tǒng)平臺
    傳統(tǒng)的動態(tài)可重配置系統(tǒng)平臺如圖1所示。該平臺將需要重配置的子模塊劃入動態(tài)模塊,,將不需要重配置的子模塊劃入靜態(tài)模塊,,動態(tài)模塊和靜態(tài)模塊之間的通信通過跨越模塊邊界的總線宏實現(xiàn)。

 


  該平臺只有1個動態(tài)模塊,,其主要缺點是重配置不夠靈活,,不能對動態(tài)模塊中的各子模塊進(jìn)行單獨的重配置。
2.2 多模塊動態(tài)可重配置系統(tǒng)平臺
    多模塊動態(tài)可重配置系統(tǒng)平臺可以有效地克服傳統(tǒng)的動態(tài)可重配置系統(tǒng)平臺的缺點,。為方便對多模塊動態(tài)可重配置系統(tǒng)平臺的說明,,以圖2所示的系統(tǒng)為例。該系統(tǒng)共有5個子模塊,,包括2個靜態(tài)子模塊和3個動態(tài)子模塊,。在傳統(tǒng)的動態(tài)可重配置系統(tǒng)平臺上構(gòu)建的系統(tǒng)框圖如圖3所示,將3個動態(tài)子模塊放入FPGA的動態(tài)模塊中,,2個靜態(tài)子模塊放入FPGA的靜態(tài)模塊中,。


    在多模塊動態(tài)可重配置系統(tǒng)平臺上構(gòu)建的系統(tǒng)框圖如圖4所示。在該系統(tǒng)中,,F(xiàn)PGA分為5個部分,,系統(tǒng)的每個子模塊被單獨指定為動態(tài)模塊或者靜態(tài)模塊,各子模塊之間通過跨越模塊邊界的總線宏進(jìn)行通信,。


    相對于圖3所示的傳統(tǒng)的動態(tài)可重配置系統(tǒng),,多模塊動態(tài)可重配置系統(tǒng)的3個動態(tài)模塊可以單獨進(jìn)行動態(tài)重配置,重配置方式比較靈活,。同時,,由于每個動態(tài)模塊的規(guī)模相對較小,因而相應(yīng)的部分重配置比特流也較小,,具有更高的配置速度,,所需的用于存儲部分重配置比特流的空間也較小,。


  在系統(tǒng)內(nèi)有較多的動態(tài)子模塊,而且各動態(tài)子模塊的版本數(shù)較多時,,傳統(tǒng)的動態(tài)可重配置系統(tǒng)所需的部分重配置比特流的數(shù)量很大,,所需的用于存儲部分重配置比特流的空間相對比較多,而且為所有工作模式均生成部分重配置比特流所需的工作量很大,。這時多模塊動態(tài)可重配置系統(tǒng)的優(yōu)點非常明顯,。
2.3 多模塊動態(tài)自重配置系統(tǒng)平臺
  為使系統(tǒng)具有自重配置的功能,使系統(tǒng)重配置的控制更加靈活,,以圖2所示的系統(tǒng)實例,,可構(gòu)建如圖5所示的多模塊動態(tài)自重配置系統(tǒng)。
    在該系統(tǒng)中,,重配置控制子系統(tǒng)以軟核處理器MicroBlaze為核心,,片上外設(shè)總線OPB上連接了DDR SDRAM控制器、OPB_HWICAP和UART控制器3個模塊,。其中,,DDR SDRAM控制器為片外存儲器DDR SDRAM的控制IP核,用來控制存儲部分重配置比特流的DDR SDRAM,;OPB_HWICAP用來控制內(nèi)部配置訪問端口ICAP,;UART控制器用來控制串口,通過串口可以和主機(jī)進(jìn)行通信,。
  Xilinx公司提供的OPB_HWICAP核為對ICAP封裝后的可直接掛在OPB總線上的IP核,,在該IP核的內(nèi)部將OPB總線的接口邏輯與ICAP原語相連。由于ICAP位于FPGA芯片的右下角,,因此在構(gòu)建可重配置系統(tǒng)平臺時,,需要對該IP核進(jìn)行修改,即將ICAP原語從OPB_HWICAP核中分離出來,,將修改過的OPB_HWICAP核放在位于FPGA左側(cè)的靜態(tài)模塊1中,,將ICAP原語放在位于FPGA右側(cè)的靜態(tài)模塊3中,修改后的OPB_HWICAP核與ICAP原語的通信通過跨越中間各動態(tài)和靜態(tài)模塊的特殊的總線宏實現(xiàn),。
    在該平臺上構(gòu)建動態(tài)可重配置系統(tǒng)之后,,按照前述構(gòu)建動態(tài)可重配置系統(tǒng)的流程生成初始全局比特流和各動態(tài)模塊的各版本的部分重配置比特流,并將部分重配置比特流存儲在DDR SDRAM中,。首先下載運行初始全局比特流,,然后系統(tǒng)等待主機(jī)自串口發(fā)送的重配置命令。系統(tǒng)接收到重配置命令并對其解析之后,,根據(jù)需要從DDR SDRAM中選擇相應(yīng)的部分重配置比特流送至ICAP,,完成重配置以實現(xiàn)所需選擇的工作模式。
2.4 多模塊動態(tài)自重配置發(fā)射機(jī)系統(tǒng)
    在多模塊動態(tài)可重配置系統(tǒng)平臺上構(gòu)建一個簡化的發(fā)射機(jī)系統(tǒng),,該發(fā)射機(jī)系統(tǒng)框圖如圖6所示,,包含卷積編碼,、交織、擾碼和調(diào)制4個子模塊,。該發(fā)射機(jī)系統(tǒng)可選擇1/2和1/4 2種編碼效率的卷積編碼方式,,0.6 s和4.8 s 2種交織長度,2種不同的擾碼序列,,以及BPSK,、QPSK和8PSK 3種調(diào)制方式,共有2×2×2×3=24種不同的組合工作模式,。
    以圖5所示的多模塊動態(tài)自重配置系統(tǒng)平臺為基礎(chǔ),,構(gòu)建多模塊動態(tài)自重配置發(fā)射機(jī)系統(tǒng),其框圖如圖7所示,。


    由其中1種工作模式生成初始全局比特流,,4個動態(tài)模塊的各不同版本均生成相應(yīng)的部分重配置比特流并存儲于DDR SDRAM中,。首先下載運行初始全局比特流,,系統(tǒng)收到主機(jī)自串口發(fā)送的重配置命令并對其解析后,根據(jù)要求從DDR SDRAM中讀出所需的部分重配置比特流,,并將其送至內(nèi)部配置訪問端口ICAP,,即可發(fā)生相應(yīng)的動態(tài)部分重配置,實現(xiàn)所需的編碼方式,、交織長度,、擾碼序列或調(diào)制方式。
  實驗表明,,該發(fā)射機(jī)系統(tǒng)可通過動態(tài)部分重配置在各種工作模式間進(jìn)行切換,,且在各種工作模式下均能夠正常工作。4個動態(tài)模塊的一個版本的部分重配置比特流的大小分別為114 KB,、188 KB,、128 KB和126 KB,為全局配置比特流大小(1 415 KB)的8.06%,、13.3%,、9.05%和8.90%。
    該系統(tǒng)共有2+2+2+3=9個部分重配置比特流,,能夠?qū)崿F(xiàn)24種不同的組合工作模式,。如果基于傳統(tǒng)的動態(tài)可重配置系統(tǒng)平臺構(gòu)建該發(fā)射機(jī)系統(tǒng),則需要生成24個部分重配置比特流,。由此可見,,多模塊動態(tài)可重配置系統(tǒng)在比特流數(shù)量上的優(yōu)勢。
    本文基于Xilinx FPGA芯片XC2VP30構(gòu)建了多模塊動態(tài)可重配置系統(tǒng)平臺,,并在該系統(tǒng)平臺上實現(xiàn)了一個多模塊自重配置發(fā)射機(jī)系統(tǒng),。該系統(tǒng)的各子模塊可以進(jìn)行單獨重配置,,能夠以較少數(shù)量的部分重配置比特流實現(xiàn)較多的組合工作模式。


參考文獻(xiàn)
[1] 尚麗娜.FPGA動態(tài)可重配置研究[D].杭州:浙江大學(xué),,2006.
[2] 尚麗娜,,徐新民.FPGA動態(tài)重構(gòu)技術(shù)在算術(shù)邏輯單元中的應(yīng)用[J].電子器件,2007,,30(3).
[3] 趙遠(yuǎn)寧.基于Xilinx Virtex-II Pro的過程級動態(tài)部分可重配置系統(tǒng)設(shè)計與實現(xiàn)[D].長沙:湖南大學(xué),,2008.
[4] 李濤.動態(tài)重配置系統(tǒng)若干關(guān)鍵問題的研究[D].天津:南開大學(xué),2007.
[5] Xilinx. Development system reference guide,, chapter 5: partial reconfiguration[EB/OL]. http://toolbox.xilinx.com/docsan/xilinx10/books/docs/dev/dev.pdf,,2007.

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