隨著信息技術(shù)的發(fā)展,網(wǎng)絡(luò)通信、信息安全和信息家電產(chǎn)品的普及,嵌入式MCU正是所有這些信息產(chǎn)品中必不可少的部件。目前國(guó)內(nèi)一些科研院校和半導(dǎo)體公司都在致力于研發(fā)自主設(shè)計(jì)的嵌入式微控制器,這對(duì)我國(guó)的半導(dǎo)體產(chǎn)業(yè)、電子產(chǎn)品產(chǎn)業(yè)的發(fā)展具有重要意義。
這里描述了一款自主研發(fā)的16位嵌入式微控制器(A8096)的設(shè)計(jì)與實(shí)現(xiàn),基于RTL級(jí)設(shè)計(jì)方法使用VerilogHDL進(jìn)行設(shè)計(jì)描述,在設(shè)計(jì)中,采用硬布線控制方式,減少了面積和功耗,同時(shí)MCU兼容了MSC-96指令集,目標(biāo)是可以應(yīng)用于實(shí)際嵌入式系統(tǒng)項(xiàng)目中。
1 總體設(shè)計(jì)
1.1 MSC-96體系結(jié)構(gòu)
圖1所示為MSC-96體系結(jié)構(gòu)。Intel 8096微控制器是由通用寄存器陣列、算術(shù)邏輯單元(RALU)和微程序控制器等模塊組成。其采用的是微程序控制方式,需要使用一個(gè)片內(nèi)ROM存儲(chǔ)器,因而會(huì)造成面積和功耗都會(huì)較大。

MCU內(nèi)部的寄存器陣列通過(guò)一個(gè)控制器和2條總線與RALU相連。這兩條總線是8位的A-BUS和16位的D-BUS。DBUS只用于RALU與寄存器之間的數(shù)據(jù)傳輸,而A-BUS用作上述傳輸過(guò)程中的地址總線。當(dāng)MCU通過(guò)寄存器控制器訪問(wèn)片內(nèi)外寄存器時(shí),A-BUS可作為多路轉(zhuǎn)換的地址/數(shù)據(jù)總線。
1.2 A8096總體結(jié)構(gòu)
為了減少面積和功耗,A8096采用硬布線邏輯控制方式取代上述的微程序控制器。依據(jù)MSC-96的體系結(jié)構(gòu),A8096主要功能模塊包括:IPU(InSTructiON Pre-fetch Unit。指令預(yù)取單元)、CU(Control Unit,控制單元)、ALU(ArithmetIC Logical Unit,算術(shù)邏輯單元)、MEM_C-TRL(MEM控制器)、RF_CTRL(寄存器堆控制器)、ISR(Interrupt Service Routine unit,中斷服務(wù)單元)、GPIO(General Purpose Input Out-put,通用輸入輸出單元)等主要功能部件。其結(jié)構(gòu)如圖2所示。

1.3 系統(tǒng)總線
A8096采用3條總線:一條是MEM總線,用于IPU和MEM CTRL對(duì)程序空間和數(shù)據(jù)空間的讀寫(xiě)控制;16 bit的數(shù)據(jù)線,16 bit的地址線,讀寫(xiě)信號(hào)memrd/memwr;一條是內(nèi)部寄存器陣列(Register File)總線,用于RF_CTRL對(duì)內(nèi)部寄存器陣列的讀寫(xiě)訪問(wèn),地址線是8 bit的,數(shù)據(jù)線為16 bit,讀寫(xiě)信號(hào)為rf_rd/rf_wr;一條是SFR總線,用于訪問(wèn)數(shù)據(jù)空間地址在00H~19H的特殊定義的寄存器空間。8 bit的地址總線,16bit的數(shù)據(jù)總線,讀寫(xiě)信號(hào)sfrrd/sfrwr。另外IPU和MEMCTR的數(shù)據(jù)交互是通過(guò)8 bit的數(shù)據(jù)線instr_bus完成的,其作用是從預(yù)取指令隊(duì)列中將指令傳給CU單元等。
2 MCU設(shè)計(jì)與實(shí)現(xiàn)
2.1 MCU工作原理
A8096通過(guò)IPU(指令預(yù)取單元)指令預(yù)取,并存放在預(yù)取指令隊(duì)列中,CU(控制單元)從IPU指令隊(duì)列中取指并進(jìn)行譯碼,產(chǎn)生控制時(shí)序等信號(hào)。ALU單元、RAM控制器、MEM控制器等部件中均有譯碼模塊,依據(jù)當(dāng)前指令和當(dāng)前指令周期主動(dòng)工作。如:RAM控制器在加法指令的相應(yīng)周期取操作數(shù)送往ALU單元,ALU在相應(yīng)周期接收數(shù)據(jù),然后進(jìn)行運(yùn)算并將結(jié)果輸出。
2.2 MCU啟動(dòng)過(guò)程
在上電復(fù)位時(shí),MCU處于復(fù)位態(tài)(rst信號(hào)有效)。復(fù)位時(shí),IPU單元中的指令隊(duì)列清空(empty信號(hào)有效),總線處于空閑態(tài),IPU立刻進(jìn)行指令預(yù)取動(dòng)作,程序空間的首地址(2080H)指令即被取人指令隊(duì)列,隨后隊(duì)列空信號(hào)(empty)無(wú)效,同時(shí)指令被發(fā)送出去(instr_bus)。在復(fù)位同時(shí),控制單元(CU)的取指信號(hào)(codefetche)即一直有效,在指令隊(duì)列空信號(hào)empty無(wú)效后(在empty無(wú)效之前CU一直等待),指令即通過(guò)instr_ bus進(jìn)入了CU,指令操作碼被存入了指令寄存器,如圖3中instr寄存器更新為加法指令的操作碼74。至此,MCU完成了復(fù)位、自動(dòng)取指操作,并開(kāi)始往下執(zhí)行該指令,IPU單元也會(huì)繼續(xù)進(jìn)行指令預(yù)取操作。

