基于模塊化設(shè)計方法實現(xiàn)FPGA動態(tài)部分重構(gòu)_第1頁
基于模塊化設(shè)計方法實現(xiàn)FPGA動態(tài)部分重構(gòu)_第2頁
基于模塊化設(shè)計方法實現(xiàn)FPGA動態(tài)部分重構(gòu)_第3頁
基于模塊化設(shè)計方法實現(xiàn)FPGA動態(tài)部分重構(gòu)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、    基于模塊化設(shè)計方法實現(xiàn)FPGA動態(tài)部分重構(gòu)動態(tài)部分重構(gòu)可以通過兩種方法實現(xiàn):基于模塊化設(shè)計方法(Module-BasedParTIalReconfiguration)和基于差別的設(shè)計方法(Difference-BasedPartialReconfiguration),本文以基于模塊化設(shè)計為例說明實現(xiàn)部分重構(gòu)的方法。1FPGA配置原理簡介本文針對Xilinx公司的FPGA進(jìn)行研究,支持模塊化動態(tài)部分重構(gòu)的器件族有Virtex/-II/-E和Virtex-IIPro。Xilinx公司FPGA是基于SRAM工藝的,包括配置邏輯塊(CLBs),輸入輸出塊

2、(IOBs),塊RAMs,時鐘資源和動態(tài)部分重構(gòu)可以通過兩種方法實現(xiàn):基于模塊化設(shè)計方法(Module-Based ParTIal Reconfiguration)和基于差別的設(shè)計方法(Difference-Based Partial Reconfiguration),本文以基于模塊化設(shè)計為例說明實現(xiàn)部分重構(gòu)的方法。1 FPGA配置原理簡介本文針對Xilinx公司的FPGA進(jìn)行研究,支持模塊化動態(tài)部分重構(gòu)的器件族有Virtex/-II/-E和Virtex-II Pro。Xilinx公司FPGA是基于SRAM工藝的,包括配置邏輯塊(CLBs),輸入輸出塊(IOBs),塊RAMs,時鐘資源和編程布

3、線等資源2。CLBs是構(gòu)造用戶所需邏輯的功能單元,IOBs提供封裝引腿與內(nèi)部信號引線的接口??删幊袒ミB資源提供布線通道連接可配置元件的輸入和輸出到相應(yīng)的網(wǎng)絡(luò)。存儲在內(nèi)部配置存儲器單元中的數(shù)值決定了FPGA實現(xiàn)的邏輯功能和互接方式。Virtex FPGA的配置存儲器是由配置列(Configuration Columns)組成的,這些配置列以垂直陣列的方式排列,如圖1給出了Virtex-E XCV600E器件的配置列構(gòu)成圖。配置存儲器可分為五種配置列:Center 列包含四個全局時鐘的配置信息;兩個IOB 列存儲位于器件左邊和右邊所有IOBs的配置信息;CLB列存儲FPGA基本邏輯功能的配置信息;

4、Block SelectRAM Content列存儲內(nèi)部塊RAM的配置信息;Block SelectRAM Interconnect列存儲內(nèi)部塊RAM間互聯(lián)的配置信息3。圖1 Virtex-E XCV600E的配置列構(gòu)成及地址配置列根據(jù)分配給它的配置地址(Configuration Address)來尋址。每一個配置列在FPGA內(nèi)都有唯一的主地址(Major Address)空間。FPGA的邏輯功能通過配置比特流(Configuration Bitstream)來實現(xiàn)。對于動態(tài)部分重構(gòu)功能來說,需重構(gòu)的配置邏輯是通過下載不同的部分配置比特流來實現(xiàn)的。2基于模塊化動態(tài)部分重構(gòu)FPGA的設(shè)計方法所

5、謂的FPGA模塊化設(shè)計就是將系統(tǒng)按照一定規(guī)則劃分成若干模塊,然后對每個模塊分別進(jìn)行設(shè)計、綜合,并將實現(xiàn)結(jié)果約束在預(yù)先設(shè)置好的區(qū)域內(nèi),最后將所有模塊的實現(xiàn)結(jié)果有機的組織起來完成整個系統(tǒng)的設(shè)計4。其劃分模塊的基本原則為:子模塊功能相對獨立,模塊內(nèi)部聯(lián)系盡量緊密,模塊間的連接盡量簡單。對于那些難以滿足模塊劃分準(zhǔn)則的具有強內(nèi)部關(guān)聯(lián)的設(shè)計,不適合采用此設(shè)計方法。FPGA模塊化設(shè)計的優(yōu)點在于:團隊式并行工作從而加速整個項目的開發(fā)進(jìn)度;每個子模塊都能夠靈活使用綜合和實現(xiàn)工具獨立進(jìn)行優(yōu)化,從而達(dá)到更好的優(yōu)化結(jié)果;調(diào)試、更改某個子模塊時,不會影響其他模塊的實現(xiàn)結(jié)果,保證了整個設(shè)計的穩(wěn)定性與可靠性。模塊化設(shè)計方法

