《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于wb_conmax的Wishbone二級總線設(shè)計與應(yīng)用
基于wb_conmax的Wishbone二級總線設(shè)計與應(yīng)用
2014年電子技術(shù)應(yīng)用第3期
朱秀斌
淄博職業(yè)學(xué)院 電子電氣工程系,山東 淄博255314
摘要: SoC技術(shù)是嵌入式系統(tǒng)設(shè)計中重要的設(shè)計方法,而在SoC系統(tǒng)中如何將各種IP核互聯(lián)在一起對嵌入式設(shè)計效率影響極大。對常見的片上總線進行比較后,選用OpenCores組織的Wishbone總線進行設(shè)計。提出了基于OpenCores組織發(fā)布維護的wb_conmax的Wishbone二級總線設(shè)計。通過對Wishbone總線的二級擴展,使得SoC系統(tǒng)能夠更方便地集成多個IP,同時為低功耗要求的設(shè)計提出了功耗優(yōu)化的策略。通過對基于AEMB的最小SoC系統(tǒng)在兩種系統(tǒng)結(jié)構(gòu)下的應(yīng)用分析,驗證了二級總線結(jié)構(gòu)對于低功耗設(shè)計的可行性。
中圖分類號: TB51
文獻標(biāo)識碼: 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器件設(shè)計生產(chǎn)制造技術(shù)的不斷成熟極大地降低了使用FPGA進行產(chǎn)品設(shè)計的成本,半導(dǎo)體工藝技術(shù)的進步與EDA(Electronic Design Automation)技術(shù)的發(fā)展也降低了ASIC(Application Specific Integrated Circuit)設(shè)計的門檻,再加上系統(tǒng)設(shè)計技術(shù)日新月異,使得基于SoC(System on Chip)原理的FPGA設(shè)計及ASIC設(shè)計如多年前的單片機設(shè)計一樣在嵌入式系統(tǒng)設(shè)計領(lǐng)域得到了廣泛的應(yīng)用。

  SoC技術(shù)是一種高度集成化、固件化的系統(tǒng)集成技術(shù)。使用SoC技術(shù)設(shè)計系統(tǒng)的核心思想就是把整個應(yīng)用電子系統(tǒng)全部集成在一個芯片中。SoC的設(shè)計過程中,最具特色的就是基于片上總線OCB(On-Chip Bus)的IP(Intellectual Property)復(fù)用技術(shù)。系統(tǒng)的各個IP模塊與其他系統(tǒng)功能模塊通過片上總線進行互聯(lián)通信,因此片上總線的正確選擇和合理設(shè)計對嵌入式系統(tǒng)應(yīng)用具有重大的影響。

  1 片上總線概述

  目前較有影響力的總線標(biāo)準(zhǔn)主要有:IBM公司的CoreConnect總線、ARM公司的AMBA總線、Silicore公司的Wishbone總線和Altera公司的Avalon總線。這4種總線技術(shù)的最大區(qū)別在于各自提供的技術(shù)特性及其規(guī)范的完整性方面的差異。

  在這4種總線中,Wishbone 總線是唯一一種免費的片上總線標(biāo)準(zhǔn) 并且OpenCores組織選用Wishbone作為片上總線標(biāo)準(zhǔn),提供了大量的基于Wishbone總線開放 IP 核。因此,采用Wishbone片上總線進行SoC設(shè)計,可以利用大量的免費資源,從而可以節(jié)省開發(fā)成本,加快系統(tǒng)開發(fā)進程。

  1.1 Wishbone總線概述

  Wishbone總線規(guī)范定義了一種IP核之間互連的通用接口,可用于軟核、固核和硬核之間的互連,并且對開發(fā)工具和目標(biāo)硬件沒有特殊要求,幾乎兼容目前存在的所有主流EDA綜合工具,可以用多種硬件描述語言來實現(xiàn)[1]。

  Wishbone總線結(jié)構(gòu)比較簡單,僅僅定義了一條高速總線,并提供了4種不同的IP互連結(jié)構(gòu):

  (1)點到點(point-to-point):用于兩IP核直接互連。

  (2)數(shù)據(jù)流(data flow):用于多個串行IP核之間的數(shù)據(jù)并發(fā)傳輸。

  (3)共享總線(shared bus):多個IP核共享一條總線。

  (4)交叉開關(guān)(crossbar switch):同時連接多個主從部件,提高系統(tǒng)吞吐量。

  點到點互連允許1臺主設(shè)備與1臺從設(shè)備相互通信;數(shù)據(jù)流互聯(lián)是點到點互聯(lián)的特例;共享總線互聯(lián)允許2臺及以上的主設(shè)備與1臺及以上的從設(shè)備進行通信,但在任意時刻只能有一對主/從設(shè)備相互通信;交叉互聯(lián)允許多對主/從設(shè)備相互通信,數(shù)據(jù)傳輸率高。Wishbone總線的4種互聯(lián)結(jié)構(gòu)如圖1所示。

