《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于SoC的雙CPU連接橋設(shè)計(jì)

基于SoC的雙CPU連接橋設(shè)計(jì)

2008-12-03
作者:劉 佳1,2,,李哲英1,,2

??? 摘 要: 采用一種新的總線橋" title="總線橋">總線橋網(wǎng)絡(luò)連接方法,實(shí)現(xiàn)了由一個(gè)總線橋?qū)蓚€(gè)CPU以及多個(gè)數(shù)字設(shè)備連接在一起的功能,。重點(diǎn)研究了總線橋的整體結(jié)構(gòu)設(shè)計(jì)及內(nèi)部邏輯功能,并對(duì)其進(jìn)行了詳細(xì)分析及仿真驗(yàn)證。結(jié)果表明總線橋能夠正確完成雙CPU與公共設(shè)備之間的通信,,提高了系統(tǒng)電路的工作速度和性能,很好地解決了多CPU與公共電路模塊" title="電路模塊">電路模塊之間的通信問(wèn)題,。
??? 關(guān)鍵詞: 總線橋,;SoC;雙CPU

?

??? 隨著集成電路設(shè)計(jì)和制造技術(shù)的發(fā)展,,在比較復(fù)雜的移動(dòng)終端或控制終端設(shè)計(jì)中,,往往使用模數(shù)" title="模數(shù)">模數(shù)混合信號(hào)" title="混合信號(hào)">混合信號(hào)SoC設(shè)計(jì)方法完成芯片設(shè)計(jì)[1-3]。使用模數(shù)混合信號(hào)SoC設(shè)計(jì)專用集成電路不僅可以提高系統(tǒng)電路工作速度,,還可以增加系統(tǒng)的抗干擾能力,,并保證系統(tǒng)工作安全[2][4]
  在模數(shù)混合信號(hào)SoC設(shè)計(jì)中,,電路各不同部分的連接是關(guān)鍵問(wèn)題,。對(duì)僅含有一個(gè)CPU的SoC,可以使用總線方式完成各電路部分的連接,,但對(duì)于含有2個(gè)或2個(gè)以上CPU的電路,,使用總線方式連接就會(huì)降低電路工作速度和性能,因此,,必須采用特殊的連接方法[5][6],。對(duì)于多CPU的SoC來(lái)說(shuō),其內(nèi)部各CPU系統(tǒng)之間以及CPU與公共電路模塊之間的通信連接形成了一種片內(nèi)網(wǎng)絡(luò),,屬于片上網(wǎng)絡(luò)系統(tǒng)(NoC),。
  針對(duì)具有兩個(gè)CPU系統(tǒng)的模數(shù)混合信號(hào)SoC設(shè)計(jì)要求" title="設(shè)計(jì)要求">設(shè)計(jì)要求,本文提出一種新的總線橋網(wǎng)絡(luò)連接方法,,通過(guò)總線橋,,可以把兩個(gè)CPU以及多個(gè)數(shù)字設(shè)備連接在一起。
1 雙CPU混合電路的系統(tǒng)結(jié)構(gòu)
  在嵌入式微處理器中,目前一般使用總線橋?qū)崿F(xiàn)多個(gè)電路模塊與CPU相連接[ARM,、IBM],,這種總線的特點(diǎn)是能實(shí)現(xiàn)可變數(shù)據(jù)寬度,同時(shí)可以滿足快速數(shù)據(jù)連接,。但對(duì)于多CPU的SoC系統(tǒng)來(lái)說(shuō),,這種總線無(wú)法實(shí)現(xiàn)CPU所要求的運(yùn)行模式要求。在多CPU系統(tǒng)中,,要求CPU之間實(shí)現(xiàn)無(wú)縫連接,,同時(shí)對(duì)于公共電路也能實(shí)現(xiàn)無(wú)縫連接,即要求任何一個(gè)CPU都能把公共電路和其他的CPU作為其子系統(tǒng)的一部分,,實(shí)現(xiàn)快速數(shù)據(jù)傳輸,。圖1是一個(gè)雙CPU系統(tǒng)的數(shù)據(jù)流圖結(jié)構(gòu)。

