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

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

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

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


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


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


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


    由其中1種工作模式生成初始全局比特流,,4個動態(tài)模塊的各不同版本均生成相應的部分重配置比特流并存儲于DDR SDRAM中。首先下載運行初始全局比特流,,系統(tǒng)收到主機自串口發(fā)送的重配置命令并對其解析后,,根據(jù)要求從DDR SDRAM中讀出所需的部分重配置比特流,并將其送至內部配置訪問端口ICAP,,即可發(fā)生相應的動態(tài)部分重配置,,實現(xiàn)所需的編碼方式、交織長度,、擾碼序列或調制方式,。
  實驗表明,該發(fā)射機系統(tǒng)可通過動態(tài)部分重配置在各種工作模式間進行切換,,且在各種工作模式下均能夠正常工作,。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個部分重配置比特流,能夠實現(xiàn)24種不同的組合工作模式,。如果基于傳統(tǒng)的動態(tài)可重配置系統(tǒng)平臺構建該發(fā)射機系統(tǒng),,則需要生成24個部分重配置比特流。由此可見,,多模塊動態(tài)可重配置系統(tǒng)在比特流數(shù)量上的優(yōu)勢,。
    本文基于Xilinx FPGA芯片XC2VP30構建了多模塊動態(tài)可重配置系統(tǒng)平臺,,并在該系統(tǒng)平臺上實現(xiàn)了一個多模塊自重配置發(fā)射機系統(tǒng)。該系統(tǒng)的各子模塊可以進行單獨重配置,,能夠以較少數(shù)量的部分重配置比特流實現(xiàn)較多的組合工作模式,。


參考文獻
[1] 尚麗娜.FPGA動態(tài)可重配置研究[D].杭州:浙江大學,2006.
[2] 尚麗娜,,徐新民.FPGA動態(tài)重構技術在算術邏輯單元中的應用[J].電子器件,,2007,30(3).
[3] 趙遠寧.基于Xilinx Virtex-II Pro的過程級動態(tài)部分可重配置系統(tǒng)設計與實現(xiàn)[D].長沙:湖南大學,,2008.
[4] 李濤.動態(tài)重配置系統(tǒng)若干關鍵問題的研究[D].天津:南開大學,,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.

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