999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

FPGA局部重配置技術(shù)的實現(xiàn)及應用

2016-12-28 10:35:14韓煉冰段俊紅房利國
通信技術(shù) 2016年12期
關(guān)鍵詞:設(shè)計

韓煉冰,段俊紅,王 松,房利國,劉 蘊

(中國電子科技集團公司第三十研究所,四川 成都 610041)

FPGA局部重配置技術(shù)的實現(xiàn)及應用

韓煉冰,段俊紅,王 松,房利國,劉 蘊

(中國電子科技集團公司第三十研究所,四川 成都 610041)

局部重配置能夠在現(xiàn)場可編程門陣列(FPGA)運行過程中動態(tài)修改重配置區(qū)域,而不影響其他非重配置區(qū)域的正常運行。因此,采用局部重配置技術(shù)設(shè)計的系統(tǒng),往往具有良好的靈活性和適應性。于是,在詳細描述FPGA局部重配置的實現(xiàn)方法的基礎(chǔ)上,提出了一種避免所有模塊聯(lián)合編譯的FPGA設(shè)計方法。最終,分別在virtex5和Artix7開發(fā)板上對該設(shè)計方法進行驗證,證明了所提方法的可行性。

局部重配置;FPGA;編譯;動態(tài)配置

0 引 言

隨著通信系統(tǒng)的復雜化和多功能化,很多系統(tǒng)需要在不同時刻實現(xiàn)不同的功能,這就在多數(shù)場合需要FPGA支持動態(tài)配置[1]。當前,F(xiàn)PGA的配置方式可分為完全配置和局部重配置兩種。完全配置在FPGA系統(tǒng)的整個使用周期內(nèi)不再改變FPGA的邏輯結(jié)構(gòu)[2],除非重新配置新的配置文件,是FPGA的常用配置方式。局部重配置是在FPGA運行過程中改變部分邏輯結(jié)構(gòu),而不影響其他邏輯正常工作的一種配置方法。局部重配置具有重要的實用意義,它可以將暫時不用的資源配置成有用的功能模塊,做到部分資源的分時復用,從而提高資源的利用率。或者,它動態(tài)改變局部模塊,達到改變功能或升級的目的。

在軟件實現(xiàn)系統(tǒng)中,處理器可以動態(tài)地調(diào)用當前所需的程序段完成不同的功能,具有相當大的靈活性[3]。與軟件實現(xiàn)不同,通常FPGA開發(fā)完成后需要將所有的模塊代碼進行聯(lián)合編譯,才能生成最后的可執(zhí)行文件,這在一定程度上降低了靈活性。也正是因為這一特點,使得一些跨團隊合作的項目因為聯(lián)合編譯而浪費開發(fā)時間。特別是在特殊領(lǐng)域,因保密和管理的需要,一些重要模塊需要獨立開發(fā),從而也給聯(lián)合編譯帶來諸多不便。于是,本文根據(jù)Xilinx的局部重配置技術(shù),提出了一種可獨立編譯模塊的FPGA設(shè)計方法。

1 局部重配置

Xilinx的局部重配置通常有兩種方法:一種是基于模塊化的方式;一種是基于差異化的方式。差異化的方法通常用在配置前后改變很小的情況,有一定的局限性。所以,這里主要研究模塊化的局部重配置技術(shù)。

1.1 模塊化局部重配置的設(shè)計要求和特性

模塊化局部重配置需采用層次化的模塊設(shè)計方式,將設(shè)計分成頂層、靜態(tài)邏輯和動態(tài)邏輯三部分,設(shè)計框圖如圖1所示。頂層用于靜態(tài)模塊和動態(tài)模塊間的連接以及時鐘的管理等;靜態(tài)部分為固定不變的邏輯(也可將該部分全部或者部分放在頂層內(nèi));動態(tài)部分為可重構(gòu)邏輯。可重構(gòu)邏輯可以實現(xiàn)成不同功能的模塊,但是每個模塊的頂層接口必須一致。值得注意的是,不是FPGA器件內(nèi)的所有資源都是可重構(gòu)的。不能重構(gòu)的資源包括[4]:BUFG、BUFR、MMCM、PLL、DCM、MGTs、BSCAN、STARTUP等。

