動態(tài)可重構基本理論.doc_第1頁
動態(tài)可重構基本理論.doc_第2頁
動態(tài)可重構基本理論.doc_第3頁
動態(tài)可重構基本理論.doc_第4頁
動態(tài)可重構基本理論.doc_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

論文閱讀理論方法總結Yongfu feng1 FPGA動態(tài)可重構基礎理論 嚴格來講,系統(tǒng)重構的概念可分為靜念系統(tǒng)重構和動態(tài)系統(tǒng)重構。靜態(tài)系統(tǒng)重構是指目標系統(tǒng)的邏輯功能靜態(tài)重載,即FPGA芯片功能在外部邏輯的控制下,通過存貯于存貯器中不同的目標系統(tǒng)數(shù)據(jù)重新下載,而實現(xiàn)芯片邏輯功能的改變。也就是指系統(tǒng)中PLD邏輯的靜態(tài)重載,在系統(tǒng)空閑期間通過各種方式進行在線編程,而不是在其他部分動態(tài)運行時重載。1. 1動態(tài)可重構概念及原理 動態(tài)重構系統(tǒng)概念的提出早于FPGA動態(tài)可重構技術的提出。動態(tài)重構系統(tǒng)指對于時序變化的數(shù)字邏輯系統(tǒng),其時序邏輯的發(fā)生,不是通過調用芯片內不同區(qū)域、不同邏輯資源來組合而成的,而可通過對具有專門緩存邏輯資源的FPGA,進行局部的和全局的芯片邏輯的動態(tài)重構而快速實現(xiàn)。也就是指在系統(tǒng)實時運行當中對FPGA的邏輯功能實時地進行動態(tài)配置,能夠只對其內部需要修改的邏輯單元進行重新配置,沒有被修改的邏輯單元將不受影響,正常工作。一般由傳統(tǒng)處理器執(zhí)行主程序,特定的任務賦給以FPGA為基礎的協(xié)處理器以加速它們的執(zhí)行。事實上,在大部分處理時間內,只有相對較小的一部分用來計算內部任務,而硬件可以顯著加速執(zhí)行的時間。在重構的過程中,根據(jù)需要,任務可以交換進入?yún)f(xié)處理器進行處理。 所謂FPGA動態(tài)可重構技術,是指基于靜態(tài)存儲器(SRAM)編程和專門結FPGA,在一定的控制邏輯的驅動下,不僅能實現(xiàn)系統(tǒng)重新配置電路功能,還能對芯片邏輯功能實現(xiàn)系統(tǒng)的高速動態(tài)變換。大多數(shù)FPGA都是基于SRAM查找表結構,它們一般只適用于靜態(tài)重構,向SRAM一次下載全部配置數(shù)據(jù)而設定FPGA的邏輯功能。根據(jù)FPGA的、配置方式等不同,全部重構時間為幾毫秒到幾秒不等。過去大家普遍進行重構研究的FPGA主要有,Xilinx的XC6200系列、以及Atmel的AT6000等。它們也是基于SRAM結構,但是SRAM的各單元能夠單獨訪問配置,分重構。它們的功能互不影響,因而具有部分重構的特征。這樣做的優(yōu)點顯但也會付出增大硬件電路規(guī)模和功耗的代價。要最終實現(xiàn)電子系統(tǒng)的完全實構,應采用結構上具有動態(tài)部分重構功能的FPGA器件,如現(xiàn)在Xilinx的VirtexII系列。從動態(tài)可重構的特征可以引出一種新的設計思想:1,以小規(guī)模硬件邏輯資源來實現(xiàn)大規(guī)模系統(tǒng)時序功能,將傳統(tǒng)設計的空間分布的硬件邏輯,分為器件外部特征不變,而內部邏時間上交替變換,并共同在時問空間上構成系統(tǒng)整體邏輯功能。FPGA動態(tài)可重構技術主要特征是將整體按功能或按時序分解為不同的組合,并根據(jù)實際需要,分時對芯片進行動態(tài)重構,以較少的硬件資源,去實現(xiàn)較大的時序系統(tǒng)整體功能。圖1給出了一種典型的FPGA動態(tài)可重構原理示意圖。從圖1中可以看出,在外部邏輯的控制下,可以實時動態(tài)地對芯片邏輯實現(xiàn)全部重構或局部重構,通過控制布局、布線的資源,來實現(xiàn)系統(tǒng)的動態(tài)重構。圖1.1典型的FPGA動態(tài)可重構原理圖要使FPGA有效地實現(xiàn)實時系統(tǒng)動態(tài)重構, FPGA結構上必須滿足以下要求:1,不僅具有可重新編程能力,同時可動態(tài)進行系統(tǒng)資源地重新配置,而不會破壞器件中全局或局部邏輯操作能力。2,F(xiàn)PGA內部配置信息對稱,即在任何時刻、任何通用的基本邏輯功能可以配置于器件地任何一個位置,運行用簡單模型組合去實現(xiàn)設計中的復雜功能。1.2 FPGA配置架構FPGA的配置文件通過數(shù)據(jù)總線傳輸?shù)紽PGA的數(shù)據(jù)緩沖區(qū),下載處理器處理緩沖區(qū)中每一幀配置數(shù)據(jù),并把其下載到FPGA的配置RAM中,也就是邏輯配置層。邏輯配置層的中RAM的取值決定了FPGA的功能。也就是說,在常見的FPGA中,其配置電路的結構原理圖如圖12 FPGA配置電路結構圖從上圖中反映的配置過程我們不難發(fā)現(xiàn),制約FPGA配置速度的因素有兩個;一個是配置數(shù)據(jù)的下載速度;一個是FPGA內部的數(shù)據(jù)處理速度。FPGA的配置速度是動態(tài)可重構系統(tǒng)中一個非常重要的指標,快速高效的下電路設計是可重構系統(tǒng)的一個關鍵問題。一般說來,加快重配置過程方法有三種:第一、優(yōu)化FPGA配置電路總線,使配置文件能夠以更快的速度下載到FPGA配置單元當中;第二、減小配置文件,在配置速度不變的情況下這也是一個十分有效的辦法;第三、優(yōu)化FPGA的重配置流程,簡化FPGA的配置步驟,減少不必要的時間開銷。二動態(tài)部分可重構的兩種模式 Xilinx Virtex系列一個最重要的特性就是動態(tài)可重構。當器件的同一個區(qū)域要載入不同的設計功能并且又不需要重新配置整個電路,也不影響其他電路的行時就需要部分動態(tài)可重構。這樣既可以降低電路能量消耗又可以提高板子利率、加快下載速度。Virtex器件的有效部分動態(tài)可重構可以使用Selectmap模式或者Boundary scan(JTAG)模式下載。不需要重新配置器件也不需要下載完整的配置,新的據(jù)只需下載到器件的可重構部分。對于目前的FPGA器件來說,數(shù)據(jù)是以柵(column)為基礎下載,最小的可下載單元是一幀(frame)的配置比特流,它據(jù)目標器件的不同而有不同的大小。FPGA的動態(tài)可重構有兩種不同的方式:u 基于模塊(Module-based)的部分可重構。u 基于差異(Difference-based)的部分動態(tài)可重構。21基于模塊的部分可重構 部分可重構定義了一些特殊的區(qū)域,這些區(qū)域可以在器件的其他部分還在運行的情況下進行重構,這些特殊區(qū)域稱作可重構區(qū)域。基于模塊的部分可重構就是將電路功能劃分成一個個的模塊,這些模塊包括可重構模塊(可以實現(xiàn)重構的特殊區(qū)域)和固定模塊(功能不變不能實現(xiàn)重構的區(qū)域)??芍貥嬆K具有以下的一些特性:1 重構模塊的高度是整個器件的高度。2 重構模塊的寬度最小可以是四個slice最大可以到整個器件的寬度,但必須以四的整數(shù)倍的slice增加。3 重構模塊放置的水平坐標必須是四的整數(shù)倍的slice的邊界,例如:左邊邊界可以放置在x-0,4,8,4 模塊寬度范圍內包括的所有邏輯資源都被看作是可重構模塊的一部分,包括slice、TBUF、RAM塊、乘法器、lOB和布線資源。5 時鐘邏輯和可重構模塊是相互分離的,時鐘和比特流是相互獨立的。6 可重構模塊上部和下部的IOB是可重構模塊資源的一部分。7 如果一個可重構模塊貫穿了整個板子的左部和右部,那么每一邊的IOB都是可重構模塊資源的一部分。8 為了降低設計難度,要盡量減少可重構模塊的個數(shù)(理想狀況下,如果可能的話,最好只有一個可重構模塊),所以說slice的數(shù)目能被四整除是可重構模塊區(qū)域的唯一約束。9 可重構模塊的邊界不能改變。任何一個可重構模塊的位置、所占據(jù)的區(qū)域都是固定的。10可重構模塊和其他模塊之間的通信(包括可重構模塊和普通固定模塊之間、可重構模塊和可重構模塊之間)都是通過使用特殊的總線宏,如圖21。圖21線宏用作模塊內部通信11 為了保證重構的時候實現(xiàn)合適的操作,需要外在的握手邏輯。在可重構過程之前和之后,要保存可重構模塊內的存儲元素的狀態(tài)。如圖22所示,是一個具有兩個部分可重構模塊的設計,各模塊間都是通過總線宏來進行通信的。圖22具有兩個可重構模塊的設計布局圖圖23 可重構模塊的設計流程圖 圖53基于模塊化的配置文件生成流程 基于模塊化的配置文件生成流程與模塊化設計方法緊密聯(lián)系,并要求系統(tǒng)是按照模塊化設計方法開發(fā)的。在模塊化設計方法中,系統(tǒng)首先被劃分為一些具有特定功能、相互之間比較獨立的模塊,并且模塊之間的接口和互連關系已經(jīng)被預先定義好。隨后,各個模塊被不同的開發(fā)人員并行地設計并實現(xiàn)。最后,各個模塊按照最初定義的互連關系被組裝起來,形成一個完整的系統(tǒng)。當需要動態(tài)改變某個模塊的功能時,開發(fā)人員仍然需要按照模塊化設計方法的流程得到該模塊的布局布線文件,但是不需要進行模塊的組裝工作。取而代之的是:直接根據(jù)布局布線文件得到該模塊所對應的硬件區(qū)域的配置數(shù)據(jù)文件。21.1總線宏的通訊 為了促進可重構模塊之間的通信,需要保證穿過可重構模塊邊界的布線資源是完全固定而且必須是靜態(tài)的,這就需要一種特殊的總線宏。總線宏的主要作用足保證穿過可重構模塊邊界的布線資源固定,使可暈構模塊邊界的布線資源不被改變。目前使用如圖2.3就是所需的這種總線宏:其中,左邊的A是一個模塊,右邊的B是另一個模塊,A或者B是可重構模塊,或者AB全是可重構模塊。A和B中間的總線宏,就是支持AB之間通信的特殊總線宏。它保證AB間布線資源的不變性。也就是說當一個模塊進行重構時模塊內部信號用到的布線資源不能改變。如圖23,總線宏是兩個模塊問的一個固定的布線橋。它是一個事先已經(jīng)布線好的用來確定精確布線軌道的宏,并且在編輯改變的時候保持不變。對于每個不同的設計應用來說,它是一個絕對固定不變的總線宏。目前使用的總線宏由八個三態(tài)緩沖器(TBUF)組成,能夠實現(xiàn)4個比特寬度的數(shù)據(jù)通路。其如圖24。圖2.4總線宏圖2.5總線宏的物理執(zhí)行總線宏允許信息雙向傳遞,一個比特的信息使用一個三態(tài)緩沖器的長線。Virtex器件的每一行支持一個總線宏的四個比特。總線宏的位置精確的跨騎在模塊A和模塊B之間,其中四柵三態(tài)緩沖器在A內,另外四柵三態(tài)緩沖器在B內。由三態(tài)緩沖器長線輸出所組成的固定橋確保兩個模塊問固定的通信。總線宏的信息通訊是雙向的,既可以從左到右也可以從右到左。但是對于這個設計來說,一旦信息通信方向確定以后就不能再改變。21.2 總線宏的基本設計方式總線宏的基本設計方式為:1) 在設計初期將可重構硬件資源規(guī)劃好,重構模塊和固定模塊劃分好.2) 在模塊功能劃分好后,將總線宏的位置鎖定在固定模塊和重構模塊的邊界.3) 總線宏的設計工具是使用FPGA底層編輯器FPGA Editor。FPGA Editor是一個手工布局布線設計工具,需要設計者具有一定設計經(jīng)驗才能完成設計,單是FPGA Editor的使用靈活性也更高。通過FPGA Editor可以編輯或者查看可配置邏輯功能塊(CLB),IO功能塊等一些FPGA內部的基本單元。使用總線宏約束重構模塊和固定模塊之間的布線資源使其不被改變??偩€宏的設計需要消耗額外的硬件資源,造成一些資源浪費;另外總線宏固定了重構模塊和固定模塊之間的布線,即固定模塊之間的通信,模塊之間不再可以進行任意通信,這在一定程度市內過降低了部分重構系統(tǒng)在實現(xiàn)上的靈活性。但是在當前技術條件下,基于模塊的部分重構設計使用總線宏的通訊機制是目前最佳的解決方案。22 基于差異的部分可重構 基于差異的部分可重構只是比較重構前后的電路差別,產(chǎn)生一個只包含重構前后設計差別的比特流??梢允褂脙煞N方法來改變設計、產(chǎn)生重構酊后的差別。分別是前端改變(HDL描述)和后端改變(NCD文件)。對于前端改變來說,設計必須重新綜合,創(chuàng)建一個新的布局布線好的NCD文件。而對于后端設計來說只需要改變NCD文件,不必重新綜合,可以通過FPGA Editor工具來修改。使用BitGen就可以生成電路可重構部分內開關狀態(tài)差別的可下載差異文件??芍貥嬊昂箝_關配置的改變非常迅速比重新配置整個電路要快很多,就像差異比特流比整個電路的比特流小很多一樣。差異比特流很小,所以能夠迅速而簡單的下載到電路中。如果設計中可重構的邏輯塊很大、功能很復雜,則需要使用基于模塊的部分可重構。然而,有很多電路只需要修改比較少的內容,或許只需要修改一個LUT內容、BRAM的內容或者一個I/O口等,這種類型的修改可以輕松的通過Xilinx FPGA Editor修改布局布線后的NCD文件來實現(xiàn)。一旦修改完成后,利用BitGen來產(chǎn)生重構前后差異的下載文件,即可實現(xiàn)部分重構。然而,要完成以上操作要很好的理解如何使用FPGAEditor來修改邏輯以及BitGen相關選項的選擇。在FFGA Editor中可以進行三種方式的修改:u 改變I/O標準u 改變BRAM內容u 改變LUT設計。其中可以選擇的最小邏輯元素是slice。使用FPGAEditor修改設計時,首先要打開NCD文件,看到邏輯塊后找到可選擇的最小邏輯元素slice,打開片slice的結構圖窗口。要修改BRAM的內容時,首先打開NCD文件找到BRAM后,打開BRAM的結構圖可進行BRAM修改。同樣對I/O標準的修改也一樣,打開NCD文件找到I/O后,打開I/O構圖進行I/O標準的修改。以上三種修改都符合有效的重構流程。除了這三種方式還有其他的修改方式,比如:顛倒極性、振蕩器的初始化和重新設置值、上拉、下拉外部管腳或者RAM寫方式。所有這些特性都能夠在實際的slice、RAM邏輯塊或IOB中修改。但是,最好不要進行任何有可能影響布線或者產(chǎn)生內部連接沖突的修改行為。圖2.6 計差異的設計流程23 基于模塊與基于差異部分的可重構比較 基于模塊的部分態(tài)可重構將設計分解成模塊,對一個設計來說,每個模塊都是完全獨立的。如模塊之間需要交流通信,就需要一種特殊的總線宏,它允許信號穿過部分可重的邊界。總線宏為設計的內部通信提供了一個固定的總線。每次實現(xiàn)部分可重時,總線宏就用來確定模塊間的布線通道沒有改變,保證正確的連接。 基于差異的部分可重構只是基于比較重構前后的電路差別,產(chǎn)生一個只包含重構前后設計差別的比特流。差異比特流比整個電路的比特流小很多,所以能夠迅速下載到電路中。但是如果電路功能比較復雜則差異文件會非常龐大,所以基于差異的部分可重構只適用于功能簡單的電路,對于功能復雜的電路需要使用基于模塊的部分可重構。三動態(tài)重構FPGA電路設計流程 靜態(tài)重構FPGA電路設計是一種自頂向下的設計流程,先進行行為級電路描述,然后轉化為寄存器傳輸級的邏輯電路,然后結合FPGA器件廠家的工藝庫,經(jīng)過邏輯綜合生成網(wǎng)表文件,然后進行布局、布線并通過相應軟件產(chǎn)生FPGA的配置文件,最后將配置文件下載至FPGA中,即完成FPGA的整個電路設計,還要在各個不同層次進行仿真驗證,以保證設計的正確性。 動態(tài)重構FPGA系統(tǒng)的設計流程與靜態(tài)重構FPGA不同,在邏輯設計階段針對同一個器件設計多個功能電路Fl,F(xiàn)2,F(xiàn)n,這些電路的配置文件都預先生成好,存儲在存儲器件中,稱為重構件。根據(jù)電路的調用順序來定義重構狀態(tài)圖。在系統(tǒng)運行過程中,根據(jù)重構狀態(tài)圖,結臺系統(tǒng)的當前狀態(tài),將相應的重構件配置到FPGA中,實現(xiàn)某一時刻所需的硬件功能。重構件可以是某個特定的算法電路,比如FIR,IIR,也可以僅僅是完成輸入、輸出間的某種特定連接,也可以實現(xiàn)其他電路功能。3.1動態(tài)重構FPGA系統(tǒng)的設計流程 動態(tài)重構FPGA系統(tǒng)的設計流程由三個階段組成:1) 設計階段: 需要經(jīng)過邏輯設計、器件綜合、器件布局布線等步驟,并在不同層次進行仿真驗證,保證設計的J下確性,為了盡可能減小重構件的數(shù)據(jù)量,在邏輯設計和器件布局布線過程中,要采用一些特殊的設計方法,并需要更為詳盡的考慮和控制。2) 編譯階段: 動態(tài)重構FPGA系統(tǒng)預先生成多個重構件,構成一個重構件數(shù)據(jù)庫,生成重構狀態(tài)圖,對各重構件的載入順序進行定義,重構狀態(tài)圖中的節(jié)點代表目前系統(tǒng)FPGA所處的配件狀態(tài),節(jié)點間的有向邊則代表重構件的下載操作。3) 運行階段: 主要是對動態(tài)重構系統(tǒng)的重構操作進行管理與監(jiān)控,根據(jù)系統(tǒng)的運行狀態(tài)和重構狀態(tài)圖,進行重構件的調用和下載操作,實現(xiàn)FPGA器件功能的動態(tài)重構。因為FPGA動態(tài)可重構在實現(xiàn)小型化、集成化和高可靠的同時,減少了風險,降低了成本,縮短了周期,提高了硬件的利用率,能在廣泛的應用項目中發(fā)揮其優(yōu)勢,具有極強的競爭能力。所以FPGA動態(tài)可重構技術已引起研究領域和應用領域的廣泛關注和興趣。3.2 基于模塊的局部動態(tài)可重構設計流程概述 基于模塊的部分可重構設計允許設計者獨立綜合每個模塊,全部綜合完畢后有模塊一起編譯,這種并行方法即節(jié)省時間又允許每個模塊獨立終止運于模塊的部分可重構設計還需要設計者確保模塊分區(qū)正確,并且在最終編夠一起正常工作。這種模塊設計最好用做可以分區(qū)成自我控制模塊的大型分區(qū)后的模塊數(shù)量越少越好。圖31基于模塊的部分可重構流程基于模塊的部分可重構流程如圖31所示,該設計流程主要包括兩個階段:u 第一階段:模塊設計入口(模塊頂層設計)和模塊設計綜合。u 第二階段:模塊設計實現(xiàn)(初始預算、模塊實現(xiàn)和最終編譯)。這兩個階段設計,可以產(chǎn)生整個電路功能和動態(tài)可重構部分的下載文件,該文件下載到實驗板Virtex2中,并通過內部控制器對內部時合理控制,就可實現(xiàn)動態(tài)可重構,并且能夠通過實驗板觀察相關結果。3.2.1 模塊設計入口和綜合在這一階段,要用硬件描述語言實現(xiàn)電路功能并綜合,要同時做頂層設計和設計。u 頂層設計:在進行模塊設計執(zhí)行階段之前,設計者要首先完成頂層設計的設計入口和綜合。u 模塊設計:在激活模塊執(zhí)行階段之前。設計者要先完成該模塊的設計入口和綜合工作,各個模塊的綜合可以并行進行。 設計者使用HDL語言創(chuàng)建一個頂層設計文件并對其綜合。頂層設計包括所有全局邏輯,I/O和所有的模塊。這些模塊被例示為“黑匣”結構,只有端口、指向、連接模塊的信號和IO端口。這步是在模塊設計運行之前所必需的。設計者要使用HDL語言創(chuàng)建每個獨立的模塊設計并練合這些設計,但是這一步不一定必須在模塊設計運行之前??梢栽谠O計模塊的同時進行初始是要開始激活模塊運行之時,一定要將獨立模塊設計綜合完畢??梢允褂梦淖州斎牍ぞ哌M行Vedlog或者VHDL語吉的功能編寫。為了綜合計,可以使用Xilinx的工具或者Xilinx支持的第三方工具。比如用Xilin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論