專利名稱:一種4位risc微控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路設(shè)計領(lǐng)域。更具體的,本發(fā)明涉及一種低成本多功能智能玩具核心控制芯片。
背景技術(shù):
微控制器種類很多,從數(shù)據(jù)總線寬度上看有四位微控制器、八位微控制器、十六位微控制器、三十二位微控制器等,從指令架構(gòu)上看有復(fù)雜指令集(Complex Instruction Set Computer,CISC)微控制器和精簡指令集(Reduced Instruction Set Computer, RISC) 微控制器等。從體系結(jié)構(gòu)上看,用于智能玩具的核心控制芯片必須集成一些專用的外設(shè),比如語音存儲器、語音輸出驅(qū)動電路、LCD/LED驅(qū)動電路等。這樣的控制芯片除了普通的運(yùn)算和控制指令之外,還需要有足夠的語音控制指令。圖1示出現(xiàn)有技術(shù)的普通玩具控制芯片的結(jié)構(gòu)框圖?,F(xiàn)有玩具控制芯片的語音模塊僅包括語音存儲器105和語音驅(qū)動106,控制芯片通過對特殊功能寄存器(SFR)的操作來實現(xiàn)其對語音的控制。與普通芯片的數(shù)據(jù)讀取、處理相似,圖1所示的控制芯片的工作流程如下CPU核101先把所要讀取的語音數(shù)據(jù)的地址賦給語音地址寄存器102,語音存儲器 105打開并把相應(yīng)地址上的語音數(shù)據(jù)傳遞給語音數(shù)據(jù)寄存器103,CPU核101再從語音數(shù)據(jù)寄存器103中讀取數(shù)據(jù),利用軟件設(shè)計好的算法對該數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)換成一定格式,賦給語音驅(qū)動寄存器104,語音驅(qū)動模塊106把語音驅(qū)動寄存器104中的數(shù)據(jù)轉(zhuǎn)換成對應(yīng)的驅(qū)動信號去驅(qū)動喇叭或揚(yáng)聲器,經(jīng)過由語音采樣率確定的時間,再讀取第二個數(shù)據(jù),如此不斷重復(fù),即可從喇叭或揚(yáng)聲器上聽到相應(yīng)的語音。如上所述,整個語音播放過程都需要CPU核 101不停寫出語音地址、讀取語音數(shù)據(jù)、處理語音數(shù)據(jù)再寫出到語音驅(qū)動寄存器104并且判斷語音是否結(jié)束,非常浪費(fèi)CPU資源和程序資源。這種控制芯片的優(yōu)點是語音編解碼算法由軟件實現(xiàn),所以比較靈活。但其缺點也是顯而易見的,如(1)語音存儲器一般為8位寬, CPU內(nèi)核也是8位,采用16位的指令編碼位寬,造成芯片面積偏大,成本偏高;(2)語音算法通過軟件實現(xiàn),占用程序存儲器空間和CPU運(yùn)行時間,不利于播放語音時處理其他進(jìn)程,同時對采樣率的計算還要另外增加一個定時器,并以中斷等方式讓CPU進(jìn)入語音處理程序, 增加了系統(tǒng)資源,而計算出的采樣率也不夠精確,如果語音算法太復(fù)雜,所需程序量太大, 可能還會造成語音輸出速度不均勻,影響語音效果;(3)沒有語音操作指令,對語音的控制通過對相應(yīng)特殊功能寄存器的相應(yīng)位的操作的實現(xiàn),而這些位通常是不可尋址的位,所以容易造成誤操作,同時語音的結(jié)束也不好判斷;(4)用軟件實現(xiàn)語音算法,使得應(yīng)用工程師必須自行開發(fā)語音算法并組織語音數(shù)據(jù)寫入到語音存儲器中,增加了程序開發(fā)難度和開發(fā)工具的設(shè)計難度;(5) —般此類控制器都缺少LCD驅(qū)動模塊,縮小了應(yīng)用范圍。為了適應(yīng)對智能玩具功能性的新的需要,并提供低成本且低功耗的智能玩具,需要一種新型的智能玩具控制芯片
發(fā)明內(nèi)容
本發(fā)明的一個目的在于,提供一種控制芯片,該控制芯片包括可獨立于CPU運(yùn)行的語音模塊,以便語音模塊運(yùn)行時,CPU可同時處理其他進(jìn)程,顯著改善CPU的工作效率。本發(fā)明提供一種4位RISC微控制器,包括控制模塊、程序存儲器、寄存器文件、復(fù)位模塊、時鐘模塊和至少一個外圍功能模塊,其特征在于,該控制模塊包括指令寄存器,指令譯碼器,堆棧,算術(shù)邏輯單元ALU,和程序計數(shù)器,其采用二級兩相流水線架構(gòu);程序存儲器用于存儲單周期指令和雙周期指令,每個單周期指令在執(zhí)行指令的同時取出下一條指令,每個雙周期指令的第一指令周期在執(zhí)行指令的同時取出下一條指令, 其第二指令周期在執(zhí)行指令的同時重新取指令,每個指令周期分為第一相和第二相,在所述第一相,控制模塊完成堆棧入棧、程序存儲器讀取、寄存器讀取、指令譯碼和ALU運(yùn)算操作,在所述第二相,控制模塊完成堆棧彈出、指令寄存器鎖存、寄存器寫入、程序計數(shù)器改寫操作。優(yōu)選地,該微控制器結(jié)構(gòu)包括具有49條指令的一套精簡指令集,所述指令譯碼器輸出的信號包括寄存器操作類指令,指令譯碼器輸出寄存器地址信息和讀寫操作信號給寄存器文件,輸出運(yùn)算控制信號給算術(shù)邏輯單元;立即數(shù)指令,指令譯碼器輸出立即數(shù)和運(yùn)算控制信號給算術(shù)邏輯單元;程序轉(zhuǎn)移類指令和中斷,指令譯碼器輸出程序地址信息和跳轉(zhuǎn)控制信號給程序計數(shù)器,輸出堆??刂菩盘柦o堆棧,輸出中斷控制信號給中斷處理器;控制類指令,指令譯碼器輸出各種控制信號到功能模塊或相應(yīng)的外圍功能模塊;外圍功能模塊控制指令,指令譯碼器輸出外圍功能模塊控制指令用于控制和檢測語音模塊的工作。優(yōu)選地,所述程序存儲器是15位寬用于存放指令碼的程序存儲器。優(yōu)選地,所述至少一個外圍功能模塊包括語音模塊。優(yōu)選地,所述寄存器文件包括用于存放語音初始地址的語音地址寄存器和用于存放語音采樣率的采樣率寄存器,所述語音模塊包括語音地址發(fā)生器,采樣頻率分頻器,語音存儲器,語音解碼器, 語音驅(qū)動模塊和語音控制邏輯,所述語音控制邏輯根據(jù)來自控制模塊的啟動信號,時鐘信號,以及所述語音初始地址和語音采樣率控制語音模塊輸出語音驅(qū)動信號。優(yōu)選地,所述采樣率分頻器根據(jù)時鐘信號和所述語音采樣率產(chǎn)生采樣率信號,并輸出給語音地址發(fā)生器;所述語音地址發(fā)生器根據(jù)所述初始地址和所述采樣率信號產(chǎn)生語音存儲器的地址;所述語音解碼器對來自語音存儲器的編碼語音數(shù)據(jù)進(jìn)行解碼,輸出解碼的語音數(shù)據(jù)至語音驅(qū)動模塊,并在語音結(jié)束時輸出結(jié)束標(biāo)志;所述語音控制邏輯根據(jù)來自語音解碼器的結(jié)束標(biāo)志輸出語音結(jié)束信號給控制模塊。
優(yōu)選地,所述時鐘模塊包括快速振蕩器,慢速振蕩器和時鐘發(fā)生器,所述控制模塊包括工作模式處理器,用于根據(jù)下述四種芯片工作模式控制時鐘模塊輸出時鐘信號當(dāng)芯片工作于正常模式時,時鐘模塊以慢速振蕩器的輸出作為控制模塊的工作時鐘;當(dāng)芯片工作于快速模式時,時鐘模塊以快速振蕩器的輸出作為控制模塊的工作時鐘;當(dāng)芯片工作于暫停模式時,時鐘模塊停止控制模塊的工作時鐘;當(dāng)芯片工作于休眠模式時,時鐘模塊停止時鐘輸出并關(guān)閉快速振蕩器和慢速振蕩
ο優(yōu)選地,所述至少一個外圍功能模塊包括IXD驅(qū)動模塊,并且所述寄存器文件包括用于控制LCD驅(qū)動模塊工作的LCD控制寄存器和用于存儲顯示數(shù)據(jù)的LCD RAM。優(yōu)選地,語音存儲器是4位存儲器。優(yōu)選地,所述語音模塊接收來自快速振蕩器的時鐘信號。優(yōu)選地,當(dāng)語音模塊不工作時并且芯片不以快速模式工作時,時鐘模塊關(guān)閉快速振蕩器。本發(fā)明進(jìn)一步提供一種玩具,該玩具包括如上所述的哈佛架構(gòu)的控制芯片。本發(fā)明中的語音模塊,包括語音地址發(fā)生器、語音存儲器、ADPCM語音解碼器、PWM、 DAC、采樣率分頻器和語音控制邏輯,在CPU指令PVOX的觸發(fā)之下,可以自動完成語音的解碼、播放和結(jié)束檢測,完全不再需要CPU的干預(yù)。本發(fā)明的另一目的在于提供一種新型的4位RISC微控制器,以解決芯片成本、語音算法占用程序空間和CPU處理時間、語音采樣率不精確影響語音效果、開發(fā)難度大等問題,并增加了 LCD驅(qū)動模塊,以更適合實際需要。本發(fā)明的方案包括一個4位RISC架構(gòu)的CPU核、程序存儲器、寄存器文件、復(fù)位模塊、時鐘模塊以及語音模塊、LCD驅(qū)動模塊和I/O等外圍功能模塊。本發(fā)明包括的4位RISC架構(gòu)的CPU核,包括工作模式處理器、中斷處理器、堆棧、 程序計數(shù)器、指令寄存器、指令譯碼器和算術(shù)邏輯單元ALU,使用了一個二級兩相流水線架構(gòu)。每個指令周期在執(zhí)行指令的同時把下一條指令取出。每個指令周期都分為Ql和Q2兩相,比一般四相的RISC微控制器的運(yùn)行速度要快一倍。在Ql相,CPU核完成堆棧入棧、取指令、寄存器讀取、ALU運(yùn)算等動作。在Q2相,完成堆棧彈出、指令寄存器鎖存指令、寄存器寫入、程序計數(shù)器改寫等動作。本發(fā)明中的寄存器文件,包括D觸發(fā)器組成的特殊功能寄存器,單端異步靜態(tài)隨機(jī)存儲器組成的通用數(shù)據(jù)存儲器和雙端異步靜態(tài)隨機(jī)存儲器組成的IXD顯示數(shù)據(jù)存儲器, 其地址通過地址映射電路映射到統(tǒng)一的邏輯地址上。 根據(jù)本發(fā)明的智能玩具控制芯片采用RISC指令系統(tǒng),包括49條高效指令,這些指令具有如下特點a.長字指令,指令寬度為15位;b.單字指令,每條指令都占15位的編碼,程序存儲器也是15位寬,所以全部程序存儲器單元都是有效指令,避免了程序存儲器浪費(fèi);c.單周期指令,除了跳轉(zhuǎn)指令、調(diào)用指令和返回指令是雙周期指令之外,其他指令都是單周期指令,每個指令周期為兩個振蕩周期;d.對稱性,指令編碼嚴(yán)格對稱,使指令學(xué)習(xí)變得簡單; e.壓縮編碼,對指令編碼進(jìn)行精簡和壓縮,編碼只有15位寬。本發(fā)明的控制芯片指令的運(yùn)行采用二級流水線結(jié)構(gòu),每條指令的運(yùn)行過程可以分為取指令和執(zhí)行指令兩個階段,每個階段均需要一個指令周期的運(yùn)行時間。本發(fā)明的控制芯片使用哈佛架構(gòu),即程序存儲器和數(shù)據(jù)存儲器分開的架構(gòu),程序的存取和數(shù)據(jù)的存取可以同時進(jìn)行,使得對不同指令的取操作和執(zhí)行操作也可以同時進(jìn)行。比如單周期指令,在指令O執(zhí)行的同時,指令1被取出,在下一個指令周期到來時,指令1被執(zhí)行,同時指令2被取出,所以盡管單獨看,每條指令都需要兩個指令周期,但平均下來卻只需要一個指令周期。 當(dāng)執(zhí)行程序轉(zhuǎn)移指令或中斷時,因為要改寫程序計數(shù)器,所以需要多加一個指令周期來重新載入新的指令。本發(fā)明的指令集中,包含19條算術(shù)邏輯指令,對累加器和寄存器文件中的數(shù)據(jù)進(jìn)行加、減、與、或、異或、取反、加1、減1的算術(shù)邏輯運(yùn)算,可以將運(yùn)算結(jié)果保存在累加器和/ 或存回寄存器文件。本發(fā)明的指令集中的算術(shù)邏輯指令,包含9條結(jié)果存放在累加器的算術(shù)邏輯指令,其運(yùn)算結(jié)果不存回寄存器文件。本發(fā)明的指令集中的算術(shù)邏輯指令,包含10條結(jié)果存回寄存器文件的算術(shù)邏輯指令,其運(yùn)算結(jié)果不僅存放在累加器,而且還存回寄存器文件。本發(fā)明的指令集中的算術(shù)邏輯指令,包含4條帶進(jìn)位加、減指令。本發(fā)明的指令集中,包含2條數(shù)據(jù)傳輸類指令,把寄存器文件的數(shù)據(jù)傳輸給累加器或把累加器的數(shù)據(jù)傳輸給寄存器文件。本發(fā)明的指令集中,包含7條立即數(shù)指令,把立即數(shù)傳輸給累加器或者把立即數(shù)與累加器數(shù)據(jù)進(jìn)行加、減、與、或、異或,結(jié)果存放在累加器。本發(fā)明的指令集中,包含2條十進(jìn)制調(diào)整指令,把加、減運(yùn)算后存放在累加器中二進(jìn)制數(shù)據(jù)調(diào)整成十進(jìn)制,結(jié)果存放在累加器。本發(fā)明的指令集中,包含2條帶進(jìn)位移位指令,把累加器和進(jìn)位寄存器進(jìn)行循環(huán)左移或循環(huán)右移。本發(fā)明的指令集中,包含12條程序轉(zhuǎn)移指令,通過改變程序計數(shù)器的值來控制程序的轉(zhuǎn)移。本發(fā)明的指令集中的程序轉(zhuǎn)移指令,包含一條程序調(diào)用指令CALL,用來調(diào)用子程序。本發(fā)明的指令集中的程序轉(zhuǎn)移指令,包含1條無條件跳轉(zhuǎn)指令JUMP,用來使程序無條件跳轉(zhuǎn)到目標(biāo)地址。本發(fā)明的指令集中的程序轉(zhuǎn)移指令,包含4條條件跳轉(zhuǎn)指令JZ、JNZ、JC和JNC,通過判斷累加器是否為零或者進(jìn)位標(biāo)志是否為1作為條件,條件成立時使程序跳轉(zhuǎn)到目標(biāo)地址,不成立時執(zhí)行下一條指令。本發(fā)明的指令集中的程序轉(zhuǎn)移指令,包含2條條件跳過指令SKZ和SKNZ,通過判斷累加器某一位是否為零作為條件,條件成立時使程序跳過下一條指令,不成立時執(zhí)行下一條指令。
本發(fā)明的指令集中的程序轉(zhuǎn)移指令,包含2條返回指令RET和RETI,RET從子程序或中斷程序中返回,RETI從中斷中返回并打開中斷使能。本發(fā)明的指令集中的程序轉(zhuǎn)移指令,包含2條數(shù)據(jù)表查找指令,使指令可以從程序存儲器的數(shù)據(jù)表中查找數(shù)據(jù),其中TJUMP指令跳轉(zhuǎn)到查找表處,RETW把查找表的數(shù)據(jù)讀入累加器和查找表寄存器并返回。本發(fā)明的指令集中,包含3條控制指令,用于對CPU或其他外圍模塊進(jìn)行控制。本發(fā)明的指令集中的控制指令,包含1條暫停指令HALT,執(zhí)行此指令,會使芯片進(jìn)入暫停模式,CPU核暫停工作,其他外圍功能模塊不受影響。本發(fā)明的指令集中的控制指令,包含1條看門狗清零指令CLRWDT,用來清零看門狗計數(shù)器。本發(fā)明的指令集中的控制指令,包含1條空操作指令NOP,此指令不作任何動作。本發(fā)明的指令集中,包含2條語音類指令,用于控制和檢測語音模塊的工作。本發(fā)明的指令集中的語音類指令,包含1條語音播放指令PV0X,用于啟動語音模塊,使其開始播放語音。本發(fā)明的指令集中的語音類指令,包含1條語音結(jié)束跳轉(zhuǎn)指令JVEND,用于對語音模塊返回的結(jié)束信號進(jìn)行檢測,一旦檢測到語音結(jié)束信號,即跳轉(zhuǎn)到目標(biāo)地址。本發(fā)明的控制芯片,除了采用RISC架構(gòu)的四位CPU內(nèi)核,還集成了語音模塊。這樣,語音的解碼和播放都獨立于CPU之外,CPU可以在播放語音的同時做其他工作,增強(qiáng)了控制芯片中CPU的使用效率。同時,由于有專用的語音解碼硬件電路,不需要程序員編寫軟件解碼,也降低了應(yīng)用的開發(fā)難度。采用本發(fā)明的控制芯片,指令集也只需采用15位的編碼寬度,在保持運(yùn)算能力和運(yùn)算效率的同時節(jié)省了 1位的程序存儲空間,同時語音獨立存儲器可以只有4位寬,這樣都降低了芯片生產(chǎn)成本和開發(fā)成本,并使控制芯片的小型化成為可能。將根據(jù)本發(fā)明的控制芯片應(yīng)用于智能玩具,可在提高智能玩具的語音播放效果的同時顯著降低現(xiàn)有語音玩具的生產(chǎn)成本和開發(fā)成本。
下面將結(jié)合附圖參照本發(fā)明的優(yōu)選實施例對本發(fā)明的特點和優(yōu)點進(jìn)行詳細(xì)說明, 其中,圖1示出現(xiàn)有技術(shù)的普通玩具控制芯片的結(jié)構(gòu)框圖;圖2示出根據(jù)本發(fā)明的玩具控制芯片的結(jié)構(gòu)框圖;圖3示出圖2所示控制芯片的功能模塊圖;圖4示出圖2所示控制芯片的單周期指令流水線示意圖;圖5示出圖2所示控制芯片的雙周期指令流水線示意圖;圖6示出根據(jù)本發(fā)明的寄存器文件地址分配示意圖;圖7示出根據(jù)本發(fā)明的語音模塊結(jié)構(gòu)框圖。
具體實施例方式圖2示出根據(jù)本發(fā)明的一種可用于玩具的控制芯片的結(jié)構(gòu)框圖。根據(jù)本發(fā)明的控制芯片包括復(fù)位模塊208、時鐘模塊209、程序存儲器210、CPU核211、寄存器文件212、定時器組216、I/O接口 217、語音模塊218以及IXD驅(qū)動219,其中寄存器文件212包括特殊功能寄存器213、通用數(shù)據(jù)RAM 214和IXDRAM 215。 圖3示出圖2所示可用于玩具的控制芯片的一種具體的功能模塊圖。下面結(jié)合圖 2和圖3對根據(jù)本發(fā)明控制芯片中的各功能模塊進(jìn)行詳細(xì)說明。本實施例的控制芯片中的復(fù)位模塊208在圖3中示出為復(fù)位模塊308。該復(fù)位模塊308例如包括外部復(fù)位電路360、上電復(fù)位電路320、低電壓復(fù)位電路321、看門狗電路 322和復(fù)位信號發(fā)生器323。外部復(fù)位電路360提供外部復(fù)位信號。上電復(fù)位電路320提供上電復(fù)位信號。低電壓復(fù)位電路321的低電壓門檻可設(shè)置,當(dāng)電源電壓低于該門檻電壓時輸出低電壓復(fù)位信號??撮T狗電路322例如是一個計數(shù)時鐘可選擇的計數(shù)器,時鐘來自時鐘模塊309,當(dāng)計數(shù)溢出時輸出一個溢出信號到復(fù)位信號發(fā)生器323,該計數(shù)器可以用指令CLRWDT清零。看門狗復(fù)位用于使系統(tǒng)從程序跑飛的狀態(tài)中返回。以上四個模塊的輸出信號進(jìn)入復(fù)位信號發(fā)生器323,經(jīng)過延時等處理后得到最終的全局復(fù)位信號,輸出給控制芯片中的其他模塊。因此控制芯片擁有四種復(fù)位方式上電復(fù)位、電壓復(fù)位、外部復(fù)位和看門狗計數(shù)溢出復(fù)位,以便適應(yīng)多種應(yīng)用需求,其中低電壓復(fù)位和看門狗計數(shù)溢出復(fù)位是可選的, 可以根據(jù)應(yīng)用的安全性要求選擇是否使能。本實施例的控制芯片中的時鐘模塊309包括快速振蕩器324、慢速振蕩器325和時鐘發(fā)生器326,為整個芯片提供工作時鐘。慢速振蕩器325可選擇32768Hz的晶振或256KHz 的RC振蕩??焖僬袷幤?24是2MHz的RC振蕩。兩個振蕩器的輸出經(jīng)過時鐘發(fā)生器326 的分頻和處理,最終生成各個模塊所需要的時鐘信號。時鐘模塊309的輸出受到工作模式處理器327的控制,當(dāng)芯片工作于正常模式時,時鐘模塊309選擇慢速振蕩器325的輸出作為CPU核311的工作時鐘;當(dāng)芯片工作于快速模式時,時鐘模塊309選擇快速振蕩器324的輸出作為CPU核311的工作時鐘;當(dāng)芯片工作于暫停模式時,時鐘模塊309停止CPU核311 的工作時鐘,而定時器組316、語音模塊318和IXD驅(qū)動319的時鐘則繼續(xù)提供;當(dāng)芯片工作于休眠模式時,時鐘模塊309停止一切時鐘輸出,并關(guān)閉振蕩。語音模塊318的時鐘源來自于快速振蕩器324,當(dāng)語音模塊318不工作并且芯片不工作在快速模式時,時鐘模塊309 關(guān)閉快速振蕩器324。根據(jù)本發(fā)明的工作模式管理可以顯著地降低芯片的功耗。本實施例的控制芯片中的程序存儲器310例如是一個16KX 15BITS的ROM,用于存放指令碼,關(guān)于指令碼的細(xì)節(jié),請見下文指令編碼部分。本發(fā)明控制芯片中的程序存儲器采用15位寬的程序存儲器,可有效節(jié)省芯片面積,使控制芯片的進(jìn)一步小型化成為可能。本實施例的玩具控制芯片中的CPU核311是芯片的核心控制模塊,數(shù)據(jù)位寬為四位。CPU核,在本文中也稱為控制模塊,包括工作模式處理器327、中斷處理器328、堆棧329、 程序計數(shù)器330、指令寄存器331、指令譯碼器332和算術(shù)邏輯單元ALU 333。CPU核311采用二級兩相流水線架構(gòu),每個指令周期在執(zhí)行指令的同時把下一條指令取出。每個指令周期都分為Ql和Q2兩相,比一般四相的RISC微控制器的運(yùn)行速度要快一倍。在Ql相,完成入棧、取指、寄存器讀取、ALU運(yùn)算等動作。在Q2相,完成出棧、鎖存指令、寄存器寫入、程序計數(shù)器變化等動作。包括在控制芯片的CPU核311中的工作模式處理器327,檢測控制芯片的工作模式。本實施例提供例如四種工作模式正常模式、快速模式、暫停模式和休眠模式。當(dāng)寄存器文件312中的特殊功能寄存器313中的其他SFR 334中的控制工作模式的位被設(shè)置時, 芯片進(jìn)入某個工作模式,工作模式處理器327輸出控制信號,控制時鐘模塊309的工作,具體請參考時鐘模塊309的介紹。 包括在控制芯片的CPU核311中的中斷處理器328,負(fù)責(zé)處理芯片的中斷事項。本發(fā)明的控制芯片提供例如四種中斷外部中斷、定時器T溢出中斷、時基定時器溢出中斷和語音結(jié)束中斷,每個中斷有獨立固定的入口地址即中斷向量。寄存器文件312中的特殊功能寄存器313中的其他SFR 334中的一些寄存器控制中斷的使能及中斷標(biāo)志。當(dāng)中斷發(fā)生時,相應(yīng)中斷標(biāo)志置位,中斷處理器328輸出控制信號,把程序計數(shù)器330的當(dāng)前值壓入堆棧329,把中斷向量寫入程序計數(shù)器330。當(dāng)從中斷返回時,中斷處理器328產(chǎn)生控制信號, 從堆棧329中彈出地址數(shù)據(jù)并寫入程序計數(shù)器330。包括在控制芯片的CPU核311中的堆棧329例如是一個16級、14位的環(huán)行堆棧, 在執(zhí)行調(diào)用指令和響應(yīng)中斷時把程序計數(shù)器330的當(dāng)前值壓入,在執(zhí)行返回指令時把最后壓入堆棧的值彈出給程序計數(shù)器330。包括在控制芯片的CPU核311中的程序計數(shù)器330是例如14位的可預(yù)置值加法計數(shù)器,復(fù)位時為零,可尋址例如16K的程序存儲器310。運(yùn)行一般程序時,程序計數(shù)器330如圖4所示,在每個指令周期的時鐘Q2相結(jié)束時自動加1。當(dāng)運(yùn)行例如CALL、JUMP、JZ、JNZ、 JC、JNC、SKZ、SKNZ、TJUMP、RET、RETI、RETff或JVEND等程序轉(zhuǎn)移指令和/或發(fā)生中斷時,程序計數(shù)器330如圖5所示,在指令周期T2的Q2相結(jié)束時把指令譯碼器332輸出的地址和寄存器文件312中的特殊功能寄存器313中的其他SFR 334中的程序分頁信息一起載入, 此時程序計數(shù)器330需要一個額外的指令周期T3來重新取指令,所以這些CALL、JUMP、JZ、 JNZ、JC、JNC、SKZ、SKNZ、TJUMP、RET、RETI、RETff和JVEND指令被稱為雙周期指令,其執(zhí)行過程如圖5的T2和T3周期所示。包括在控制芯片的CPU核311中的指令寄存器331用于寄存從程序存儲器310中取出來的指令碼,并輸出給指令譯碼器332進(jìn)行譯碼。包括在控制芯片的CPU核311中的指令譯碼器332負(fù)責(zé)對指令寄存器331中的指令進(jìn)行譯碼,把指令翻譯成相應(yīng)的控制動作,輸出相應(yīng)的控制信號,控制芯片運(yùn)行。指令譯碼器332的輸出信號有以下幾類對寄存器操作類指令,指令譯碼器332輸出寄存器地址信息和讀/寫操作信號給寄存器文件312,輸出運(yùn)算控制信號給算術(shù)邏輯單元ALU 333 ;對立即數(shù)指令,輸出立即數(shù)和運(yùn)算控制信號給算術(shù)邏輯單元ALU 333 ;對程序轉(zhuǎn)移類指令和中斷,輸出程序地址信息和跳轉(zhuǎn)控制信號給程序計數(shù)器330,輸出堆??刂菩盘柦o堆棧329, 輸出中斷控制信號給中斷處理器328 ;對控制類指令,則輸出各種控制信號到工作模式處理器327、語音模塊318或復(fù)位模塊308等相關(guān)模塊。包括在控制芯片的CPU核311中的ALU 333,是例如四位的算術(shù)邏輯單元,可以完成加、減、與、或、異或、取反、移位等運(yùn)算,也可以僅僅傳輸數(shù)據(jù)。ALU 333內(nèi)還包含一個累加器,用來鎖存運(yùn)算結(jié)果。指令譯碼器332輸出運(yùn)算控制信號,控制ALU 333的運(yùn)算。在指令周期的Ql相,從寄存器文件312中讀取數(shù)據(jù)并進(jìn)行運(yùn)算,并鎖存運(yùn)算結(jié)果;在指令周期的 Q2相,把運(yùn)算結(jié)果寫回到寄存器文件312中。寄存器文件312中的特殊功能寄存器313中的其他SFR334中的一些寄存器寄存ALU的狀態(tài)標(biāo)志,如進(jìn)位標(biāo)志、零標(biāo)志等。本實施例的控制芯片中的寄存器文件312包括特殊功能寄存器(SFR)313、通用數(shù)據(jù)RAM 314和IXD RAM 315。寄存器文件312可以被CPU核311讀寫,通過數(shù)據(jù)總線與ALU 333進(jìn)行數(shù)據(jù)交換。特殊功能寄存器313、通用數(shù)據(jù)RAM 314和IXD RAM 315是不同的數(shù)據(jù)寄存器,通過地址映射的方式把它們的地址映射到同一套邏輯地址上,由此組成寄存器文件312,它們的地址映射關(guān)系參考圖6。包括在控制芯片的寄存器文件312中的特殊功能寄存器313,由D觸發(fā)器組成,都是一些具有特殊功能的寄存器,CPU核311通過這些寄存器可以實現(xiàn)對外圍功能模塊的控制。例如,特殊功能寄存器313包括IXD控制寄存器339,用于控制IXD驅(qū)動319的工作; 語音地址寄存器338,用于存放語音的初始地址,輸出到語音模塊318 ;采樣率寄存器337, 用于存放語音的采樣率,輸出到語音模塊318 ;1/0寄存器336,用于存放I/O的輸出輸入數(shù)據(jù)和I/O方向控制位,其中部分I/O的輸入還可以輸出給中斷處理器328以判斷是否進(jìn)入外部中斷;定時器寄存器335,用于存放定時器組316的時鐘選擇位、使能位和計數(shù)溢出標(biāo)志,其中溢出標(biāo)志輸出給中斷處理器328以判斷是否進(jìn)入中斷;其他SFR 334,包括狀態(tài)寄存器、中斷控制寄存器、工作模式寄存器、振蕩選擇寄存器等,不一一列出,可以共有例如45 個特殊功能寄存器。包括在控制芯片的寄存器文件312中的通用數(shù)據(jù)RAM 314是單端異步靜態(tài)RAM,共有例如480X4BITS,作為通用數(shù)據(jù)存儲器。包括在控制芯片的寄存器文件312中的IXD RAM 315是雙端異步靜態(tài)RAM,用于存儲IXD顯示數(shù)據(jù),其兩個端口中的一個用于CPU核311讀取操作,另一個用于輸出顯示數(shù)據(jù)給IXD驅(qū)動319,以保證CPU核311進(jìn)行操作時不影響IXD顯示。IXD RAM 315在不用于存儲IXD顯示數(shù)據(jù)時亦可作為普通數(shù)據(jù)存儲器使用。本實施例的控制芯片中的定時器組316包括定時器T 340和時基定時器341。包括在控制芯片的定時器組316中的定時器T 340,例如是一個可預(yù)置值、自動重載的8位減法計數(shù)器,計數(shù)時鐘由相應(yīng)SFR選擇,計數(shù)到零時產(chǎn)生溢出信號觸發(fā)特殊功能寄存器313中的中斷標(biāo)志,并輸出給中斷處理器328以判斷是否進(jìn)入中斷。包括在控制芯片的定時器組316中的時基定時器341,例如是一個8位計數(shù)器,計數(shù)時鐘由相應(yīng)SFR選擇,計數(shù)溢出時產(chǎn)生溢出信號觸發(fā)特殊功能寄存器313中的中斷標(biāo)志, 并輸出給中斷處理器328以判斷是否進(jìn)入中斷。本實施例的控制芯片中的I/O端口 317包括例如8個獨立的通用1/0,另外有4個 I/O與IXD驅(qū)動端口共用焊盤、32個輸出口與IXD驅(qū)動端口共用焊盤,可以通過芯片生產(chǎn)時的掩膜選項選擇作為I/O (或輸出口)還是LCD驅(qū)動端口。本實施例的控制芯片中的語音模塊318,提供了語音存儲和播放的功能,其功能模塊和工作請參考圖7。語音模塊318從語音地址寄存器338中獲得語音初始地址,從采樣率寄存器337中獲得語音采樣率參數(shù),從時鐘模塊309中獲得工作時鐘。本發(fā)明控制芯片中的語音模塊一旦被指令PVOX觸發(fā),就會自動播放語音,整個播放過程不再需要CPU核311 的干涉,不占用任何CPU資源和程序資源,語音結(jié)束后自動產(chǎn)生結(jié)束信號輸出給CPU核311, CPU核311以中斷或JVEND指令等方式作出反應(yīng)。本實施例的控制芯片中的IXD驅(qū)動模塊319,用于驅(qū)動IXD顯示屏,由IXD控制寄存器339控制其工作,并從IXD RAM 315中取得顯示數(shù)據(jù)。本實施例提供例如36SEGX4C0M、 1/3偏壓、3V驅(qū)動電壓的IXD驅(qū)動319,可滿足大部分智能玩具應(yīng)用。
圖4示出圖2所示控制芯片的單周期指令流水線示意圖。控制芯片在執(zhí)行指令的同時把下一條指令取出。例如,在指令周期T2,控制芯片在執(zhí)行指令PC的同時把下一條指令PC+1取出。在下一個指令周期T3到來時,控制芯片執(zhí)行指令PC+1,同時取出指令PC+2。 根據(jù)本發(fā)明的控制芯片,除了程序轉(zhuǎn)移指令之外的其他指令都是單周期指令。每個指令周期都分為Ql和Q2兩相。在Ql相,完成入棧、取指、寄存器讀取、ALU運(yùn)算等動作。在Q2相, 完成出棧、鎖存指令、寄存器寫入、程序計數(shù)器變化等動作。 圖5示出圖2所示控制芯片的雙周期指令流水線示意圖??刂菩酒趫?zhí)行雙周期指令或中斷時,在指令周期T2的Q2相結(jié)束時把目標(biāo)地址載入程序計數(shù)器,并且額外增加一個指令周期T3來重新取指令。例如,在指令周期Tl,控制芯片執(zhí)行單周期指令PC0-1并取出下一指令PC0。該指令PCO為雙周期指令。在指令周期T2,控制芯片執(zhí)行指令PC0,并照常按順序取出指令PC0+1,但因PCO為雙周期指令,所以在指令周期T3到來時并沒有執(zhí)行指令PC0+1,而是還在執(zhí)行PC0,并取出目標(biāo)地址的指令PC1。在指令周期T4,執(zhí)行指令PCl并取出下一條指令PC1+1。圖6示出根據(jù)本發(fā)明的寄存器文件地址分配示意圖。通過地址映射的方式把特殊功能寄存器、通用數(shù)據(jù)存儲器和IXD顯示數(shù)據(jù)存儲器的地址映射到同一套邏輯地址上。例如其中地址從000H到03Π1為特殊功能寄存器,從080H到0A3H為IXD顯示數(shù)據(jù)存儲器,從 100H到IFFH和從300H到3DH1為通用數(shù)據(jù)存儲器。IXD顯示數(shù)據(jù)存儲器在IXD模塊不使用時可作為普通數(shù)據(jù)存儲器使用。圖7示出根據(jù)本發(fā)明的語音模塊結(jié)構(gòu)框圖。根據(jù)本發(fā)明的語音模塊包括語音地址發(fā)生器742、語音存儲器743、ADPCM語音解碼器744、PWM 745或DAC 746、采樣率分頻器 747和語音控制邏輯748。語音地址發(fā)生器742例如是一個可預(yù)置值的17位加法計數(shù)器, 負(fù)責(zé)產(chǎn)生語音存儲器743的地址。語音控制邏輯748從寄存器文件312中的語音地址寄存器338獲得一段語音的起始地址并載入計數(shù)器,以采樣率分頻器747提供的采樣率信號為計數(shù)時鐘自動計數(shù),直到語音結(jié)束。語音存儲器743例如是一個96KX4BITS的存儲器,存儲ADPCM語音量化編碼,可以同時存儲若干段語音,把語音地址發(fā)生器742給出的地址上的數(shù)據(jù)輸出給ADPCM語音解碼器744。ADPCM語音解碼器744負(fù)責(zé)把四位的ADPCM量化編碼解碼成八位的PCM格式的數(shù)據(jù)輸出給PWM745或DAC 746,并且自動檢測語音是否結(jié)束。PWM 745或DAC 746負(fù)責(zé)把PCM格式的語音數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的喇叭驅(qū)動信號。雖然圖7中示出了語音模塊包括PWM 745和DAC 746 二者,在PWM和DAC只能通過生產(chǎn)過程的掩膜選項選擇其中之一,即控制模塊選擇PWM或DAC作為語音驅(qū)動模塊。采樣率分頻器747是本發(fā)明的特征之一,其根據(jù)來自寄存器文件312中采樣率寄存器337中的采樣率參數(shù)對高速時鐘進(jìn)行分頻,得到相應(yīng)的采樣率信號輸出給語音地址發(fā)生器742。采樣率分頻器例如可以提供2KHz 64KHz,諸如6KHz、8KHz、12KHz、16KHz的不同語音采樣率,從而提高了開發(fā)的靈活性。語音控制邏輯748負(fù)責(zé)控制整個語音模塊的運(yùn)行。本發(fā)明的語音模塊的運(yùn)行過程如下芯片上電時,語音控制邏輯748被全局復(fù)位信號復(fù)位,當(dāng)CPU接到PVOX指令時,向語音模塊輸出啟動信號,語音控制邏輯748接到啟動信號之后,開始使能,PWM 745或DAC 746 打開,并分配高速時鐘信號給采樣率分頻器747,采樣率分頻器747根據(jù)寄存器文件312中的采樣率寄存器337中的采樣率參數(shù)對高速時鐘進(jìn)行分頻,得到相應(yīng)的采樣率信號,語音地址發(fā)生器742從寄存器文件312中的語音地址寄存器338中載入語音起始地址,開始對語音存儲器743尋址,語音存儲器743輸出四位ADPCM量化編碼,ADPCM語音解碼器744把 ADPCM量化編碼解碼成八位的PCM語音數(shù)據(jù)輸出給PWM 745或DAC 746去驅(qū)動喇叭,并且檢測語音是否結(jié)束,如果語音未結(jié)束,則語音地址發(fā)生器742加1,語音存儲器743輸出下一個數(shù)據(jù),ADPCM語音解碼器744再解碼,PWM745或DAC 746再輸出,如此不斷循環(huán);如果語音結(jié)束,則ADPCM語音解碼器744輸出一個結(jié)束標(biāo)志,語音控制邏輯748鎖存后輸出給CPU 核311,CPU核311可以據(jù)此作出反應(yīng)。所以可以看出,整個語音播放過程都是語音模塊自動地完成的,沒有占用任何CPU資源和程序資源。指令說明本實施例支持常見RISC微控制器的典型指令,比如算術(shù)邏輯指令、程序轉(zhuǎn)移指令等,所有指令采用位寬為十五位的編碼方式,為芯片節(jié)省了一位的程序存儲器,而又不過多削弱指令的能力。本實施例的指令的運(yùn)行采用流水線方式,大部分指令都是單周期指令,只有程序轉(zhuǎn)移指令為雙周期指令。兩個振蕩周期(Ql相和Q2相)為一個機(jī)器周期(T),一個指令周期為一個或兩個機(jī)器周期。單周期指令的執(zhí)行如圖4所示,在執(zhí)行當(dāng)前指令的同時取出下一條指令。雙周期指令的執(zhí)行如圖5所示,需要增加一個機(jī)器周期以便CPU從新的目標(biāo)地址中取指。本實施例中所有指令都是單字長的,每條指令占1個程序存儲地址。根據(jù)譯碼,可分為立即數(shù)尋址、直接尋址、寄存器間接尋址和數(shù)據(jù)表尋址四種尋址方式。其中數(shù)據(jù)表尋址方式通過兩條專用的指令實現(xiàn),TJUMP和RETW。在編程時,應(yīng)用工程師可以用RETW把一些固定數(shù)據(jù)存放在程序存儲器中,作為數(shù)據(jù)查找表,再用TJUMP指令跳轉(zhuǎn)到該查找表,執(zhí)行RETW 把這些數(shù)據(jù)讀到累加器ACC和查找表寄存器TBL中。指令總共49條,涵蓋了一般應(yīng)用領(lǐng)域中需要的功能。指令采用對稱的壓縮編碼, 15 位寬。其中,算術(shù)邏輯類指令 19 條,包括 ADC、ADCM、ADD、ADDM、SBC、SBCM、SUB、SUBM、 X0R、X0RM、0R、0RM、AND、ANDM、CPLM、INC、INCM、DEC、DECM。數(shù)據(jù)傳輸類指令 2 條,包括 LDA、 STA0立即數(shù)指令7條,包括LDI、ADI、SBI、SBIA、XORI、ORI、ANDI。十進(jìn)制調(diào)整指令2條, 用于調(diào)整十進(jìn)制數(shù)加減法運(yùn)算之后的結(jié)果,包括DAA、DAS。移位指令2條,包括R0RC、R0LC。 程序轉(zhuǎn)移指令 12 條,包括 CALL、JUMP、JZ、JNZ, JC、JNC, SKZ, SKNZ, RET、RETI、RETW、TJUMP。 控制指令3條,包括暫停指令HALT、看門狗清零指令CLRWDT、空操作指令NOP。語音類指令 2條,包括語音播放指令PV0X、語音結(jié)束跳轉(zhuǎn)指令JVEND。其中PVOX指令是專門播放語音用的,如果CPU取出了 PVOX指令,經(jīng)過指令譯碼器譯碼后輸出一個啟動信號給語音模塊,觸發(fā)了語音,使語音模塊以采樣率寄存器確定的采樣率播放從以語音地址寄存器確定的地址開始的語音。而當(dāng)語音結(jié)束后返回一個結(jié)束信號,CPU進(jìn)入中斷,或者用JVEND對這個信號進(jìn)行檢測,一旦檢測到語音結(jié)束信號,即跳轉(zhuǎn)到目標(biāo)地址。以下是本發(fā)明的指令集。
權(quán)利要求
1.一種4位RISC微控制器,包括控制模塊、程序存儲器、寄存器文件、復(fù)位模塊、時鐘模塊和至少一個外圍功能模塊,其特征在于,該控制模塊包括指令寄存器,指令譯碼器,堆棧,算術(shù)邏輯單元ALU,和程序計數(shù)器,其采用二級兩相流水線架構(gòu);程序存儲器用于存儲單周期指令和雙周期指令,每個單周期指令在執(zhí)行指令的同時取出下一條指令,每個雙周期指令的第一指令周期在執(zhí)行指令的同時取出下一條指令,其第二指令周期在執(zhí)行指令的同時重新取指令,每個指令周期分為第一相和第二相,在所述第一相,控制模塊完成堆棧入棧、程序存儲器讀取、寄存器讀取、指令譯碼和ALU 運(yùn)算操作,在所述第二相,控制模塊完成堆棧彈出、指令寄存器鎖存、寄存器寫入、程序計數(shù)器改寫操作。
2.如權(quán)利要求1所述的4位RISC微控制器,其特征在于,該微控制器結(jié)構(gòu)包括具有49 條指令的一套精簡指令集,所述指令譯碼器輸出的信號包括寄存器操作類指令,指令譯碼器輸出寄存器地址信息和讀寫操作信號給寄存器文件, 輸出運(yùn)算控制信號給算術(shù)邏輯單元;立即數(shù)指令,指令譯碼器輸出立即數(shù)和運(yùn)算控制信號給算術(shù)邏輯單元;程序轉(zhuǎn)移類指令和中斷,指令譯碼器輸出程序地址信息和跳轉(zhuǎn)控制信號給程序計數(shù)器,輸出堆??刂菩盘柦o堆棧,輸出中斷控制信號給中斷處理器;控制類指令,指令譯碼器輸出各種控制信號到功能模塊或相應(yīng)的外圍功能模塊;夕卜圍功能模塊控制指令,指令譯碼器輸出外圍功能模塊控制指令用于控制和檢測語音模塊的工作。
3.如權(quán)利要求2所述的4位RISC微控制器,其特征在于,所述指令集包括19條算術(shù)邏輯指令,對ALU和寄存器文件中的數(shù)據(jù)進(jìn)行加、減、與、或、異或、取反、加1和/或減1的算術(shù)邏輯運(yùn)算,運(yùn)算結(jié)果保存在ALU或者存回寄存器文件。
4.如權(quán)利要求3所述的4位RISC微控制器,其特征在于,所述19條算數(shù)邏輯指令包括9條結(jié)果僅存放在ALU的算術(shù)邏輯指令和10條運(yùn)算結(jié)果不僅存放在ALU還存回寄存器文件的指令。
5.如權(quán)利要求3所述的4位RISC微控制器,其特征在于,所述算術(shù)邏輯指令包含4條帶進(jìn)位加、減指令。
6.如權(quán)利要求2所述的4位RISC微控制器,其特征在于,所述指令集包括2條數(shù)據(jù)傳輸類指令,用于把寄存器文件的數(shù)據(jù)傳輸給ALU或把ALU的數(shù)據(jù)傳輸給寄存器文件。
7.如權(quán)利要求2所述的4位RISC微控制器,其特征在于,所述指令集包括7條立即數(shù)指令,用于把立即數(shù)傳輸給ALU或者把立即數(shù)與ALU數(shù)據(jù)進(jìn)行加、減、與、或、異或,結(jié)果存放在 ALU。
8.如權(quán)利要求2所述的4位RISC微控制器,其特征在于,所述指令集包含2條十進(jìn)制調(diào)整指令,把加、減運(yùn)算后存放在ALU中的二進(jìn)制數(shù)據(jù)調(diào)整成十進(jìn)制數(shù)據(jù),結(jié)果存放在ALU。
9.如權(quán)利要求2所述的4位RISC微控制器,其特征在于,所述指令集包含2條帶進(jìn)位移位指令,把ALU和進(jìn)位寄存器進(jìn)行循環(huán)左移或循環(huán)右移。
10.如權(quán)利要求2所述的4位RISC微控制器,其特征在于,所述指令集包含12條程序轉(zhuǎn)移指令,通過改變程序計數(shù)器的值來控制程序的轉(zhuǎn)移。
11.如權(quán)利要求10所述的4位RISC微控制器,其特征在于,所述程序轉(zhuǎn)移指令包含1 條程序調(diào)用指令CALL,用來調(diào)用子程序。
12.如權(quán)利要求10所述的4位RISC微控制器,其特征在于,所述程序轉(zhuǎn)移指令包含1 條無條件跳轉(zhuǎn)指令JUMP,用來使程序無條件跳轉(zhuǎn)到目標(biāo)地址。
13.如權(quán)利要求10所述的4位RISC微控制器,其特征在于,所述程序轉(zhuǎn)移指令包含4 條條件跳轉(zhuǎn)指令JZ、JNZ、JC和JNC,通過判斷ALU是否為零或者進(jìn)位標(biāo)志是否為1作為條件,條件成立時使程序跳轉(zhuǎn)到目標(biāo)地址,不成立時執(zhí)行下一條指令。
14.如權(quán)利要求10所述的4位RISC微控制器,其特征在于,所述程序轉(zhuǎn)移指令包含2 條條件跳過指令SKZ和SKNZ,通過判斷ALU某一位是否為零作為條件,條件成立時使程序跳過下一條指令,不成立時執(zhí)行下一條指令。
15.如權(quán)利要求10所述的4位RISC微控制器,其特征在于,所述程序轉(zhuǎn)移指令包含2 條返回指令RET和RETI,RET從子程序或中斷程序中返回,RETI從中斷中返回并打開中斷使能。
16.如權(quán)利要求10所述的4位RISC微控制器,其特征在于,所述程序轉(zhuǎn)移指令包含2 條數(shù)據(jù)表查找指令,使指令可以從程序存儲器的數(shù)據(jù)表中查找數(shù)據(jù),其中TJUMP指令跳轉(zhuǎn)到查找表處,RETff指令把查找表的數(shù)據(jù)讀入ALU和查找表寄存器并返回。
17.如權(quán)利要求2所述的4位RISC微控制器,其特征在于,所述指令集包含3條控制指令,用于對控制模塊或外圍功能模塊進(jìn)行控制。
18.如權(quán)利要求17所述的4位RISC微控制器,其特征在于,所述控制指令包含1條暫停指令HALT,執(zhí)行此指令使芯片進(jìn)入暫停模式,控制模塊暫停工作,各功能模塊不受影響。
19.如權(quán)利要求17所述的4位RISC微控制器,其特征在于,所述控制指令包含1條看門狗清零指令CLRWDT,用來清零看門狗計數(shù)器。
20.如權(quán)利要求17所述的4位RISC微控制器,其特征在于,所述控制指令包含1條空操作指令NOP,此指令不作任何動作。
21.如權(quán)利要求2所述的4位RISC微控制器,其特征在于,所述外圍功能模塊控制指令包含1條外圍功能模塊使能指令PV0X,用于啟動外圍功能模塊開始工作。
22.如權(quán)利要求2所述的4位RISC微控制器,其特征在于,所述外圍功能模塊控制指令包含1條外圍功能模塊結(jié)束跳轉(zhuǎn)指令JVEND,用于對外圍功能模塊返回的結(jié)束信號進(jìn)行檢測,一旦檢測到外圍功能模塊結(jié)束信號,即跳轉(zhuǎn)到目標(biāo)地址。
23.如權(quán)利要求10所述的4位RISC微控制器,其特征在于,所述程序轉(zhuǎn)移指令是雙周期指令。
24.如權(quán)利要求22所述的4位RISC微控制器,其特征在于,所述功能模塊結(jié)束跳轉(zhuǎn)指令是雙周期指令。
25.如權(quán)利要求3,6-9,17-20之一所述的4位RISC微控制器,其特征在于,所述指令是單周期指令。
26.如權(quán)利要求1所述的4為RISC微控制器,其特征在于,所述程序存儲器是15位寬用于存放指令碼的程序存儲器。
27.如權(quán)利要求21所述的4位RISC微控制器,其特征在于,所述至少一個外圍功能模塊包括語音模塊。
28.如權(quán)利要求27所述的4位RISC微控制器,其特征在于,所述寄存器文件包括用于存放語音初始地址的語音地址寄存器和用于存放語音采樣率的采樣率寄存器,所述語音模塊包括語音地址發(fā)生器,采樣頻率分頻器,語音存儲器,語音解碼器,語音驅(qū)動模塊和語音控制邏輯,所述語音控制邏輯根據(jù)來自控制模塊的啟動信號,時鐘信號,以及所述語音初始地址和語音采樣率控制語音模塊輸出語音驅(qū)動信號。
29.如權(quán)利要求28所述的4位RISC微控制器,其特征在于,所述采樣率分頻器根據(jù)時鐘信號和所述語音采樣率產(chǎn)生采樣率信號,并輸出給語音地址發(fā)生器;所述語音地址發(fā)生器根據(jù)所述初始地址和所述采樣率信號產(chǎn)生語音存儲器的地址;所述語音解碼器對來自語音存儲器的編碼語音數(shù)據(jù)進(jìn)行解碼,輸出解碼的語音數(shù)據(jù)至語音驅(qū)動模塊,并在語音結(jié)束時輸出結(jié)束標(biāo)志;所述語音控制邏輯根據(jù)來自語音解碼器的結(jié)束標(biāo)志輸出語音結(jié)束信號給控制模塊。
30.如權(quán)利要求1所述的4位RISC微控制器,其特征在于,所述時鐘模塊包括快速振蕩器,慢速振蕩器和時鐘發(fā)生器,所述控制模塊包括工作模式處理器,用于根據(jù)下述四種芯片工作模式控制時鐘模塊輸出時鐘信號當(dāng)芯片工作于正常模式時,時鐘模塊以慢速振蕩器的輸出作為控制模塊的工作時鐘;當(dāng)芯片工作于快速模式時,時鐘模塊以快速振蕩器的輸出作為控制模塊的工作時鐘;當(dāng)芯片工作于暫停模式時,時鐘模塊停止控制模塊的工作時鐘;當(dāng)芯片工作于休眠模式時,時鐘模塊停止時鐘輸出并關(guān)閉快速振蕩器和慢速振蕩器。
31.如權(quán)利要求27所述的4位RISC微控制器,其特征在于,所述至少一個外圍功能模塊包括LCD驅(qū)動模塊,并且所述寄存器文件包括用于控制LCD驅(qū)動模塊工作的LCD控制寄存器和用于存儲顯示數(shù)據(jù)的IXD RAM。
32.如權(quán)利要求28所述的4位RISC微控制器,其特征在于,語音存儲器是4位存儲器。
33.如權(quán)利要求30所述的4位RISC微控制器,其特征在于,所述至少一個外圍功能模塊包括語音模塊,所述語音模塊接收來自快速振蕩器的時鐘信號。
34.如權(quán)利要求33所述的4位RISC微控制器,其特征在于,當(dāng)語音模塊不工作時并且芯片不以快速模式工作時,時鐘模塊關(guān)閉快速振蕩器。
35.一種玩具,包括根據(jù)權(quán)利要求1所述的4位RISC微控制器。
全文摘要
本發(fā)明提供一種4位RISC微控制器,包括控制模塊、程序存儲器、寄存器文件、復(fù)位模塊、時鐘模塊和至少一個外圍功能模塊,該控制模塊包括指令寄存器,指令譯碼器,堆棧,算術(shù)邏輯單元ALU,和程序計數(shù)器,其采用二級兩相流水線架構(gòu),每個指令周期分為第一相和第二相,在所述第一相,控制模塊完成堆棧入棧、程序存儲器讀取、寄存器讀取、指令譯碼和ALU運(yùn)算操作,在第二相控制模塊完成堆棧彈出、指令寄存器鎖存、寄存器寫入、程序計數(shù)器改寫操作。本發(fā)明進(jìn)一步提供一種包括該控制芯片的智能玩具。本發(fā)明的控制芯片具有改善的語音播放效果和較低的生產(chǎn)成本。
文檔編號G06F9/38GK102221991SQ20111013525
公開日2011年10月19日 申請日期2011年5月24日 優(yōu)先權(quán)日2011年5月24日
發(fā)明者丁東民, 金翔, 陳勤學(xué) 申請人:華潤半導(dǎo)體(深圳)有限公司