當可編程邏輯閘陣列(FPGA)注入內建的處理器核心(embedded processor core)後,可編程系統平台又向前邁了一大步,我們正實現並享用先進的可編程邏輯所帶來的革命性的好處。將低成本、高效益的內建處理器核心與客製化的FPGA電路結合後,電子設備製造商可利用客製化的晶片於特定的應用,並以更低的成本和更快的速度推出他們的產品。為了能適當的使用此先進技術,設計師們需要強有力的工具進行設計,以達到所預期的設計需求。Floorplanner 即為可幫助達到設計需求的眾多工具之一,設計師可利用平面規劃(Floorplanning)來控制內建處理器、相關的IP、客製化邏輯電路的位置配置以及各種組合,因此可以簡化系統單晶片(system-on-a-chip;SoC) 複雜的開發過程和增加整體系統的效益。
本文將展示如何採用一個Floorplanner來開發一個內建系統,將一個PowerPC(PPC)核心、一個DDR記憶體控制器、和一個LCD控制器整合在一起。如(圖一)所示,DDR記憶體控制器通過一個高速本地匯流排(Processor Local Bus;PLB) 與PPC 連接在一起,此一動作可讓指令(Instructions)和數據資料(Data)在記憶體中做高速存取的傳輸動作。LCD控制器所需的頻寬比較低,因此可通過較低速的周邊匯流排(On-Chip Peripheral Bus;OPB) 來連接至PPC。OPB通過一個PLB2OPB,可將較低速的周邊核心(Peripheral Cores)橋接至PLB。
《圖一 PowerPC 405 Based Embedded System 》 |
|
系統建構
如今,內建系統的設計和建立已經被簡化了。只要使用一個系統產生器(System Generator)即可定義出所需處理器(以及相關控制器)的參數,然後就會產生出此內建系統的原始設計,一般會包括一個處理器核心、匯流排架構、以及現有的IP。此系統產生器還會產生出一開始所需的軟體標題檔。硬體和軟體設計師可使用這些工具同時進行內建系統的開發工作。對硬體設計師來說,此系統產生器會產生所有所需的檔案,將此系統的所有關鍵的零組件組合在一起,並自動化進行各種工作,例如周邊的定義、周邊的建立與數百隻接腳與處理器、周邊系統、以及系統匯流排的連接。對軟體開發者來說,此產生器可順利協助取得硬體和軟體系統間的平衡,使硬體和軟體以最佳化的狀態、更為順暢地進行工作。如果沒有此系統產生器的話,則系統的建構將以人工方式進行,將大大的增加整體系統的設計時間和複雜度。
平面規劃
另一個許多EDA廠商所提供的工具是Floorplanner。硬體設計師可使用一個 Floorplanner 針對任何有興趣的功能加以控制其邏輯位置之配置,在執行完成後並可觀看其配置圖。在我們所舉的內建系統例子中,Floorplanner可以幫助設計師觀看並控制處理器和相關周邊的配置。在某些案例中,為能達到所要求的設計效益,這些周邊的配置將扮演重要的角色。
如前所述,PowerPC 405核心包括一個On Chip Memory(OCM)控制器。此OCM控制器提供一個介面給64-bit指令(Instruction)-Side Block RAM(ISBRAM)和32-bit 數據(Data)-Side Block RAM(DSBRAM)。此OCM控制器能夠控制高達16MB的DSBRAM和16MB的ISBRAM。此OCM的主要優點之一是它可保證在執行運作時有固定的等待時間。為能滿足在一個FPGA中的此種定時需求,硬體設計師必需控制OCM Block RAM(BRAM) 和OCM 控制介面間的對應配置。DSBRAM 必需被放置在PPC 405核心的上方,而ISBRAM則必需被放置在其下方,如(圖二)。Floorplanner可能是最容易的方法去控制此相對性的配置。
《圖二 OCM BRAM和OCM 控制介面之對應配置》 |
|
一個Floorplanner提供觀看及配置邏輯的功能,但要做得成功,還有幾項提示需遵循,如此才能成功的做好規劃。一個好的規劃配置可增加內建系統的效益,但一個差的規劃則會有反效果。以下為一些需遵循的法則。
- (1)在硬體設計師開始規劃平面的配置設計之前,一定要確認設計師們對細部有所了解,並且有詳細資料和目標架構。在決定正確的設計配置和硬體使用上,這種了解和知識是非常關鍵的。
- (2)FPGA的實際平面規劃應和I/O達成最佳的配置。控制信號的I/O 應該被放置在FPGA的上方或下方。數據Bus的I/O 則應該在其左方或右方。如此可以讓FPGA資源的路徑連結使用達到最高的效率,產生最佳的效益。
- (3)算數功能一般都使用專用的傳輸鏈(carry-chains)。傳輸鏈的走向都是在特定的垂直方向,如(圖三)。例如,一個10-bit 計數器的傳輸鏈是從底部往頂部的垂直走向。此種設計走向的優勢就是可將BUS的 LSB 放在底部MSB放在頂部。
《圖四 垂直走向之傳輸鏈(carry-chains)》 |
|
- (4)Floorplanner 可將邏輯電路以階層的方式顯示出來,如此可很容易的將它們組合至一個共同群組或共同區域。以階層的方式來組合邏輯電路,可以利用區域性資源連結的優勢,降低因連結而產生的延遲,並增加電路的效益;參考(圖五)。
- (5)交叉存取相關的匯流排。針對相關的I/O匯流排,硬體工程師可採用交叉存取的方式,如此可減低環繞路徑的延遲。如果這些匯流排不會供應額外的邏輯電路時,此項技術是相當有價值的。在做平面配置決策時,記得以整體面來看此設計;如(圖六)。
如果硬體工程師可以將這些提示用在內建系統的設計上,就能很容易的組合和規劃一個設計。在開始做內建系統的平面規劃時,設計師首先必需將邏輯電路分派到不同的族群中。設計階層根據是一種典型的分類方法,在一個內建系統中,此種階層提供了一個自然的邊界,Floorplanner可以很容易的使用這種邊界來建立族群。此系統產生器會產生出系統的每一區塊,也產生出自己特定的參考階層,使得內建系統的族群定義變得較簡單。一旦需要做平面規劃的族群建立完成後,設計師可以依照這些族群所必需被放置的位置安排其實際的區位。而任何族群的配置則須按照先前所說的提示和設計進行安排。
平面規劃的限制
Floorplanner 提供三種方法來限制個別邏輯區塊或族群的實際位置:
- (1)第一個方法是將邏輯零組件放置在一特定的實際位置或零組件中。例如設計師可以指定bit 10,它是一個數據匯流排的輸出,至此組件的pin 37。此種指定的方式是沒有任何彈性的。因此,配置和路徑工具必需將bit 10的輸出驅動程式放在 pin 37中。並且此種方法也可用在一組邏輯零組件上。
- (2)第二個方法是將一個邏輯或一組邏輯電路指定到一個實際區域中。這個方法經常被用到,因為它可使用配置和路徑工具到處移動區域族群中的邏輯,以取得最佳的配置和路徑走向。以下將進一步展示此方法。為取得最佳化的系統設計,一些更強有力的Floorplanners將支援族群的重疊、以及在一個規劃好的區域中執行未經規劃的邏輯。
- (3)第三個方法是建立相關性配置的巨集(Relationally Placed Macros;RPM)。一個RPM會定義互相有關係的邏輯元件之平面配置。但是該邏輯的精確配置是由配置和路徑工具所決定的,如此可達到最佳的設計效益。例如一個搜尋列表(Look-up Table;LUT) 可和一個正反器(flip-flop)放在同一個切片(slice)中。一個切片可被直接放在另一個切片上方。RPM提供給設計師控制特定模組配置的功能,但它不會完全限制相關配置和路徑工具。
在硬體工程師將這些提示和方法使用在內建系統的設計上時,便可控制特定零組件的配置、改善整體裝置的安排配置(區域族群)、並可控制特定零組件與相關其他零組件間的配置(RPMs)。
應用案例
此案例使用PPC 405來展示剛才討論過的一些提示和方法。這是一個內建設計,其中包括幾個UART和一個BRAM控制器;如(圖七)。
在此設計中,各族群是依據系統產生器所產生的階層邊界所建立的。一個區域族群可以建立給PLB仲裁器(Arbiter)、UART、以及BRAM記憶體控制器。BRAM和PPC 405都是被限制在特定的位置上,主要目的是將設計的效益衍生到最大化。(圖八)所展示的為此設計的一個平面規劃圖之案例。必需注意的一點是一個區域族群的指定必需要有足夠的資源來提供給在該區的邏輯電路,更強有力的Floorplanners可以提供使用者每一區域族群所需的資源數目。在此案例中的區域族群,所含的資源數目是所需執行工作的一倍,如此可以在未來規劃好的區域中放入更多的邏輯電路(不包括在此族群中的邏輯電路),並進一步將設計做到最佳化。
BRAM記憶體控制器被放置於晶粒的中心位置,因此與所有的BRAM零組件和PPC 405核心間都有相等的控制功能。在此設計中的Block RAM包含了給PPC 405的數據和指令。UART1 和UART2是位於接近IO的地方,如此可使輸入端至時脈(clock)和時脈至輸出端的距離縮減至最短。此處還有兩個PLB masters、CPU指令的PLB介面和CPU數據的PLB介面,因此PLB仲裁器被放在靠近PPC 405 核心的地方。(圖九)為最後之結果。
每一區域族群的邏輯電路都是根據該區域的限制規定所配置的,同時還互相混合了一些額外的邏輯來增加設計的效益。這也說明了在每一區域族群的指派中需預留空間的另一理由。
結論
晶片開發者在可編程邏輯裝置中內建一個低成本高效益的處理器,不但可以改善整體系統的效益,還可以取得提早將產品上市的優勢。如果平面配置之規劃遵循所概述的提示和程序來設計,更可增加資源使用、設計規劃、以及在FPGA中執行一個內嵌系統的價值。
(作者任職於美商智霖公司Xilinx)