亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于TEC-XP16的16位乘除指令設(shè)計(jì)

        2022-01-17 06:20:42宗德才王康康
        電子元器件與信息技術(shù) 2021年9期
        關(guān)鍵詞:觸發(fā)器寄存器乘法

        宗德才,王康康

        (1. 常熟理工學(xué)院 計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 常熟 215500;

        2. 江蘇科技大學(xué) 數(shù)理學(xué)院,江蘇 鎮(zhèn)江 212003)

        0 引言

        目前,國(guó)內(nèi)很多高校計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)主要是基于TEC-XP16教學(xué)機(jī)進(jìn)行的。為使學(xué)生系統(tǒng)建立整機(jī)概念,培養(yǎng)學(xué)生的計(jì)算機(jī)系統(tǒng)能力,亟需開發(fā)一些設(shè)計(jì)性的實(shí)驗(yàn),如為TEC-XP16教學(xué)機(jī)設(shè)計(jì)一些新指令。

        在TEC-2000微程序控制器中設(shè)計(jì)實(shí)現(xiàn)了NXOR等四條指令[1]。在TEC-2000微程序控制器中設(shè)計(jì)實(shí)現(xiàn)了NXOR和SWRM指令[2]。提出了在TEC-XP16組合邏輯控制器中設(shè)計(jì)實(shí)現(xiàn)SWRR等簡(jiǎn)單指令的方法[3]。提出了TEC-XP16微程序控制器中8bit無符號(hào)乘除指令的設(shè)計(jì)實(shí)現(xiàn)方法[4]。

        本文提出了一種在TEC-XP16教學(xué)機(jī)微程序控制器中設(shè)計(jì)16bit無符號(hào)乘法指令MULS、16bit無符號(hào)除法指令DIVS與16bit變形補(bǔ)碼乘法指令MULB的方法。

        實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的16bit無符號(hào)數(shù)乘法指令MULS、16bit無符號(hào)除法指令DIVS與16bit變形補(bǔ)碼乘法指令MULB是正確的。

        1 16bit乘除指令的設(shè)計(jì)實(shí)現(xiàn)

        本文設(shè)計(jì)實(shí)現(xiàn)了三條指令:16bit無符號(hào)乘法指令MULS、16bit無符號(hào)除法指令DIVS與16bit變形補(bǔ)碼乘法指令MULB。

        1.1 軟硬件環(huán)境

        在16bit乘除指令的設(shè)計(jì)實(shí)現(xiàn)過程中用到的硬件設(shè)備主要有TEC-XP16教學(xué)機(jī)、Lattice USB下載電纜HW-USB-2A等;使用的軟件主要有Lattice ispLEVER Classic 2.0和WinPcec等軟件。

        1.2 16bit乘除指令的設(shè)計(jì)

        下面將介紹三種16bit乘除指令的格式和功能并設(shè)計(jì)相應(yīng)的算法。主要以16bit變形補(bǔ)碼乘法指令為例,介紹其在TEC-XP16教學(xué)機(jī)微程序控制器中設(shè)計(jì)實(shí)現(xiàn)的過程。

        設(shè)計(jì)16bit乘除指令的主要步驟如下:

        (1)設(shè)計(jì)16bit乘除指令的功能,如表1所示。

        表1 MULS、MULB與DIVS指令的格式與功能

        (2)根據(jù)三種16bit乘除指令的功能和格式,分別設(shè)計(jì)了算法1,算法2,算法3。

        算法1.(16bit無符號(hào)數(shù)乘法).乘積高16bit存R6寄存器,乘積低16bit存R9寄存器。其中,Q寄存器是教學(xué)機(jī)AM2901運(yùn)算器芯片中的乘商寄存器。

        (1)初始化R6、R8寄存器,(R6) = 0,(R8) = 17,乘數(shù)從SR送Q寄存器。

        (2)R6與Q寄存器聯(lián)合右移一位,Q0移入C觸發(fā)器。

        (3)如果C為0,則轉(zhuǎn)(4),如果C不為0,轉(zhuǎn)(6)。

        (4)R8減1,結(jié)果不為0,則轉(zhuǎn)(5),結(jié)果為0,則轉(zhuǎn)(8)。

        (5)R6與Q寄存器聯(lián)合右移一位,Q0移入C觸發(fā)器,轉(zhuǎn)(3)。

        (6)R8減1,結(jié)果不為0,則轉(zhuǎn)(7),結(jié)果為0,則轉(zhuǎn)(8)。

        (7)(R6)+(DR)→R6,R6與Q寄存器聯(lián)合右移一位,Q0移入C觸發(fā)器,轉(zhuǎn)(3)。

        (8)Q寄存器內(nèi)容傳送到R9寄存器。

        基2 Booth算法[5]通過比較乘數(shù)相鄰兩位的值決定進(jìn)行加法、減法還是僅進(jìn)行移位操作。

        根據(jù)基2 booth算法,我們?cè)O(shè)計(jì)了16bit變形補(bǔ)碼乘法算法。

        算法2.(16bit變形補(bǔ)碼乘法).乘積為32bit變形補(bǔ)碼,乘積高16bit存R6寄存器,乘積低16bit存R9寄存器。

        (1)初始化R6、R8寄存器,(R6) = 0,(R8) = 17,乘數(shù)從SR送Q寄存器,C觸發(fā)器清0。

        (2)將Q寄存器內(nèi)容送R7寄存器。

        (3)將R7寄存器與C觸發(fā)器循環(huán)右移,將C觸發(fā)器值移到R7寄存器最高位,將R7寄存器最低位移入C觸發(fā)器。

        (4)檢查C的值,即Q0的值(Q0即乘數(shù)yn)。

        (5)將R7寄存器邏輯左移一位,將R7最高位移入C觸發(fā)器,檢查C的值(C即附加位)。

        (6)如果Q0=C,則轉(zhuǎn)(7),如果Q0=0,C=1,則轉(zhuǎn)(9),如果Q0=1,C=0,則轉(zhuǎn)(11)。

        (7)R8減1,結(jié)果不為0,則轉(zhuǎn)(8),結(jié)果為0,則轉(zhuǎn)(13)。

        (8)R6與Q寄存器聯(lián)合右移一位,Q0移入C觸發(fā)器,轉(zhuǎn)(2)。

        (9)R8減1,結(jié)果不為0,則轉(zhuǎn)(10),結(jié)果為0,則轉(zhuǎn)(13)。

        (10)(R6)+(DR)→R6,然后R6與Q寄存器聯(lián)合右移一位,Q0移入C觸發(fā)器,轉(zhuǎn)(2)。

        (11)R8減1,結(jié)果不為0,則轉(zhuǎn)(12),結(jié)果為0,則轉(zhuǎn)(13)。

        (12)(R6)-(DR)→R6,然后R6與Q寄存器聯(lián)合右移一位,Q0移入C觸發(fā)器,轉(zhuǎn)(2)。

        (13)Q寄存器內(nèi)容傳送到R9寄存器。

        算法3.(16bit無符號(hào)數(shù)除法). R9寄存器存16bit商,R7寄存器存余數(shù)。

        (1)初始化Q寄存器、R8寄存器,(Q) = 0,(R8) = 16,被除數(shù)從DR送R7寄存器。

        (2)(R7)-(SR)→R7,R7與Q寄存器聯(lián)合左移一位,RAM15移入C觸發(fā)器,Q0為/F15(其中,RAM15為運(yùn)算結(jié)果最低位,F(xiàn)15為運(yùn)算結(jié)果的符號(hào)位)。

        (3)如果C為0,則轉(zhuǎn)(4),如果C不為0,轉(zhuǎn)(6)。

        (4)R8減1,結(jié)果不為0,則轉(zhuǎn)(5),結(jié)果為0,則轉(zhuǎn)(8)。

        (5)(R7)-(SR)→R7,R7與Q寄存器聯(lián)合左移一位,RAM15移入C觸發(fā)器,Q0為/F15,轉(zhuǎn)(3)。

        (6)R8減1,結(jié)果不為0,則轉(zhuǎn)(7),結(jié)果為0,則轉(zhuǎn)(8)。

        (7)(R7)+(SR)→R7,R7與Q寄存器聯(lián)合左移一位,RAM15移入C觸發(fā)器,Q0為/F15,轉(zhuǎn)(3)。

        (8)Q寄存器內(nèi)容傳送到R9寄存器。

        (9)根據(jù)16bit乘除指令算法,設(shè)計(jì)16bit乘除指令的執(zhí)行步驟,其中MULB指令的執(zhí)行步驟如表3所示。

        表3 MULB指令的執(zhí)行步驟表

        (10)根據(jù)MULB指令執(zhí)行步驟表,設(shè)計(jì)每一條微指令的地址和下地址字段的值,并設(shè)計(jì)每一條微指令中每一個(gè)控制信號(hào)的值,最終得到MULB指令的微程序表。16bit無符號(hào)數(shù)乘法指令的操作碼為EAH,微程序入口地址為AFH,16bit無符號(hào)數(shù)除法指令的操作碼為EBH,微程序入口地址為D0H,16bit變形補(bǔ)碼乘法指令的操作碼為ECH,微程序入口地址為7FH。

        在TEC-XP16中,每一條微指令由下地址字段和控制命令字段組成[6]。16bit下地址字段包括8bit下地址、4bit命令碼和4bit微轉(zhuǎn)移條件,32bit控制命令字段包括3bit MRW信號(hào)、3bit I2~I(xiàn)0信號(hào)、3bit I8~I(xiàn)6信號(hào)、3bit I5~I(xiàn)3信號(hào)、4bit B口地址、4bit A口地址、3bit SST信號(hào)、3bit SSHSCI信號(hào)、3bit DC2信號(hào)、3bit DC1信號(hào)。

        當(dāng)命令碼CI3~CI0為0011時(shí),用于條件微轉(zhuǎn)移控制[7],如表2所示。

        表2 條件微指令轉(zhuǎn)移所依據(jù)的判斷條件表

        (11)根據(jù)MULB指令微程序表,修改描述MACH芯片功能的ABEL語言源程序m256c.abl,編譯適配后下載到MACH芯片中。

        首先,修改描述MACH芯片功能的ABEL語言源程序m256c.abl。所設(shè)計(jì)的MULB指令的操作碼為ECH,因此,加一行代碼:MULB = (IR==[1,1,1,0,1,1,0,0]);

        其次,依據(jù)表2修改源程序m256c.abl文件中CC信號(hào)的邏輯表達(dá)式。修改后的CC0與CC表達(dá)式如下所示:

        MACH芯片向AM2910器件提供8位下地址D7~D0,該地址有2個(gè)來源[8]。我們?cè)O(shè)計(jì)的MULB指令的微程序入口地址為7FH,因此,在D6、D5、D4、D3、D2、D1、D0的邏輯表達(dá)式中需增加MULB信號(hào)。

        然后,依據(jù)MULB指令微程序表中的內(nèi)容修改源程序m256c.abl文件中16bit下地址字段和32bit控制命令字段的邏輯表達(dá)式。由于論文篇幅關(guān)系代碼省略。

        最后,對(duì)修改后的m256c.abl文件編譯后下載到教學(xué)機(jī)MACH芯片中,其過程詳見文獻(xiàn)[3-4]。

        (12)設(shè)計(jì)程序驗(yàn)證所設(shè)計(jì)的16 bit乘除指令的功能。

        為了驗(yàn)證MULB指令的功能是否正確,在WinPcec16軟件中編寫了一個(gè)包含MULB指令的教學(xué)機(jī)程序,實(shí)現(xiàn)兩個(gè)16 bit變形補(bǔ)碼的乘法運(yùn)算。

        3123H的變形補(bǔ)碼×2123H的變形補(bǔ)碼=3123H×123H=065C3AC9H(變形補(bǔ)碼),

        3123H的變形補(bǔ)碼×(-2123H的變形補(bǔ)碼)=3123H×DEDDH=F9A3C537(變形補(bǔ)碼),

        程序運(yùn)行結(jié)果表明所設(shè)計(jì)的擴(kuò)展指令MULB是正確的,如圖1所示。

        圖1 包含MULB指令的教學(xué)機(jī)程序

        2 結(jié)論

        目前,國(guó)內(nèi)外還沒有研究在TEC-XP16教學(xué)機(jī)微程序控制器中設(shè)計(jì)16bit乘除指令的文獻(xiàn)。本文設(shè)計(jì)了一種16bit無符號(hào)數(shù)乘法指令、16bit無符號(hào)數(shù)除法指令與一種16bit變形補(bǔ)碼乘法指令,實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的16bit乘除指令是正確的。

        下一步將研究在TEC-XP16教學(xué)機(jī)組合邏輯控制器中設(shè)計(jì)實(shí)現(xiàn)16bit乘除指令等復(fù)雜指令的方法。

        猜你喜歡
        觸發(fā)器寄存器乘法
        算乘法
        我們一起來學(xué)習(xí)“乘法的初步認(rèn)識(shí)”
        《整式的乘法與因式分解》鞏固練習(xí)
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        把加法變成乘法
        主從JK觸發(fā)器邏輯功能分析
        電子世界(2017年22期)2017-12-02 03:03:45
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        使用觸發(fā)器,強(qiáng)化安全性
        對(duì)觸發(fā)器邏輯功能轉(zhuǎn)換的分析
        觸發(fā)器邏輯功能轉(zhuǎn)換的兩種方法
        成人免费看www网址入口| 一区二区精品天堂亚洲av| 国内自拍愉拍免费观看| 欧洲vat一区二区三区| 国产高清在线精品免费| 精品国产迪丽热巴在线| 亚洲成a人一区二区三区久久| 久久久久亚洲av综合波多野结衣| 久久亚洲免费精品视频| 亚洲人成网线在线播放va蜜芽 | 国产亚洲精选美女久久久久| 男人天堂插插综合搜索| 观看在线人视频| 人妻被黑人粗大的猛烈进出 | 中国国产不卡视频在线观看 | 天天夜碰日日摸日日澡| 亚洲精品美女久久久久久久| 日韩激情av不卡在线| 亚洲啪啪视频一区二区| 亚洲一区av在线观看| 乱人伦中文字幕成人网站在线| 青榴社区国产精品| 亚洲sm另类一区二区三区| 久久无码av一区二区三区| 色综合88| 久久人妻精品中文字幕一区二区| 日本边添边摸边做边爱| 日本欧美视频在线观看| 欧美精品日韩一区二区三区| 亚洲中文字幕一区二区在线| 好男人社区影院www| 国产欧美日韩专区| 三级日本午夜在线观看| 日本韩国男男作爱gaywww| www插插插无码免费视频网站 | 狼人av在线免费观看| 国产亚洲成人av一区| 成人无码免费一区二区三区| 人妻少妇人人丰满视频网站| 午夜男女靠比视频免费| 激情综合色综合久久综合|