圖1 局部重配置設(shè)計

靜態(tài)邏輯、動態(tài)邏輯與頂層設(shè)計聯(lián)合編譯后,會產(chǎn)生完整的配置文件和單獨的動態(tài)邏輯配置文件。在FPGA運行過程中,若需要改變動態(tài)邏輯的功能,只需向FPGA內(nèi)下載單獨的動態(tài)邏輯配置文件即可。

1.2 模塊化局部重配置的實現(xiàn)方法

一個完整的FPGA設(shè)計工程中可以包含一個或者多個動態(tài)邏輯,動態(tài)邏輯間可以有交互接口,實現(xiàn)框圖如圖2所示。目前,Xilinx的局部重配置實現(xiàn)工具有兩種:一種是PlanAhead;一種是Vivado。PlanAhead用于Virtex4、Virtex5和Virtex6等FPGA的局部重配置設(shè)計,Vivado用于7系列及以后的FPGA局部重配置設(shè)計。

圖2 包涵兩個動態(tài)邏輯的實現(xiàn)模型

1.2.1 利用PlanAhead工具實現(xiàn)

Xilinx的局部重配置只能基于網(wǎng)表文件實現(xiàn)。利用PlanAhead開發(fā)工具的實現(xiàn)步驟如下[5]:

①生成網(wǎng)表文件。通過ISE綜合工具生成頂層文件的網(wǎng)表文件(生成頂層網(wǎng)表文件時,要去掉各個動態(tài)模塊的代碼,只保留接口)和各個動態(tài)邏輯的網(wǎng)表文件(生成動態(tài)模塊的網(wǎng)表文件時,要去掉ISE里添加I/O buffer的選項)。同一個動態(tài)邏輯的不同實現(xiàn),都要生成各自的網(wǎng)表文件。例如,圖2中動態(tài)邏輯1和動態(tài)邏輯2各有三種不同的邏輯實現(xiàn),因此各自需編譯三個網(wǎng)表文件。

②創(chuàng)建工程,劃分模塊邏輯區(qū)域。在PlanAhead中創(chuàng)建可重構(gòu)的工程,導入各網(wǎng)表文件和ucf文件,并為每個動態(tài)邏輯劃分邏輯區(qū)域。

③編譯并生成配置文件。編譯整個工程,同一個動態(tài)邏輯的不同實現(xiàn)都要編譯。圖2所示的動態(tài)邏輯1有三種實現(xiàn),因此要編譯三次,但不是每次編譯都要從頭開始。第二次和第三次編譯時,都會導入第一次的靜態(tài)部分編譯結(jié)果,從而保證每次編譯時靜態(tài)部分的布局和布線完全一致。完成編譯后,將生成三個完整的配置文件和三個單獨的動態(tài)邏輯1的配置文件。采用同樣的編譯方法對動態(tài)邏輯2進行編譯,得到三個完整的配置文件和三個單獨的動態(tài)邏輯2的配置文件。除了上述單獨編譯動態(tài)邏輯1和動態(tài)邏輯2的方法外,還可將其聯(lián)合編譯,減少編譯次數(shù)。編譯方法為:第一次編譯Pr_A1和Pr_B1,第二次編譯Pr_A2和Pr_B2,第三次編譯Pr_A3和Pr_ B3,三次編譯完成后即可得到三個完整的配置文件和六個單獨的動態(tài)邏輯配置文件(動態(tài)邏輯1和動態(tài)邏輯2各三個文件)。

1.2.2 利用Vivado工具實現(xiàn)