?


  在圖1的數(shù)據(jù)流圖中,,CPU之間,、CPU與公共電路之間的數(shù)據(jù)傳輸都經(jīng)過(guò)總線橋?qū)崿F(xiàn),因此,,總線橋?qū)嶋H上就是一個(gè)系統(tǒng)總線仲裁器,。仲裁器與CPU通過(guò)簡(jiǎn)單的信號(hào)協(xié)議完成快速數(shù)據(jù)傳輸連接。
  雙CPU的模數(shù)混合信號(hào)SoC的基本結(jié)構(gòu)如圖2所示,,系統(tǒng)中的數(shù)據(jù)字長(zhǎng)為8bit,。在這個(gè)系統(tǒng)中,具有CPU1和CPU2 兩個(gè)完全獨(dú)立的8位CPU系統(tǒng),。要求所設(shè)計(jì)的SoC提供一個(gè)ADC電路和一個(gè)DAC電路,,這兩個(gè)電路可以被任何一個(gè)CPU所控制。同時(shí),,系統(tǒng)還要提供一個(gè)公共的32KB RAM,,可以被兩個(gè)CPU中的任何一個(gè)所訪問(wèn)。注意,,這個(gè)系統(tǒng)中把ADC和DAC所連接的模擬電路設(shè)計(jì)在SoC之外,。
  與圖1相對(duì)照,圖2中的ADC和DAC以及RAM就是圖1中的公共電路,。

?


  在圖2所示的SoC結(jié)構(gòu)中,,兩個(gè)CPU均為一個(gè)獨(dú)立CPU系統(tǒng),能夠完全獨(dú)立工作,。在任何一個(gè)CPU系統(tǒng)中,,CPU稱為本地CPU,每個(gè)CPU系統(tǒng)均包含有相應(yīng)的總線,、邏輯電路,、存儲(chǔ)器和I/O接口等,,所有這些電路僅供本地CPU使用。
2 總線橋結(jié)構(gòu)設(shè)計(jì)
  根據(jù)圖2的結(jié)構(gòu)可知,,所需要的SoC中需要實(shí)現(xiàn)8bit的數(shù)據(jù)傳輸。在設(shè)計(jì)中考慮如下要求:
  (1)任何一個(gè)CPU系統(tǒng)均為一個(gè)獨(dú)立工作的8bit系統(tǒng),。
  (2)任何一個(gè)CPU系統(tǒng)均可隨時(shí)使用RAM,、ADC和DAC電路,對(duì)于RAM的等待時(shí)間不大于2us,,對(duì)于ADC和DAC電路的等待時(shí)間不大于120us,。
  (3)RAM、ADC和DAC電路全部在CPU系統(tǒng)控制下工作,,不主動(dòng)向兩個(gè)CPU系統(tǒng)發(fā)送信號(hào)或數(shù)據(jù),。
  (4)ADC的模擬輸入信號(hào)帶寬小于2kHz,轉(zhuǎn)換速度為100μs,。
  (5)DAC輸出數(shù)據(jù)速度低于4000點(diǎn)/s,,轉(zhuǎn)換速度為1μs。
  根據(jù)以上設(shè)計(jì)要求可知,,必須使用一個(gè)總線橋把兩個(gè)CPU系統(tǒng)和RAM,、ADC及DAC電路連接起來(lái)。
  為了滿足設(shè)計(jì)要求,,總線橋必須為每一個(gè)電路提供一個(gè)單獨(dú)的通道,,每個(gè)通道需要設(shè)置一個(gè)開(kāi)關(guān)來(lái)控制CPU系統(tǒng)的連接。
  總線橋的具體設(shè)計(jì)要求如下:
  (1)具有電路使用判別功能,,即能夠判別哪一個(gè)CPU系統(tǒng)提出的電路使用要求,。
  (2)為了滿足速度要求,應(yīng)向每個(gè)CPU都提供相應(yīng)的電路部件工作狀態(tài)信息,,以保證CPU系統(tǒng)能正確,、快速地完成數(shù)據(jù)傳輸。
  (3)總線橋?qū)﹄娐吠ǖ赖倪x擇使用硬件邏輯電路來(lái)完成,。
  (4)如果兩個(gè)CPU系統(tǒng)需要寫(xiě)入或獨(dú)處數(shù)據(jù)中相互碰撞,,則應(yīng)當(dāng)有一個(gè)CPU具有優(yōu)先權(quán)。
  (5)如果兩個(gè)CPU系統(tǒng)使用不同的電路,,則應(yīng)當(dāng)能夠同時(shí)使用,。例如CPU1向RAM寫(xiě)入或讀出數(shù)據(jù),CPU2從ADC讀取數(shù)據(jù),,這時(shí)必須能夠同時(shí)工作,。
  (6)對(duì)于CPU系統(tǒng)來(lái)說(shuō),對(duì)RAM,、ADC和DAC電路的讀寫(xiě)操作類似于I/O口操作,。
  (7)暫不考慮CPU之間的數(shù)據(jù)傳輸,。