Image 001.jpg

  在這4種互連結(jié)構(gòu)中,目前使用較多的是交叉開關(guān)結(jié)構(gòu)。在這種結(jié)構(gòu)中,多個主設(shè)備可以并行訪問從設(shè)備。雖然這樣會增加硬件邏輯資源,但是在多主設(shè)備的系統(tǒng)中能夠明顯提高系統(tǒng)數(shù)據(jù)吞吐量。

  1.2 應(yīng)用分析

  目前OpenCores組織發(fā)布了一些采用交叉互聯(lián)結(jié)構(gòu)的Wishbone總線IP核,如wb_conmax、wb_conbus以及針對Openrisc處理器參考平臺orp中的tcp_top。大部分的設(shè)計者在完成設(shè)計時采用了以上的IP,但基于這種結(jié)構(gòu)所設(shè)計的SoC系統(tǒng),所有的主設(shè)備與從設(shè)備均通過單一總線進行互聯(lián)。對于低速設(shè)備而言,為達到時序設(shè)計要求,必須通過硬件邏輯降頻處理。但是總線上硬件電路一直工作在高速時鐘,從而增加了系統(tǒng)總體功耗。鑒于此,在進行SoC設(shè)計時,針對外設(shè)速度不同,采用二級Wishbone總線的機制實現(xiàn)IP互聯(lián)。這樣不但可以為系統(tǒng)的后續(xù)開發(fā)與設(shè)計優(yōu)化提供支持,而且能夠方便地擴展與互連更多外設(shè)。

2 Wishbone二級總線的設(shè)計與實現(xiàn)

  本文所設(shè)計的Wishbone二級總線基于wb_conmax IP核,首先簡單介紹wb_conmax核。

  2.1 wb_conmax的實現(xiàn)結(jié)構(gòu)

  wb_conmax是基于Wishbone總線規(guī)范的互連矩陣,采用交叉方式互連結(jié)構(gòu),可以直接用于基于Wishbone總線規(guī)范設(shè)計的IP的集成[2]。它主要有以下特點:

  (1)最多支持8個主設(shè)備;

  (2)最多支持16個從設(shè)備;

  (3)支持1、2或者4級優(yōu)先級。

Image 002.jpg

  其基本結(jié)構(gòu)可以參考圖2。由圖可知,wb_conmax為8×16的結(jié)構(gòu),一般情況下能夠滿足SoC系統(tǒng)的要求,而且完全可以實現(xiàn)不同主設(shè)備與不同從設(shè)備的并行通信。所以該IP在很多設(shè)計中得到了應(yīng)用。

  2.2 Wishbone二級總線的具體實現(xiàn)

  本文所設(shè)計的Wishbone二級總線基于wb_conmax完成,基本的結(jié)構(gòu)如圖2所示。

  在上圖結(jié)構(gòu)的具體實現(xiàn)中,wb_conmax0直接采用OpenCores上提供的wb_conmax,地址空間的分配足以滿足常用的SoC系統(tǒng)的各種地址空間的分配。wb_conmax1在wb_conmax0的基礎(chǔ)上對地址譯碼部分做了處理。其中總線橋主要實現(xiàn)wb_conmax0與wb_conmax1之間的數(shù)據(jù)地址信號的互連與同步處理[3]。

  2.2.1 wb_conmax 地址空間分配

  wb_conmax支持16個Slave設(shè)備,默認的地址空間為0x0000_000,0x1000_0000,0x2000_0000…0xf000_0000,每個Slave設(shè)備的地址空間高達256 MB。在一般的嵌入式系統(tǒng)設(shè)計中,不管對于尋址空間比較大的SDRAM還是Flash,均能夠滿足設(shè)計要求。因此,在本系統(tǒng)中,將二級總線的尋址空間定義在256 MB范圍內(nèi)。

  2.2.2 總線橋的設(shè)計

  對于Wishbone二級總線設(shè)計的具體應(yīng)用,因為與之進行互聯(lián)的設(shè)備均采用標(biāo)準(zhǔn)Wishbone總線的信號,而不像AMBA中有AHB與APB之分,所以總線橋的設(shè)計中不涉及總線信號轉(zhuǎn)換問題,主要實現(xiàn)地址編碼的實現(xiàn)與不同時鐘域信號的同步操作。

  (1)總線橋中的地址編碼

  wb_conmax1的地址獨立于wb_conmax進行編碼,為了設(shè)計的方便與滿足系統(tǒng)應(yīng)用,在這里簡單地將wb_conmax1的相對地址分配為0x0000_0000,0x0100_0000,

  0x0200_0000,0x0300_000…0x0f00_0000。每個Slave設(shè)備可分配的地址空間為16 MB,這在嵌入式系統(tǒng)的低速外設(shè)尋址中基本都可以滿足。由圖2所示的總線橋進行連接。如果接在wb_conmax0的slave14上,則實際系統(tǒng)中低速外設(shè)的訪問地址為0xe000_0000,0xe100_0000,0xe200_

  000,0xe300_0000…0xef00_0000。

  (2)總線橋中的同步邏輯設(shè)計

  在Wishbone二級總線的設(shè)計中,兩級總線工作在不同時鐘頻率下,以滿足不同設(shè)備應(yīng)用的需求,所以在總線橋中必須做好同步邏輯的設(shè)計。對于一些數(shù)據(jù)量比較大或者突發(fā)傳輸?shù)牟僮?,同步邏輯設(shè)計常采用FIFO來實現(xiàn);而對于其他數(shù)據(jù)量比較小的傳輸,多采用簡單的雙D觸發(fā)器寄存并由響應(yīng)信號等待機制進行實現(xiàn)。

  在本設(shè)計中,第二級總線的工作頻率只是第一級總線工作頻率的偶數(shù)分頻,所以同步邏輯采用響應(yīng)信號的等待機制。一般情況下,在多級總線系統(tǒng)中,高速總線與低速總線的工作頻率常為4倍或者2倍的關(guān)系[4]??紤]到二級總線所連接外設(shè)的工作頻率,總線橋?qū)杉壙偩€工作頻率定為4:1的關(guān)系。對于響應(yīng)等待信號的處理,通過判斷硬件計數(shù)器的相應(yīng)位實現(xiàn)。