采用Vivado工具實現(xiàn)局部重配置的操作方式與PlanAhead有些差異。Vivado的大部分操作都需要腳本命令來實現(xiàn)。利用Vivado開發(fā)工具實現(xiàn)局部重配置的流程如下[6]:

①綜合設(shè)計。編寫綜合的腳本,將頂層和各重配置模塊編譯成.dcp(Design Checkpoint)文件。

②聚合設(shè)計。在Vivado里先后導入頂層和重配置模塊的.dcp文件,并設(shè)置重配置模塊的屬性HD.RECONFIGURABLE。

③設(shè)計布局。根據(jù)重配置模塊的資源,為其劃定區(qū)域,并將結(jié)果寫入約束文件fplan.xdc里。

④實現(xiàn)第一個配置。導入管腳約束文件io.xdc,執(zhí)行布局、布線等命令后,完成編譯。執(zhí)行write_ checkpoint命令導出編譯后的信息到all1.dcp文件,該dcp文件將用于后續(xù)產(chǎn)生配置文件。執(zhí)行命令update_design去掉重配置模塊的邏輯,再執(zhí)行l(wèi)ock_ design命令鎖定重配置模塊外的邏輯及布局布線信息,并執(zhí)行命令write_checkpoint將信息寫入到static. dcp文件。

⑤實現(xiàn)第二個配置。先導入static.dcp,再導入重配置模塊第二個功能的.dcp文件。執(zhí)行布局、布線命令進行編譯,編譯完成后執(zhí)行write_checkpoint命令,導出編譯后信息到all2.dcp文件。

⑥產(chǎn)生配置文件。執(zhí)行open_checkpoint命令打開all1.dcp或者all2.dcp,再執(zhí)行write_bitstream命令,即可生成a111或者all2的完成配置文件和重配置模塊的配置文件。

1.3 配置文件的下載方法

1.3.1 下載完整的bit文件

FPGA上電復位后需配置完整的bit文件。完整的bit文件包含F(xiàn)PGA的復位、配置數(shù)據(jù)及文件校驗所需的所有信息,配置的框圖如圖3所示。當配置完成且文件校驗正確后,F(xiàn)PGA將進入用戶模式,并將專用配置引腳DONE置高。

圖3 配置完整的BIT文件

1.3.2 下載局部bit文件

下載局部bit文件時,F(xiàn)PGA處于用戶模式,以保證下載局部bit文件時FPGA的其他邏輯模塊還能正常工作。配置局部bit文件的框圖如圖4所示。局部配置bit文件只包含地址、配置數(shù)據(jù)以及最終的校驗值。

圖4 配置局部的BIT文件

2 獨立編譯模塊的設(shè)計方法

2.1 實現(xiàn)條件

獨立編譯模塊的方法,除了滿足局部重配置的所有條件外,還需對整個設(shè)計擁有全局的把控。需要將不可重配置或者不需重配置的邏輯規(guī)劃到頂層文件中,并規(guī)劃每個獨立編譯模塊的接口和所需資源。頂層文件、獨立編譯模塊的接口信號以及規(guī)劃給獨立編譯模塊的資源這三部分,一旦確定將不可改變。任何一部分的改變,都將使獨立編譯的文件不能使用。

2.2 實現(xiàn)方法

圖5給出了一個模塊獨立編譯的設(shè)計框圖。設(shè)計分成三部分:頂層邏輯、模塊A和模塊B。模塊A和B為可重構(gòu)模塊。頂層邏輯和模塊A、B的接口與資源一旦確定,模塊A和模塊B可獨立的開發(fā)、調(diào)試,最終編譯可執(zhí)行文件。下面分別介紹采用PlanAhead工具和Vivado工具的實現(xiàn)方法。

2.2.1 利用PlanAhead工具實現(xiàn)

圖5 獨立編譯的設(shè)計

利用PlanAhead工具實現(xiàn)的主要步驟如下:

