999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

“計(jì)算機(jī)組成原理”實(shí)驗(yàn)CPU設(shè)計(jì)方法研究

2018-06-05 03:49:25王力生余智銘張冬冬
關(guān)鍵詞:指令功能設(shè)計(jì)

王力生, 余智銘, 張冬冬

(同濟(jì)大學(xué) 電子與信息工程學(xué)院, 上海 201800)

“計(jì)算機(jī)組成原理”是計(jì)算機(jī)專(zhuān)業(yè)基礎(chǔ)課程,其課程內(nèi)容與計(jì)算機(jī)多門(mén)專(zhuān)業(yè)課程聯(lián)系緊密,學(xué)生對(duì)其內(nèi)容的理解直接或間接地影響到對(duì)其他專(zhuān)業(yè)課程的學(xué)習(xí),并關(guān)系到學(xué)生對(duì)計(jì)算機(jī)系統(tǒng)的整體認(rèn)識(shí)[1-5]。

在教授這門(mén)課程時(shí)加入CPU設(shè)計(jì)實(shí)驗(yàn)可以幫助學(xué)生理解計(jì)算機(jī)的組成結(jié)構(gòu)[6],但是,由于CPU設(shè)計(jì)實(shí)驗(yàn)本身具有較高的難度,致使許多學(xué)生不能很好地完成課程實(shí)驗(yàn)。主要問(wèn)題在于學(xué)生設(shè)計(jì)CPU時(shí),數(shù)據(jù)通路設(shè)計(jì)不清[7]、信號(hào)傳輸錯(cuò)誤﹑各部件連接混亂等。針對(duì)這些實(shí)驗(yàn)教學(xué)問(wèn)題[8],本文提出了一種幫助學(xué)生更好地設(shè)計(jì)出單周期CPU的方法[9]。

1 設(shè)計(jì)方法

本文所設(shè)計(jì)的CPU是基于MIPS32構(gòu)架,由31條指令集組成。使用的設(shè)計(jì)語(yǔ)言為Verilog,采用的集成工具為Xilinx公司的Vivado。31條指令分別為[9]:

R型指令:add,addu,sub,subu,and,or,xor,nor,slt,sltu,sll,srl,sra,sllv,srlv,srav,jr;

I型指令:addi,addiu,andi,ori,xori,lw,sw,beq,bne,slti,sltiu,lui;

J型指令:j,jal。

本文所提出的CPU設(shè)計(jì)思路由以下步驟組成。

1.1 根據(jù)指令功能及格式設(shè)計(jì)CPU數(shù)據(jù)通路

根據(jù)指令功能和格式列出完成指令功能所需的部件,用部件關(guān)系表將每個(gè)部件的數(shù)據(jù)來(lái)源列出,根據(jù)關(guān)系表用連線將每個(gè)部件連接起來(lái),設(shè)計(jì)該指令的數(shù)據(jù)通路[10]。每條指令的數(shù)據(jù)通路單獨(dú)設(shè)計(jì)完后,再將所有數(shù)據(jù)通路合并成總的數(shù)據(jù)通路。

1.2 根據(jù)指令功能和數(shù)據(jù)通路設(shè)計(jì)CU

(1) 繪制指令流程圖。根據(jù)初步設(shè)計(jì)好的數(shù)據(jù)通路,把每一條機(jī)器指令分解為一系列微操作,并排列為有先后次序、互相銜接的指令流程圖。

(2) 編排指令操作時(shí)間表。依據(jù)各條機(jī)器指令的操作流程圖,編排指令取指到執(zhí)行的操作時(shí)間表。

(3) 進(jìn)行微操作綜合。按照所有機(jī)器指令的操作時(shí)間表,把相同的微操作綜合起來(lái),得到每個(gè)微操作的邏輯表達(dá)式。

(4) 畫(huà)出控制器CU邏輯電路。根據(jù)各微操作的邏輯表達(dá)式設(shè)計(jì)CPU控制單元。

2 設(shè)計(jì)舉例

由于31條指令集中的一些指令的數(shù)據(jù)通路和指令流程具有相似性,只是在指令拓展之后,需要加上相應(yīng)的數(shù)據(jù)選擇器,以確保數(shù)據(jù)能正確傳輸。因此在本文中,僅以部分具有代表性的指令進(jìn)行分析設(shè)計(jì),起到以小見(jiàn)大的作用。