3 總線橋設(shè)計(jì)與實(shí)現(xiàn)
  根據(jù)以上討論,本文設(shè)計(jì)了一個(gè)完整的8bit雙CPU系統(tǒng)的總線橋系統(tǒng),。
3.1 總線橋控制原理
  總線橋的功能是對(duì)各通道進(jìn)行連接控制,,并向CPU提供相應(yīng)的設(shè)備狀態(tài)信號(hào)。本文設(shè)計(jì)的總線橋控制器的功能是對(duì)各通道進(jìn)行開(kāi)關(guān)控制,,在控制器的控制下建立CPU與RAM,、ADC和DAC之間的直接連接。
  為了保證多CPU系統(tǒng)能夠正常工作,,并盡可能保證對(duì)其他功能電路的并行操作,,總線橋的功能應(yīng)用是把CPU1、CPU2和RAM,、ADC及DAC連接在一起,,提供一個(gè)主動(dòng)電路之間、主動(dòng)電路與非主動(dòng)電路之間的連接通道,,每一個(gè)部件具有一個(gè)獨(dú)立的連接通道,。
  由此可知,控制器需要能夠接收CPU提供的設(shè)備使用信息和設(shè)備狀態(tài)信息,,具體要求如下:
  每個(gè)CPU都需要為總線橋提供設(shè)備選擇信號(hào),,為此每個(gè)CPU設(shè)計(jì)兩根信號(hào)線:cd11cd12代表CPU1發(fā)送給控制器的設(shè)備選擇信號(hào)線,通過(guò)這兩個(gè)信號(hào),,控制器將CPU1發(fā)送來(lái)的數(shù)據(jù)傳送到相應(yīng)的公共設(shè)備中,;cd21cd22代表CPU2發(fā)送給控制器的設(shè)備選擇信號(hào)線,通過(guò)這兩個(gè)信號(hào),,控制器將CPU2發(fā)送來(lái)的數(shù)據(jù)傳送到相應(yīng)的公共設(shè)備中,。除此之外,總線橋還需為每個(gè)CPU提供設(shè)備空閑狀態(tài)情況,,為此需要一根設(shè)備空閑狀態(tài)信號(hào)線ack1ack2,,表示控制器返回給CPU1CPU2的設(shè)備空閑狀態(tài)信號(hào),由ack1ack2的高低電平?jīng)Q定是否讓CPU1CPU2訪問(wèn)設(shè)備,。通過(guò)cdack這兩個(gè)控制信號(hào),,可以很好地起到通道選擇的作用。
3.2 控制器邏輯結(jié)構(gòu)設(shè)計(jì)
  對(duì)于本系統(tǒng)而言,,總線橋的內(nèi)部邏輯設(shè)計(jì)是系統(tǒng)設(shè)計(jì)的關(guān)鍵,;對(duì)于總線橋而言,必須做到正確接收數(shù)據(jù),,并將數(shù)據(jù)正確傳送給CPU要傳送的公共設(shè)備,,起到正確通道的作用,這就需要設(shè)置公共設(shè)備選擇信號(hào),,即cd1,、cd2,。根據(jù)cd1、cd2信號(hào)的不同,,總線橋選擇不同的設(shè)備,,以CPU1的兩個(gè)信號(hào)線cd11、cd12為例,,其真值表如表1所示,。

