《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于wb_conmax的Wishbone二級總線設計與應用
基于wb_conmax的Wishbone二級總線設計與應用
2014年電子技術應用第3期
朱秀斌
淄博職業(yè)學院 電子電氣工程系,山東 淄博255314
摘要: SoC技術是嵌入式系統(tǒng)設計中重要的設計方法,而在SoC系統(tǒng)中如何將各種IP核互聯(lián)在一起對嵌入式設計效率影響極大。對常見的片上總線進行比較后,選用OpenCores組織的Wishbone總線進行設計。提出了基于OpenCores組織發(fā)布維護的wb_conmax的Wishbone二級總線設計。通過對Wishbone總線的二級擴展,使得SoC系統(tǒng)能夠更方便地集成多個IP,同時為低功耗要求的設計提出了功耗優(yōu)化的策略。通過對基于AEMB的最小SoC系統(tǒng)在兩種系統(tǒng)結構下的應用分析,驗證了二級總線結構對于低功耗設計的可行性。
中圖分類號: TB51
文獻標識碼: A
文章編號: 0258-7998(2014)03-0022-03
Design and application of two level Wishbone bus based on wb_conmax
Zhu Xiubin
Electrical and Electronic Engineering Department, Zibo Vocational Institute,Zibo 255314,China
Abstract: SoC is an important method in embedded system.It is critical to interconnect a variety of IP core.The paper compares the four kinds common on-chip bus and decides to use Wishbone bus from OpenCores organization to design the SoC system. This paper puts forward two level bus based on wb_conmax that was released and maintended by OpenCores organization. Through the expansion of the secondary Wishbone bus, the design allowes the SoC system to integrate multiple IP more easily, while low-power requirements of the design can be obtained by the power optimization strategy. Finally, we compare the two different smallest SoC system based on AEMB system structure that adapts the single bus and two level bus structure respectively. The Results verify that the two level bus is feasible in low-power design of SoC.
Key words : wb_conmax;two level bus;system on chip

  近年來,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所示。

Image 001.jpg

  在這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)先級。

Image 002.jpg

  其基本結構可以參考圖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所示。

Image 003.jpg

Image 004.jpg

  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所示。

Image 005.jpg

  使用QuartusII中所集成的功耗分析工具Powerplay Power Analyzer Tool進行簡單的功耗分析。其中singlebus_soc的總線頻率為單一的60 MHz,doublebus_soc的第一級總線頻率為60 MHz,第二級總線頻率為15 MHz。兩種系統(tǒng)結構的簡單功耗分析報告如表2所示。

Image 006.jpg

  通過表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.


此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。