2.1 根據(jù)指令功能及格式設(shè)計(jì)CPU數(shù)據(jù)通路

取R類(lèi)型的Addu指令、I類(lèi)型的lw指令、J類(lèi)型的j指令進(jìn)行分析:

2.1.1 Addu指令格式

Addu指令功能:rd←rs+rt , PC←NPC(PC+4)

該指令所涉及到的部件有PC,NPC(完成PC+4),IMEM(指令存儲(chǔ)器),RegFile以及ALU。各部件之間數(shù)據(jù)輸入輸出關(guān)系如表1所示。

表1 Addu指令部件數(shù)據(jù)輸入輸出關(guān)系

通過(guò)對(duì)指令功能的分析和數(shù)據(jù)的傳輸關(guān)系,可以畫(huà)出如圖1所示的Addu指令數(shù)據(jù)通路:

圖1 Addu指令數(shù)據(jù)通路

2.1.2 Lw指令格式

lw指令功能:rt ← memory[base+offset],PC←NPC(PC+4)

該指令所涉及的部件有PC,NPC(完成PC+4),IMEM(指令存儲(chǔ)器)、RegFile、ALU、S_Ext16(將16位二進(jìn)制符號(hào)擴(kuò)展到32位)和DMEM(數(shù)據(jù)存儲(chǔ)器),部件之間數(shù)據(jù)輸入輸出關(guān)系如表2所示,數(shù)據(jù)通路如圖2所示。

表2 Lw指令部件數(shù)據(jù)輸入輸出關(guān)系

圖2 Lw指令數(shù)據(jù)通路

2.1.3 J指令格式

J指令功能:該指令無(wú)條件跳轉(zhuǎn)到一個(gè)絕對(duì)地址,instr_index長(zhǎng)度26位,在左移2位后為28位,再與PC的最高4位(PC31-28)并接成32位轉(zhuǎn)移地址。

該指令所涉及的部件有PC、NPC(完成PC+4)、IMEM(指令存儲(chǔ)器)和 ||(并接器),部件之間數(shù)據(jù)輸入輸出關(guān)系如表3所示,數(shù)據(jù)通路如圖3所示。

表3 J指令部件數(shù)據(jù)輸入輸出關(guān)系

圖3 J指令數(shù)據(jù)通路

然后合并3條指令的數(shù)據(jù)通路,先將3條指令的部件關(guān)系表合并,如表4所示。某個(gè)部件有來(lái)自不同部件的輸入就用多路選擇器,合并的數(shù)據(jù)通路如圖4所示。

表4 3條指令部件數(shù)據(jù)輸入輸出關(guān)系

圖4 3條指令數(shù)據(jù)通路

2.2 根據(jù)指令功能和數(shù)據(jù)通路設(shè)計(jì)CU

2.2.1 繪制指令流程圖

獲得指令的數(shù)據(jù)通路圖后,可根據(jù)指令的運(yùn)行流程,繪制出指令流程圖。在指令流程圖中,應(yīng)標(biāo)明每一步所需要的信號(hào),這樣有助于理清各個(gè)信號(hào)的作用階段。圖5給出了Addu,Lw以及J指令的指令流程圖。

圖5 Addu、Lw、J指令流程圖

2.2.2 編排指令操作時(shí)間表

獲得數(shù)據(jù)通路圖和指令流程圖后,將所需要的所有信號(hào)和寄存器列出,再根據(jù)每條指令需要的信號(hào),編排指令操作時(shí)間表(假設(shè)所有控制信號(hào)高電平有效),如表5所示。從表中看到Rdc4-0來(lái)自2個(gè)輸入,所以加1個(gè)多路選擇器MUX4。3條指令完整的數(shù)據(jù)通路如圖6所示。

表5 指令操作時(shí)間表

2.2.3 進(jìn)行綜合微操作

根據(jù)第三步(2.2.2節(jié))的操作時(shí)間表,可將相同的微操作綜合起來(lái),得到每個(gè)微操作的邏輯表達(dá)式。Addu,Lw,J這3條指令的微操作綜合邏輯表達(dá)式結(jié)果為:

PC_CLK=CLK;

IM_R=1;

M1=Addu+Lw

Rsc4-0= IM25-21;

Rtc4-0= IM20-16;

M3=Lw

Add=Addu+Lw;

M2=Addu

Rdc4-0= IM15-11(Addu)+ IM20-16(Lw);

RF_W=Addu+Lw;

RF_CLK=(Addu+Lw)CLK;

DM_CS=Lw;

DM_R=Lw;

DM_W=0。

M4=Addu

圖6 三條指令完整數(shù)據(jù)通路

2.2.4 畫(huà)出CPU的CU邏輯電路

根據(jù)微操作邏輯表達(dá)式可以畫(huà)出對(duì)應(yīng)的邏輯電路圖(邏輯圖省略)。

3 CPU驗(yàn)證

通過(guò)前述的設(shè)計(jì)流程,得到了一個(gè)CPU的基本框架。通過(guò)Verilog語(yǔ)言實(shí)現(xiàn)CPU設(shè)計(jì),并使用ModelSim仿真工具進(jìn)行驗(yàn)證CPU的正確性并下板。

3.1 前仿真測(cè)試

3.1.1 單條指令功能驗(yàn)證

在此步驟中,需要對(duì)設(shè)計(jì)好的CPU進(jìn)行每條指令功能的驗(yàn)證。將匯編語(yǔ)言編寫(xiě)每一條指令的測(cè)試代碼,導(dǎo)入CPU的指令存儲(chǔ)器,在ModelSim下仿真運(yùn)行,通過(guò)輸出波形判斷指令執(zhí)行是否正確。以下舉一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明:

sll $0, $0, 0

ori $1, 0x00000001

ori $2, 0x00000002

addu $3, $2, $1

此匯編指令用于測(cè)試Addu指令(假設(shè)所用到的Sll指令和Ori指令已經(jīng)測(cè)試通過(guò))。將該指令放入CPU中運(yùn)行,并使用ModelSim進(jìn)行仿真后,結(jié)果如圖7所示,通過(guò)輸出波形判斷指令執(zhí)行是否正確。

圖7 單條指令測(cè)試波形

3.1.2 指令邊界數(shù)據(jù)驗(yàn)證

在單指令驗(yàn)證都正確的情況下,還需要對(duì)各指令的邊界數(shù)據(jù)進(jìn)行測(cè)試,對(duì)CPU進(jìn)行指令的完備性測(cè)試[10]。例如,對(duì)Addu指令進(jìn)行測(cè)試時(shí),選取邊界數(shù)據(jù):0x00000000,0xffffffff,0x0000ffff,0xffff0000,0x0f0f0f0f,0xf0f0f0f0,0x55555555,0xaaaaaaaa等。

多個(gè)測(cè)試單元可以作為多個(gè)測(cè)試程序執(zhí)行,也可以放在一個(gè)測(cè)試程序中順序執(zhí)行。然后將這些指令放入CPU中運(yùn)行,并用ModelSim仿真,觀察波形驗(yàn)證結(jié)果的正確性。

3.1.3 隨機(jī)指令序列驗(yàn)證

在此步驟中,可以自行編寫(xiě)一些符合MIPS規(guī)范的指令序列。為了方便結(jié)果驗(yàn)證與比較,可先將這些指令序列放入MIPS仿真工具中運(yùn)行[11],如MARS,獲得仿真結(jié)果后,再將指令序列放入CPU中運(yùn)行,將其運(yùn)行結(jié)果與MIPS仿真器中運(yùn)行的結(jié)果進(jìn)行比較,從而驗(yàn)證CPU功能的正確性。

3.1.4 程序驗(yàn)證

在完成了上面3步驗(yàn)證后,就可以運(yùn)行一個(gè)有意義的程序,觀察其運(yùn)行結(jié)果,檢測(cè)自己的CPU是否正確運(yùn)行。例如可以使用類(lèi)似快速排序和斐波拉契數(shù)列的程序來(lái)驗(yàn)證。

3.2 后仿真測(cè)試