①編譯頂層網(wǎng)表。模塊A和模塊B的開發(fā)者各自實現(xiàn)一個只模擬接口時序的模塊A1和模塊B1,并編譯成網(wǎng)表,編譯方法同1.2節(jié)的步驟;

②導入頂層網(wǎng)表。在PlanAhead里創(chuàng)建局部重配置工程,導入編譯好的頂層網(wǎng)表文件和ucf文件;

③導入可重構(gòu)模塊,劃分邏輯區(qū)域。導入可模擬接口時序的模塊A1和B1的網(wǎng)表文件,為可重構(gòu)模塊A和B劃分邏輯區(qū)域;

④編譯。編譯完成后,將config_1執(zhí)行Promote Partitions操作;

⑤將編譯后的整個工程和網(wǎng)表文件分別給模塊A和模塊B的開發(fā)者;

⑥模塊A(B)的開發(fā)者,用自己模塊的網(wǎng)表文件A(B)替換第⑤步里的A1(B1)網(wǎng)表文件,同時將模塊B(A)繼續(xù)保持為B1(A1);

⑦重新編譯。開發(fā)者A和開發(fā)者B各自進行編譯,編譯完成后開發(fā)者A(B)將得到兩種配置文件:一種是頂層+模塊A(B)的完整配置文件;一種是模塊A(B)單獨的配置文件;

⑧開發(fā)者A(B)將模塊A(B)單獨的配置文件給開發(fā)者B(A);

⑨配置時,先配置頂層+模塊A(B)完整的配置文件,再配置模塊B(A)單獨的配置文件;

⑩如果設(shè)計過程中修改了頂層邏輯、模塊A(B)的接口信號或者A(B)規(guī)劃的邏輯資源,需要重復實現(xiàn)步驟①~步驟⑨,重新規(guī)劃動態(tài)模塊的資源,并用新的工程文件編譯各個動態(tài)模塊。

2.2.2 利用Vivado工具實現(xiàn)

利用Vivado工具實現(xiàn)的主要步驟如下:

①綜合。模塊A和模塊B的開發(fā)者各自實現(xiàn)一個只模擬接口時序的模塊A1和模塊B1,并綜合得到.dcp文件。按照1.2節(jié)描述的步驟得到static.dcp文件,將該文件分別發(fā)送給模塊A的開發(fā)者和模塊B的開發(fā)者;

②開發(fā)者A(B)先導入static.dcp文件,再導入自己真實的模塊A(B)的dcp文件和B1(A1)的dcp文件,編譯后生成配置文件;

③開發(fā)者A(B)將模塊A(B)的局部配置文件發(fā)給模塊B(A)的開發(fā)者;

④配置時,開發(fā)者A(B)先配置完整的配置文件,再配置B(A)模塊的局部配置文件;

⑤如果頂層邏輯有改動,需要重新產(chǎn)生static. dcp文件,并發(fā)給A、B雙方。A、B雙方再重復步驟②~步驟④,重新生成新的配置文件。

2.3 實現(xiàn)結(jié)果

分別在virtex5和Artix7的開發(fā)板中,根據(jù)圖5的設(shè)計框圖編寫了實際的程序,并模擬A、B兩個開發(fā)者對A、B兩個模塊獨立開發(fā)。按照2.2節(jié)的實現(xiàn)方法,A、B兩個設(shè)計者各自產(chǎn)生了完整的配置文件和A或B模塊單獨的配置文件。開發(fā)者A配置時,通過JTAG調(diào)試接口先配置自己生成的完整配置文件,再配置模塊B單獨的配置文件。開發(fā)者B配置時,通過JTAG調(diào)試接口先配置自己生成的完整配置文件,再配置模塊A單獨的配置文件。開發(fā)者A和B配置完成后,F(xiàn)PGA的所有功能都能正常運行。由此表明,文中描述的FPGA獨立編譯模塊的方法是可行的。

