亚洲免费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 引言

        目前,國內(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等簡單指令的方法[3]。提出了TEC-XP16微程序控制器中8bit無符號乘除指令的設(shè)計(jì)實(shí)現(xiàn)方法[4]。

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

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

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

        本文設(shè)計(jì)實(shí)現(xiàn)了三條指令:16bit無符號乘法指令MULS、16bit無符號除法指令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無符號數(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算法,我們設(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無符號數(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é)果的符號位)。

        (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è)控制信號的值,最終得到MULB指令的微程序表。16bit無符號數(shù)乘法指令的操作碼為EAH,微程序入口地址為AFH,16bit無符號數(shù)除法指令的操作碼為EBH,微程序入口地址為D0H,16bit變形補(bǔ)碼乘法指令的操作碼為ECH,微程序入口地址為7FH。

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

        當(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信號的邏輯表達(dá)式。修改后的CC0與CC表達(dá)式如下所示:

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

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

        最后,對修改后的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é)論

        目前,國內(nèi)外還沒有研究在TEC-XP16教學(xué)機(jī)微程序控制器中設(shè)計(jì)16bit乘除指令的文獻(xiàn)。本文設(shè)計(jì)了一種16bit無符號數(shù)乘法指令、16bit無符號數(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)識”
        《整式的乘法與因式分解》鞏固練習(xí)
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        把加法變成乘法
        主從JK觸發(fā)器邏輯功能分析
        電子世界(2017年22期)2017-12-02 03:03:45
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        使用觸發(fā)器,強(qiáng)化安全性
        對觸發(fā)器邏輯功能轉(zhuǎn)換的分析
        觸發(fā)器邏輯功能轉(zhuǎn)換的兩種方法
        欧美a在线播放| 成人国成人国产suv| 超碰97资源站| 久久精品中文字幕第23页| 亚洲亚洲亚洲亚洲亚洲天堂| 爱爱免费视频一区二区三区| 欧美噜噜久久久xxx| 激情内射亚州一区二区三区爱妻| 久久免费观看国产精品| 麻豆成人久久精品二区三区91| 91露脸半推半就老熟妇| 亚洲国产成人久久综合下载| 午夜tv视频免费国产区4| 女同视频网站一区二区| 中文字幕亚洲乱码成熟女1区| 欧洲女人性开放免费网站| 国产一区二区三区啪| 日本一区二区三区在线观看视频| 欧美高清视频手机在在线| 日本少妇被黑人xxxxx| 成 人 网 站 在线 看 免费| 亚洲精品成人一区二区三区| 国产成人av一区二区三区在线观看 | 国产成人综合久久精品推荐免费| 中文字幕文字幕视频在线| 无码av中文一区二区三区桃花岛| 秋霞鲁丝片av无码| 国产亚洲成年网址在线观看| 亚洲日本中文字幕高清在线| 久久99精品久久久久久9蜜桃| 亚洲综合色一区二区三区小说| 中文字幕高清一区二区| 国产极品美女高潮无套| 最近最好的中文字幕2019免费 | 少妇精品亚洲一区二区成人| 国产麻豆精品久久一二三| 一区二区三区国产在线网站视频| 亚洲乱码中文字幕三四区| 无码视频在线观看| 日本成人久久| 久久久免费精品国产色夜|