關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 16位微控制器的設(shè)計(jì)與實(shí)現(xiàn)

16位微控制器的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2010-08-27 來(lái)源:網(wǎng)絡(luò) 收藏
如圖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開始計(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所示。

本文引用地址:http://butianyuan.cn/article/162885.htm


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é)果寫入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)算。
6)4周期 將加法結(jié)果放到RAM數(shù)據(jù)線上,地址線=opl,發(fā)寫信號(hào)。將加法結(jié)果寫回到opl中,并依據(jù)結(jié)果對(duì)PSW進(jìn)行處理。
7)5周期 無(wú)動(dòng)作,用于寫回操作的過(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è)試,首先編寫簡(jiǎn)單的機(jī)器碼測(cè)試向量進(jìn)行初步調(diào)試:然后使用編譯器寫匯編程序,編譯成二進(jìn)制機(jī)器碼進(jìn)行程序功能測(cè)試。在集成測(cè)試中,編寫匯編測(cè)試程序,用編譯器編譯成機(jī)器碼,在Cadenee NC下運(yùn)行這些測(cè)試程序進(jìn)行仿真測(cè)試。對(duì)每條指令均測(cè)試了其各種尋址方式,且測(cè)試程序自動(dòng)向DEBUG寄存器寫測(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à)值。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 編解碼器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