2.3 指令執(zhí)行過(guò)程
在A8096中,有兩級(jí)指令預(yù)取概念:一級(jí)是指令預(yù)單元IPU利用總線空閑從程序空間不斷預(yù)取指令存入指令隊(duì)列中;一級(jí)則是指令執(zhí)行過(guò)程中的指令預(yù)取,當(dāng)一條指令執(zhí)行到最后一個(gè)時(shí)鐘周期時(shí),CU單元就會(huì)發(fā)送取指信號(hào),進(jìn)行指令執(zhí)行級(jí)的預(yù)取指動(dòng)作,下一條指令的操作碼即被預(yù)取出來(lái)(指令隊(duì)列為空時(shí)需等待),并立刻進(jìn)行譯碼確定指令的字節(jié)長(zhǎng)度和指令執(zhí)行周期數(shù)。
如圖4所示,在加法指令的最后一個(gè)周期(cycle=05),CU單元取指信號(hào)codefetche有效,則下一條指令的操作碼(6C,乘法操作碼)被預(yù)取出來(lái),同時(shí)進(jìn)行查表譯碼確定其指令字節(jié)長(zhǎng)度和指令周期數(shù),隨后操作碼被存入指令寄存器instr中(此時(shí),指令周期計(jì)數(shù)器cycle又從01開(kāi)始計(jì)數(shù))。后面乘法指令的操作數(shù)也會(huì)不斷被取進(jìn)來(lái)執(zhí)行,直到乘法指令最后一個(gè)周期時(shí),又將下一條指令的操作碼預(yù)取進(jìn)來(lái)。

需要說(shuō)明:codefetche為取操作碼信號(hào),datafetche為取操作數(shù)信號(hào)。在指令最后一個(gè)周期時(shí)若有中斷請(qǐng)求,則插入LCALL指令進(jìn)行中斷處理,讀取下一條指令。其流程如圖5所示。

2.4 指令譯碼過(guò)程
在MCU設(shè)計(jì)過(guò)程中,首先完成對(duì)各條指令的指令分析工作,確定每個(gè)周期該做的動(dòng)作,然后各部件依據(jù)指令分析表進(jìn)行相關(guān)的指令譯碼(RAM控制器只譯RAM要做的動(dòng)作,ALU只譯ALU要做的動(dòng)作)。過(guò)程描述如下:在預(yù)取操作碼時(shí),CU單元對(duì)操作碼進(jìn)行譯碼確定指令的字節(jié)長(zhǎng)度(nr_bytes)和指令周期數(shù)(nr_cycles)。然后CU依據(jù)指令字節(jié)長(zhǎng)度(nr_bytes)取操作數(shù),其他部件依據(jù)指令和當(dāng)前指令周期(curcycle)執(zhí)行相應(yīng)的指令操作。表1為加法指令分析表,下面以加法指令的譯碼過(guò)程來(lái)說(shuō)明整個(gè)譯碼流程:

1)加法指令 ADD OPl OP2(將OPl+0P2結(jié)果寫(xiě)入OPl中);其目標(biāo)碼格式為:ADD OP2 OPl,其中OPl和OP2均為操作數(shù)地址。
2)0周期 實(shí)際指上一條指令的最后一個(gè)時(shí)鐘周期,此周期codefetche取指信號(hào)有效,IPU單元將指令送入CU單元確定了指令周期和指令長(zhǎng)度。
3)l周期 取操作數(shù)信號(hào)datafetche有效,op2(地址)進(jìn)來(lái),被送入RAM地址線,發(fā)讀信號(hào)(從RAM寄存器陣列取操作數(shù)2)。
4)2周期 操作數(shù)2被取入,并存入ALU中的a寄存器;此周期取操作數(shù)信號(hào)datafetche有效,opl(地址)進(jìn)來(lái),被送入RAM地址線,發(fā)讀信號(hào)。
5)3周期 操作數(shù)l被取入,并存入ALU中的b寄存器;加法器立刻進(jìn)行a+b運(yùn)算。
*周期 將加法結(jié)果放到RAM數(shù)據(jù)線上,地址線=opl,發(fā)寫(xiě)信號(hào)。將加法結(jié)果寫(xiě)回到opl中,并依據(jù)結(jié)果對(duì)PSW進(jìn)行處理。
7)5周期 無(wú)動(dòng)作,用于寫(xiě)回操作的過(guò)程。
3 驗(yàn)證結(jié)果
3.1 仿真驗(yàn)證
芯片的功能與結(jié)構(gòu)設(shè)計(jì),只是設(shè)計(jì)流程的一部分,為保證最終設(shè)計(jì)成功,必須對(duì)其全面仿真與功能驗(yàn)證。對(duì)MCU的測(cè)試方法如下:1)功能模塊的單元測(cè)試,驗(yàn)證模塊的功能正確性,包括接口時(shí)序等。2)系統(tǒng)集成測(cè)試,首先編寫(xiě)簡(jiǎn)單的機(jī)器碼測(cè)試向量進(jìn)行初步調(diào)試:然后使用編譯器寫(xiě)匯編程序,編譯成二進(jìn)制機(jī)器碼進(jìn)行程序功能測(cè)試。在集成測(cè)試中,編寫(xiě)匯編測(cè)試程序,用編譯器編譯成機(jī)器碼,在Cadenee NC下運(yùn)行這些測(cè)試程序進(jìn)行仿真測(cè)試。對(duì)每條指令均測(cè)試了其各種尋址方式,且測(cè)試程序自動(dòng)向DEBUG寄存器寫(xiě)測(cè)試結(jié)果,以方便調(diào)試。經(jīng)過(guò)復(fù)雜的測(cè)試和不斷修正,驗(yàn)證結(jié)果顯示MCU指令執(zhí)行的正確性。
3.2 FPGA驗(yàn)證
使用的FPGA器件是StratixⅡ型號(hào)為EP1S40F780C7。綜合結(jié)果顯示:A8096使用3 565個(gè)LE(LogIC Element)。時(shí)序分析結(jié)果:A8096可以運(yùn)行在49.93 MHz的時(shí)鐘頻率下。A8096占用FPGA資源分布情況如圖6所示。