6、使用Xilinx公司的ISE軟件設(shè)計工具,常用HDL語言作為設(shè)計輸入,頂層模塊描述設(shè)計的全局邏輯,包括設(shè)計的輸入/輸出、所有子模塊的黑盒子(Black Box)聲明以及子模塊之間的連接關(guān)系。所謂黑盒子聲明是指在頂層模塊中僅僅對子模塊進(jìn)行端口描述與信號屬性聲明,并不包含任何實際邏輯和時序關(guān)系的描述。子模塊通常也使用HDL語言描述,分別設(shè)計出各子模塊的邏輯實體并綜合所設(shè)計的子模塊。由于子模塊的輸入/輸出并不是整個設(shè)計的外部接口,所以在綜合過程中應(yīng)禁止子模塊插入I/O端口,而僅在綜合頂層模塊時才插入I/O端口。最后將所有子模塊的實現(xiàn)結(jié)果和頂層的實現(xiàn)結(jié)果有機地組織起立,完成整個設(shè)計的實現(xiàn)。圖2是基于模

7、塊化設(shè)計方法的流程。圖2 模塊化設(shè)計流程采用模塊化設(shè)計方法實現(xiàn)FPGA的動態(tài)部分重構(gòu),首先進(jìn)行模塊劃分,將設(shè)計的固定邏輯即運行過程中不需要更改的邏輯劃分到固定模塊,將需要更改的部分劃分到可重構(gòu)模塊中。其次模塊的放置位置和大小也有限制,必須遵循一定的規(guī)則5:可重構(gòu)模塊的高度和器件的高度一致,從圖1中可以直觀地認(rèn)為模塊必須包含整個配置列;可重構(gòu)模塊的寬度最小是4個Slice(一個CLB包含兩個完全相同的Slice),并且必須為4個Slice的倍數(shù);如果可重構(gòu)模塊位于器件的最左邊或是最右邊的Slice列,則所有位于器件邊緣的IOBs將作為可重構(gòu)模塊的資源;為了減少設(shè)計的復(fù)雜度,可重構(gòu)模塊的數(shù)量應(yīng)該盡

8、量少等。FPGA動態(tài)部分重構(gòu)的實現(xiàn)在本設(shè)計實例中,F(xiàn)PGA實現(xiàn)的功能是對外圍接口電路進(jìn)行邏輯控制以及根據(jù)外圍不同設(shè)備輸入的數(shù)據(jù)選擇適當(dāng)?shù)臄?shù)據(jù)處理算法。據(jù)此將設(shè)計劃分為固定模塊和可重構(gòu)模塊,其中固定模塊內(nèi)實現(xiàn)對外接口的控制邏輯,可重構(gòu)模塊內(nèi)實現(xiàn)數(shù)據(jù)處理算法。本例中只將FPGA的邏輯功能更換一次,即可重構(gòu)模塊只部分重構(gòu)一次,將其在重構(gòu)前后的不同邏輯功能分別計作reconfig_a和reconfig_b。系統(tǒng)會根據(jù)需要動態(tài)部分重構(gòu)FPGA,為不同的數(shù)據(jù)源選擇適合的處理方法。本設(shè)計由Virtex-E XCV600E器件來實現(xiàn)。根據(jù)模塊所需資源的大小和模塊劃分原則,在用戶約束文件(UCF)中將每個模塊的

9、位置進(jìn)行約束,如下所示:INST "fix" AREA_GROUP = "AG_fix" ;(1)AREA_GROUP "AG_fix" RANGE = CLB_R1C1:CLB_R48C36 ;(2)INST "reconfig" AREA_GROUP = "AG_reconfig" ; (3)AREA_GROUP "AG_reconfig" RANGE = CLB_R1C37:CLB_R48C72 ;(4)其中(2)、(4)指定了兩個模塊的具體位置。按照模塊化設(shè)計流程,分

10、別對固定模塊fix和可重構(gòu)模塊reconfig_a和reconfig_b進(jìn)行設(shè)計綜合,再將兩個可重構(gòu)模塊分別和固定模塊進(jìn)行組合,完成整體設(shè)計。此過程中可重構(gòu)模塊和FPGA的整個設(shè)計分別生成配置比特流。圖3和圖4是FPGA部分重構(gòu)前后的整個設(shè)計的物理實現(xiàn),圖中左半部分為固定模塊區(qū)域,右半部分為可重構(gòu)模塊區(qū)域。從兩圖中可知在部分重構(gòu)前后可重構(gòu)模塊區(qū)域內(nèi)布線發(fā)生變化,而固定模塊區(qū)域內(nèi)布線沒有發(fā)生變化。圖3 fix和reconfig_a整體設(shè)計的物理實現(xiàn)結(jié)果圖4 fix和reconfig_b整體設(shè)計的物理實現(xiàn)結(jié)果FPGA動態(tài)部分重構(gòu)時首先須將整個配置文件下載到器件中,重構(gòu)時系統(tǒng)根據(jù)運行的需要選擇適合的部分重構(gòu)配置比特流。Virtex-E XCV600E配置比特流的大小為495204個字節(jié),而可重構(gòu)模塊reconfig_a和reconfig_b配置比特流的大小分別為93324個字節(jié)和111868個字節(jié),因此采用部分重構(gòu)不僅能夠在運行不間斷的情況下更新可重構(gòu)模塊區(qū)域內(nèi)的邏輯功能,而且也能使重構(gòu)配置時間大大減少。3 結(jié)論本文以Xilinx FPG

溫馨提示

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

評論

0/150

提交評論