時(shí)序仿真不同于功能仿真,時(shí)序仿真使用布局布線后器件給出的模塊和連線的延時(shí)信息,在最壞的情況下對(duì)電路的行為作出實(shí)際的評(píng)價(jià)[12]。兩者的差別在于時(shí)序仿真加載到仿真器的設(shè)計(jì),包括基于實(shí)際布局布線設(shè)計(jì)的最壞情況的布局布線延時(shí),并且在仿真結(jié)果波形圖中,時(shí)序仿真后的信號(hào)加載了時(shí)延,而功能仿真沒(méi)有。

后仿真分為2個(gè)步驟,先做指令序列測(cè)試,再做程序測(cè)試。但是要注意initial塊不可綜合,后仿真和下板時(shí)需要使用ip核初始化iram。如在后仿真出現(xiàn)時(shí)序問(wèn)題時(shí),先采取降低CPU主頻的方法來(lái)解決,如果不行的話,就必須分析問(wèn)題所在,修改或優(yōu)化CPU數(shù)據(jù)通路或部件。

3.3 下板驗(yàn)證

當(dāng)仿真驗(yàn)證都通過(guò)后,便可使用Vivado工具生成bitstream文件,進(jìn)行下板驗(yàn)證。使用的開(kāi)發(fā)板為XILINX公司的NEXYS4板。下板前,根據(jù)需要設(shè)計(jì)的功能,在Vivado工程中添加相應(yīng)的外設(shè)代碼,N4板可以提供led和7端數(shù)碼管等外設(shè)功能。之后再編寫(xiě)相應(yīng)的匯編代碼通過(guò)CPU對(duì)外設(shè)進(jìn)行控制,從而驗(yàn)證下板CPU的設(shè)計(jì)是否正確。

4 結(jié)語(yǔ)

本文提出了一種教學(xué)用的CPU設(shè)計(jì)過(guò)程,通過(guò)對(duì)指令功能的分析,設(shè)計(jì)數(shù)據(jù)通路圖,再到使用集成開(kāi)發(fā)工具編寫(xiě)CPU設(shè)計(jì)代碼,最后進(jìn)行仿真驗(yàn)證和下

板。這一過(guò)程從簡(jiǎn)單到復(fù)雜,從理論到實(shí)踐,循序漸進(jìn),逐步提高。學(xué)生通過(guò)完成CPU的設(shè)計(jì)過(guò)程,不僅鞏固了課本上的知識(shí),還拓展了工程實(shí)踐視野。本文所提出的實(shí)驗(yàn)設(shè)計(jì)方法,已經(jīng)在我校數(shù)屆學(xué)生中進(jìn)行了應(yīng)用,通過(guò)對(duì)學(xué)生的問(wèn)卷調(diào)查和實(shí)驗(yàn)結(jié)果的驗(yàn)收統(tǒng)計(jì),學(xué)生CPU設(shè)計(jì)成功率從最開(kāi)始的不到30%,逐漸提升到了50%,現(xiàn)今已經(jīng)達(dá)到了76%以上。而設(shè)計(jì)CPU的累計(jì)時(shí)長(zhǎng),也從最初的34 h以上,下降到如今的25 h左右,取得了良好的效果。

參考文獻(xiàn)(References)

[1] 鄒惠,王建東. 以CPU設(shè)計(jì)為核心的“計(jì)算機(jī)組成原理”課程教學(xué)改革探討[J]. 福建電腦,2016(3):84-85.

[2] 袁春風(fēng),陳貴海,黃宜華,等. “計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)”課程的教學(xué)現(xiàn)狀和改革思路[J].計(jì)算機(jī)教育,2009(16):153-156.

[3] 朱凌云. 對(duì)計(jì)算機(jī)組成原理教學(xué)的思考[J]. 計(jì)算機(jī)教育,2011(10):37-39.

[4] 鄒惠,王建東,劉坤起,等. “計(jì)算機(jī)組成原理”課程教學(xué)探討[J]. 工業(yè)和信息化教育,2014(12):45-48.

[5] 周剛,師維,陳潤(rùn),等.計(jì)算機(jī)組成原理實(shí)驗(yàn)創(chuàng)新性改革探索與實(shí)踐[J].實(shí)驗(yàn)技術(shù)與管理,2016,33(11):26-29.