4 結(jié)論
本設(shè)計(jì)中,采用RISC技術(shù)中的硬布線控制邏輯,有利于減少M(fèi)CU面積、降低功耗以及提高M(jìn)CU執(zhí)行效率,F(xiàn)PGA實(shí)現(xiàn)表明其只占用了3 565個(gè)LE單元,工作時(shí)鐘可達(dá)50 MHz。同時(shí)該MCU具有很強(qiáng)的擴(kuò)展性與實(shí)用性,應(yīng)用領(lǐng)域廣泛,可方便與定時(shí)器、串行通訊接口(I2C)、串行外圍接口(SPI)、模數(shù)(A/D)轉(zhuǎn)換器等外圍功能單元組成各種嵌入式系統(tǒng),完全具備實(shí)際應(yīng)用價(jià)值。
上一篇:80196單片機(jī)在電力系統(tǒng)配電變壓器智能檢測(cè)終端設(shè)備中的應(yīng)用
下一篇:基于單片機(jī)的對(duì)車(chē)體平臺(tái)的傾斜狀態(tài)進(jìn)行自動(dòng)顯示的操作
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 如何計(jì)算單片機(jī)的波特率
- STM32單片機(jī)優(yōu)先級(jí)的定義
- 如何采用STM32單片機(jī)實(shí)現(xiàn)IAP功能
- STM32單片機(jī)對(duì)NAND Flash的讀寫(xiě)以及在ASF中的使用
- STM32單片機(jī)SysTick系統(tǒng)滴答功能解析
- STM32單片機(jī)定時(shí)器的時(shí)鐘源設(shè)置
- STM32單片機(jī)PID算法的原則及應(yīng)用方法
- 如何采用STM32單片機(jī)中斷向量控制器NVIC來(lái)分配優(yōu)先級(jí)的數(shù)量
- STM32單片機(jī)固件庫(kù)建立工程的方法及步驟
- 中國(guó)研究人員發(fā)明全新動(dòng)作好奇心算法 增強(qiáng)不確定環(huán)境下的自主導(dǎo)航
- 技術(shù)解析|沃爾沃XC70超級(jí)混動(dòng)有什么亮點(diǎn)?
- 小米汽車(chē):磁吸物理按鍵已接入米家,可通過(guò)APP操控
- 專(zhuān)家專(zhuān)論 | 顧劍民:L2級(jí)輔助駕駛激光雷達(dá)“價(jià)格歸零”
- 近一個(gè)月投資五家!京東密集落子具身智能機(jī)器人賽道
- 海外動(dòng)力電池裝車(chē)量TOP10:3家落榜 一新上榜中企暴增逾10倍
- 吉利汽車(chē):全域AI守護(hù)輔助駕駛安全
- 松下汽車(chē)系統(tǒng)與VicOne深化合作 共拓新一代智能座艙系統(tǒng)安全創(chuàng)新
- 汽車(chē)MCU的“芯”浪潮
- 具身智能如何大規(guī)模推廣?丨具身智能機(jī)器人高質(zhì)量發(fā)展
- 下載有禮:2017年泰克亞太專(zhuān)家大講堂第二期: 100G/200G/400G通訊標(biāo)準(zhǔn)發(fā)展趨勢(shì)及解決方案
- 下載資料有好禮:超凡富士通存儲(chǔ)器FRAM,安全、易寫(xiě)入、低功耗
- 有獎(jiǎng)直播:當(dāng)AI遇見(jiàn)仿真,會(huì)有什么樣的電子行業(yè)革新之路?
- 報(bào)名直播贏【手環(huán)、攝像頭、雨傘、手機(jī)支架】羅德與施瓦茨USB 3.2一致性測(cè)試
- 夏末狂歡,觀看TI 課程有好禮!
- 理想中的開(kāi)發(fā)板、萬(wàn)用表,好用不貴? e絡(luò)盟11.11搶購(gòu),給你機(jī)會(huì)!
- ADI有獎(jiǎng)下載活動(dòng)之14 ADI公司針對(duì)pH計(jì)和電導(dǎo)率儀的演示系統(tǒng)
- 【預(yù)約有禮】全球測(cè)量圈大咖直播:驗(yàn)證5G核心網(wǎng),確保最佳性能
- 粒子物理學(xué)離不開(kāi)人工智能
- 入門(mén)旗艦全都有 2018年7月發(fā)布的新手機(jī)推薦
- 外觀與性能兼具 顏值黨最?lèi)?ài)的手機(jī)盤(pán)點(diǎn)
- 李楠:發(fā)布會(huì)現(xiàn)場(chǎng)請(qǐng)大家配合!因魅族16幾無(wú)秘密
- 預(yù)算千元最優(yōu)選擇 性?xún)r(jià)比最高的入門(mén)機(jī)推薦
- 中國(guó)電信自研分布式物聯(lián)網(wǎng)操作系統(tǒng)和鴻蒙生態(tài)圈合作對(duì)接
- iPhone13需求強(qiáng)勁,鴻海精密三季度銷(xiāo)售額1.4萬(wàn)億元新臺(tái)幣
- 小米MIUI12.5增強(qiáng)版第三批穩(wěn)定版發(fā)版將啟動(dòng)
- 股票代碼“688230”,芯導(dǎo)科技將公開(kāi)發(fā)行1500萬(wàn)股
- 華天科技:子公司將出資5.7億元加碼布局先進(jìn)封測(cè)業(yè)務(wù)
- 數(shù)字地和模擬地為什么要分開(kāi)接
- 請(qǐng)問(wèn)可以用TMS320方812的事件管理器來(lái)對(duì)編碼器的脈沖信號(hào)計(jì)數(shù)嗎?
- MC9S12XET256芯片做串口通信經(jīng)驗(yàn)分享
- 在GPS產(chǎn)品中WINCE5.0是如何收費(fèi)的
- 求助AD18引腳顯示問(wèn)題??!
- 我也曬曬端午節(jié)前兌換的360攝像頭
- 大家說(shuō)說(shuō)這硬盤(pán)還能活多久
- Linux-2.6.21 S3c6400中斷剖析<一>(原創(chuàng))-上海嵌入式索漫科技培訓(xùn)教材
- 一篇圖文并茂的好文章-靜態(tài)時(shí)序分析(static timing analysis)基礎(chǔ)及應(yīng)用
- 如何選擇合適的基于Cortex的MCU應(yīng)用設(shè)計(jì)