3 適用性分析

對未采用局部重配置的普通設(shè)計方法、文獻[2]描述的局部重配置方法以及文中基于局部重配置的獨立編譯模塊的設(shè)計方法共三種FPGA設(shè)計方法進行比較,可以得到如表1所示的結(jié)果。可見,文中的FPGA設(shè)計方法具有局部重配置的所有優(yōu)點,且與文獻[2]相比,極大減少了開發(fā)者的工作量。同時,由于文中的FPGA設(shè)計方法能獨立對模塊進行編譯,產(chǎn)生可以直接供其他模塊使用的二進制文件,因此非常適合多個團隊合作完成一項科研任務時使用。

表1 三種設(shè)計方法比較

4 結(jié) 語

基于局部重配置技術(shù)的FPGA設(shè)計方法,除了能避免所有模塊聯(lián)合編譯外,還能對設(shè)計者的模塊起到知識產(chǎn)權(quán)保護作用。設(shè)計者最終只需要提供模塊的執(zhí)行程序,而不需提供模塊的網(wǎng)表文件或者源代碼。目前,局部重配置技術(shù)在使用上還有一定的限制,尚有待進一步發(fā)展,但這一領(lǐng)域已是眾多FPGA廠商研究的熱點[7]。相信隨著技術(shù)的不斷成熟,此技術(shù)的應用前景將非常廣闊。

[1] 陳曦,沈佐峰.一種可靠的FPGA動態(tài)配置方法及實現(xiàn)[J].通信技術(shù),2012,45(03):105-110. CHEN Xi,SHEN Zuo-feng.A Reliable Dynamic Configuration and Implementation of FPGA[J].Communications Technology,2012,45(03):105-110.

[2] 陶杰.FPGA局部動態(tài)可重配置的研究[J].電子科技,2009,22(04):36-38. TAO Jie.Research on Partially and Dynamically Reconfigured FPGA[J].Electronic Science and Technology, 2009,22(04):36-38.

[3] 李鵬,蘭巨龍,姜鯤鵬.FPGA動態(tài)局部重構(gòu)技術(shù)研究進展[J].信息工程大學學報,2009,10(01):98-105. LI Peng,LAN Ju-long,JIANG Kun-peng.Survey of Research on FPGA-Based Partial Reconfiguration Technology[J].Journal of Information Engineering University,2009,10(01):98-105.

[4] XILINX.Partial Reconfiguration User Guide[EB/OL]. (2012-12-08)[2016-08-12].http://www.xilinx.com.

[5] XILINX.PlanAhead Tutorial Partial Reconfiguration [EB/ OL].(2012-05-08)[2016-08-12].http://www.xilinx.com.

[6] XILINX.Vivado Partial Reconfiguration Tutorial [EB/ OL].(2014-10-01)[2015-12-28].http://www.xilinx.com.

[7] 吳鳳艷,王烈,孫洪民.基于FPGA的動態(tài)局部可重構(gòu)方法分析與比較[J].廣西科學院學報,2009,25(04): 340-346. WU Feng-yan,WANG Lie,SUN Hong-min.Analyze and Compare the Methods of Dynamic Partial Reconfiguration based on FPGAs[J].Journal of Guangxi Academy of Sciences,2009,25(04):340-346.

韓煉冰(1984—),男,學士,工程師,主要研究方向為信息安全、通信安全技術(shù);

段俊紅(1984—),男,學士,工程師,主要研究方向為嵌入式系統(tǒng)、通信安全技術(shù);

王 松(1985—),男,學士,工程師,主要研究方向為信息安全、通信安全技術(shù);

房利國(1977—),男,碩士,高級工程師,主要研究方向為信息安全、通信安全技術(shù)、計算機應用;

劉 蘊(1981—),女,碩士,工程師,主要研究方向為信息安全。

Implementation and Application of FPGA Partial Reconfiguration Technology

