【正文】
M的配置方法; (4)掌握微程序的設(shè)計(jì)方法,學(xué)會(huì)編寫(xiě)二進(jìn)制微指令代碼表; (5)在掌握部件單元電路實(shí)驗(yàn)的基礎(chǔ)上,進(jìn)一步將單元電路組成系統(tǒng),構(gòu)造一 臺(tái)基本模型計(jì)算機(jī)。如其功能模塊框圖21 所示。虛線框外部分主要是輸入/輸出裝置,包括鍵盤(pán)、數(shù)碼管、LCD 顯示器等,用于向CPU 輸入數(shù)據(jù),或CPU 向外輸出數(shù)據(jù),以及觀察CPU 內(nèi)部工作情況及運(yùn)算結(jié)果。模型中,計(jì)算機(jī)數(shù)據(jù)通路的控制將由微過(guò)程控制器來(lái)完成,CPU 從內(nèi)存中取出一條機(jī)器指令到指令執(zhí)行結(jié)束的一個(gè)指令周期,全部由微指令組成的序列來(lái)完成,即一條機(jī)器指令對(duì)應(yīng)一個(gè)微程序。本實(shí)驗(yàn)采用五條機(jī)器指令。 單字節(jié)指令格式7 6 5 43 21 0操作碼源寄存器目的寄存器 雙字節(jié)指令格式7 6 5 4 3 2 1 07 6 5 4 3 2 1 0操作碼操作數(shù)(內(nèi)存地址碼)源和目的寄存器可以是三個(gè)工作寄存器之一,寄存器標(biāo)號(hào)R0為00,R1為01,R2為10。(KWE):下載實(shí)驗(yàn)程序后按總清除按鍵(CLR)后,控制臺(tái)SWA、SWB為“0 1”時(shí),可對(duì)RAM連續(xù)手動(dòng)寫(xiě)操作。(2)模型計(jì)算機(jī)硬件模型機(jī)硬件有以下部分組成:運(yùn)算器:采用8位運(yùn)算器ALU181,實(shí)現(xiàn)算術(shù)邏輯運(yùn)算。程序計(jì)數(shù)器PC:用來(lái)指示執(zhí)行指令的地址,以便從內(nèi)存取得指令。指令寄存器IR:鎖存取得的指令,供控制電路解碼分析執(zhí)行。存放可編程程序和數(shù)據(jù)的存儲(chǔ)器RAM也在芯片上實(shí)現(xiàn)(像單片機(jī)一樣)??刂破鞑捎梦⒊绦蛟O(shè)計(jì)。 24位微代碼定義24232221201918171615 14 1312 11 109 8 7654321S3S2S1S0MCnWEA9A8A字段B字段C字段uA5uA4uA3uA2uA1uA0操作控制信號(hào)譯碼器下址字段A字段B字段C字段151413選擇121110選擇987選擇000000000001LDRi001RS_B001P(1)010LDR1010RD_B010P(2)011LDR2011RJ_B011P(3)100LDIR100SFT_B100P(4)101LOAD101ALU_B101LDAR110LDAR110PC_B110LDPC24位微代碼信號(hào)的功能解釋如下:① S3S1,ALU的操作選擇信號(hào),控制執(zhí)行16種算術(shù)邏輯操作之一種;② M,ALU操作方式選擇,等于O為算術(shù)操作,等于1時(shí)執(zhí)行邏輯操作;③ CN ,進(jìn)位標(biāo)志,等于0時(shí),最低位有進(jìn)位輸入,等于1表示無(wú)進(jìn)位。⑤ A9,A8,經(jīng)譯碼產(chǎn)生鍵盤(pán)SW_B,存儲(chǔ)器RAM,輸出顯示LED通路選擇信號(hào)。 圖22微程序流程圖 1. IN 指令 根據(jù)PC里面的地址將其存放到地址寄存器中,然后根據(jù)地址寄存器中的地址找到RAM中的對(duì)應(yīng)存儲(chǔ)單元將第一條指令的IN取出放到指令寄存器中,然后譯碼,經(jīng)地址轉(zhuǎn)移邏輯在ROM中找到對(duì)應(yīng)微指令的入口地址開(kāi)始執(zhí)行,將SW輸入的值送入R0中。3. STA 指令 PCAR:將PC里的值放入到地址寄存器AR中, PC+1:計(jì)數(shù)器的值加一,指向這條指令的地址碼, PCAR:將PC里的值放入到地址寄存器中, PC+1:計(jì)數(shù)器中的值是指向下一條指令的操作碼。 4. OUT 指令 根據(jù)PC里面的數(shù)值將OUT指令的操作碼取出放入到指令寄存器,PC+1,又根據(jù)PC里的內(nèi)容取出指令的地址碼,根據(jù)地址碼,取出對(duì)應(yīng)存儲(chǔ)單元的數(shù)據(jù)通過(guò)總線,放到DR1中,最后輸出到顯示屏上。將該字節(jié)的內(nèi)容送給程序計(jì)數(shù)器PC,實(shí)現(xiàn)程序的轉(zhuǎn)移:AR←PC,PC←PC+1 ;以PC 的內(nèi)容作為取數(shù)據(jù)的地址BUS←RAM,PC←BUS ;將RAM 內(nèi)容送PC,實(shí)現(xiàn)程序轉(zhuǎn)移將每一條指令的微操作編輯在一起,就得到全部指令的微程序流程圖,如圖22所示。 算術(shù)邏輯單元ALU 是ALU181,其運(yùn)算功能與74LS181 類(lèi)似,但用VHDL 語(yǔ)言編寫(xiě),是一個(gè)8 位的運(yùn)算器。USE 。 ENTITY ALU181 IS PORT ( S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 )。 B : IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 COUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 CN : IN STD_LOGIC。 FZ : OUT STD_LOGIC )。ARCHITECTURE behav OF ALU181 ISSIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0)。SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0)。039。 A 。039。 B 。039。 ELSE F9=NOT A9。 WHEN 0001 = IF M=39。 THEN F9=(A9 OR B9) + CN 。 END IF。039。 ELSE F9=(NOT A9) AND B9。 WHEN 0011 = IF M=39。 THEN F9= 000000000 CN 。 END IF。039。 ELSE F9=NOT (A9 AND B9)。 WHEN 0101 = IF M=39。 THEN F9=(A9 OR B9)+(A9 AND NOT B9)+CN 。 END IF。039。 ELSE F9=A9 XOR B9。 WHEN 0111 = IF M=39。 THEN F9=(A9 AND (NOT B9)) CN 。 END IF。039。 ELSE F9=(NOT A9) OR B9。 WHEN 1001 = IF M=39。 THEN F9=A9 + B9 + CN 。 END IF。039。 ELSE F9=B9。 WHEN 1011 = IF M=39。 THEN F9=(A9 AND B9) CN 。 END IF。039。 ELSE F9= 000000001。 WHEN 1101 = IF M=39。 THEN F9=(A9 OR B9) + A9 + CN 。 END IF。039。 ELSE F9=A9 OR B9。 WHEN 1111 = IF M=39。 THEN F9=A9 CN 。 END IF。 END CASE。039。 ELSE FZ = 39。 END IF。 F= F9(7 DOWNTO 0) 。COUT = 0000 WHEN F9(8) = 39。 ELSE 0001 。ALU 的兩個(gè)8 位數(shù)據(jù)輸入端的數(shù)據(jù)暫存器DR1 和DR2,則