[6] 徐愛(ài)萍,張玉萍,涂國(guó)慶. 基于VHDL之CPU設(shè)計(jì)與實(shí)踐[J]. 實(shí)驗(yàn)室研究與探索,2014,33(5):120-124.

[7] 黃明,陳龍. 基于MIPS指令的CPU邏輯電路設(shè)計(jì)[J]. 科技展望,2014(18):100-101.

[8] 王力生,王煜. 計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)方法改進(jìn)[J]. 電腦知識(shí)與技術(shù),2014(28):6704-6706

[9] MIPS Technologies, MIPS32TM Architecture For Programmers, Volume I[M]. Introduction to the MIPS32TM Architecture,Revision 0.95,2001.

[10] MIPS Technologies, Inc. MIPS32TMArchitecture For Programmers Volume II[M]. The MIPSTMInstruction Set, 2003.

[11] Lu S, Li G, Wang Y. CPU Design for Computer Integrated Experiment[J]. FECS12, 2012(8):594-600.

[12] 戚新宇. 基于FPGA設(shè)計(jì)的功能仿真和時(shí)序仿真[J]. 航空電子技術(shù),2005,36(3):51-54.

猜你喜歡
指令功能設(shè)計(jì)
聽(tīng)我指令:大催眠術(shù)
也談詩(shī)的“功能”
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
瞞天過(guò)海——仿生設(shè)計(jì)萌到家
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
關(guān)于非首都功能疏解的幾點(diǎn)思考
有種設(shè)計(jì)叫而專(zhuān)
Coco薇(2017年5期)2017-06-05 08:53:16
中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
辨證施護(hù)在輕度認(rèn)知功能損害中的應(yīng)用
主站蜘蛛池模板: 国产丝袜啪啪| 超清无码一区二区三区| 99热免费在线| 欧美在线黄| 少妇精品在线| 91在线播放国产| 潮喷在线无码白浆| 亚洲91精品视频| yy6080理论大片一级久久| 免费无码AV片在线观看国产| 伊人久久婷婷| 国产成+人+综合+亚洲欧美| 亚洲va在线观看| 丰满人妻久久中文字幕| 亚洲黄网在线| 多人乱p欧美在线观看| 99久久国产精品无码| 丁香六月综合网| 国产成人高清精品免费| 国产男女免费完整版视频| 伊人成人在线视频| 亚洲色大成网站www国产| 亚洲色偷偷偷鲁综合| 亚洲国产精品成人久久综合影院| 精品午夜国产福利观看| 久久黄色一级片| 久久免费精品琪琪| 国产福利大秀91| 久久这里只有精品66| 日日碰狠狠添天天爽| 中日无码在线观看| 午夜国产小视频| 一本大道香蕉中文日本不卡高清二区| 久操中文在线| 日本精品视频| 亚洲成人在线免费| 国产综合无码一区二区色蜜蜜| 四虎永久免费网站| 精品国产亚洲人成在线| 亚洲综合狠狠| 亚洲精品国产精品乱码不卞| 日韩人妻精品一区| 狼友视频国产精品首页| 精品亚洲麻豆1区2区3区| 在线亚洲小视频| 国产精品一区二区无码免费看片| 99九九成人免费视频精品| jizz亚洲高清在线观看| 欧美成人精品一级在线观看| 无码日韩人妻精品久久蜜桃| 亚洲成年网站在线观看| 亚洲人成亚洲精品| 一级看片免费视频| 欧美一区二区三区不卡免费| 欧美成人手机在线视频| 91亚洲精选| 中文字幕资源站| 久久精品丝袜高跟鞋| 亚洲AV永久无码精品古装片| 国产成人毛片| 免费黄色国产视频| 日韩无码黄色| 99精品高清在线播放| 999福利激情视频| 97av视频在线观看| 老熟妇喷水一区二区三区| 性色一区| 精品视频在线观看你懂的一区| 久久综合色视频| 国产乱码精品一区二区三区中文| 久青草国产高清在线视频| 黄片在线永久| 亚洲一区二区三区国产精华液| 一级全免费视频播放| 欧美精品亚洲二区| 免费 国产 无码久久久| 婷婷亚洲综合五月天在线| 欧美另类精品一区二区三区| 无码网站免费观看| 国产你懂得| 国产xx在线观看| 国产亚卅精品无码|