基于FPGA的可重構(gòu)系統(tǒng)及其結(jié)構(gòu)分析
1 引言
本文引用地址:http://www.ex-cimer.com/article/148253.htm電子系統(tǒng)功能實(shí)現(xiàn)的模式不外硬件和軟件兩種。基于馮.諾依曼或者哈佛體系結(jié)構(gòu)的通用微處理器(MPU、MCU、DSP等)系統(tǒng)是軟件實(shí)現(xiàn)模式,其硬件電路結(jié)構(gòu)固定,通過串行執(zhí)行指令實(shí)現(xiàn)功能。軟件設(shè)計(jì)靈活、易升級(jí),但執(zhí)行速度慢、效率低;而專用集成電路(ASIC)采用硬件模式,通過固化的特定運(yùn)算和單元電路完成功能。指令并行執(zhí)行,執(zhí)行速度快、效率高,但開發(fā)周期長(zhǎng)、缺乏靈活性。在一些實(shí)時(shí)性和靈活性要求都比較高的場(chǎng)合,采用通用微處理器或者ASIC效果都欠佳。
大規(guī)模的電子系統(tǒng)是各種邏輯功能模塊的組合。從時(shí)間軸上來看,系統(tǒng)中的各個(gè)功能模塊并不是任何時(shí)刻都在工作,而是根據(jù)系統(tǒng)外部的整體要求,輪流或循環(huán)地激活或工作。隨著系統(tǒng)規(guī)模的擴(kuò)大,各功能模塊電路的資源利用率反而下降。因此,系統(tǒng)設(shè)計(jì)要從傳統(tǒng)的追求大規(guī)模、高密度的方向,轉(zhuǎn)向如何提高資源利用率上來,充分利用有限的資源去實(shí)現(xiàn)更大規(guī)模的邏輯設(shè)計(jì)。
基于大規(guī)模可編程器件FPGA的可重構(gòu)系統(tǒng)(Reconfigurable System),就是利用FPGA可以多次重復(fù)編程配置的特點(diǎn),實(shí)現(xiàn)實(shí)時(shí)電路重構(gòu)(Reconfiguration of circuitry at runtime,簡(jiǎn)稱RCR),即在電子系統(tǒng)的工作狀態(tài)下,動(dòng)態(tài)改變電路的結(jié)構(gòu),其實(shí)質(zhì)是實(shí)現(xiàn)FPGA內(nèi)部全部或部分邏輯資源的時(shí)分復(fù)用,使在時(shí)間上離散的邏輯電路功能能在同一FPGA中順序?qū)崿F(xiàn)。
雖然可重構(gòu)系統(tǒng)的概念早在1960年就已經(jīng)提出來,但由于沒有理想的可重構(gòu)器件等原因,這方面的研究一直沒有很大突破。1990年以來,隨著大規(guī)模集成電路的迅速發(fā)展,尤其是大規(guī)??删幊唐骷﨔PGA的出現(xiàn),研制可重構(gòu)電子系統(tǒng)的硬件條件已基本具備,實(shí)時(shí)電路重構(gòu)的思想逐漸引起了學(xué)術(shù)界的注意,從而引發(fā)了對(duì)可重構(gòu)系統(tǒng)的研究熱潮。自從2000年以來,基于FPGA的重構(gòu)在國(guó)際上得到了越來越多的關(guān)注和研究。
2 FPGA可重構(gòu)設(shè)計(jì)的基礎(chǔ)
2.1 FPGA可重構(gòu)設(shè)計(jì)的結(jié)構(gòu)基礎(chǔ)
可重構(gòu)設(shè)計(jì)是指利用可重用的軟、硬件資源,根據(jù)不同的應(yīng)用需求,靈活地改變自身體系結(jié)構(gòu)的設(shè)計(jì)方法。FPGA器件可多次重復(fù)配置邏輯的特性使可重構(gòu)系統(tǒng)成為可能,使系統(tǒng)兼具靈活、便捷、硬件資源可復(fù)用等性能。
FPGA器件的結(jié)構(gòu)主要有兩種:一是基于反熔絲技術(shù),二是基于SRAM或FLASH編程。用反熔絲開關(guān)作基本元件,具有非易失性,編程完成后,F(xiàn)PGA的配置數(shù)據(jù)不再變化,無法重構(gòu)。而基于SRAM或FLASH編程的FPGA通過陣列中的SRAM或FLASH單元對(duì)FPGA進(jìn)行編程。SRAM單元由一個(gè)RAM和一個(gè)PIP晶體管組成,RAM中儲(chǔ)存著PIP晶體管的通斷信息,系統(tǒng)上電時(shí),這些信息碼由外部電路寫入到FPGA內(nèi)部的RAM中,電源斷開后,RAM中的數(shù)據(jù)將丟失。因此SRAM或FLASH編程型FPGA是易失性的,每次重新加電,F(xiàn)PGA都要重新加載數(shù)據(jù)。這樣,運(yùn)行中的FPGA功能系統(tǒng)在掉電后可以重新下載新的配置數(shù)據(jù),以實(shí)現(xiàn)不同的功能。這一特點(diǎn)成為FPGA在許多新領(lǐng)域獲得廣泛應(yīng)用的關(guān)鍵,尤其成為可重構(gòu)系統(tǒng)發(fā)展的持續(xù)驅(qū)動(dòng)力。
2.2 FPGA的重構(gòu)方式
根據(jù)重構(gòu)的方法不同,F(xiàn)PGA的重構(gòu)可分為靜態(tài)重構(gòu)和動(dòng)態(tài)重構(gòu)兩種,前者是指在系統(tǒng)空閑期間進(jìn)行在線編程,即斷開先前的電路功能后,重新下載存貯器中不同的目標(biāo)數(shù)據(jù)來改變目標(biāo)系統(tǒng)邏輯功能。常規(guī)SRAM FPGA都可實(shí)現(xiàn)靜態(tài)重構(gòu)。后者則是指在系統(tǒng)實(shí)時(shí)運(yùn)行中對(duì)FPGA芯片進(jìn)行動(dòng)態(tài)配置(即在改變電路功能的同時(shí)仍然保持電路的工作狀態(tài)),使其全部或部分邏輯資源實(shí)現(xiàn)在系統(tǒng)的高速的功能變換和時(shí)分復(fù)用。動(dòng)態(tài)重構(gòu)技術(shù)需要特定的基于SRAM或FLASH結(jié)構(gòu)的新型FPGA的支持。隨著其產(chǎn)品和技術(shù)的相對(duì)成熟,動(dòng)態(tài)重構(gòu)FPGA的設(shè)計(jì)理論和設(shè)計(jì)方法已經(jīng)逐漸成為新的研究熱點(diǎn)。
根據(jù)實(shí)現(xiàn)重構(gòu)的面積不同,可重構(gòu)FPGA又可以分為全局重構(gòu)和局部重構(gòu)。
(1)全局重構(gòu):對(duì)FPGA器件或系統(tǒng)能且只能進(jìn)行全部的重新配置,在配置過程中,計(jì)算的中間結(jié)果必須取出存放在額外的存儲(chǔ)區(qū),直到新的配置功能全部下載完為止。重構(gòu)前后電路相互獨(dú)立,沒有關(guān)聯(lián)。通常,可以給FPGA串連一個(gè)EPROM來存儲(chǔ)配置數(shù)據(jù),實(shí)現(xiàn)前后功能的轉(zhuǎn)化。常規(guī)基于SRAM的FPGA的靜態(tài)重構(gòu)均為全局重構(gòu)。
(2)局部重構(gòu):對(duì)重構(gòu)器件或系統(tǒng)的一部分進(jìn)行重新配置,重構(gòu)過程中,其余部分的工作狀態(tài)不受影響。這種重構(gòu)方式減小了重構(gòu)范圍和單元數(shù)目,F(xiàn)PGA的重構(gòu)時(shí)間大大縮短,占有相當(dāng)?shù)乃俣葍?yōu)勢(shì)。應(yīng)用FPGA動(dòng)態(tài)部分重構(gòu)功能使硬件設(shè)計(jì)更加靈活,可用于硬件的遠(yuǎn)程升級(jí)、系統(tǒng)容錯(cuò)和演化硬件以及通信平臺(tái)設(shè)計(jì)等。動(dòng)態(tài)部分重構(gòu)可以通過兩種方法實(shí)現(xiàn):基于模塊化的設(shè)計(jì)方法(Module-Based Partial Reconfiguration)和基于差別的設(shè)計(jì)方法(Difference-Based Partial Reconfiguration)。
顯然,動(dòng)態(tài)重構(gòu)比靜態(tài)重構(gòu)優(yōu)越,因?yàn)殪o態(tài)重構(gòu)將整個(gè)內(nèi)部的邏輯單元都重新配置,此時(shí)FPGA被掛起不能執(zhí)行正常操作,重構(gòu)完成后才能恢復(fù)工作,影響系統(tǒng)實(shí)時(shí)性。動(dòng)態(tài)重構(gòu)在系統(tǒng)運(yùn)行中能實(shí)時(shí)全部或部分重構(gòu),且不中斷正常邏輯輸出,因而更有靈活性和高速度。
大多數(shù)FPGA都是基于LUT查找表結(jié)構(gòu),它們只適用于靜態(tài)重構(gòu),通過向LUT一次下載全部配置數(shù)據(jù)而設(shè)定FPGA的邏輯功能。根據(jù)FPGA的容量不同、配置方式不同,全部重構(gòu)時(shí)間為幾ms到幾秒不等。
對(duì)于常規(guī)FPGA來說,重載方式多種多樣。在系統(tǒng)調(diào)試階段,一般是通過JTAG電纜從主機(jī)下載配置數(shù)據(jù),調(diào)試結(jié)束后正式運(yùn)行時(shí)一般是將配置數(shù)據(jù)放在串行PROM中,上電時(shí)向FPGA加載邏輯。但對(duì)于系統(tǒng)實(shí)際運(yùn)行還有一些更快更靈活的配置方式,可以縮短FPGA的重構(gòu)時(shí)間,實(shí)現(xiàn)靈活重構(gòu)。如ALTERA公司的FPGA可采用串行被動(dòng)(PS)方式配置,對(duì)于2萬(wàn)邏輯門規(guī)模的EP1K10配置數(shù)據(jù)為20KB,在30MHz的配置時(shí)鐘下只要5ms即可全部重構(gòu)。這個(gè)速度雖然比不上動(dòng)態(tài)配置的FPGA,但也比JTAG下載、串行PROM配置方式快多了,姑且稱之為準(zhǔn)動(dòng)態(tài)重構(gòu)(bogus dynamic restructuring)。而且在許多系統(tǒng)中FPGA并不時(shí)刻都在工作,而是以一定的重復(fù)頻率執(zhí)行任務(wù),只要在FPGA的空閑時(shí)間來得及對(duì)其進(jìn)行重新配置,那么在系統(tǒng)宏觀的角度就可以認(rèn)為是動(dòng)態(tài)配置的,即實(shí)時(shí)重構(gòu)。
2.3 支持重構(gòu)的FPGA器件
近年來,隨著FPGA技術(shù)的發(fā)展,支持重構(gòu)的FPGA器件新品迭現(xiàn)。Xilinx、Altera、Lattice的FPGA器件都是SRAM查找表結(jié)構(gòu)。Xilinx支持模塊化動(dòng)態(tài)部分重構(gòu)的器件族有XC6200系列,90nm工藝Spartan-3和Virtex-4 、Virtex-II-E和Virtex-II Pro [7]。Acmel公司的AT6000系列同樣基于SRAM結(jié)構(gòu),只是SRAM的各單元能夠單獨(dú)訪問配置,即支持部分重構(gòu)。Lattice公司的基于Flash的FPGA通過在Flash上存儲(chǔ)多種邏輯功能的配置數(shù)據(jù)流,經(jīng)過配置實(shí)現(xiàn)不同邏輯功能,嚴(yán)格意義上講屬于靜態(tài)可重構(gòu)技術(shù)。Altera公司的Flex系列、ACEX、APEX、Cyclone系列也是基于SRAM的可重構(gòu)邏輯。支持重構(gòu)的FPGA器件有數(shù)量逐漸增加的趨勢(shì)。但目前價(jià)格相對(duì)偏高。
評(píng)論