<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Floorplanner工具應用基于FPGA的嵌入式

Floorplanner工具應用基于FPGA的嵌入式

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

  通過(guò)在可編程邏輯器件中嵌入低成本、高性能的處理器,芯片開(kāi)發(fā)商不但能提高系統的整體性能,而且能夠從可編程邏輯器件原本就具備的開(kāi)發(fā)時(shí)間短、上市快的特點(diǎn)受益。利用本文談到的Floorplanner工具可以對處理器、相關(guān)的IP和定制邏輯進(jìn)行布局控制和分組,簡(jiǎn)化復雜系統級芯片的開(kāi)發(fā),提高系統整體性能。

  處理器內核越來(lái)越多地在設計中得到采用,人們開(kāi)始認識到高級可編程邏輯所帶來(lái)的好處。通過(guò)將低成本高性能的處理器內核與可定制的電路配合使用,電子設備生產(chǎn)商能為其特定的產(chǎn)品量身定制芯片,從而以較低的成本和較快的速度將產(chǎn)品推向市場(chǎng)。但若想合理地采用這項先進(jìn)技術(shù),設計者需要功能強大的工具才能滿(mǎn)足設計要求。 Floorplanner即是適合這類(lèi)應用的一種工具,它允許設計者控制嵌入式處理器、相關(guān)IP以及定制邏輯的布局和分組,從而簡(jiǎn)化復雜的系統級芯片的開(kāi)發(fā)過(guò)程,并提升系統的整體性能。

  本文將討論如何在一個(gè)集成了內核、一個(gè)DDR內存控制器以及一個(gè)LCD控制器的嵌入式系統的開(kāi)發(fā)過(guò)程中采用Floorplanner。在圖1中,DDR內存控制器通過(guò)一個(gè)高速處理器本地總線(xiàn)(PLB)與PPC相連,因而在該系統中可以通過(guò)高速內存訪(fǎng)問(wèn)來(lái)實(shí)現指令和數據傳輸。LCD控制器對帶寬要求較低,可以通過(guò)較低速的片上外圍總線(xiàn)(OPB)與PPC連接,OPB通過(guò)一個(gè)PLB到OPB橋將低速的外圍內核與PLB相連。圖中還顯示了兩個(gè)片上存儲控制器和BRAM的用法,這是一個(gè)很重要的特性。從系統模塊圖可以看出,當系統中額外增加其它總線(xiàn)控制器時(shí),嵌入式系統設計能夠輕松地對其提供支持。

  系統生成

  我們可以采用系統生成器來(lái)定義所需處理器以及相關(guān)控制器的參數,從而簡(jiǎn)化嵌入式系統的設計和創(chuàng )建,并產(chǎn)生嵌入式系統的源設計 (通常包含一個(gè)處理器內核、幾個(gè)總線(xiàn)結構以及現有的IP)。同時(shí),系統生成器還能產(chǎn)生系統啟動(dòng)所需的軟件頭文件。有了這些工具,軟、硬件設計工程師就能同時(shí)并行地進(jìn)行嵌入式系統開(kāi)發(fā)。

  對硬件設計工程師而言,系統生成器能夠創(chuàng )建系統中關(guān)鍵部件安裝時(shí)所需的所有文件,并能使外圍器件定義、外圍器件創(chuàng )建、以及處理器上數百個(gè)管腳與外圍器件和系統總線(xiàn)的連接自動(dòng)進(jìn)行。對于開(kāi)發(fā)工程師而言,系統生成器在進(jìn)行HW/SW系統權衡時(shí)能提供很大幫助,而且還能解決軟硬件優(yōu)化的問(wèn)題。如果沒(méi)有系統生成器,則必須手動(dòng)產(chǎn)生系統,將使系統設計時(shí)間和設計復雜度增加。

  如何利用Floorplanner

  很多EDA廠(chǎng)商都提供的另一種工具是Floorplanner,硬件設計工程師利用該工具可以控制擺放那些與他們所感興趣的功能相關(guān)的邏輯,并且在功能實(shí)現后立即查看器件內的布局線(xiàn)路情況。以嵌入式系統為例,Floorplanner可以幫助設計工程師查看和(或)控制處理器以及相關(guān)外圍器件的擺放,這些外圍器件的布局可能對滿(mǎn)足設計性能要求非常關(guān)鍵。

  如前所述, 405內核中包含一個(gè)片上存儲(OCM)控制器,該OCM控制器既能提供到64位指令BRAM(ISBRAM)的接口,也能提供到32位數據BRAM (DSBRAM)的接口,它最多能尋址16MB的DSBRAM和16MB的ISBRAM。OCM控制器最大的優(yōu)點(diǎn)是能夠保持一個(gè)固定的執行時(shí)延。為了滿(mǎn)足 的時(shí)序的要求,硬件設計工程師必須控制OCM BRAM相對于OCM控制器接口的擺放位置:DSBRAM必須放在PPC405核之上,而ISBRAM必須置于PPC405之下,如圖2所示。要想控制這類(lèi)布局,最簡(jiǎn)單的方法也許就是采用Floorplanner工具。

  Floorplanner具有查看和(或)擺放邏輯的功能,該工具應用恰當時(shí)能夠提升嵌入式系統的性能,但若應用不當則會(huì )降低系統性能。因此,用戶(hù)要想成功地應用該工具,還應該注意以下幾點(diǎn)建議:

  1. 硬件設計工程師在采用Floorplanner對硬件開(kāi)始布局之前,必須清楚了解設計和目標結構,這對正確的設計布局和硬件資源利用非常關(guān)鍵。

