【正文】
R2。 WHEN 0011= R3:=R0。 WHEN OTHERS= NULL。 END CASE。 WHEN OTHERS = NULL。 END CASE。 WHEN 3= 狀態(tài)3 CASE IR(15 DOWNTO 12) IS WHEN Swap= Swap: A to Rx CASE IR(11 DOWNTO 10) IS WHEN 00= R0:=A。 WHEN 01= R1:=A。 WHEN 10= R2:=A。 WHEN OTHERS= R3:=A。 END CASE。 WHEN jmp|Jz|Read|Write = IR(7 DOWNTO 0)= M_data_in。 取雙字節(jié)指令的后半部分 PC := PC+1。 WHEN OTHERS = NULL。 END CASE。 WHEN 4= 狀態(tài)4 CASE IR(15 DOWNTO 12) IS WHEN jmp = 無(wú)條件轉(zhuǎn)移指令 PC := IR(11 DOWNTO 0)。 MAR = IR(11 DOWNTO 0)。 WHEN Jz = 條件轉(zhuǎn)移指令 IF(R0=00000000) then PC := IR(11 DOWNTO 0)。 MAR = IR(11 DOWNTO 0)。 else MAR = PC。 END IF。 WHEN Read = MAR = IR(11 DOWNTO 0)。 WHEN Write = MAR = IR(11 DOWNTO 0)。 MDR = R0。 WHEN OTHERS = NULL。 END CASE。 WHEN 5 = 狀態(tài)5 MAR = PC。 WHEN 6 = 狀態(tài)6 CASE IR(15 DOWNTO 12) IS WHEN Read = R0 := M_data_in。 WHEN OTHERS= NULL。 END CASE。 END CASE。 END IF。 END process seq。 b: PROCESS (reset, status) BEGIN IF (reset = 39。139。 AND status = 5 AND IR(15 DOWNTO 12)= Write ) THEN Write_Read = 39。139。 ELSE Write_Read = 39。039。 END IF。 END PROCESS b。 M_address = MAR。 M_data_out = MDR。END RTL。圖3 波形圖1圖4 波形圖2解釋如下: 圖5 指令含義通過(guò)本實(shí)驗(yàn)我學(xué)到很多有用知識(shí),不僅提高了我的系統(tǒng)設(shè)計(jì)和軟件編程的能力,還讓我對(duì)計(jì)算機(jī)組成原理實(shí)驗(yàn)課程有了更一步的掌握和認(rèn)識(shí)。在本課程設(shè)計(jì)中,除了對(duì)CPU內(nèi)部運(yùn)算器,控制器以及存儲(chǔ)器之間的聯(lián)系與分工合作的了解之外,在建立波形圖時(shí),由于受平日建圖的影響,忘記添加CPU內(nèi)部寄存器組,另外在添加寄存器信號(hào)后,還要將相同的劃成一個(gè)GROUP,在這之前的練習(xí)中,我是沒(méi)有接觸過(guò)的。這次練習(xí)掌握的一些新知識(shí),相信在未來(lái)對(duì)我會(huì)有巨大幫助