HAN Lian-bing, DUAN Jun-hong, WANG Song, FANG Li-guo, LIU Yun
(NO.30 Institute of CETC, Chengdu Sichuan 610041, China)

Partial reconfiguration can dynamically modify reconfiguration region in operating process of FPGA, without any effect on the normal operation of other non-reconfiguration region. For this reason, the system with the design of partial reconfiguration technology often has fairly good flexibility and adaptability. Thus based on the detailed description of implementation method of FPGA partial reconfiguration, the FPGA design method capable of avoiding all modules in combined compiling is proposed. Finally, the actual verification of the design method on the Virtex5 and Artix7 development boards is done, and this verification indicates the feasibility and applicability of the proposed method.

partial reconfiguration; FPGA; compilation; dynamic configuration

TP302

A

1002-0802(2016)-12-1728-05

10.3969/j.issn.1002-0802.2016.12.029

2016-08-19

2016-11-22 Received date:2016-08-19;Revised date:2016-11-22

猜你喜歡
設(shè)計
二十四節(jié)氣在平面廣告設(shè)計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設(shè)計的守護之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統(tǒng)設(shè)計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設(shè)計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發(fā)生器仿真設(shè)計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設(shè)計萌到家
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設(shè)計到“設(shè)計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 久久夜夜视频| av一区二区三区在线观看| 日韩成人在线一区二区| 另类专区亚洲| 久久精品亚洲专区| 欧美www在线观看| 一级全黄毛片| 欧美国产在线看| 国产精品久久国产精麻豆99网站| 露脸真实国语乱在线观看| 国产在线观看第二页| 特黄日韩免费一区二区三区| 九九热精品视频在线| 欧美成人免费一区在线播放| 国产综合精品日本亚洲777| 88av在线| 国产在线高清一级毛片| 亚洲中文精品久久久久久不卡| 成人毛片在线播放| 不卡国产视频第一页| 国产激爽大片高清在线观看| 亚洲国产精品日韩欧美一区| 日本免费福利视频| 毛片基地视频| 久久99国产综合精品女同| 久久综合九色综合97婷婷| 青青草原国产av福利网站| AⅤ色综合久久天堂AV色综合| 色综合天天视频在线观看| 波多野结衣一区二区三区AV| 激情爆乳一区二区| 日本欧美一二三区色视频| 久久一级电影| 亚洲欧洲美色一区二区三区| 国产人人射| 欧美日韩中文字幕在线| 日韩美女福利视频| 亚洲aⅴ天堂| 久久精品91麻豆| 四虎亚洲国产成人久久精品| 国产swag在线观看| 九九久久99精品| 精品久久久久成人码免费动漫| 无码网站免费观看| 国产va在线观看免费| 亚洲成av人无码综合在线观看| 九九热这里只有国产精品| 欧美日韩国产系列在线观看| 色婷婷成人| 精品视频一区二区三区在线播| 网友自拍视频精品区| 免费毛片网站在线观看| 女人18毛片一级毛片在线| 欧美不卡视频在线| 中文字幕乱码二三区免费| 欧美国产菊爆免费观看| 国产精品无码久久久久久| 日本免费精品| 一区二区三区在线不卡免费 | 找国产毛片看| 国产农村妇女精品一二区| 国产欧美日韩另类| 一级香蕉人体视频| 国产免费自拍视频| 色偷偷av男人的天堂不卡| 四虎永久在线精品国产免费| 在线播放真实国产乱子伦| 亚洲天堂网视频| 中日韩欧亚无码视频| 久久国产热| 国产成人av一区二区三区| 中文字幕在线看| 波多野结衣无码视频在线观看| 国产福利观看| 国产午夜福利在线小视频| 伊人久久精品亚洲午夜| 国产成人精品综合| 亚洲av无码久久无遮挡| 91日本在线观看亚洲精品| 中文字幕1区2区| 亚洲人在线| 成人在线欧美|