Floorplanner工具在基于FPGA的嵌入式系統(tǒng)設計中的應用
通過在可編程邏輯器件中嵌入低成本、高性能的處理器,芯片開發(fā)商不但能提高系統(tǒng)的整體性能,而且能夠從可編程邏輯器件原本就具備的開發(fā)時間短、上市快的特點受益。利用本文談到的Floorplanner工具可以對嵌入式處理器、相關的IP和定制邏輯進行布局控制和分組,簡化復雜系統(tǒng)級芯片的開發(fā),提高系統(tǒng)整體性能。
嵌入式處理器內核越來越多地在FPGA設計中得到采用,人們開始認識到高級可編程邏輯所帶來的好處。通過將低成本高性能的嵌入式處理器內核與可定制的FPGA電路配合使用,電子設備生產商能為其特定的產品量身定制芯片,從而以較低的成本和較快的速度將產品推向市場。但若想合理地采用這項先進技術,設計者需要功能強大的工具才能滿足設計要求。 Floorplanner即是適合這類應用的一種工具,它允許設計者控制嵌入式處理器、相關IP以及定制邏輯的布局和分組,從而簡化復雜的系統(tǒng)級芯片的開發(fā)過程,并提升系統(tǒng)的整體性能。
本文將討論如何在一個集成了PowerPC內核、一個DDR內存控制器以及一個LCD控制器的嵌入式系統(tǒng)的開發(fā)過程中采用Floorplanner。在圖1中,DDR內存控制器通過一個高速處理器本地總線(PLB)與PPC相連,因而在該系統(tǒng)中可以通過高速內存訪問來實現指令和數據傳輸。LCD控制器對帶寬要求較低,可以通過較低速的片上外圍總線(OPB)與PPC連接,OPB通過一個PLB到OPB橋將低速的外圍內核與PLB相連。圖中還顯示了兩個片上存儲控制器和BRAM的用法,這是一個很重要的特性。從系統(tǒng)模塊圖可以看出,當系統(tǒng)中額外增加其它總線控制器時,嵌入式系統(tǒng)設計能夠輕松地對其提供支持。
系統(tǒng)生成
我們可以采用系統(tǒng)生成器來定義所需處理器以及相關控制器的參數,從而簡化嵌入式系統(tǒng)的設計和創(chuàng)建,并產生嵌入式系統(tǒng)的源設計 (通常包含一個處理器內核、幾個總線結構以及現有的IP)。同時,系統(tǒng)生成器還能產生系統(tǒng)啟動所需的軟件頭文件。有了這些工具,軟、硬件設計工程師就能同時并行地進行嵌入式系統(tǒng)開發(fā)。
對硬件設計工程師而言,系統(tǒng)生成器能夠創(chuàng)建系統(tǒng)中關鍵部件安裝時所需的所有文件,并能使外圍器件定義、外圍器件創(chuàng)建、以及處理器上數百個管腳與外圍器件和系統(tǒng)總線的連接自動進行。對于開發(fā)工程師而言,系統(tǒng)生成器在進行HW/SW系統(tǒng)權衡時能提供很大幫助,而且還能解決軟硬件優(yōu)化的問題。如果沒有系統(tǒng)生成器,則必須手動產生系統(tǒng),將使系統(tǒng)設計時間和設計復雜度增加。
如何利用Floorplanner
很多EDA廠商都提供的另一種工具是Floorplanner,硬件設計工程師利用該工具可以控制擺放那些與他們所感興趣的功能相關的邏輯,并且在功能實現后立即查看器件內的布局線路情況。以嵌入式系統(tǒng)為例,Floorplanner可以幫助設計工程師查看和(或)控制處理器以及相關外圍器件的擺放,這些外圍器件的布局可能對滿足設計性能要求非常關鍵。
如前所述,PowerPC 405內核中包含一個片上存儲(OCM)控制器,該OCM控制器既能提供到64位指令BRAM(ISBRAM)的接口,也能提供到32位數據BRAM (DSBRAM)的接口,它最多能尋址16MB的DSBRAM和16MB的ISBRAM。OCM控制器最大的優(yōu)點是能夠保持一個固定的執(zhí)行時延。為了滿足 FPGA的時序的要求,硬件設計工程師必須控制OCM BRAM相對于OCM控制器接口的擺放位置:DSBRAM必須放在PPC405核之上,而ISBRAM必須置于PPC405之下,如圖2所示。要想控制這類布局,最簡單的方法也許就是采用Floorplanner工具。
Floorplanner具有查看和(或)擺放邏輯的功能,該工具應用恰當時能夠提升嵌入式系統(tǒng)的性能,但若應用不當則會降低系統(tǒng)性能。因此,用戶要想成功地應用該工具,還應該注意以下幾點建議:
1. 硬件設計工程師在采用Floorplanner對硬件開始布局之前,必須清楚了解設計和目標結構,這對正確的設計布局和硬件資源利用非常關鍵。
2. 在對FPGA進行物理布局時必須優(yōu)先考慮I/O。如圖3所示,控制信號I/O應該放在FPGA的頂部或底部,數據總線I/O應放在左側或右側,這樣才能保證最有效地利用FPGA的布線資源,并最大程度地優(yōu)化性能。
3. 算術功能在FPGA中通常利用專用的進位鏈(carry-chain)來實現,進位鏈在一個特殊的垂直方向上運行。例如,一個10位計數器的進位鏈就在從器件底端到頂端的垂直方向上運行。因而,設計者可以將其總線的LSB置于器件的底部而將MSB置于頂部,充分利用進位鏈的方向性。
4. Floorplanner根據邏輯層次的不同來顯示邏輯單元,因而很容易將邏輯單元劃分為公共的組或區(qū)域。這種根據層次分組的方式利用了本地布線資源,因而能夠降低信號延遲,提高電路性能。
5. 如圖4所示,交替地放置相關的總線。硬件設計工程師可以通過交替放置相關的I/O總線來降低信號延遲,但只有在這樣的處理不增加額外的邏輯單元時才有意義。需要提醒的是,在進行布線決策時一定要把整個設計看作一個整體。
硬件設計工程師在嵌入式系統(tǒng)設計中適當注意以上幾點,就能輕松地對一個設計進行組織和規(guī)劃。在對嵌入式系統(tǒng)進行底層規(guī)劃之前,設計工程師必須首先給不同的組分配邏輯資源。組通常都是基于設計層次的,設計層次為嵌入式系統(tǒng)提供了一個自然的邊界,Floorplanner可以利用這個邊界輕松地進行組創(chuàng)建。系統(tǒng)生成器在創(chuàng)建系統(tǒng)的每一個模塊時均相應創(chuàng)建了獨特的分層參考,這就使得嵌入式系統(tǒng)的組定義變得非常簡單。在需要進行底層規(guī)劃的組創(chuàng)建好之后,就可以分配放置這些組的物理區(qū)域。每個組的放置需要基于前面的幾點建議和設計版圖來進行。
設計版圖約束
Floorplanner提供了三種方法來約束邏輯模塊和邏輯組的物理位置分配:
1. 第一種方法就是將邏輯部件置于一個特定的物理位置,或放在某個特定的元件內部。例如,數據總線的一個輸出(以第10位為例)可以分配給器件的第37腳。但這類分配沒有靈活性,布局工具和布線工具必須將第10位的輸出驅動置于器件管腳37中。這種方法還可以用于布局和分配一組邏輯部件。
2. 第二種方法是將某個邏輯單元或邏輯組分配給一個物理區(qū)域。通常采用的都是這種方法,因為它允許布局工具和布線工具移動某區(qū)域組內的邏輯單元,以實現最優(yōu)的布局和布線。為了優(yōu)化系統(tǒng)設計,功能更強大的Floorplanner工具還支持組間重疊,以及在一個經過底層規(guī)劃的區(qū)域實現不經底層規(guī)劃處理的邏輯。
3. 第三種方法是創(chuàng)建關聯(lián)布局宏(Relationally Plalced Macro, RPM)。RPM定義了各邏輯單元之間的相對版圖設計,但準確的布局是由布局和布線工具決定的,這樣可以得到最佳的設計性能。例如,一個查找表(LUT) 可以與一個觸發(fā)器置于同一塊(slice)內,而一個塊又可以直接置于另一塊之上。RPM使設計工程師能夠控制某些特定模塊的布線,但并沒有嚴格地限制布局和布線工具。
通過在嵌入式系統(tǒng)設計中應用以上提出的建議和方法,硬件設計工程師就能控制某些特定部件的布局,改善器件的整體布線(通過利用區(qū)域性分組),并控制某些特定部件之間的相對布局(通過采用RPM)。
應用舉例
圖5采用了PPC 405來說明上面所述方法和建議,該應用是包含了2個UART和一個BRAM控制器的嵌入式設計。
在該設計中,系統(tǒng)生成器創(chuàng)建層次邊界,而邏輯組則在這些邊界的基礎上創(chuàng)建。為PLB仲裁器、UART和BRAM內存控制器均可創(chuàng)建區(qū)域組(area group)。將BRAM和PPC 405限制在特定位置,以使設計達到最佳性能。應該注意的是,在分配一個區(qū)域組時,必須為該區(qū)域中的邏輯單元分配足夠的資源。而當 Floorplanner的功能更強大時,還能為用戶提供每個區(qū)域組所需的資源。本例中的區(qū)域組中所包含的資源為實現所需資源量的兩倍。這樣,通過向經底層規(guī)劃處理后的區(qū)域中添加布局額外的邏輯單元(不包含在組中邏輯單元)可以對設計進一步優(yōu)化。
在分配資源時,BRAM內存控制器被置于硅片的中央,這樣可以對所有BRAM元件以及PPC 405內核進行同等的訪問。在本設計之中BRAM中包含了PPC 405內核所需的數據和指令。UART1和UART2的位置在IO附近,以盡可能減少輸入到時鐘和時鐘到輸出的時間。設計中有兩個PLB接口,一個是 CPU指令端PLB接口,另一個是CPU數據端PLB接口。因此,PLB仲裁器被放在PPC 405內核旁邊。
分配給每一個區(qū)域組的邏輯單元均根據區(qū)域約束進行布局,而且為提高設計性能,還在設計中混入了額外的邏輯單元,這也正說明了為什么在每個區(qū)域組分配時都要保留一定的額外空間的原因。