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

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

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

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

 


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


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


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


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


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


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