Floorplanner工具在基于FPGA的嵌入式系統設計中的應用

  對硬件設計工程師而言,系統生成器能夠創(chuàng )建系統中關(guān)鍵部件安裝時(shí)所需的所有文件,并能使外圍器件定義、外圍器件創(chuàng )建、以及處理器上數百個(gè)管腳與外圍器件和系統總線(xiàn)的連接自動(dòng)進(jìn)行。對于開(kāi)發(fā)工程師而言,系統生成器在進(jìn)行HW/SW系統權衡時(shí)能提供很大幫助,而且還能解決軟硬件優(yōu)化的問(wèn)題。如果沒(méi)有系統生成器,則必須手動(dòng)產(chǎn)生系統,將使系統設計時(shí)間和設計復雜度增加。

  如何利用Floorplanner

  很多EDA廠(chǎng)商都提供的另一種工具是Floorplanner,硬件設計工程師利用該工具可以控制擺放那些與他們所感興趣的功能相關(guān)的邏輯,并且在功能實(shí)現后立即查看器件內的布局線(xiàn)路情況。以嵌入式系統為例,Floorplanner可以幫助設計工程師查看和(或)控制處理器以及相關(guān)外圍器件的擺放,這些外圍器件的布局可能對滿(mǎn)足設計性能要求非常關(guān)鍵。

  如前所述, 405內核中包含一個(gè)片上存儲(OCM)控制器,該OCM控制器既能提供到64位指令BRAM(ISBRAM)的接口,也能提供到32位數據BRAM (DSBRAM)的接口,它最多能尋址16MB的DSBRAM和16MB的ISBRAM。OCM控制器最大的優(yōu)點(diǎn)是能夠保持一個(gè)固定的執行時(shí)延。為了滿(mǎn)足 FPGA的時(shí)序的要求,硬件設計工程師必須控制OCM BRAM相對于OCM控制器接口的擺放位置:DSBRAM必須放在PPC405核之上,而ISBRAM必須置于PPC405之下,如圖2所示。要想控制這類(lèi)布局,最簡(jiǎn)單的方法也許就是采用Floorplanner工具。

  Floorplanner具有查看和(或)擺放邏輯的功能,該工具應用恰當時(shí)能夠提升嵌入式系統的性能,但若應用不當則會(huì )降低系統性能。因此,用戶(hù)要想成功地應用該工具,還應該注意以下幾點(diǎn)建議:

  1. 硬件設計工程師在采用Floorplanner對硬件開(kāi)始布局之前,必須清楚了解設計和目標結構,這對正確的設計布局和硬件資源利用非常關(guān)鍵。

  2. 在對FPGA進(jìn)行物理布局時(shí)必須優(yōu)先考慮I/O。如圖3所示,控制信號I/O應該放在FPGA的頂部或底部,數據總線(xiàn)I/O應放在左側或右側,這樣才能保證最有效地利用FPGA的布線(xiàn)資源,并最大程度地優(yōu)化性能。

  3. 算術(shù)功能在FPGA中通常利用專(zhuān)用的進(jìn)位鏈(carry-chain)來(lái)實(shí)現,進(jìn)位鏈在一個(gè)特殊的垂直方向上運行。例如,一個(gè)10位計數器的進(jìn)位鏈就在從器件底端到頂端的垂直方向上運行。因而,設計者可以將其總線(xiàn)的LSB置于器件的底部而將MSB置于頂部,充分利用進(jìn)位鏈的方向性。

  4. Floorplanner根據邏輯層次的不同來(lái)顯示邏輯單元,因而很容易將邏輯單元劃分為公共的組或區域。這種根據層次分組的方式利用了本地布線(xiàn)資源,因而能夠降低信號延遲,提高電路性能。

  5. 如圖4所示,交替地放置相關(guān)的總線(xiàn)。硬件設計工程師可以通過(guò)交替放置相關(guān)的I/O總線(xiàn)來(lái)降低信號延遲,但只有在這樣的處理不增加額外的邏輯單元時(shí)才有意義。需要提醒的是,在進(jìn)行布線(xiàn)決策時(shí)一定要把整個(gè)設計看作一個(gè)整體。

  硬件設計工程師在嵌入式系統設計中適當注意以上幾點(diǎn),就能輕松地對一個(gè)設計進(jìn)行組織和規劃。在對嵌入式系統進(jìn)行底層規劃之前,設計工程師必須首先給不同的組分配邏輯資源。組通常都是基于設計層次的,設計層次為嵌入式系統提供了一個(gè)自然的邊界,Floorplanner可以利用這個(gè)邊界輕松地進(jìn)行組創(chuàng )建。系統生成器在創(chuàng )建系統的每一個(gè)模塊時(shí)均相應創(chuàng )建了獨特的分層參考,這就使得嵌入式系統的組定義變得非常簡(jiǎn)單。在需要進(jìn)行底層規劃的組創(chuàng )建好之后,就可以分配放置這些組的物理區域。每個(gè)組的放置需要基于前面的幾點(diǎn)建議和設計版圖來(lái)進(jìn)行。

  設計版圖約束

  Floorplanner提供了三種方法來(lái)約束邏輯模塊和邏輯組的物理位置分配:

  1. 第一種方法就是將邏輯部件置于一個(gè)特定的物理位置,或放在某個(gè)特定的元件內部。例如,數據總線(xiàn)的一個(gè)輸出(以第10位為例)可以分配給器件的第37腳。但這類(lèi)分配沒(méi)有靈活性,布局工具和布線(xiàn)工具必須將第10位的輸出驅動(dòng)置于器件管腳37中。這種方法還可以用于布局和分配一組邏輯部件。

  2. 第二種方法是將某個(gè)邏輯單元或邏輯組分配給一個(gè)物理區域。通常采用的都是這種方法,因為它允許布局工具和布線(xiàn)工具移動(dòng)某區域組內的邏輯單元,以實(shí)現最優(yōu)的布局和布線(xiàn)。為了優(yōu)化系統設計,功能更強大的Floorplanner工具還支持組間重疊,以及在一個(gè)經(jīng)過(guò)底層規劃的區域實(shí)現不經(jīng)底層規劃處理的邏輯。

  3. 第三種方法是創(chuàng )建關(guān)聯(lián)布局宏(Relationally Plalced Macro, RPM)。RPM定義了各邏輯單元之間的相對版圖設計,但準確的布局是由布局和布線(xiàn)工具決定的,這樣可以得到最佳的設計性能。例如,一個(gè)查找表(LUT) 可以與一個(gè)觸發(fā)器置于同一塊(slice)內,而一個(gè)塊又可以直接置于另一塊之上。RPM使設計工程師能夠控制某些特定模塊的布線(xiàn),但并沒(méi)有嚴格地限制布局和布線(xiàn)工具。

  通過(guò)在嵌入式系統設計中應用以上提出的建議和方法,硬件設計工程師就能控制某些特定部件的布局,改善器件的整體布線(xiàn)(通過(guò)利用區域性分組),并控制某些特定部件之間的相對布局(通過(guò)采用RPM)。

