新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > FPGA動(dòng)態(tài)局部可重構(gòu)中基于TBUF總線宏設(shè)計(jì)

FPGA動(dòng)態(tài)局部可重構(gòu)中基于TBUF總線宏設(shè)計(jì)

作者: 時(shí)間:2009-08-03 來源:網(wǎng)絡(luò) 收藏

引 言
局部技術(shù)是指允許的器件或系統(tǒng)的一部分進(jìn)行重新配置,配置過程中其余部分的工作不受影響。局部縮短了重構(gòu)的時(shí)間,減少了系統(tǒng)重構(gòu)的開銷,提高了系統(tǒng)的運(yùn)行效率。局部可重構(gòu)技術(shù)中通常將系統(tǒng)劃分為固定模塊和可重構(gòu)模塊??芍貥?gòu)模塊與其他模塊之間的通信(包括可重構(gòu)模塊和固定模塊之間、可重構(gòu)模塊和可重構(gòu)模塊之間)都是由總線宏實(shí)現(xiàn)的。
動(dòng)態(tài)可重構(gòu)技術(shù)在中的實(shí)現(xiàn)是Xilinx公司首先提出的,并且提供了相應(yīng)的開發(fā)工具和開發(fā)流程。他們從Virtex系列器件開始支持動(dòng)態(tài)可重構(gòu)技術(shù),同時(shí)他們提供了現(xiàn)成的總線宏文件給動(dòng)態(tài)可重構(gòu)系統(tǒng)開發(fā)者使用,但是它們提供的總線宏設(shè)計(jì)與軟件版本的兼容性很差。Xilinx提供的總線宏可能因?yàn)檐浖姹镜膯栴}會(huì)無法正常使用,所以用戶需要借助正在使用的版本軟件設(shè)計(jì)總線宏,以實(shí)現(xiàn)動(dòng)態(tài)局部可重構(gòu)設(shè)計(jì)。
在研究總線宏的結(jié)構(gòu)基礎(chǔ)上,采用FPGA Editor可視化的方法設(shè)計(jì)基于的總線宏,并通過FP-GA動(dòng)態(tài)可重構(gòu)實(shí)驗(yàn)驗(yàn)證了該方法的正確性。

本文引用地址:http://m.butianyuan.cn/article/191977.htm


1 基于的總線宏結(jié)構(gòu)
在不同系列的Xilinx FPGA器件中,使用不同的總線宏來實(shí)現(xiàn)動(dòng)態(tài)局部可重構(gòu)技術(shù)。在Virtex,Virtex-E,Virtex-ⅡPro X,Spartan-Ⅱ,Spartan-ⅡE和Spartan-3系列器件中所使用的總線宏都是基于的,可重構(gòu)模塊的位置固定不變;在Virtex4,Virtex5更高性能的器件中,所使用的總線宏是基于Slice的,可重構(gòu)模塊的位置是可變的;而Virtex-Ⅱ,Virtex-ⅡPro所使用的總線宏既可以基于TBUF,也可以基于Slice。
目前,使用最多的總線宏,其物理實(shí)現(xiàn)是使用6個(gè)三態(tài)緩沖器(TBUF),實(shí)現(xiàn)4位的雙向通信。每個(gè)TBUF占用1位,每位使用1根TBUF長線,從FPGA的最左側(cè)到最右側(cè),如圖1所示。TBUF的T端是三態(tài)使能端口;I端是數(shù)據(jù)輸入端口;O是數(shù)據(jù)輸出端口。相應(yīng)地,總線宏的T端(LT和RT)是方向控制端口,控制總線宏從左或從右輸出;I端(LI和RI)是數(shù)據(jù)輸入端口;O端(LO和RO)是數(shù)據(jù)輸出端口。
總線宏的信息通信是雙向的,既可以從左到右,也可以從右到左。但是對(duì)于一個(gè)設(shè)計(jì)來說,一旦信息通信方向確定以后就不能再改變??偩€宏的位置精確地跨騎在模塊A和模塊B之間(A或B是可重構(gòu)模塊,或AB全是可重構(gòu)模塊),其中四柵三態(tài)緩沖器在模塊A內(nèi),另外四柵在B內(nèi)。對(duì)于Virtex-Ⅱ等系列器件,因內(nèi)部結(jié)構(gòu)不同,故兩柵跨騎在模塊A內(nèi),另外兩柵跨騎在模塊B內(nèi)。

2 基于TBUF的總線宏設(shè)計(jì)
這里在深入研究Xilinx公司所提供的總線宏的基礎(chǔ)上,結(jié)合宏的設(shè)計(jì)技術(shù),完善了總線宏的設(shè)計(jì)。
(1)TBUF的內(nèi)部路由。圖2給出內(nèi)部路由后的TBUF電路結(jié)構(gòu)圖。TMUX的T端決定總線宏的控制端LT和RT高電平有效,而T_B端決定低電平有效。