3 基于二級總線結(jié)構(gòu)的最小SoC系統(tǒng)應(yīng)用分析

  本文以Wishbone總線接口的開源微處理器AEMB[5]、片上存儲on-chip-ram、gpio及UART控制器構(gòu)成最小SoC系統(tǒng)[6]。SoC系統(tǒng)分別采用單一Wishbone總線與二級Wish-bone總線兩種結(jié)構(gòu)進行互聯(lián)。從SoC系統(tǒng)的外部接口來看,兩種結(jié)構(gòu)的SoC系統(tǒng)分別配備兩組GPIO及UART控制器。其中采用單一Wishbone總線結(jié)構(gòu)互聯(lián)的SoC系統(tǒng)結(jié)構(gòu)如圖3所示。

Image 003.jpg

Image 004.jpg

  SoC系統(tǒng)基于二級總線的互聯(lián)結(jié)構(gòu),如圖4所示。作為分析原型,gpio0與uart0在系統(tǒng)中作為高速設(shè)備連接在第一級總線上,對應(yīng)的gpio1與uart1作為低速外設(shè)連接在第二級總線上。其中第一級總線的頻率設(shè)定為60 MHz,而二級總線頻率與之為四分頻關(guān)系,定為15 MHz。

  對于上述不同系統(tǒng)結(jié)構(gòu)的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)結(jié)構(gòu)的簡單功耗分析報告如表2所示。

Image 006.jpg

  通過表1所列數(shù)據(jù)的對比分析可知,相比于單一總線結(jié)構(gòu),二級總線結(jié)構(gòu)因為總線橋等相關(guān)邏輯的使用,使得SoC系統(tǒng)的硬件實現(xiàn)面積有所增加。從表2的數(shù)據(jù)對比可知,使用二級總線結(jié)構(gòu)的SoC系統(tǒng)的核心動態(tài)功耗相比單一總線結(jié)構(gòu)的SoC系統(tǒng)有明顯的降低。

  本文選用Wishbone總線進行SoC系統(tǒng)設(shè)計。通過對Wishbone總線規(guī)范的分析,發(fā)現(xiàn)了基于Wishbone總線規(guī)范進行系統(tǒng)設(shè)計互連的局限。針對此,本文提出了基于wb_conmax的二級Wishbone總線設(shè)計方法。通過對Wishbone二級總線的擴展,使得在系統(tǒng)設(shè)計中可以方便地根據(jù)系統(tǒng)IP類型進行劃分互連,提高了設(shè)計的重用,同時為低功耗要求比較嚴(yán)格的設(shè)計提供了優(yōu)化策略。最后通過搭建簡化SoC系統(tǒng),對基于兩種不同總線結(jié)構(gòu)互聯(lián)實現(xiàn)的SoC系統(tǒng)進行綜合與功耗分析,驗證了二級總線結(jié)構(gòu)在低功耗設(shè)計中應(yī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總線橋的前端設(shè)計[J].電子工程師,2007(33):18-20.

  [4] 開元海,汪超,鄭勇.基于S3C2440與WinCE平臺上的FIQ驅(qū)動程序的實現(xiàn)[J].微型機與應(yīng)用,2012,31(24):89-91.

  [5] 桑圣鋒,張德學(xué),于國蘋.AEMB 軟核處理器的SoC系統(tǒng)驗證平臺[J].單片機與嵌入式系統(tǒng)應(yīng)用,2010(4):43-45.

  [6] 鄢永明,劉軼民,曾云,等.基于8051軟核的SOPC系統(tǒng)設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2005,31(10):72-75.


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