【正文】
0000000000110111110111 計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告 4 S60 100000000000110111110111 S61 100000000000110111110111 S62 100000000000110111110111 控制引腳圖: 五、 調(diào)試運(yùn)行結(jié)果: VHDL 程序: LIBRARY IEEE。 USE 。 ENTITY CONTROLLER IS PORT( RESET : IN STD_LOGIC。 T1 : IN STD_LOGIC。 INTR : IN STD_LOGIC。 INS : IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 CTRL : OUT STD_LOGIC_VECTOR(23 DOWNTO 0) )。 END CONTROLLER。 ARCHITECTURE CONTROLLER_ARCH OF CONTROLLER IS TYPE STATE IS (S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16, S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,S27,S28,S29,S30,S31,S32,S33,S34,S35, S36,S37,S38,S39,S40,S41,S42,S43,S44,S45,S46,S47,S48,S49,S50,S51,S52,S53,S54, S55,S56,S57,S58,S59,S60,S61,S62)。 SIGNAL CUFSM: STATE。 C 2 3 C 2 2 C 2 1 C 2 0 C 1 9 C 1 6 C 1 5 C 1 4 C 1 3 C 1 2 C 1 1 C 1 0 C 9 C 8 C 7 C 6 C 5 C 4 C 3 C 2 C 1 C 0 I N T A W R R D I O M S 3 S 0 L D A L D B L D R i L D S P L 0 A D L D A R L D I R A L U B R S B R D B R I B S P B P C B L D P C S T I C L I I N T R R E S E T T 1 I N S 7 … … IN S 0A 3 1 A 3 2 A 3 3 A 3 4 A 3 0 … … A 2 7 A 0 1 A 0 2 A 2 3 A 2 4 A 0 3 A 0 4 A 2 1 A 2 2 A 2 0 A 1 9 A 1 8 A 1 7 A 2 5 A 2 6 A 1 3 A 1 4D 3 6 D 3 7 D 3 8 D 1 7 … … D 2 4 計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告 5 CTRL:INTA,WR,RD,IOM,S3,S2,S1,S0,LDA,LDB,LDRI,LDSP,LOAD,LDAR,LDIR,ALU_B,RS_B,RD_B,RI_B,SP_B,PC_B,LDPC,STI,CLI BEGIN PROCESS (T1,RESET,INTR,INS) BEGIN IF RESET = 39。039。 THEN CTRL = 100000000000100111111010。 CLI CUFSM = S0。 ELSIF T139。EVENT AND T1 = 39。139。 THEN CASE CUFSM IS WHEN S0 = CTRL = 100000000000100111111011。 中斷判斷 CUFSM = S1。 WHEN S1 = IF INTR=39。139。 THEN CTRL = 000000000000110111101011。 R0BUS,BUSA CUFSM = S33。 ELSE CTRL = 100000000000110111110111。 CUFSM = S2。 END IF。 WHEN S33= CTRL = 110000000000100111110011。 CUFSM = S34。 WHEN S34= CTRL = 100000001000100111101011。 CUFSM = S35。 WHEN S35= CTRL = 100011010001100011111011。 CUFSM = S36。 WHEN S36= CTRL = 000000000000110111111011。 計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告 6 CUFSM = S37。 WHEN S37= CTRL = 101000000000000111111111。 CUFSM = S38。 WHEN S38= CTRL = 100000000000110111110111。 CUFSM = S2。 WHEN S2= CTRL = 101000000000101111111011。 CUFSM = S3。 WHEN S3 = IF INS(7 downto 4) = 0000 THEN ADD INS CTRL = 100000001000100110111011。 CUFSM = S47。 ELSIF INS(7 downto 4) = 0001 THEN AND INS CTRL = 100000001000100110111011。 CUFSM = S48。 ELSIF INS(7 downto 4) = 0010 THEN IN INS CTRL = 100000000000110111110111。 CUFSM = S49。 ELSIF INS(7 downto 4) = 0011 THEN OUT INS CTRL = 100000000000110111110111。 CUFSM = S50。 ELSIF INS(7 downto 4) = 0100 THEN MO