新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA的動態(tài)局部可重構實現(xiàn)方法

基于FPGA的動態(tài)局部可重構實現(xiàn)方法

作者: 時間:2017-06-04 來源:網(wǎng)絡 收藏

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

1 Xilinx的EAPR局部重構流程

EAPR(early access partial reconfiguration)與基于模塊(module based)流程相比,有以下的主要區(qū)別:

I 移除了Virtex-II器件局部可重配置(PR)中對于局部可重配置區(qū)域必須是整列的要求,EAPR設計流程中,允許PR區(qū)域為任意矩形區(qū)域;

II 總線宏使用基于SLICE來實現(xiàn),而不是基于TBUF的總線宏,這就使得允許使用的總線宏的密度更密;

III EAPR流程中允許基于模塊設計中的全局信號直接穿越局部可重配置區(qū)域,而不必使用總線宏。這一改進顯著地改進了時序性能,并簡化了PR設計的編譯進程;

IV 移除了需要在基于模塊的設計中對AREA_GROUP RANG進行面積約束的限制,這樣就給PR設計的布局布線提供了更大的靈活性;

V 現(xiàn)在的EAPR設計流程及工具支持Virtex 4和Virtex5 器件。

2 建立局部重構

局部重構的設計和實現(xiàn)流程可分為以下步驟:

①設計輸入與綜合:按照Xilin的EAPR設計流程的要求輸入與綜合HDL代碼,包括頂層模塊和子模塊設計,頂層模塊設計完成頂層模塊的設計輸入與綜合;子模塊設計可進行子模塊的設計輸入和綜合。

②初始預算(initial budgeting):指構思平面布局,完成對頂層模塊和每個子模塊的時序約束,頂層約束包括對整個設計的全局區(qū)域約束、對每個子模塊的規(guī)模和區(qū)域的約束、對每個模塊的輸入/輸出約束和對整個設計的時序約束等內容;

③子模塊的激活實現(xiàn)(active module implementation):對每個子模塊進行激活實現(xiàn),對每個子模塊內部的邏輯進行單獨約束;

④合并實現(xiàn)(final assembly):將頂層設計與已激活實現(xiàn)的模塊合并,形成一個完整的設計;

⑤驗證:包括靜態(tài)時序分析和功能仿真;

⑥檢查設計:用 editor工具檢查布線跨越模塊的邊界;

⑦創(chuàng)建初始上電的配置文件;

⑧創(chuàng)建重構模塊的配置文件;

⑨加載初始上電的配置文件;

⑩進行局部重估操作;

3 動態(tài)局部重構系統(tǒng)結構

在局部重構的建立完成后,必須依托嵌入式開發(fā)套件(,Embedded Development Kit)來進一步完成設計,使系統(tǒng)具備自重構能力,也就是能實現(xiàn)真正意義上的動態(tài)局部重構。

3.1 將處理器系統(tǒng)作為內部模塊的動態(tài)局部重構系統(tǒng)實現(xiàn)方案

該實現(xiàn)方案借助嵌入式開發(fā)套件建立一個處理器系統(tǒng),同時借助Xilinx ISE工具建立一個頂層模塊,該頂層模塊包含了作為子模塊的處理器系統(tǒng)和同樣作為子模塊的局部重構模塊。完整的系統(tǒng)如下圖所示:

圖1 完整的系統(tǒng)視圖

其中,PRR(Partial Reconfiguration Region)是局部可重構模塊,它與處理器模塊通過內部ROPB Bus連接,同時作為可重構模塊與靜態(tài)模塊的連接還必須有總線宏Bus Macros。

處理器系統(tǒng)內部結構如下圖所示:

圖2 處理器系統(tǒng)視圖

3.2 SOPC動態(tài)局部重構系統(tǒng)實現(xiàn)方案

Xilinx已推出支持動態(tài)重構的產(chǎn)品,其Virtex-II Pro和Virtex-4、Virtex-5系列產(chǎn)品中已內嵌了PowePC處理器內核和內部配置訪問通道(internal configuration access port,ICAP)。ICAP是配置內部結構的配置接口,為動態(tài)局部重構技術在片上可編程系統(tǒng)(system on programmable chip,SOPC)的應用提供了基本條件。

本方案利用PowerPC對OPB(on-chip peripheral bus)總線上掛的IP模塊進行重構,從而實現(xiàn)了真正意義上的動態(tài)局部重構。

PRR Left和PRR Right為動態(tài)重構對象,它們被封裝成兩個掛在下的IP模塊,然后構建支持重構的SOPC系統(tǒng),所構建的SOPC系統(tǒng)結構如圖3所示:

圖3 SOPC動態(tài)局部重構系統(tǒng)

其中,PRR Left和PRR Right是動態(tài)局部重構的IP模塊;ICAP是掛在下的IP模塊,用來加載局部重構配置數(shù)據(jù);System ACE是用來存放局部重構配置數(shù)據(jù)的Compact Flash與的接口模塊;UART負責與PC通信,顯示輸出。

局部重構時,為了防止重構過程中局部重構操作破壞OPB總線的時序、保證重構前后PowerPC時序的連續(xù)性,先斷開PRR Left/PRR Right與OPB總線的連接,再將Compact Flash內的重構配置數(shù)據(jù)寫入ICAP。配置結束后,將PRR Left/PRR Right與OPB總線重新連接,最后對PRR Left/PRR Right模塊進行復位操作,這樣就完成了基于SOPC的動態(tài)局部重構。具體的設計和實現(xiàn)流程如圖4所示:

圖4 基于SOPC的動態(tài)局部重構流程圖

3.2.1用嵌入式開發(fā)套件構建處理器系統(tǒng)

在上文中的局部重構建立完成后,用Xilinx EDK工具構建處理器系統(tǒng),圖3中所示的掛在OPB總線上的IP模塊都將以外設的形式加載到處理器系統(tǒng)中。其中,ICAP、System ACE、UART模塊都有成熟的IP核提供,利用EDK中的Create or Import Peripheral工具將PRR Left和PRR Right兩個IP模塊以自定義IP核的形式加入到處理器系統(tǒng)中。

3.2.2 綜合實現(xiàn)所有外設模塊

借助Xilinx ISE工具綜合實現(xiàn)所有外設模塊,應該注意的是在綜合過程中,只有頂層模塊的I/O緩沖在綜合時打開,其它子模塊的I/O緩沖在綜合時是不能打開的。

3.2.3 利用手工修改布局布線和裝配PR設計

可重構模塊硬件資源分配以及硬件資源分配評估、添加時序和管腳的約束都應該在這一步成功完成。利用工具和ISE集成的FPGA editor工具能夠準確觀察到整個FPGA底層的布局布線圖,同時借助工具直觀看到可重構模塊和靜態(tài)模塊的布局布線圖以及它們的資源占用情況[4]。圖5所示的是系統(tǒng)的布局布線圖,圖6所示的是資源分配的情況。

圖5 系統(tǒng)的布局布線圖

圖6 PRR Left重構模塊的資源占用統(tǒng)計

在總線宏busmacros、全局時鐘邏輯等手工放置好之后,將進入裝配階段,將所有靜態(tài)邏輯和局部重構邏輯整合到位流文件中。在生成FPGA的初始化位流文件和局部重配置文件之后,利用EDK的Launch EDK Shell工具來生成加載FPGA時需要的System ACE文件。下一步就可以上板調試了。



評論


相關推薦

技術專區(qū)

關閉