?

  當(dāng)cd11、cd12為00時(shí),,代表CPU1要將數(shù)據(jù)送到設(shè)備RAM,總線橋接收到cd11,、cd12傳過(guò)來(lái)的00信號(hào),,就會(huì)將CPU1的送來(lái)的8位數(shù)據(jù)送入RAM中;當(dāng)cd11,、cd12為01時(shí),,代表CPU1要將數(shù)據(jù)送到設(shè)備DAC中,總線橋接收到cd11,、cd12傳過(guò)來(lái)的01信號(hào),,就會(huì)將CPU1的8根數(shù)據(jù)線和DAC的8根數(shù)據(jù)線相連,將數(shù)據(jù)送入DAC中,;同樣,,當(dāng)cd11、cd12為10時(shí),,數(shù)據(jù)將會(huì)被送入設(shè)備ADC中,;當(dāng)cd11、cd12為11時(shí),,代表單片機(jī)CPU不訪問(wèn)任何外設(shè),。這樣設(shè)置就可以保證總線橋?qū)?shù)據(jù)送入正確的公共設(shè)備中。
  但是僅僅只有信號(hào)線還是不夠的,。為了避免兩個(gè)CPU發(fā)生訪問(wèn)沖突,,還需要設(shè)置一個(gè)握手信號(hào),由總線橋發(fā)送給CPU以確定外設(shè)是否繁忙,,能否訪問(wèn),。為此,每一個(gè)CPU1和CPU2分別設(shè)置一個(gè)握手信號(hào)ack1和ack2來(lái)控制CPU訪問(wèn)設(shè)備,。當(dāng)ack為低電平時(shí)表示允許訪問(wèn)設(shè)備,;反之,則表示不允許,。
  為了實(shí)現(xiàn)系統(tǒng)的正常通信,,人為規(guī)定兩個(gè)CPU不允許同時(shí)訪問(wèn)同一個(gè)設(shè)備,。CPU1的優(yōu)先級(jí)最高,當(dāng)兩個(gè)CPU同時(shí)訪問(wèn)相同的設(shè)備時(shí),,CPU1優(yōu)先訪問(wèn),,但是如果CPU2先開(kāi)始訪問(wèn)某一個(gè)設(shè)備時(shí),為了防止數(shù)據(jù)因?yàn)橹袛喽鴣G失,,即使CPU1此時(shí)要訪問(wèn),,也是不被允許的。但是兩個(gè)CPU允許同時(shí)訪問(wèn)不同的設(shè)備,,并不互相干擾,。總線橋內(nèi)部結(jié)構(gòu)真值表如表2,。

?


  表2中,,cd11/cd12、cd21/cd22為總線橋的輸入控制線,,ack1/ack2/acka1/acka2/ackd1/ackd2/ackr1/ackr2為總線橋的輸出控制線,,真值表分為三種情況:(1)當(dāng)cd11/cd12、cd21/cd22信號(hào)相同時(shí),,代表兩個(gè)CPU要同時(shí)訪問(wèn)相同的設(shè)備,,此時(shí)CPU1優(yōu)先級(jí)最高。(2)當(dāng)cd11/cd12,,cd21/cd22信號(hào)不同時(shí),,代表CPU訪問(wèn)的設(shè)備不同,此時(shí)總線橋允許兩個(gè)CPU同時(shí)訪問(wèn),。(3)當(dāng)cd11/cd12,、cd21/cd22都為11時(shí),表示兩個(gè)CPU都為空閑狀態(tài),。
  需要強(qiáng)調(diào)的是,,當(dāng)一個(gè)CPU訪問(wèn)完公共設(shè)備后,需要告知總線橋訪問(wèn)結(jié)束,,可以讓其他CPU開(kāi)始訪問(wèn)此設(shè)備,。
3.3 設(shè)備連接接口設(shè)計(jì)
  為了建立控制器的邏輯結(jié)構(gòu),還必須確定每一個(gè)設(shè)備接口的控制信號(hào),、地址信號(hào)和數(shù)據(jù)信號(hào),。
  (1)總線橋與CPU的接口
  以CPU1為例,輸入輸出信號(hào)主要設(shè)計(jì)為:(1)八位數(shù)據(jù)的雙向傳輸cpu1db0~cpu7db7,;(2)13位地址線cpu1adr0~13,;(3)發(fā)送讀信號(hào)、寫(xiě)信號(hào)cpu1wr,、 cpu1rd,;(4)接收CPU發(fā)送的公共設(shè)備選擇信號(hào)cd11,、cd12;(5)發(fā)送允許訪問(wèn)公共設(shè)備信號(hào)ack1,。
  (2)總線橋與ADC接口
  總線橋與AD的連接輸入輸出信號(hào)主要設(shè)計(jì)為:(1)接收通道選擇信號(hào)addr0~addr2,;(2)發(fā)送AD啟動(dòng)信號(hào)adstart;(3)接收轉(zhuǎn)換完成信號(hào)adeoc,;(4)接收轉(zhuǎn)換完成的八位數(shù)據(jù)addb0~addb7,。
  (3)總線橋與DAC接口
  DAC通道與總線橋的連接輸入輸出信號(hào),主要設(shè)計(jì)為:(1)發(fā)送使能信號(hào)dacs,;(2)發(fā)送八位數(shù)據(jù)dadb0~dadb7,。
