<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的動(dòng)態(tài)局部可重構(gòu)實(shí)現(xiàn)方法

          基于FPGA的動(dòng)態(tài)局部可重構(gòu)實(shí)現(xiàn)方法

          作者: 時(shí)間:2017-06-04 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201706/348692.htm

          1 Xilinx的EAPR局部重構(gòu)流程

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

          I 移除了Virtex-II器件局部可重配置(PR)中對(duì)于局部可重配置區(qū)域必須是整列的要求,EAPR設(shè)計(jì)流程中,允許PR區(qū)域?yàn)槿我饩匦螀^(qū)域;

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

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

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

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

          2 建立局部重構(gòu)

          局部重構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)流程可分為以下步驟:

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

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

          ③子模塊的激活實(shí)現(xiàn)(active module implementation):對(duì)每個(gè)子模塊進(jìn)行激活實(shí)現(xiàn),對(duì)每個(gè)子模塊內(nèi)部的邏輯進(jìn)行單獨(dú)約束;

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

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

          ⑥檢查設(shè)計(jì):用 editor工具檢查布線跨越模塊的邊界;

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

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

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

          ⑩進(jìn)行局部重估操作;

          3 動(dòng)態(tài)局部重構(gòu)系統(tǒng)結(jié)構(gòu)

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

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

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

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

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

          處理器系統(tǒng)內(nèi)部結(jié)構(gòu)如下圖所示:

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

          3.2 SOPC動(dòng)態(tài)局部重構(gòu)系統(tǒng)實(shí)現(xiàn)方案

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

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

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

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

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

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

          圖4 基于SOPC的動(dòng)態(tài)局部重構(gòu)流程圖

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

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

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

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

          3.2.3 利用手工修改布局布線和裝配PR設(shè)計(jì)

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

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

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

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



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();