Floorplanner工具在基于FPGA的嵌入式系統設計中的應用

  應用舉例

  圖5采用了PPC 405來(lái)說(shuō)明上面所述方法和建議,該應用是包含了2個(gè)UART和一個(gè)BRAM控制器的嵌入式設計。

  在該設計中,系統生成器創(chuàng )建層次邊界,而邏輯組則在這些邊界的基礎上創(chuàng )建。為PLB仲裁器、UART和BRAM內存控制器均可創(chuàng )建區域組(area group)。將BRAM和PPC 405限制在特定位置,以使設計達到最佳性能。應該注意的是,在分配一個(gè)區域組時(shí),必須為該區域中的邏輯單元分配足夠的資源。而當 Floorplanner的功能更強大時(shí),還能為用戶(hù)提供每個(gè)區域組所需的資源。本例中的區域組中所包含的資源為實(shí)現所需資源量的兩倍。這樣,通過(guò)向經(jīng)底層規劃處理后的區域中添加布局額外的邏輯單元(不包含在組中邏輯單元)可以對設計進(jìn)一步優(yōu)化。

  在分配資源時(shí),BRAM內存控制器被置于硅片的中央,這樣可以對所有BRAM元件以及PPC 405內核進(jìn)行同等的訪(fǎng)問(wèn)。在本設計之中BRAM中包含了PPC 405內核所需的數據和指令。UART1和UART2的位置在IO附近,以盡可能減少輸入到時(shí)鐘和時(shí)鐘到輸出的時(shí)間。設計中有兩個(gè)PLB接口,一個(gè)是 CPU指令端PLB接口,另一個(gè)是CPU數據端PLB接口。因此,PLB仲裁器被放在PPC 405內核旁邊。

  分配給每一個(gè)區域組的邏輯單元均根據區域約束進(jìn)行布局,而且為提高設計性能,還在設計中混入了額外的邏輯單元,這也正說(shuō)明了為什么在每個(gè)區域組分配時(shí)都要保留一定的額外空間的原因。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


關(guān)鍵詞: FPGA 嵌入式 PowerPC

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>