無論控制信號(hào)是高電平有效,還是低電平有效,在使用總線宏進(jìn)行通信時(shí),LT和RT的值必須是相反的,或者是同時(shí)無效的。例如,當(dāng)控制信號(hào)高有效時(shí),即T端為1時(shí),TBUF打開。如果總線宏是從左向右傳遞數(shù)據(jù),則必須將LT設(shè)為1,RT為0,反之亦然;如果總線宏不需要傳遞數(shù)據(jù),那么兩個(gè)控制信號(hào)應(yīng)同時(shí)為0,此時(shí)總線宏輸出為高阻態(tài)。
(2)TBUF添加的方法。Virtex,Virtex-E,Spar-tan-Ⅱ,Spartan-ⅡE的內(nèi)部結(jié)構(gòu)類似,與TBUF添加的方法是相同的。在相應(yīng)的位置選擇一個(gè)可編程邏輯塊(Configurable Logic Block,CLB)中的一個(gè)TBUF作為總線宏的一個(gè)TBUF(1個(gè)CLB包含2個(gè)TBUF),依次選擇同一行相連下一個(gè)CLB中的一個(gè)TBUF,直至選夠8個(gè)TBUF為止;對(duì)于Spartan-3,Virtex-Ⅱ,Virtex-ⅡPro和Virtex-ⅡPro X系列器件;每一個(gè)CLB中的2個(gè)TBUF都作為總線宏的TBUF被選用,在同一行中依次選擇相連的4個(gè)CLB中的8個(gè)TBUF作為總線宏的TBUF,如圖3所示。

(3)TBUF外部端口的命名規(guī)則。根據(jù)圖1的總線宏結(jié)構(gòu),對(duì)各個(gè)TBUF的外部端口T,I和O進(jìn)行相應(yīng)的命名,命名時(shí)要符合所使用版本軟件的要求。例如,若對(duì)端口進(jìn)行如下命名:LI3>,LT3>等,而端口在進(jìn)行物理設(shè)計(jì)規(guī)則檢查(Design Rule Check,DRC)時(shí)會(huì)出錯(cuò),根據(jù)所提示的出錯(cuò)信息將命名改為:LI(3),LT(3)等,即能順利通過DRC,完成端口的命名。
(4)總線宏輸出端口的定義。總線宏輸出端口的定義只能通過手工路由(Manual Route)方法,把相應(yīng)TBUF的輸出端口通過端口連線和TBUF長線連接起來。
(5)參考TBUF的設(shè)置。設(shè)計(jì)中通過約束參考TBUF的位置來決定整個(gè)總線宏的位置,若用戶沒有設(shè)置參考TBUF,則FPGA Editor工具會(huì)將用戶添加的第一個(gè)TBUF默認(rèn)為參考TBUF。
至此,整個(gè)總線宏的設(shè)計(jì)完成,如圖4所示。

3 總線宏的驗(yàn)證
為了驗(yàn)證上述總線宏設(shè)計(jì)方法的正確與否,這里設(shè)計(jì)了一個(gè)功能簡單的FPGA動(dòng)態(tài)局部可重構(gòu)實(shí)驗(yàn)。電路重構(gòu)前實(shí)現(xiàn)的功能為:(A+B)*(C-D),重構(gòu)后實(shí)現(xiàn)的功能為:(A+B)》(C-D)。根據(jù)電路功能將電路劃分為3個(gè)模塊。其中,加法(A+B)、減法(C-D)為固定模塊M1,M2;乘法/移位(*/》)為可重構(gòu)模塊M3。M1與M3,M2與M3之間分別用總線宏BM1和。BM2實(shí)現(xiàn)通信,如圖5所示。
該實(shí)驗(yàn)采用的軟件開發(fā)平臺(tái):Xilinx ISE6.2i;硬件開發(fā)平臺(tái):可重構(gòu)硬件平臺(tái)――XCV800驗(yàn)證板。
每一個(gè)總線宏只能傳遞4位的信號(hào)。當(dāng)可重構(gòu)模塊間需要多于4位的數(shù)據(jù)通信時(shí),可以通過多個(gè)總線宏的拼接實(shí)現(xiàn)。這種拼接只是簡單地將多個(gè)宏拼接為一個(gè)文件,而不是將多個(gè)宏拼接為一個(gè)宏,所以在使用約束語句,約束總線宏的位置時(shí),仍然必須單獨(dú)約束每個(gè)宏,而不是直接約束一個(gè)文件。例如該實(shí)驗(yàn)中模塊M1與模塊M3之間的數(shù)據(jù)通信是8位,則需要2(8/4)個(gè)總線宏來實(shí)現(xiàn)模塊M1與M3間的通信,M2與M3之間也一樣:


按照FPGA動(dòng)態(tài)可重構(gòu)軟件設(shè)計(jì)流程生成局部動(dòng)態(tài)可重構(gòu).bit文件;通過JTAG電纜下載到可重構(gòu)硬件平臺(tái)――XCV800驗(yàn)證板進(jìn)行調(diào)試驗(yàn)證;通過邏輯分析儀觀察結(jié)果,如圖6所示。

A,B的和Q1作為總線宏BM1的數(shù)據(jù)輸入LI1;C,D的差Q2作為總線宏BM2的數(shù)據(jù)輸入RI2;BM1和BM2的方向控制端LT1,RT2為高(255),RT1,LT2為低(O);數(shù)據(jù)輸入端RI1,LI2懸空,R01,L02分別為總線宏的輸出;Q3為可重構(gòu)模塊M3的輸出。由實(shí)驗(yàn)結(jié)果可知,總線宏的設(shè)計(jì)是正確的。


4 結(jié) 語
目前,Xilinx公司提倡使用最新的EAPR(Early Access Partial Reconfiguration)方法實(shí)現(xiàn)FPGA動(dòng)態(tài)局部可重構(gòu)技術(shù)。該方法中用于可重構(gòu)模塊與其他模塊之間通信的總線宏是基于Slice的,但這個(gè)方法只適用于Virtex-Ⅱ,Virtex-ⅡPro,Virtex-IV和Virtex-V等器件,對(duì)于Virtex,SpartanⅡ,SpartanⅢ等器件,只能使用基于TBUF的總線宏實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)技術(shù),因此該文對(duì)基于TBUF的總線宏研究是有意義的。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