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

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

  1 片上總線概述

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

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

  1.1 Wishbone總線概述

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

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

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

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

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

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

  點(diǎn)到點(diǎn)互連允許1臺(tái)主設(shè)備與1臺(tái)從設(shè)備相互通信;數(shù)據(jù)流互聯(lián)是點(diǎn)到點(diǎn)互聯(lián)的特例;共享總線互聯(lián)允許2臺(tái)及以上的主設(shè)備與1臺(tái)及以上的從設(shè)備進(jìn)行通信,但在任意時(shí)刻只能有一對(duì)主/從設(shè)備相互通信;交叉互聯(lián)允許多對(duì)主/從設(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)中,多個(gè)主設(shè)備可以并行訪問從設(shè)備。雖然這樣會(huì)增加硬件邏輯資源,但是在多主設(shè)備的系統(tǒng)中能夠明顯提高系統(tǒng)數(shù)據(jù)吞吐量。

  1.2 應(yīng)用分析

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

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

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

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

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

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

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

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

Image 002.jpg

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

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

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

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

  2.2.1 wb_conmax 地址空間分配

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

  2.2.2 總線橋的設(shè)計(jì)

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

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

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

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

  000,0xe300_0000…0xef00_0000。

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

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

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

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

  本文以Wishbone總線接口的開源微處理器AEMB[5]、片上存儲(chǔ)on-chip-ram、gpio及UART控制器構(gòu)成最小SoC系統(tǒng)[6]。SoC系統(tǒng)分別采用單一Wishbone總線與二級(jí)Wish-bone總線兩種結(jié)構(gòu)進(jìn)行互聯(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)基于二級(jí)總線的互聯(lián)結(jié)構(gòu),如圖4所示。作為分析原型,gpio0與uart0在系統(tǒng)中作為高速設(shè)備連接在第一級(jí)總線上,對(duì)應(yīng)的gpio1與uart1作為低速外設(shè)連接在第二級(jí)總線上。其中第一級(jí)總線的頻率設(shè)定為60 MHz,而二級(jí)總線頻率與之為四分頻關(guān)系,定為15 MHz。

  對(duì)于上述不同系統(tǒng)結(jié)構(gòu)的SoC系統(tǒng),基于Altera的EP2C50 系列FPGA使用QuartusII進(jìn)行綜合適配得到基于FPGA實(shí)現(xiàn)時(shí)的資源占用情況報(bào)告,如表1所示。

Image 005.jpg

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

Image 006.jpg

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

  本文選用Wishbone總線進(jìn)行SoC系統(tǒng)設(shè)計(jì)。通過對(duì)Wishbone總線規(guī)范的分析,發(fā)現(xiàn)了基于Wishbone總線規(guī)范進(jìn)行系統(tǒng)設(shè)計(jì)互連的局限。針對(duì)此,本文提出了基于wb_conmax的二級(jí)Wishbone總線設(shè)計(jì)方法。通過對(duì)Wishbone二級(jí)總線的擴(kuò)展,使得在系統(tǒng)設(shè)計(jì)中可以方便地根據(jù)系統(tǒng)IP類型進(jìn)行劃分互連,提高了設(shè)計(jì)的重用,同時(shí)為低功耗要求比較嚴(yán)格的設(shè)計(jì)提供了優(yōu)化策略。最后通過搭建簡(jiǎn)化SoC系統(tǒng),對(duì)基于兩種不同總線結(jié)構(gòu)互聯(lián)實(shí)現(xiàn)的SoC系統(tǒng)進(jìn)行綜合與功耗分析,驗(yàn)證了二級(jí)總線結(jié)構(gòu)在低功耗設(shè)計(jì)中應(yīng)用的可行性。

  參考文獻(xiàn)

  [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] 宋云揚(yáng),羅仁貴,侯立剛,等.片上系統(tǒng)中Wishbone/AMBAAHB總線橋的前端設(shè)計(jì)[J].電子工程師,2007(33):18-20.

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

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

  [6] 鄢永明,劉軼民,曾云,等.基于8051軟核的SOPC系統(tǒng)設(shè)計(jì)與實(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)載。