?  (4)總線橋與RAM接口
??? 總線橋與RAM的連接輸入輸出信號(hào)主要設(shè)計(jì)為:(1)發(fā)送13位地址信息ramadr0~ramadr12;(2)發(fā)送使能信號(hào)ramcs1,,ramcs2,;(3)八位數(shù)據(jù)雙向傳輸ramdb0~ramdb7。
  根據(jù)上述總線橋的邏輯結(jié)構(gòu)以及接口信號(hào),,與CPU1、CPU2和RAM,、ADC及DAC構(gòu)成完整的系統(tǒng),。具體設(shè)備連接接口如圖3所示。

?


3.4 仿真分析結(jié)果
  為了驗(yàn)證系統(tǒng),,對(duì)程序在quartusII中進(jìn)行了仿真,,結(jié)果表明總線橋能夠正確調(diào)配CPU訪問(wèn)設(shè)備,避免沖突,,并且能夠?qū)?shù)據(jù)成功送到CPU選擇的設(shè)備中,。
  圖4中,在最初的兩個(gè)時(shí)鐘周期內(nèi),,CPU1和CPU2都為空閑狀態(tài),,而后cd1變?yōu)闉?0,cd2也變?yōu)?0,代表CPU1和CPU2要同時(shí)訪問(wèn)公共設(shè)備RAM,,可以看出此時(shí)ack1變?yōu)榈碗娖?,即首先允許CPU1優(yōu)先訪問(wèn),ack2仍然為高電平,,即CPU2等待,,當(dāng)CPU1結(jié)束訪問(wèn)時(shí),才允許CPU2開(kāi)始訪問(wèn),。圖5中,,cd2先變?yōu)?0,代表CPU2先開(kāi)始訪問(wèn)RAM,,此時(shí)ack2為低電平,,允許CPU2開(kāi)始訪問(wèn),;當(dāng)CPU2訪問(wèn)到一半的時(shí)候,cd1變?yōu)?0,,CPU1申請(qǐng)?jiān)L問(wèn)RAM,,從圖5中可以看到,此時(shí),,ack2一直保持低電平,,亦即CPU2并沒(méi)有被打斷,還在繼續(xù)進(jìn)行數(shù)據(jù)傳輸,,當(dāng)CPU2結(jié)束訪問(wèn),,ack2變?yōu)楦唠娖剑琣ck1才變成低電平,, CPU1被允許繼續(xù)訪問(wèn),。

?

  本文采用的這種新的總線橋網(wǎng)絡(luò)連接方法,將兩個(gè)CPU和多個(gè)公共設(shè)備連接在一起,,實(shí)現(xiàn)了兩個(gè)CPU通過(guò)數(shù)據(jù)橋與多個(gè)公共設(shè)備通信的功能,。通過(guò)在quartusII中的仿真,驗(yàn)證了這種連接方法的可行性和正確性,,此設(shè)計(jì)方法提高了電路工作的速度和性能,。


參考文獻(xiàn)
[1] MEHENDALE M.Challenges in the?design of embedded real-time DSP?SoCs.IEEE 17th VLSI Design,2004:507-511.
[2] LI S.Processor architecture design for operation information?processing based on safety model of instruments.IEEE?ICSP′,,2004,,3:2687-2690.
[3] LI ZheYing.A study on analog IP blocks for mixed-signal?SoC.IEEE 5th ASICON,2003,,1:564-567.
[4] LI ZheYing.SFG modeling for consistency checking of?mixed-signal SoC.IEEE 6th ASICON,,2005,2:1066-1070.
[5] FURBER S.Future trends in SoC interconnect.IEEE VLSITSA,,2005:295-298.

[6] KHAN Z.A novel bus encoding scheme from energy and crosstalk efficiency?perspective for AMBA based generic?SoC systems.IEEE 18th VLSI Design,,2005:751-756.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]