專利名稱:8位嵌入式cpu的amba的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于集成電路設(shè)計領(lǐng)域,具體涉及一種適用于8位嵌入式CPU的AMBATM外圍接口電路。
背景技術(shù):
隨著集成電路技術(shù)的廣泛應(yīng)用,人們對于上市時間(Time-to-Market)的要求越來越苛刻。為了縮短設(shè)計和驗證周期,IP復(fù)用技術(shù)被廣泛采用,尤其是在SoC(System-on-Chip片上系統(tǒng))設(shè)計中,人們采用統(tǒng)一的總線規(guī)范,將嵌入式CPU和各個現(xiàn)有的IP核集成在一塊芯片上,從而實現(xiàn)整個系統(tǒng)的功能。
在SoC設(shè)計中,ARM公司提出來的一個片上系統(tǒng)的總線規(guī)范AMBATM(AdvancedMierocontroller Bus Architecture),已成為業(yè)界的事實標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)主要規(guī)定了三種總線標(biāo)準(zhǔn)(1)AHB(Advanced High-performance Bus)(2)ASB(Advanced System Bus)(3)APB(Advanced Peripheral Bus)在實際應(yīng)用中,一般采用AHB+APB標(biāo)準(zhǔn)或ASB+APB標(biāo)準(zhǔn)。AHB和APB的功能基本相似,但是AHB支持更多的功能,可以提供更大的位寬,而且由于AHB標(biāo)準(zhǔn)中的所有操作都在時鐘上升沿進(jìn)行,有利于工藝制造,所以在新的設(shè)計中一般推薦使用AHB作為系統(tǒng)總線。
在SoC設(shè)計中,比較常用的CPU有8位的8051和32位的MIPS、ARM7、ARM9等。采用32位的CPU是當(dāng)前設(shè)計的主流,但成本比較高,不易得到廣泛的運用。事實上,在眾多的應(yīng)用場合中,比如智能卡、電子商務(wù)交易平臺等等,除了要求基本的功能外,人們更多地關(guān)注系統(tǒng)的成本。所以,采用相對廉價的8051是一個不錯的選擇。但是現(xiàn)有的協(xié)處理器和總線一般是面向32位CPU的,如何將8位的CPU嵌入到32位的系統(tǒng)總線上成為一個難題。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種針對8位嵌入式CPU的AMBATM外圍接口電路,使8位CPU能夠像32位CPU一樣工作,可以直接嵌入到SoC系統(tǒng)中。
本發(fā)明提出的適用于8位嵌入式CPU的AMBATM外圍接口電路,包括一個總線狀態(tài)機11,由一個時鐘控制模塊12,一個數(shù)據(jù)控制模塊13和一個地址控制模塊14。其結(jié)構(gòu)見圖1所示。其中,數(shù)據(jù)控制模塊包括讀數(shù)據(jù)控制子模塊131和寫數(shù)據(jù)控制子模塊132;時鐘控制模塊12、地址控制模塊14、數(shù)據(jù)控制模塊13均受總線狀態(tài)機控制,并與CPU連接,時鐘控制模塊12、數(shù)據(jù)控制模塊13與地址控制模塊14連接;在總線狀態(tài)機的控制下,時鐘控制模塊,數(shù)據(jù)控制模塊和地址控制模塊協(xié)同工作,以解決32位總線和8位CPU在時序和數(shù)據(jù)寬度等方面的矛盾。
本發(fā)明中,所述的時鐘控制模塊包括一個上升沿觸發(fā)的D觸發(fā)器21和一個與非門22,D觸發(fā)器21通過信號線24與總線狀態(tài)機11連接,與非門22分別與觸發(fā)器21和總線狀態(tài)機11連接;時鐘控制模塊12根據(jù)總線狀態(tài)機的指示,通過開關(guān)CPU時鐘來保持正常的指令周期。見圖2所示。
本發(fā)明中,所述的數(shù)據(jù)控制模塊包括讀數(shù)據(jù)和寫數(shù)據(jù)兩個子模塊,讀數(shù)據(jù)控制子模塊131由一個數(shù)據(jù)格式轉(zhuǎn)換模塊31,一個數(shù)據(jù)緩沖區(qū)32和一個多路選擇器33依次電路連接組成,多路選擇器33與CPU連接,并受總線狀態(tài)機11控制;讀數(shù)據(jù)控制子模塊131把來自總線的數(shù)據(jù),經(jīng)過數(shù)據(jù)格式轉(zhuǎn)換模塊31后,分成4個字節(jié)存入數(shù)據(jù)緩沖區(qū)32,在總線狀態(tài)機的控制下,由CPU分批讀?。粚憯?shù)據(jù)控制子模塊132由一個仲裁器41,一個數(shù)據(jù)緩沖區(qū)42和一個輸出寄存器43依次電路連接組成,仲裁器41與CPU連接,且仲裁器41和輸出寄存器43均受總線狀態(tài)機11控制,寫數(shù)據(jù)控制子模塊132把CPU往外寫的數(shù)據(jù),通過仲裁器41指示,放置在數(shù)據(jù)緩存區(qū)的特定位置,拼成寬度為32位的數(shù)據(jù)后,再寫到輸出寄存器43中。見圖3和圖4所示。
本發(fā)明中,所述的地址控制模塊14由一系列的鎖存器53,一個地址擴展模塊52和一個多路選擇器51依次電路連接,多路選擇器51、鎖存器53受總線狀態(tài)機11控制,地址控制模塊是將16位地址擴展成總線要求的32位地址,并給出符合AHB MASTER接口標(biāo)準(zhǔn)的控制信號,即在總線狀態(tài)機11的控制下,有選擇地輸出到AHB總線上,同時輸出AHB總線要求的各種地址信號。見圖5所示。
本發(fā)明在分析AHB協(xié)議的基礎(chǔ)上,劃分出總線的各個工作狀態(tài)23,包括TNIT、REQ、ADDR、STOP、TATA等。根據(jù)其轉(zhuǎn)換的條件設(shè)計出一個總線狀態(tài)機11。利用該狀態(tài)機來協(xié)調(diào)時鐘控制模塊、數(shù)據(jù)控制模塊和地址控制模塊之間的工作,并且保持AMBATM外圍接口電路的時序。下面詳細(xì)說明AMBATM外圍接口電路工作方式。
鑒于AMBATM總線與CPU時序不一致的矛盾,本發(fā)明采用時鐘控制模塊12保證CPU指令的正常執(zhí)行。時鐘控制模塊12包括一個上升沿觸發(fā)的D觸發(fā)器21和一個與非門22。該模塊根據(jù)總線狀態(tài)機的指示,當(dāng)總線不能按時給出數(shù)據(jù)時,門控時鐘的關(guān)時鐘信號24有效,該信號作為D觸發(fā)器的輸入。在下一個時鐘的上升沿,CPU的時鐘停止跳變,CPU內(nèi)部的信號也因此得到保持。等到關(guān)時鐘信號24無效的時候,CPU再重新開啟時鐘繼續(xù)工作。這就在時序上保證了CPU與總線的正常工作。
鑒于CPU與AMBATM總線的數(shù)據(jù)寬度不一致的矛盾,本發(fā)明增加了數(shù)據(jù)控制模塊13對CPU的數(shù)據(jù)通信加以控制。因為8位CPU按字節(jié)尋址,而外部存儲器按字編址,所以CPU讀寫的數(shù)據(jù)需要緩存。
數(shù)據(jù)控制模塊13包括讀數(shù)據(jù)和寫數(shù)據(jù)兩個子模塊。其中,讀數(shù)據(jù)控制子模塊131由一個數(shù)據(jù)格式轉(zhuǎn)換模塊31,一個數(shù)據(jù)緩沖區(qū)32和一個多路選擇器33組成。在CPU讀數(shù)據(jù)時,來自總線的32位數(shù)據(jù)首先經(jīng)過數(shù)據(jù)格式轉(zhuǎn)換模塊31,把數(shù)據(jù)的組織方式從big-endian轉(zhuǎn)換成little-endian,存入數(shù)據(jù)緩沖區(qū)32,然后在總線狀態(tài)機11的指示下,依次讀入CPU。在CPU執(zhí)行完畢后,再從總線讀入下一個32位數(shù)據(jù)。
寫數(shù)據(jù)控制子模塊132包括一個仲裁器41,一個數(shù)據(jù)緩沖區(qū)42和一個輸出寄存器43,從CPU輸出的數(shù)據(jù)首先在仲裁器41的指示下,被緩存在一個4字節(jié)的數(shù)據(jù)緩沖區(qū)42中,待數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)全部得到更新后,再一起寫到輸出寄存器43。
本發(fā)明提出的AMBATM外圍接口電路需要符合AHB MASTER的接口標(biāo)準(zhǔn),為此增加了地址控制模塊。地址控制模塊包括一個多路選擇器51,一個地址擴展模塊52和一系列的鎖存器53。CPU給出的16位地址信號首先鎖存起來,通過地址擴展模塊擴展成32位的地址信號,在總線狀態(tài)機的控制下,有選擇地輸出到AHB總線上,同時輸出AHB總線要求的各種控制信號。
本發(fā)明電路加上8位CPU,能夠像32位CPU一樣工作,仍采用原指令系統(tǒng),可以直接嵌入到SoC系統(tǒng)中,而無需對其它模塊作相應(yīng)的修改。這樣縮短設(shè)計時間,提高IP復(fù)用效率。在性能上,其相當(dāng)于同類8位嵌入式CPU的處理速度,但其面積和成本遠(yuǎn)小于32位的微處理器,具有良好的應(yīng)用前景。
圖1為AMBATM外圍接口電路的整體結(jié)構(gòu)。
圖2為時鐘控制模塊的結(jié)構(gòu)。
圖3為讀數(shù)據(jù)控制模塊的結(jié)構(gòu)。
圖4為寫數(shù)據(jù)控制模塊的結(jié)構(gòu)。
圖5為地址控制模塊的結(jié)構(gòu)。
圖6為門控時鐘下的指令執(zhí)行時序。
圖中標(biāo)號1外圍接口電路,11總線狀態(tài)機,12時鐘控制模塊,13數(shù)據(jù)控制模塊,14地址控制模塊,131讀數(shù)據(jù)控制子模塊,132寫數(shù)據(jù)控制子模塊,21D觸發(fā)器,22與非門,23總線狀態(tài)機的各個狀態(tài),24關(guān)時鐘信號,31數(shù)據(jù)格式轉(zhuǎn)換模塊,32數(shù)據(jù)緩沖區(qū),33多路選擇器,41仲裁器,42數(shù)據(jù)緩沖區(qū),43輸出寄存器,51多路選擇器,52地址擴展模塊,53鎖存器。
具體實施例方式
本發(fā)明提出的AMBATM外圍接口電路由一個總線狀態(tài)機11,一個時鐘控制模塊12,一個數(shù)據(jù)控制模塊13和一個地址控制模塊14組成。下面結(jié)合附圖進(jìn)一步描述本發(fā)明。
因為總線在指令周期之內(nèi)給出穩(wěn)定的數(shù)據(jù)和控制信號,是8位CPU正常運行的前提條件。但是AMBATM總線存在來不及給出數(shù)據(jù)的特殊情況,如果不加以調(diào)整,程序?qū)⒊霈F(xiàn)不可預(yù)知的錯誤。本發(fā)明在外圍接口電路中增加了時鐘控制模塊。如圖2所示,總線狀態(tài)機表示總線當(dāng)前所處的狀態(tài)。如果總線在規(guī)定的時間內(nèi)得不到數(shù)據(jù),就會進(jìn)入STOP狀態(tài),此時門控信號gate有效,時鐘停止跳變,這使得CPU保持原有的狀態(tài)不變。等到總線獲得了穩(wěn)定的數(shù)據(jù)后,時鐘再重新啟動。為了消除開關(guān)時鐘過程中可能產(chǎn)生的毛刺,在時鐘模塊中增加了一個上升沿跳變的D觸發(fā)器21。
采用時鐘控制模塊后的指令執(zhí)行時序如圖6所示,地址鎖存信號mem_ale由于時鐘被停,一直保持低電平。從外部看,CPU的指令執(zhí)行周期被擴大,使用該模塊會降低執(zhí)行的效率。事實上,它是保證時序的冗余糾錯模塊。只要能保證總線讀寫的順利進(jìn)行,該模塊一直處于空閑的狀態(tài),是否需要進(jìn)行關(guān)時鐘,完全取決于總線上其它設(shè)備的效率,因而不會成為系統(tǒng)速度的瓶頸。
CPU執(zhí)行指令的過程主要包括讀數(shù)據(jù)和寫數(shù)據(jù)兩種操作。因為8位CPU按字節(jié)尋址,而外部存儲器按字編址,所以每次讀寫的數(shù)據(jù)都需要緩存。本發(fā)明在數(shù)據(jù)控制模塊中開辟了兩塊功能上類似于cache的數(shù)據(jù)緩沖區(qū)(32和42),用以解決處理器與存儲器之間速度不匹配的問題,減少訪問存儲器的次數(shù),從而提高讀寫的效率。數(shù)據(jù)控制模塊包括讀數(shù)據(jù)控制和寫數(shù)據(jù)控制兩個子模塊,分別對讀寫加以控制,保證數(shù)據(jù)的正確性。
讀數(shù)據(jù)控制子模塊的結(jié)構(gòu)如圖3所示。8位CPU指令系統(tǒng)對于32位的數(shù)據(jù),通常的組織方式是big-endian,所以需將其轉(zhuǎn)換成little-endian。來自總線的32位數(shù)據(jù)datain首先通過數(shù)據(jù)格式轉(zhuǎn)換模塊后再送入寄存器。當(dāng)CPU發(fā)出讀數(shù)據(jù)請求read時,總線進(jìn)入相應(yīng)的狀態(tài)。然后從數(shù)據(jù)緩沖區(qū)32中依次讀取4個字節(jié),直接送入CPU??梢?,正常情況下,讀數(shù)據(jù)操作只需一個時鐘,遠(yuǎn)遠(yuǎn)小于指令執(zhí)行周期。
寫數(shù)據(jù)控制子模塊的結(jié)構(gòu)如圖4所示。這里需要設(shè)置一個大小為4個字節(jié)的數(shù)據(jù)緩沖區(qū)42,當(dāng)數(shù)據(jù)緩沖區(qū)滿4個字節(jié)時,整體往輸出寄存器43寫一次。具體過程調(diào)度由總線狀態(tài)機負(fù)責(zé)。當(dāng)總線狀態(tài)機檢測到CPU的寫信號write時,就進(jìn)入相應(yīng)的狀態(tài)。仲裁器41依次將4個字節(jié)的數(shù)據(jù)調(diào)入對應(yīng)的數(shù)據(jù)緩沖區(qū)42。當(dāng)數(shù)據(jù)緩沖區(qū)中的4個字節(jié)數(shù)據(jù)都獲得更新后,再將其送入輸出寄存器43。等到總線上發(fā)出寫命令hwrite時,再將寄存器的數(shù)據(jù)寫到總線上??梢?,完成一次對總線的寫操作,正常情況下共需5個時鐘,而8位CPU寫操作的時長為兩個指令周期(8-24個時鐘),所以不會觸發(fā)門控時鐘。
本發(fā)明在AMBATM外圍接口電路中設(shè)置了地址控制模塊,如圖5。按照AHB MASTER的標(biāo)準(zhǔn),地址信號和數(shù)據(jù)信號至少相差一個時鐘。這就要求在不同的時鐘相位給出地址和數(shù)據(jù)。所以需要區(qū)分總線的各個狀態(tài),利用總線狀態(tài)機來控制整個AMBATM外圍接口電路的行為。由于總線地址為32位,CPU給出的16位地址信號需要擴展成32位地址線。對于其它的控制信號,可以根據(jù)總線的相應(yīng)狀態(tài)給出。
權(quán)利要求
1.一種適用于8位嵌入式CPU的AMBATM外圍接口電路,能夠使8位嵌入式CPU替代基于AMBATM總線的SoC系統(tǒng)中的32位CPU,其特征在于由一個總線狀態(tài)機11,一個時鐘控制模塊(12),一個數(shù)據(jù)控制模塊(13)和一個地址控制模塊(14)經(jīng)電路連接組成,其中,數(shù)據(jù)控制模塊包括讀數(shù)據(jù)控制子模塊(131)和寫數(shù)據(jù)控制子模塊(132);時鐘控制模塊(12)、地址控制模塊(14)、數(shù)據(jù)控制模塊(13)均受總線狀態(tài)機控制,并與CPU連接,時鐘控制模塊(12)、數(shù)據(jù)控制模塊(13)與地址控制模塊(14)連接;在總線狀態(tài)機的控制下,時鐘控制模塊,數(shù)據(jù)控制模塊和地址控制模塊協(xié)同工作,以解決32位總線和8位CPU在時序和數(shù)據(jù)寬度等方面的矛盾。
2.根據(jù)權(quán)利要求1所述的8位嵌入式CPU的AMBATM外圍接口電路,其特征在于所述的時鐘控制模塊包括一個上升沿觸發(fā)的D觸發(fā)器(21)和一個與非門(22),D觸發(fā)器(21)通過信號線(24)與總線狀態(tài)機(11)連接,與非門(22)分別與觸發(fā)器(21)和總線狀態(tài)機(11)連接;時鐘控制模塊(12)根據(jù)總線狀態(tài)機的指示,通過開關(guān)CPU時鐘來保持正常的指令周期。
3.根據(jù)權(quán)利要求1所述的8位嵌入式CPU的AMBATM外圍接口電路,其特征在于所述的數(shù)據(jù)控制模塊包括讀數(shù)據(jù)和寫數(shù)據(jù)兩個子模塊,讀數(shù)據(jù)控制子模塊(131)由一個數(shù)據(jù)格式轉(zhuǎn)換模塊(31),一個數(shù)據(jù)緩沖區(qū)(32)和一個多路選擇器(33)依次電路連接組成,多路選擇器(33)與CPU連接,并受總線狀態(tài)機(11)控制;讀數(shù)據(jù)控制子模塊(131)把來自總線的數(shù)據(jù),經(jīng)過數(shù)據(jù)格式轉(zhuǎn)換模塊(31)后,分成4個字節(jié)存入數(shù)據(jù)緩沖區(qū)(32),在總線狀態(tài)機的控制下,由CPU分批讀?。粚憯?shù)據(jù)控制子模塊(132)由一個仲裁器(41),一個數(shù)據(jù)緩沖區(qū)(42)和一個輸出寄存器(43)依次電路連接組成,仲裁器(41)與CPU連接,且仲裁器(41)和輸出寄存器(43)均受總線狀態(tài)機(11)控制,寫數(shù)據(jù)控制子模塊(132)把CPU往外寫的數(shù)據(jù),通過仲裁器(41)指示,放置在數(shù)據(jù)緩存區(qū)的特定位置,拼成寬度為32位的數(shù)據(jù)后,再寫到輸出寄存器(43)中。
4.根據(jù)權(quán)利要求1所述的8位嵌入式CPU的AMBATM外圍接口電路,其特征在于所述的地址控制模塊(14)由一系列的鎖存器(53),一個地址擴展模塊(52)和一個多路選擇器(51)依次電路連接,多路選擇器(51)、鎖存器(53)受總線狀態(tài)機(11)控制,地址控制模塊(14)是將16位地址擴展成總線要求的32位地址,在總線狀態(tài)機(11)的控制下,有選擇地輸出到AHB總線上,同時輸出AHB總線要求的各種地址信號。
全文摘要
本發(fā)明屬于集成電路技術(shù)領(lǐng)域,具體為一種針對8位嵌入式CPU的AMBA
文檔編號G06F15/76GK1760849SQ20051011025
公開日2006年4月19日 申請日期2005年11月10日 優(yōu)先權(quán)日2005年11月10日
發(fā)明者曾曉洋, 顧葉華, 韓軍, 吳敏, 陳俊, 王晶 申請人:復(fù)旦大學(xué)