文獻標識碼: A
文章編號: 0258-7998(2014)03-0022-03
近年來,F(xiàn)PGA器件設計生產(chǎn)制造技術的不斷成熟極大地降低了使用FPGA進行產(chǎn)品設計的成本,半導體工藝技術的進步與EDA(Electronic Design Automation)技術的發(fā)展也降低了ASIC(Application Specific Integrated Circuit)設計的門檻,再加上系統(tǒng)設計技術日新月異,使得基于SoC(System on Chip)原理的FPGA設計及ASIC設計如多年前的單片機設計一樣在嵌入式系統(tǒng)設計領域得到了廣泛的應用。
SoC技術是一種高度集成化、固件化的系統(tǒng)集成技術。使用SoC技術設計系統(tǒng)的核心思想就是把整個應用電子系統(tǒng)全部集成在一個芯片中。SoC的設計過程中,最具特色的就是基于片上總線OCB(On-Chip Bus)的IP(Intellectual Property)復用技術。系統(tǒng)的各個IP模塊與其他系統(tǒng)功能模塊通過片上總線進行互聯(lián)通信,因此片上總線的正確選擇和合理設計對嵌入式系統(tǒng)應用具有重大的影響。
1 片上總線概述
目前較有影響力的總線標準主要有:IBM公司的CoreConnect總線、ARM公司的AMBA總線、Silicore公司的Wishbone總線和Altera公司的Avalon總線。這4種總線技術的最大區(qū)別在于各自提供的技術特性及其規(guī)范的完整性方面的差異。
在這4種總線中,Wishbone 總線是唯一一種免費的片上總線標準 并且OpenCores組織選用Wishbone作為片上總線標準,提供了大量的基于Wishbone總線開放 IP 核。因此,采用Wishbone片上總線進行SoC設計,可以利用大量的免費資源,從而可以節(jié)省開發(fā)成本,加快系統(tǒng)開發(fā)進程。
1.1 Wishbone總線概述
Wishbone總線規(guī)范定義了一種IP核之間互連的通用接口,可用于軟核、固核和硬核之間的互連,并且對開發(fā)工具和目標硬件沒有特殊要求,幾乎兼容目前存在的所有主流EDA綜合工具,可以用多種硬件描述語言來實現(xiàn)[1]。
Wishbone總線結構比較簡單,僅僅定義了一條高速總線,并提供了4種不同的IP互連結構:
(1)點到點(point-to-point):用于兩IP核直接互連。
(2)數(shù)據(jù)流(data flow):用于多個串行IP核之間的數(shù)據(jù)并發(fā)傳輸。
(3)共享總線(shared bus):多個IP核共享一條總線。
(4)交叉開關(crossbar switch):同時連接多個主從部件,提高系統(tǒng)吞吐量。
點到點互連允許1臺主設備與1臺從設備相互通信;數(shù)據(jù)流互聯(lián)是點到點互聯(lián)的特例;共享總線互聯(lián)允許2臺及以上的主設備與1臺及以上的從設備進行通信,但在任意時刻只能有一對主/從設備相互通信;交叉互聯(lián)允許多對主/從設備相互通信,數(shù)據(jù)傳輸率高。Wishbone總線的4種互聯(lián)結構如圖1所示。
在這4種互連結構中,目前使用較多的是交叉開關結構。在這種結構中,多個主設備可以并行訪問從設備。雖然這樣會增加硬件邏輯資源,但是在多主設備的系統(tǒng)中能夠明顯提高系統(tǒng)數(shù)據(jù)吞吐量。
1.2 應用分析
目前OpenCores組織發(fā)布了一些采用交叉互聯(lián)結構的Wishbone總線IP核,如wb_conmax、wb_conbus以及針對Openrisc處理器參考平臺orp中的tcp_top。大部分的設計者在完成設計時采用了以上的IP,但基于這種結構所設計的SoC系統(tǒng),所有的主設備與從設備均通過單一總線進行互聯(lián)。對于低速設備而言,為達到時序設計要求,必須通過硬件邏輯降頻處理。但是總線上硬件電路一直工作在高速時鐘,從而增加了系統(tǒng)總體功耗。鑒于此,在進行SoC設計時,針對外設速度不同,采用二級Wishbone總線的機制實現(xiàn)IP互聯(lián)。這樣不但可以為系統(tǒng)的后續(xù)開發(fā)與設計優(yōu)化提供支持,而且能夠方便地擴展與互連更多外設。
2 Wishbone二級總線的設計與實現(xiàn)
本文所設計的Wishbone二級總線基于wb_conmax IP核,首先簡單介紹wb_conmax核。
2.1 wb_conmax的實現(xiàn)結構
wb_conmax是基于Wishbone總線規(guī)范的互連矩陣,采用交叉方式互連結構,可以直接用于基于Wishbone總線規(guī)范設計的IP的集成[2]。它主要有以下特點:
(1)最多支持8個主設備;
(2)最多支持16個從設備;
(3)支持1、2或者4級優(yōu)先級。
其基本結構可以參考圖2。由圖可知,wb_conmax為8×16的結構,一般情況下能夠滿足SoC系統(tǒng)的要求,而且完全可以實現(xiàn)不同主設備與不同從設備的并行通信。所以該IP在很多設計中得到了應用。
2.2 Wishbone二級總線的具體實現(xiàn)
本文所設計的Wishbone二級總線基于wb_conmax完成,基本的結構如圖2所示。
在上圖結構的具體實現(xiàn)中,wb_conmax0直接采用OpenCores上提供的wb_conmax,地址空間的分配足以滿足常用的SoC系統(tǒng)的各種地址空間的分配。wb_conmax1在wb_conmax0的基礎上對地址譯碼部分做了處理。其中總線橋主要實現(xiàn)wb_conmax0與wb_conmax1之間的數(shù)據(jù)地址信號的互連與同步處理[3]。
2.2.1 wb_conmax 地址空間分配
wb_conmax支持16個Slave設備,默認的地址空間為0x0000_000,0x1000_0000,0x2000_0000…0xf000_0000,每個Slave設備的地址空間高達256 MB。在一般的嵌入式系統(tǒng)設計中,不管對于尋址空間比較大的SDRAM還是Flash,均能夠滿足設計要求。因此,在本系統(tǒng)中,將二級總線的尋址空間定義在256 MB范圍內。
2.2.2 總線橋的設計
對于Wishbone二級總線設計的具體應用,因為與之進行互聯(lián)的設備均采用標準Wishbone總線的信號,而不像AMBA中有AHB與APB之分,所以總線橋的設計中不涉及總線信號轉換問題,主要實現(xiàn)地址編碼的實現(xiàn)與不同時鐘域信號的同步操作。
(1)總線橋中的地址編碼
wb_conmax1的地址獨立于wb_conmax進行編碼,為了設計的方便與滿足系統(tǒng)應用,在這里簡單地將wb_conmax1的相對地址分配為0x0000_0000,0x0100_0000,
0x0200_0000,0x0300_000…0x0f00_0000。每個Slave設備可分配的地址空間為16 MB,這在嵌入式系統(tǒng)的低速外設尋址中基本都可以滿足。由圖2所示的總線橋進行連接。如果接在wb_conmax0的slave14上,則實際系統(tǒng)中低速外設的訪問地址為0xe000_0000,0xe100_0000,0xe200_
000,0xe300_0000…0xef00_0000。
(2)總線橋中的同步邏輯設計
在Wishbone二級總線的設計中,兩級總線工作在不同時鐘頻率下,以滿足不同設備應用的需求,所以在總線橋中必須做好同步邏輯的設計。對于一些數(shù)據(jù)量比較大或者突發(fā)傳輸?shù)牟僮?,同步邏輯設計常采用FIFO來實現(xiàn);而對于其他數(shù)據(jù)量比較小的傳輸,多采用簡單的雙D觸發(fā)器寄存并由響應信號等待機制進行實現(xiàn)。
在本設計中,第二級總線的工作頻率只是第一級總線工作頻率的偶數(shù)分頻,所以同步邏輯采用響應信號的等待機制。一般情況下,在多級總線系統(tǒng)中,高速總線與低速總線的工作頻率常為4倍或者2倍的關系[4]??紤]到二級總線所連接外設的工作頻率,總線橋將兩級總線工作頻率定為4:1的關系。對于響應等待信號的處理,通過判斷硬件計數(shù)器的相應位實現(xiàn)。
3 基于二級總線結構的最小SoC系統(tǒng)應用分析
本文以Wishbone總線接口的開源微處理器AEMB[5]、片上存儲on-chip-ram、gpio及UART控制器構成最小SoC系統(tǒng)[6]。SoC系統(tǒng)分別采用單一Wishbone總線與二級Wish-bone總線兩種結構進行互聯(lián)。從SoC系統(tǒng)的外部接口來看,兩種結構的SoC系統(tǒng)分別配備兩組GPIO及UART控制器。其中采用單一Wishbone總線結構互聯(lián)的SoC系統(tǒng)結構如圖3所示。
SoC系統(tǒng)基于二級總線的互聯(lián)結構,如圖4所示。作為分析原型,gpio0與uart0在系統(tǒng)中作為高速設備連接在第一級總線上,對應的gpio1與uart1作為低速外設連接在第二級總線上。其中第一級總線的頻率設定為60 MHz,而二級總線頻率與之為四分頻關系,定為15 MHz。
對于上述不同系統(tǒng)結構的SoC系統(tǒng),基于Altera的EP2C50 系列FPGA使用QuartusII進行綜合適配得到基于FPGA實現(xiàn)時的資源占用情況報告,如表1所示。
使用QuartusII中所集成的功耗分析工具Powerplay Power Analyzer Tool進行簡單的功耗分析。其中singlebus_soc的總線頻率為單一的60 MHz,doublebus_soc的第一級總線頻率為60 MHz,第二級總線頻率為15 MHz。兩種系統(tǒng)結構的簡單功耗分析報告如表2所示。
通過表1所列數(shù)據(jù)的對比分析可知,相比于單一總線結構,二級總線結構因為總線橋等相關邏輯的使用,使得SoC系統(tǒng)的硬件實現(xiàn)面積有所增加。從表2的數(shù)據(jù)對比可知,使用二級總線結構的SoC系統(tǒng)的核心動態(tài)功耗相比單一總線結構的SoC系統(tǒng)有明顯的降低。
本文選用Wishbone總線進行SoC系統(tǒng)設計。通過對Wishbone總線規(guī)范的分析,發(fā)現(xiàn)了基于Wishbone總線規(guī)范進行系統(tǒng)設計互連的局限。針對此,本文提出了基于wb_conmax的二級Wishbone總線設計方法。通過對Wishbone二級總線的擴展,使得在系統(tǒng)設計中可以方便地根據(jù)系統(tǒng)IP類型進行劃分互連,提高了設計的重用,同時為低功耗要求比較嚴格的設計提供了優(yōu)化策略。最后通過搭建簡化SoC系統(tǒng),對基于兩種不同總線結構互聯(lián)實現(xiàn)的SoC系統(tǒng)進行綜合與功耗分析,驗證了二級總線結構在低功耗設計中應用的可行性。
參考文獻
[1] OpenCores Organization. Wishbone System-on-Chip(SoC) inter connection architecture for portable IP cores[S].Revision: B.3,2002-09-07:4-32.
[2] RUDOLF U.Wishbone interconnect matrix IP core[S].Rev.1.1 3,2002-10-03:5-12.
[3] 宋云揚,羅仁貴,侯立剛,等.片上系統(tǒng)中Wishbone/AMBAAHB總線橋的前端設計[J].電子工程師,2007(33):18-20.
[4] 開元海,汪超,鄭勇.基于S3C2440與WinCE平臺上的FIQ驅動程序的實現(xiàn)[J].微型機與應用,2012,31(24):89-91.
[5] 桑圣鋒,張德學,于國蘋.AEMB 軟核處理器的SoC系統(tǒng)驗證平臺[J].單片機與嵌入式系統(tǒng)應用,2010(4):43-45.
[6] 鄢永明,劉軼民,曾云,等.基于8051軟核的SOPC系統(tǒng)設計與實現(xiàn)[J].電子技術應用,2005,31(10):72-75.