《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(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="電路模塊">電路模塊之間的通信問題,。
??? 關(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)鍵問題。對(duì)僅含有一個(gè)CPU的SoC,,可以使用總線方式完成各電路部分的連接,,但對(duì)于含有2個(gè)或2個(gè)以上CPU的電路,使用總線方式連接就會(huì)降低電路工作速度和性能,,因此,,必須采用特殊的連接方法[5][6]。對(duì)于多CPU的SoC來說,,其內(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ò)連接方法,,通過總線橋,可以把兩個(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)來說,,這種總線無法實(shí)現(xiàn)CPU所要求的運(yùn)行模式要求,。在多CPU系統(tǒng)中,要求CPU之間實(shí)現(xiàn)無縫連接,,同時(shí)對(duì)于公共電路也能實(shí)現(xiàn)無縫連接,,即要求任何一個(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)過總線橋?qū)崿F(xiàn),,因此,,總線橋?qū)嶋H上就是一個(gè)系統(tǒng)總線仲裁器。仲裁器與CPU通過簡(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è)所訪問,。注意,,這個(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電路連接起來,。
  為了滿足設(shè)計(jì)要求,,總線橋必須為每一個(gè)電路提供一個(gè)單獨(dú)的通道,每個(gè)通道需要設(shè)置一個(gè)開關(guān)來控制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擇使用硬件邏輯電路來完成,。
  (4)如果兩個(gè)CPU系統(tǒng)需要寫入或獨(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寫入或讀出數(shù)據(jù),,CPU2從ADC讀取數(shù)據(jù),,這時(shí)必須能夠同時(shí)工作。
  (6)對(duì)于CPU系統(tǒng)來說,,對(duì)RAM,、ADC和DAC電路的讀寫操作類似于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)行開關(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)線,,通過這兩個(gè)信號(hào),,控制器將CPU1發(fā)送來的數(shù)據(jù)傳送到相應(yīng)的公共設(shè)備中;cd21cd22代表CPU2發(fā)送給控制器的設(shè)備選擇信號(hào)線,,通過這兩個(gè)信號(hào),,控制器將CPU2發(fā)送來的數(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訪問設(shè)備,。通過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傳過來的00信號(hào),就會(huì)將CPU1的送來的8位數(shù)據(jù)送入RAM中,;當(dāng)cd11,、cd12為01時(shí),代表CPU1要將數(shù)據(jù)送到設(shè)備DAC中,,總線橋接收到cd11,、cd12傳過來的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不訪問任何外設(shè)。這樣設(shè)置就可以保證總線橋?qū)?shù)據(jù)送入正確的公共設(shè)備中,。
  但是僅僅只有信號(hào)線還是不夠的,。為了避免兩個(gè)CPU發(fā)生訪問沖突,還需要設(shè)置一個(gè)握手信號(hào),,由總線橋發(fā)送給CPU以確定外設(shè)是否繁忙,,能否訪問。為此,,每一個(gè)CPU1和CPU2分別設(shè)置一個(gè)握手信號(hào)ack1和ack2來控制CPU訪問設(shè)備,。當(dāng)ack為低電平時(shí)表示允許訪問設(shè)備;反之,,則表示不允許,。
  為了實(shí)現(xiàn)系統(tǒng)的正常通信,人為規(guī)定兩個(gè)CPU不允許同時(shí)訪問同一個(gè)設(shè)備,。CPU1的優(yōu)先級(jí)最高,,當(dāng)兩個(gè)CPU同時(shí)訪問相同的設(shè)備時(shí),CPU1優(yōu)先訪問,,但是如果CPU2先開始訪問某一個(gè)設(shè)備時(shí),,為了防止數(shù)據(jù)因?yàn)橹袛喽鴣G失,即使CPU1此時(shí)要訪問,,也是不被允許的,。但是兩個(gè)CPU允許同時(shí)訪問不同的設(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í)訪問相同的設(shè)備,此時(shí)CPU1優(yōu)先級(jí)最高,。(2)當(dāng)cd11/cd12,,cd21/cd22信號(hào)不同時(shí),代表CPU訪問的設(shè)備不同,,此時(shí)總線橋允許兩個(gè)CPU同時(shí)訪問,。(3)當(dāng)cd11/cd12、cd21/cd22都為11時(shí),,表示兩個(gè)CPU都為空閑狀態(tài),。
  需要強(qiáng)調(diào)的是,當(dāng)一個(gè)CPU訪問完公共設(shè)備后,,需要告知總線橋訪問結(jié)束,,可以讓其他CPU開始訪問此設(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),、寫信號(hào)cpu1wr,、 cpu1rd;(4)接收CPU發(fā)送的公共設(shè)備選擇信號(hào)cd11,、cd12,;(5)發(fā)送允許訪問公共設(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訪問設(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í)訪問公共設(shè)備RAM,,可以看出此時(shí)ack1變?yōu)榈碗娖剑词紫仍试SCPU1優(yōu)先訪問,,ack2仍然為高電平,,即CPU2等待,當(dāng)CPU1結(jié)束訪問時(shí),,才允許CPU2開始訪問,。圖5中,cd2先變?yōu)?0,,代表CPU2先開始訪問RAM,,此時(shí)ack2為低電平,允許CPU2開始訪問,;當(dāng)CPU2訪問到一半的時(shí)候,,cd1變?yōu)?0,CPU1申請(qǐng)?jiān)L問RAM,,從圖5中可以看到,,此時(shí),ack2一直保持低電平,,亦即CPU2并沒有被打斷,,還在繼續(xù)進(jìn)行數(shù)據(jù)傳輸,,當(dāng)CPU2結(jié)束訪問,ack2變?yōu)楦唠娖?,ack1才變成低電平,, CPU1被允許繼續(xù)訪問。

?

  本文采用的這種新的總線橋網(wǎng)絡(luò)連接方法,,將兩個(gè)CPU和多個(gè)公共設(shè)備連接在一起,,實(shí)現(xiàn)了兩個(gè)CPU通過數(shù)據(jù)橋與多個(gè)公共設(shè)備通信的功能。通過在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)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。