微程序控制器实验2

合集下载

计算机组成原理-微程序控制器实验报告

计算机组成原理-微程序控制器实验报告

计算机组成原理实验之微程序控制器实验一、实验目的1.掌握时序发生器的组成原理。

2.掌握微程序控制器的组成原理。

二、实验内容1.实验电路(1)时序发生器电路本实验所用的时序电路见图4.1。

电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。

另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生。

图4.1 时序信号发生器(2)微程序控制器电路图4.2微程序控制器电路微地址转移逻辑表达式:A5=D5=μA5;A4=D4=C•P2+μA4;A3=D3=IR7•P1+μA3;A2=D2=IR6•P1+SWC•P0+μA2;A1=D1=IR5•P1+SWB•P0+μA1;A0=D0=IR4•P1+SWA•P0+μA0。

2.一些关键技术(1)微指令格式图4.3微指令格式(3)上述8条指令的微程序流程图如图4.4所示图4.4微程序流程图(4)微程序代码表表4-2微程序代码表微指令KT RRF WRF RRM WRM PR当前微地址00 0C 1E 06 07 0B 1D 0D 0E 0A 02 03 09 04 05 08 0F 下一微地址08 1E 06 07 1E 1D 0D 0E 1D 02 03 02 04 05 04 0F 10P0 1 . . . . . . . . . . . . . . . .P1 . . . . . . . . . . . . . . . . 1P2 . . . . . . . . . . . . . . . . .备用. . . . . . . . . . . . . . . . .TJ . 1 . . 1 1 . 1 1 . 1 . 1 . 1 . .LDIR . . . 1 . . . 1 . . . . . . . . 1PC+1 . . . . . . . . . . . . . . . . .LDPC# . 1 . . . 1 . . . . . . . . . 1AR+1 . . . . . . . . . . . 1 . . 1 . .LDAR# . 1 . . . 1 . . . 1 . . 1 . . . . LDDR1 . . . . . . . . . . . . . . . . . LDDR2 . . . . . . . . . . . . . . . . . LDRi . . . . . . . . 1 . . . . . . . .SW_BUS# . 1 1 . . 1 1 . 1 1 . . 1 1 . 1 . RS_BUS# . . . . 1 . . . . . . . . . . . . ALU_BUS# . . . . . . . . . . . . . . . . . RAM_BUS# . . . . . . . . . . 1 . . . . . . CER# . . . 1 . . . 1 . . . . . . . . 1 CEL# . . 1 . . . 1 . . . 1 . . 1 . . . LR/W# . . 0 . . . 0 . . . 1 . . 0 . . . Cn# . . . . . . . . . . . . . . . . .M . . . . . . . . . . . . . . . . .S0 . . . . . . . . . . . . . . . . .S1 . . . . . . . . . . . . . . . . .S2 . . . . . . . . . . . . . . . . .S3 . . . . . . . . . . . . . . . . .表4-2微程序代码表(续)微指令ADD SUB AND STA LDA JC STP OUT当前微地址10 18 11 19 12 1A 13 1B 14 1C 15 1F 16 17 下一微地址18 0F 19 0F 1A 0F 1B 0F 1C 0F 0F 0F 0F 0FP0 . . . . . . . . . . . . . .P1 . . . . . . . . . . . . . .P2 . . . . . . . . . . 1 . . .备用. . . . . . . . . . . . . .TJ . . . . . . . . . . . . 1 1LDIR . . . . . . . . . . . . . .PC+1 . 1 . 1 . 1 . 1 . 1 1 . 1 1LDPC# . . . . . . . . . . . 1 . .AR+1 . . . . . . . . . . . . . .LDAR# . . . . . 1 . 1 . . . . .LDDR1 1 . 1 . 1 . 1 . . . . . . .LDDR2 1 . 1 . 1 . . . . . . . . .LDRi . 1 . 1 . 1 . . . 1 . . . .SW_BUS# . . . . . . . . . . . . . .RS_BUS# . . . . . . 1 . 1 . . 1 . 1ALU_BUS# . 1 . 1 . 1 . 1 . . . . . .RAM_BUS# . . . . . . . . . 1 . . . .CER# . . . . . . . . . . . . . .CEL# . . . . . . . 1 . 1 . . . .LR/W# . . . . . . 0 . 1 . . . .Cn# . . . 1 . . . . . . . . . .M . 0 . 0 . 1 . 0 . . . . . .S0 . 1 . 0 . 1 . 0 . . . . . .S1 . 0 . 1 . 1 . 0 . . . . . .S2 . 0 . 1 . 0 . 0 . . . . . .S3 . 1 . 0 . 1 . 0 . . . . . .注:后缀为#的信号都是低电平有效信号,为了在控存ROM中用“1”表示有效,这些信号在控制器中经过反相后送往数据通路。

计算机组成原理实验报告微程序控制器实验

计算机组成原理实验报告微程序控制器实验

膁实验三微程序控制器实验一.二. 薅实验目的与要求:芄实验目的:1.2.薃理解时序产生器的原理,认识时钟和时序信号的波形;3.4.虿掌握微程序控制器的功能,构成知识;5.6.薈掌握微指令格式和各字段功能;7.8.莄掌握微程序的编制,写入,察看微程序的运转,学习基本指令的履行流程。

蚀实验要求:1.2.莁实验前,要求做好实验预习,并复习已经学过的控制信号的作用;3.4. 莇按练习一要求达成丈量波形的操作,画出TS1,TS2,TS3,TS4的波形,并测出所用的脉冲Ф周期。

按练习二的要求输入微指令的二进制代码表,并单步运转五条机器指令。

三.四. 蒄实验方案:肁按实验图在实验仪上接好线后,认真检查无误后可接通电源。

1.2. 肃练习一:用联机软件的逻辑示波器观察时序信号,丈量Ф,TS1,TS2,TS3,TS4 信号的莀方法以下:螈(1)TATEUNIT 中 STOP开关置为“ RUN”状态(向上拨), STEP开关置为“ EXEC”状态(向上拨)。

螆(2) 将 SWITCHUNIT中右下角 CLR开关置为“ 1” ( 向上拨)。

螅(3) 按动“ START”按钮,即可产生连续脉冲。

莃( 4)调试”菜单下的“显示逻辑示波器窗口,即可出现丈量波形的画面。

袈( 5)探头一端接实验仪左上角的CH1,另一端接STATEUNIT中的Ф插座,即可测出时钟Ф的波形。

膇( 6)探头一端接实验仪左上角的CH2,另一端接STATEUNIT中的 TS1 插座,即可测出TS1 的波形;节( 7)探头一端接实验仪左上角的CH1,另一端接STATEUNIT中的 TS2 插座,即可测出TS2 的波形。

膂( 8)将红色探头一端接实验仪左上角的CH1,另一端接STATEUNIT中的 TS3插座,即可测出TS3 的波形。

羈( 9)将红色探头一端接实验仪左上角的CH1,另一端接STATEUNIT中的 TS4插座,即可测出TS4 的波形。

3.4.薇察看微程序控制器的工作原理:①②羄关掉实验仪电源,拔掉前面测时序信号的接线;③2④羀编程写入 E PROM2816A.B.肈将编程开关(MJ20)置为 PROM(编程)状态;C.D. 蚄将实验板上 STATEUNIT中的 STEP置为 STEP状态, STOP置为 RUN状态, SWITCHUNIT中 CLR开关置为1 状态;E.F. 蒂在右上角的 SWITCHUNIT中 UA5-UA0开关上置表 3.2 中某个要写的微地点;G.H. 虿在 MK24-MK1开关上置表 3.2 中要写的微地点后边的 24 位微代码, 24 位开关对应 24 位显示灯,开关置为 1时灯亮,为 0 时灯灭;I.J. 膈启动时序电路,马上微代码写入到E2PROM2816的相应地点对应的单元中;K.L. 肅重复 C-E 步骤,将表 3.2 的每一行写入E2PROM2816。

微程序控制器原理实验报告

微程序控制器原理实验报告

微程序控制器原理实验报告一、引言微程序控制器作为计算机系统的重要组成部分,扮演着指挥和控制计算机操作的关键角色。

本实验报告将对微程序控制器的原理进行探讨,并描述相关实验的设计、步骤、结果和分析。

二、微程序控制器的原理2.1 微程序控制器的概念微程序控制器是一种控制计算机操作的技术,通过将指令集中的每个指令分解为一系列微操作,并以微指令的形式存储在控制存储器中,从而实现指令的执行控制。

2.2 微指令的组成和格式微指令由多个字段组成,每个字段代表一个微操作控制信号。

常见的微指令格式包括微地址字段、条件码字段、操作码字段等。

2.3 微指令的执行过程微指令的执行过程包括指令的取指、译码、执行和写回等阶段。

每个阶段对应微指令的不同部分,通过控制信号的转换和传递,完成相应的操作。

三、微程序控制器的设计与实验3.1 设计思路在进行微程序控制器实验前,需要明确实验的目标和设计思路。

实验通常包括以下几个步骤:确定指令集、确定微指令格式、设计控制存储器、设计控制逻辑电路等。

3.2 实验步骤1.确定指令集:根据实验需求,确定需要支持的指令集。

2.确定微指令格式:根据指令集的要求,设计适合的微指令格式。

3.设计控制存储器:根据微指令格式,设计控制存储器的结构和内容。

4.设计控制逻辑电路:根据微指令的执行过程,设计控制逻辑电路,实现指令的控制和转换。

5.构建实验平台:将设计的控制存储器和控制逻辑电路构建成实验平台,并与计算机系统相连。

6.进行实验:在实验平台上执行指令,观察和记录实验结果。

3.3 实验结果与分析根据实验步骤中的设计和操作,得到了相应的实验结果。

通过比对实验结果和预期效果,可以对微程序控制器的设计和实验进行分析和评估。

四、总结与展望微程序控制器作为计算机系统的关键组成部分,通过微操作的方式实现指令的执行控制。

本实验报告对微程序控制器的原理进行了探讨,并描述了相关实验的设计、步骤、结果和分析。

通过实验,我们深入理解了微程序控制器的工作原理和设计方法。

微程序控制器实验报告

微程序控制器实验报告

一、实验目的1、通过实验,进一步理解微程序控制器的组成结构。

理解微程序控制器的控制原理2、加深理解微程序控制器的工作原理。

掌握指令流程与功能3、理解掌握微程序控制器的设计思路与方法二、实验内容与步骤1、微程序控制器的组成原理控制存储器:实现整个指令系统的所有微程序,一般指令系统是规定的由高速半导体存储器构成,容量视机器指令系统而定,取决于微程序的个数,其长度就是微指令字的长度。

微指令寄存器:存放从控存读出的当前微指令。

微操作控制字段将操作控制信号送到控制信号线上,微地址字段指出下一条微地址的形成。

微地址寄存器:存放将要访问的下一条微指令地址地址转移逻辑:形成将要执行的微指令地址,形成方式:取指令公操作所对应的微程序一般从控存的0地址开始,所以微程序的人口地址0是由硬件控制的。

当出现分支时,通过判别测试字段、微地址字段、和执行部件的反馈信息形成后即微地址。

Cpu设计步骤:1.拟定指令系统2.确定总体结构(数据通路)3.安排时序4.拟定指令流程。

根据指令系统,写出对应所有机器指令的全部微操作机器节拍安排,然后列出操作时间表5.确定微指令的控制方式、下地址形成方式、微指令格式及微指令字长,编写全部的微指令的代码,最后将编写的微指令放入控制存储器中。

微程序控制器的设计步骤(1)设计微程序确定微程序流程图,也就是控制算法流程图。

(2)确定微指令格式微指令格式中的操作控制字段取决于执行部件的子系统需要多少微指令。

假定采用直接控制方式,执行部件需要10个微命令,则操作控制字段需要10位。

测试判别字段取决于微程序流程图中有多少处分支转移。

假定有3处分支,则测试判别字段需要3位。

下址字段取决于微程序流程图的规模。

假定微程序共用50条微指令,则下址字段至少需要6位。

这是因为ROM地址译码时,26=64,6位地址可容纳64条微指令。

(3)将微程序编译成二进制代码(4)微程序写入控制存储器(5)设计硬件电路三、实验现象--CPU 头文件cpu_defsLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;PACKAGE cpu_defs IS --定义程序包,包头,包体TYPE opcode IS (load, store, add, sub, bne); --这个语句适合于定义一些用std_logic 等不方便定义的类型,综合器自动实现枚举类型元素的编码,一般将第一个枚举量(最左边)编码为0 CONSTANT word_w: NATURAL :=8;CONSTANT op_w: NATURAL :=3;CONSTANT rfill: STD_LOGIC_VECTOR(op_w-1 downto 0):=(others =>'0');--FUNCTIOn slv2op(slv:IN STD_LOGIC_VECTOR) RETURN opcode;FUNCTION op2slv(op:in opcode) RETURN STD_LOGIC_VECTOR;END PACKAGE cpu_defs;PACKAGE BODY cpu_defs ISTYPE optable IS ARRAY(opcode) OF STD_LOGIC_VECTOR(op_w-1 DOWNTO 0);--数组有5个元素,其他均0CONSTANT trans_table:optable :=("000", "001", "010", "011", "100");FUNCTION op2slv(op:IN opcode) RETURN STD_LOGIC_VECTOR ISBEGINRETURN trans_table(op);END FUNCTION op2slv;END PACKAGE BODY cpu_defs;--实验7-8 微程序控制器实验LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL,IEEE.NUMERIC_STD.ALL;USE WORK.CPU_DEFS.ALL;--使用自己定义的程序包ENTITY CPU ISPORT( clock : IN STD_LOGIC;--时钟reset : IN STD_LOGIC;--复位mode : IN STD_LOGIC_VECTOR(2 DOWNTO 0); --查看用mem_addr : INUNSIGNED(word_w-op_w-1 DOWNTO 0);--地址output : OUT STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);data_r_out : OUT STD_LOGIC_VECTOR(19 DOWNTO 0);--微指令Rop_out : OUT STD_LOGIC_VECTOR(op_w-1 DOWNTO 0);--操作码add_r_out : OUT UNSIGNED(4 DOWNTO 0) --微地址R);END ENTITY;ARCHITECTURE rtl OF CPU ISTYPE mem_array IS ARRAY (0 TO 2**(word_w-op_w)-1) OF STD_LOGIC_VECTOR(word_w-1DOWNTO 0);--定义RAMSIGNAL mem : mem_array;CONSTANT prog : mem_array:=(0=> op2slv(load) & STD_LOGIC_VECTOR(TO_UNSIGNED(4,word_w-op_w)),1=> op2slv(add) & STD_LOGIC_VECTOR(TO_UNSIGNED(5,word_w-op_w)),2=> op2slv(store) & STD_LOGIC_VECTOR(TO_UNSIGNED(6,word_w-op_w)),3=> op2slv(bne) & STD_LOGIC_VECTOR(TO_UNSIGNED(7,word_w-op_w)), --TO_UNSIGNED转换函数将4转换为5位“00100”4=> STD_LOGIC_VECTOR(TO_UNSIGNED(2,word_w)),5=> STD_LOGIC_VECTOR(TO_UNSIGNED(3,word_w)),OTHERS => (OTHERS =>'0'));TYPE microcode_array IS ARRAY (0 TO 14) OF STD_LOGIC_VECTOR(19 DOWNTO 0); CONSTANT code : microcode_array:=(--控制存储器0=> "00010100010000000001",1=> "00000000000110000010",2=> "00001010000000000011",3=> "00000100001000001111",4=> "00100010000000000000",5=> "00000000000100000000",6=> "00000010100001000000",7=> "00000010100000100000",8=> "00000000000110000100",9=> "01000001000000000101",10=> "00000000000110000110",11=> "00000000000110000111",12=> "00000000000110010000",13=> "10000010000000000000",14=> "00000000000000000000");SIGNAL count : UNSIGNED(word_w-op_w-1 DOWNTO 0);SIGNAL op : STD_LOGIC_VECTOR(op_w-1 DOWNTO 0);SIGNAL z_flag : STD_LOGIC;SIGNAL mdr_out : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);SIGNAL mar_out : UNSIGNED(word_w-op_w-1 DOWNTO 0);SIGNAL IR_out : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);SIGNAL acc_out : UNSIGNED(word_w-1 DOWNTO 0);SIGNAL sysbus_out : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);EGINPROCESS(reset,clock)VARIABLE instr_reg : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);VARIABLE acc : UNSIGNED(word_w-1 DOWNTO 0);CONSTANT zero : UNSIGNED(word_w-1 DOWNTO 0):=(OTHERS =>'0')VARIABLE mdr : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);VARIABLE mar : UNSIGNED(word_w-op_w-1 DOWNTO 0);VARIABLE sysbus : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);VARIABLE microcode : microcode_array;VARIABLE add_r : UNSIGNED(4 DOWNTO 0);VARIABLE data_r : STD_LOGIC_VECTOR(19 DOWNTO 0);VARIABLE temp : STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINIF reset='0' THENadd_r:=(OTHERS =>'0');count <= (OTHERS =>'0');instr_reg := (OTHERS =>'0');acc := (OTHERS =>'0');mdr := (OTHERS =>'0');mar := (OTHERS =>'0');z_flag <='0';mem <= prog;sysbus :=(OTHERS =>'0');ELSIF RISING_EDGE(clock) THEN--microprogram controllerdata_r := code(TO_INTEGER(add_r));IF data_r(4 DOWNTO 0)="01111" THEN --判断下地址temp:="01" & op(2 DOWNTO 0);add_r := UNSIGNED(temp);ELSIF data_r(4 DOWNTO 0)="10000" THENIF z_flag='1' THENadd_r:="01110";ELSEadd_r :="01101";END IF;ELSEadd_r := UNSIGNED(data_r(4 DOWNTO 0));END IF;data_r_out <=data_r;add_r_out <= add_r;--PCIF data_r(16)='1' THEN --PC_bus='1'sysbus := rfill & STD_LOGIC_VECTOR(count);END IF;IF data_r(19)='1' THEN --load_PC='1'count <= UNSIGNED(mdr(word_w-op_w-1 DOWNTO 0));ELSIF data_r(10)='1' THEN --INC_PC='1'count <= count+1;ELSEcount <= count;END IF;--IRIF data_r(15)='1' THEN --load_IRinstr_reg := mdr;END IF;IF data_r(9)='1' THEN --Addr_bus='1'sysbus := rfill & instr_reg(word_w-op_w-1 DOWNTO 0);END IF;op <= instr_reg(word_w-1 DOWNTO word_w-op_w);IR_out <= instr_reg;op_out <=op;--ALUIF data_r(17)='1' THEN --load_ACC='1'acc:=UNSIGNED(mdr);END IF;IF data_r(11)='1' THEN --ALU_ACC='1'IF data_r(6)='1' THEN --ALU_add='1'acc := acc + UNSIGNED(mdr);ELSIF data_r(5)='1' THEN --ALU_sub='1'acc := acc - UNSIGNED(mdr);END IF;END IF;IF data_r(18)='1' THEN --ACC_bus='1'sysbus := STD_LOGIC_VECTOR(acc);END IF;IF acc=zero THENz_flag <='1';ELSEz_flag <='0';END IF;acc_out<= acc;--RAMIF data_r(14)='1' THEN --load_MAR='1'mar := UNSIGNED(sysbus(word_w-op_w-1 DOWNTO 0));ELSIF data_r(12)='1' THEN --load_MDR='1'mdr := sysbus;ELSIF data_r(8)='1' THEN --CS='1'IF data_r(7)='1' THEN --R_NW='1'mdr := mem(TO_INTEGER(mar));ELSEmem(TO_INTEGER(mar))<=mdr;END IF;END IF;IF data_r(13)='1' THEN --MDR_bus='1'sysbus:=mdr;END IF;mdr_out <= mdr;mar_out <= mar;END IF;sysbus_out <=sysbus;END PROCESS;PROCESS(mode,mem_addr)BEGIN--mode=0 -> sysbus--mode=1 -> PC--mode=2 -> result of ALU--mode=3 -> IR--mode=4 -> MAR--mode=5 -> MDR--mode=6 -> memoutput <= (OTHERS =>'0');CASE mode isWHEN "000" =>output<=sysbus_out;WHEN "001" =>output(word_w-op_w-1 DOWNTO 0)<= STD_LOGIC_VECTOR(count);WHEN "010" =>output <= STD_LOGIC_VECTOR(acc_out);WHEN "011" =>output <= IR_out;WHEN "100" =>output(word_w-op_w-1 DOWNTO 0) <= STD_LOGIC_VECTOR(mar_out);WHEN "101" =>output <= mdr_out;WHEN "110" =>output <= mem(TO_INTEGER(mem_addr));WHEN others =>output <= (OTHERS =>'Z');END CASE;END PROCESS;END ARCHITECTURE;现象结果:四、实验体会原本对于控制器的设计还是一片空白,通过实验初步理解微程序控制器的组成结构。

微程序控制器实验2008-05

微程序控制器实验2008-05

8
2009-11-30
3.1 学习编写微代码(书中实验内容1) (12周任务)
将图 12-5 所示的全部微程序按微指令格式变换成二进制代码 将图12-5 12-5所示的全部微程序按微指令格式变换成二进制代码 第1步例:理解机器指令功能 机器指令 LDA STA OUT 20H R5 <- (X) 40H (10) <- R5 60H Bus <- (10) R5 <- (X) and R5
18
2009-11-30
3.2 电路训练及仿真训练(13周任务)
理解实验原理,指令码,IR[7..5],微程序入口地址之间的关系
– IR7,IR6,IR5对应指令码高三位 – 微程序入口地址: 0,1,IR7,IR6,IR5
指令码 二进制 Ir7,ir6,ir5 入口地址 机器指令
20 H 20H H 40 40H H 60 60H H 80 80H A0H C0H E0H
取指令
分析指令
10
2009-11-30
3.1 学习编写微代码(书中实验内容1) (12周任务)
1-22, 确定各微命令初始状态 (二进制代码 ) 第3步例:依据微指令格式编号 依据微指令格式编号1-22, 1-22,确定各微命令初始状态 确定各微命令初始状态( 二进制代码)
11
2009-11-30
3 2009-11-30
实验原理
2 基本概念 •计算机分控制部件和执行部件.控制器就是控制部件,执行部 件包括运算器、存储器、外围设备. •微命令:控制器通过控制线向执行部件发出的各种控制命令. •微操作:执行部件接受微命令后所进行的操作.
(微命令是微操作的控制信号,微操作是微命令的执行过程)

微程序控制器实验报告

微程序控制器实验报告

微程序控制器实验报告微程序控制器实验报告引言微程序控制器是一种常见的计算机控制器,它采用微程序的方式来实现指令的执行。

在本次实验中,我们将学习和探索微程序控制器的工作原理,并通过实验验证其功能和性能。

实验目的本次实验的主要目的是通过设计和实现一个简单的微程序控制器,来深入理解微程序控制器的工作原理和原理图设计。

实验过程1. 设计微指令集在设计微程序控制器之前,首先需要确定微指令集。

微指令集是由一系列微指令组成的,每个微指令对应一个控制信号,用于控制计算机的各个组件的操作。

在本次实验中,我们选择了常见的微指令集,包括存储器读写、算术逻辑运算、数据传输等指令。

2. 设计微指令控制存储器微指令控制存储器是微程序控制器的核心组件,用于存储微指令集。

在本次实验中,我们使用了静态随机存储器(SRAM)来实现微指令控制存储器。

通过将微指令集编码为二进制数,并将其存储在SRAM中的不同地址位置,实现对微指令的存储和读取。

3. 设计微指令解码器微指令解码器用于解析微指令,并产生相应的控制信号。

在本次实验中,我们使用了组合逻辑电路来实现微指令解码器。

通过将微指令的不同位与控制信号相连,实现对微指令的解码和控制信号的生成。

4. 设计微程序计数器微程序计数器用于控制微程序的执行顺序。

在本次实验中,我们使用了计数器和触发器来实现微程序计数器。

通过将微程序计数器的输出与微指令控制存储器的地址输入相连,实现对微指令的顺序读取。

实验结果通过实验,我们成功设计并实现了一个简单的微程序控制器。

在实验中,我们编写了微指令集,并将其存储在微指令控制存储器中。

通过微指令解码器和微程序计数器的协作,我们成功实现了对微指令的解码和执行。

实验结果表明,微程序控制器能够准确地控制计算机的各个组件的操作,并实现指令的执行。

实验总结通过本次实验,我们深入了解了微程序控制器的工作原理和原理图设计。

微程序控制器作为一种常见的计算机控制器,具有灵活性和可扩展性。

微程序控制实验报告 北京交通大学

微程序控制实验报告 北京交通大学

微程序控制器实验报告北京交通大学一、实验目的通过看懂教学计算机中已经设计好并正常运行的数条基本指令(例如:ADD、MVRR、RET等指令)的功能、格式和执行流程,然后自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。

其最终要达到:1.深入理解计算机微程序控制器的组成和运行原理;2.深入地学习计算机各类典型指令的执行流程;3.对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;4.学习微程序控制器的设计过程和相关技术。

二、实验内容综合型实验思考题1:在进行56页到59页的实验时,你可能已经发现不同指令在执行的过程中都会经过相同的微地址,也就是说,不同指令的微程序也有公用部分。

请你找出这些公共的微指令,说明它们所做的工作。

答:公共指令如下:(1)微址为00下址为00的指令,所做工作为:给出微程序的首地址并在启动时执行;(2)微址为30下址为3A的指令,所做工作为:完成检查中断请求。

思考题2:总结机器指令和微程序之间的关系。

答:机器指令和微程序之间的关系总结如下:(1)一条机器指令对应一个微程序,这个微程序是由若干条微指令构成的。

即,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令编成的微程序进行解释和执行;(2)从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,而后者与控制存储器有关,与此相关也有相对应的硬设备;(3)机器指令是把程序员编写的程序经编译以后成为机器能执行的以二进制码形式表示的指令;在微程序控制的计算机中通过执行一串微指令完成一条指令的功能;思考题3:总结指令的一般流程。

答:流程如下图:设计型实验1设计几条指令的功能、格式和执行流程,设计每条微指令各字段的具体编码值,包括控制码的各字段、下地址字段、形成下址用到的条件码。

写出指令格式、指令功能、执行流程及对应的微程序,确定各步的控制信号。

设计一条新的机器指令,该指令的功能是把一个通用寄存器的内容与一个内存单元ADR中的内容相加,结果保存到另外一个通用寄存器中,即:DR <- [ADR] + SR1.实验课的分组组号:第1组;2.小组要求使用的操作码和微程序首地址:操作码71H,微程序首地址51H;3.新指令的指令格式:双字长指令:1-8位操作码:01110001;9-12位DR:0000;13-16位SR:0000;17-32位ADR:0000 0000 0000 0000。

微程序控制实验报告(共10篇)

微程序控制实验报告(共10篇)

微程序控制实验报告(共10篇)微程序控制器实验报告计算机组成原理实验报告一、实验目的:(1)掌握微程序控制器的组成原理。

(2)掌握微程序的编制、写入,观察微程序的运行过程。

二、实验设备:PC 机一台,TD-CMA 实验系统一套。

三、实验原理:微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。

它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。

这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。

微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图所示:微程序控制器组成原理框图在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现对存储器(包括存储器和控制存储器)的三种操作:编程、校验、运行。

考虑到对于存储器(包括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利的手动操作方式。

以向00H 单元中写入332211 为例,对于控制存储器进行编辑的具体操作步骤如下:首先将KK1 拨至‘停止’档、KK3 拨至‘编程’档、KK4 拨至‘控存’档、KK5 拨至‘置数’档,由CON 单元的SD05——SD00 开关给出需要编辑的控存单元首地址(000000),IN 单元开关给出该控存单元数据的低8 位(00010001),连续两次按动时序与操作台单元的开关ST(第一次按动后MC 单元低8 位显示该单元以前存储的数据,第二次按动后显示当前改动的数据),此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M7——M0 显示当前数据(00010001)。

然后将KK5 拨至‘加1’档,IN 单元开关给出该控存单元数据的中8 位(00100010),连续两次按动开关ST,完成对该控存单元中8 位数据的修改,此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M15——M8 显示当前数据(00100010);再由IN 单元开关给出该控存单元数据的高8 位(00110011),连续两次按动开关ST,完成对该控存单元高8 位数据的修改此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M23——M16 显示当前数据(00110011)。

微程序控制器实验

微程序控制器实验

微程序控制器实验一、实验目的和要求(必填)通过看懂教学计算机中已经设计好并正常运行的数条基本指令(例如,ADD、MVRR、OUT、MVRD、JR、RET 等指令)的功能、格式和执行流程,然后自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。

其最终要达到的目的是:1.深入理解计算机微程序控制器的功能、组成知识;2.深入地学习计算机各类典型指令的执行流程;3.对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;4.学习微程序控制器的设计过程和相关技术。

控制器设计是学习计算机总体组成和设计的最重要的部分。

要在T EC-XP+教学计算机完成这项实验,必须比较清楚地懂得:1.T EC-XP+教学机的微程序控制器主要由微程序定序器A M2910、产生当前微地址和下地址的微控存和M ACH 器件组成;2.T EC-XP+教学机上已实现的全部基本指令和留给用户实现的19 条扩展指令的控制信号都是由微控存和M ACH 给出的。

3.应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P 命令单步调试扩展指令,只能用G命令执行扩展指令。

4.要明白T EC-XP+教学机支持的指令格式及指令执行流程分组情况;理解T EC-XP +教学机中已经设计好并正常运行的各类指令的功能、格式和执行流程,也包括控制器设计与实现中的具体线路和控制信号的组成。

5.要明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。

二、实验内容和原理(必填)1.完成控制器部件的教学实验,主要内容是由学生自己设计几条指令的的功能、格式和执行流程,并在教学计算机上实现、调试正确。

2.首先是看懂T EC-XP+教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机中已经设计好并正常运行的几条典型指令(例如,ADD、MVRR、OUT、MVRD、JRC、CALA、RET 等指令)的功能、格式和执行流程,注意各操作功能所对应的控制信号的作用。

微程序控制器实验

微程序控制器实验

微程序控制器实验一、实验目的1、掌握微程序控制器的原理2、掌握TEC-8模型计算机中微程序控制器的实现方法,微地址转移逻辑的实现方法。

3、理解条件转移对计算机的重要性。

二、实验仪器或设备1、TEC-8计算机硬件综合实验系统2、直流万用表3、逻辑测试笔三、总体设计(设计原理、设计方案及流程等)微程序控制器与硬连线控制器相比,由于其规整性、易于设计以及需要的时序发生器相对简单,在上世纪七、八十年代得到广泛应用。

本实验通过一个具体微程序控制器的实现使学生从实践上掌握微程序控制器的一般实现方法,理解控制器在计算机中的作用。

1、微指令格式根据机器指令功能、格式和数据通路所需的控制信号,TEC-8采用如图4.1所示的微指令格式。

微指令字长40位,顺序字段11位(判别字段P4~P0,后继微地址NµA5~NµA0),控制字段29位,微命令直接控制。

图4.1 微指令格式NµA5~NµA0 下址,在微指令顺序执行的情况下,它是下一条微指令的地址P0=1时,根据后继微地址NµA5~NµA0和模式开关SWC、SWB、SWA确定下一条微指令的地址。

见图4.2微程序流程图P1 =1 时,根据后继微地址NµA5~NµA0 和指令操作码 IR7~IR4 确定下一条微指令的地址。

见图4.2微程序流程图P2 =1 时,根据后继微地址NµA5~NµA0 和进位 C 确定下一条微指令的地址。

见图4.2微程序流程图P3 =1 时,根据后继微地址NµA5~NµA0和结果为0标志Z确定下一条微指令的地址。

见图4.2微程序流程图P4=1 时,根据后继微地址NµA5~NµA0 和中断信号 INT 确定下一条微指令的地址。

模型计算机中,中断信号INT由时序发生器在接到中断请求信号后产生STOP=1时,在T3结束后时序发生器停止输出节拍脉冲T1、T2、T3LIAR=1时,在T3的上升沿,将PC7~PC0写入中断地址寄存器IARINTDI=1时,置允许中断标志(在时序发生器中)为0,禁止TEC-8模型计算机响应中断请求INTEN=1时,置允许中断标志(在时序发生器中)为1,允许TEC-8模型计算机响应中断请求IABUS=1时,将中断地址寄存器中的地址送数据总线DBUSPCADD=1时,将当前的PC值加上相对转移量,生成新的PC由于TEC-8 模型计算机有微程序控制器和硬连线控制器2个控制器,因此微程序控制器产生的控制信号以前缀“A-”标示,以便和硬连线控制器产生的控制信号区分。

微程序控制器实验(新)

微程序控制器实验(新)

实验三 微程序控制器实验一、实验目的1、复习与巩固微程序控制器基本原理。

2、练习简单微程序的控制与调试。

3、为整机实验做准备。

4、进一步加深对运算器、存储器及时序电路的理解。

5、熟练连接硬件电路,为课程设计做好准备。

二.实验设备及器件JZYL —Ⅱ型计算机组成原理教学实验仪一台; 芯片:74LSl81:运算器芯片 2片74LS373:八D 锁存器 片 74LS244:数据开关 片 74LS193:同步4位计数器 片 6116存储器或2114存储器 1~2片 三、实验任务按照下面的参考电路实现取数、加法、或操作等运算。

(提示:尽量控制信号最少) 复习前两个实验电路中各个信号的含义和作用,重点是运算与存储器之间的数据通路。

四.实验内容1. 机器指令 格式000 NOP100 LOAD AC ←(ADDR)101 XOR AC ←(AC) ⊕ (ADDR) 110 OR AC ←(AC) + (ADDR) 111 ADD AC ←(AC) 加 (ADDR) 注:ADDR 由74LS193给出7 6 5 4 3 2 1 03.机器指令OP微命令C7C6C5C4C3C2C1C0NOP 000LOAD 100XOR 101OR 110ADD 1114. 参考电路图使用实验台上的节拍T,时序电路见实验指导书P3。

6116中只存数据,不存指令。

指令执行时处于读模式及读操作下,此时193变化时,6116的输出也随之变化。

可单条指令或单节拍执行。

5、读写模式、读写操作:读模式下,如果开关为读操作,则无冲突;读模式下,如果开关为写操作,则发生冲突;写模式下,如果开关为读操作,则发生冲突;写模式下,如果开关为写操作,则无冲突;6、冲突说明:五.实验要求及步骤1、实验前的准备1)复习有关运算器和存储器的内容:复习《计算机组成原理》中有关数据通路的章节内容。

对数据通路的构成、数据在数据通路中的流动及控制方法有基本的了解。

2)熟悉电路中各部分的关系及信号间的逻辑关系3)参考芯片手册,自己设计实验电路,画出芯片间管脚的连线图,标上引脚号,节省实验的时间。

TEC-2 实验计算机微程序控制器实验

TEC-2 实验计算机微程序控制器实验

TEC-2 实验计算机微程序控制器实验一. 实验目的1.了解和掌握微程序控制器的组成和工作原理;2. 了解和掌握Am2910微程序定序器的组成和工作原理3. 认识和掌握TEC-2机微程序控制器各控制信号的含义、作用和用法4. 了解和掌握微命令、微指令和微程序的概念5. 了解微指令的执行过程,掌握微程序的设计方法6. 通过运算器和微程序控制器的实验,进一步认识和掌握CPU 的组成结构和工作原理二. 实验内容第一题:设计一条指令,实现将[ADDR]内容与内存单元数据DATA 相加,结果存到DR 中。

第二题:将[SR]内容与[ADDR]内容相加,结果保存到地址ADDR 单元中。

三. 实验器材TEC-2实验计算机、电脑各一台四. 实验分析与设计第一题:1.指令格式2. 指令功能功能: [ADDR] + DATA → DR 3.设计分析根据指令的功能和指令格式,先将立即数所在地址送给地址寄存器AR ,PC 自增一,再读取该立即数送给寄存器Q ,然后将ADDR 单元地址送给地址寄存器AR ,PC 自增一,接着读取ADDR1单元内容并与寄存器Q 的内容相加后送给寄存器Q ,最后通过把寄存器Q 中内容送入ADDR 单元地址,再将ADDR 单元地址的内容送入DR 。

4. 微程序100:PC->AR,PC+1->PC: 0000 0E00 A0B5 5402 101: MEM->Q: 0000 0E00 00F0 0000 102: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402 103: MEM->AR 0000 0E00 10F0 0002 104: MEM+Q->Q 0000 0E01 00E0 0000 105: Q->MEM 0000 0E00 1020 0010 106: MEM->DR ,CC#=03#,A4H: 0029 0300 30F0 00885. 加载到微控存程序段>E900↙ 将微码存放在900H 开始的内存单元中 0900 0000:0000 0000:0E00 0000:A0B5 0000:5402 0000:0000指令格式:0905 0000:0E00 0000:00F0 0000:0000 0000:0000 0000:0E00090A 0000:A0B5 0000:5402 0000:0000 0000:0E00 0000:10F0090F 0000:0002 0000:0000 0000:0E01 0000:00E0 0000:00000914 0000:0000 0000:0E00 0000:1020 0000:0010 0000:00290919 0000:0300 0000:30F0 0000:0088↙>A800↙0800: MOV R1,900↙微码在内存中的首地址0802: MOV R2,7↙微指令条数0804: MOV R3,100↙微码在微控制存储器中的首地址0806: LDMC↙加载微码指令,将微码指令加载到微控制存储器中0807: RET↙0808:↙>G800↙6.运行程序段>A820↙0820: MOV R0,0011↙存入随意数0822: MOV [0890],R0↙随意数存入随意设定的ADDR单元地址0824: NOP↙预留空位0825: NOP↙预留空位0826: NOP↙预留空位0827: RET↙0828:↙>E824↙补充预留空位的内容0824 0000:D430 0000:1100 0000:0890↙随意设定DR为R3寄存器>G820↙执行7.运行结果>R↙R3寄存器内容为1111H,刚好是0011H与1100H之和R0=0011 R1=091C R2=0000 R3=1111 SP=0FD0 PC=0820 IP=00CD R7=0000 R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000 F=00001111 0820: 2C00 0011 MOV R0, 00118.实验截图第二题:1.指令格式指令格式:D4 X SRADDR2.指令功能功能:[SR]+ [ADDR]→ [ADDR]3.设计分析根据指令的功能和指令格式,先将立即数所在地址送给地址寄存器AR,PC自增一,再读取该立即数送给寄存器Q,然后将ADDR单元地址送给地址寄存器AR,PC 自增一,接着读取ADDR1单元内容并与寄存器Q的内容相加后送给寄存器Q,最后通过把寄存器Q中内容送入ADDR单元地址,再将ADDR单元地址的内容送入DR。

微程序控制器实验.doc

微程序控制器实验.doc

微程序控制器实验.doc微程序控制器是计算机的核心控制部件之一,它的作用是根据指令要求,控制计算机各个部件的操作和协调整个系统的工作。

本文介绍了微程序控制器实验的背景、实验目的、实验内容、实验原理、实验步骤和实验结果等相关内容。

一、背景微程序控制器是由微命令序列控制数据通路执行指令的计算机控制器。

一个微程序控制器由微指令存储器、微程序计数器、微操作控制逻辑和通用寄存器等组成。

微程序控制器采用了基于流水线的执行方式,能够实现高效、低延迟的指令处理能力。

微程序控制器广泛应用于计算机控制器中,是计算机实现指令集架构的关键部件之一。

二、实验目的了解微程序控制器的工作原理和基本结构,掌握微指令、微命令和微程序的概念和基本组成,能够通过实验演示微程序控制器的原理和操作方式,加深对计算机控制器的认识。

三、实验内容本实验中,我们将使用Verilog HDL语言设计并仿真一个微程序控制器,通过实验平台进行验证和测试。

具体实验内容包括:1. 设计微指令格式和微指令存储器的组成;2. 根据微指令,设计微命令编码和微程序逻辑,包括微程序计数器和微程序计算器的实现;3. 完成微程序控制器的RTL级别设计,并进行功能仿真和时序仿真;4. 测试实验平台,验证微程序控制器的工作原理和操作方式;5. 编写实验报告,总结实验结果和体会,进一步加深对微程序控制器的理解和掌握。

四、实验原理微程序控制器的工作原理可以分为以下几个步骤:1. 按照指令格式,将指令转化成二进制编码;2. 根据指令编码,从微指令存储器中读取对应的微指令;3. 解码微指令,获取对应的微命令编码;4. 根据微命令编码,执行相应的微程序逻辑,控制计算机的操作;5. 根据微程序逻辑,通过微操作控制逻辑生成对应的控制信号,控制数据通路完成指令执行。

微程序控制器的核心是微程序计算机,它是根据微指令和微命令编码,执行相应的微程序逻辑,控制计算机的操作。

微程序计算机包括微程序计数器和微程序计算器两个部分,微程序计数器用于控制微程序的执行顺序,微程序计算器用于根据微指令生成微命令编码,并执行微程序逻辑。

计组实验三 微程序控制器实验

计组实验三 微程序控制器实验

计算机学院计算机科学与技术专业班______组、学号姓名_ __协作者___________ 教师评定_____________实验题目_ 微程序控制器实验__________________1. 实验目的与要求:1.理解时序产生器的原理,了解时钟和时序信号的波形。

2.掌握为程序控制器的功能。

3.掌握微指令格式和各字段的功能。

4.掌握微程序的编制,写入,观察微程序的运行,学习基本指令的执行流程。

5.理解微程序控制器的电路。

2.实验方案:一.对于时钟信号的测试方法:用计算机组成原理实验联机软件与仪器一起测量。

先用一根导线把SINGAL UNIT的H24和STA TE UNIT的Φ连接起来,然后用探笔按颜色分别查到实验仪左上角的CH1和CH2,黑插头插CH1,红插头插CH2,将探笔分别插到TS1针和Φ上。

然后讲STOP开关设置为RUN,STEP设置为EXEC,按START开关,打开软件,就可以显示出两个波形和测量时钟周期。

二.观察微程序控制器的工作原理:按照实验指导书的图3-6进行接线,仔细检查无误后打开电源。

然后按编程,校验和运行几个步骤进行实验。

编程:A.将编程开关(MJ20)设置为PROM状态。

B.将实验板上的STA TE UNIT的STEP设置为STEP状态,STOP设置为RUN状态,SWITCH UNIT中CLR开关置为“1“状态。

C.在UA5-UA0开关上设置要写入的微地址,然后在MK24-MK1开关上写入24位微代码,按动启动按钮START计入数据。

然后不断重复此步骤,直到把所有指令写入。

校验:A将编程开关设置为READ状态。

B.将实验板上的STA TE UNIT的STEP设置为STEP状态,STOP 设置为RUN状态,SWITCH UNIT中CLR开关置为“1“状态。

C.在开关UA5-UA0上设置好要读的某个微地址,按动START 开关,就能读出微代码,检查读出的微代码是够与写入的一样,如果不同,则要重新写入。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验项目微程序控制器实验实验时间2015年10月31日实验目的(1) 掌握微程序控制器的组成原理。

(2) 掌握微程序的编制、写入,观察微程序的运行过程。

实验设备PC机一台,TD-CMA实验系统一套实验原理微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。

它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。

这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。

微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图3-2-1 所示。

控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍TS1、TS2、TS3、TS4,时序单元的介绍见附录2。

微程序控制器的组成见图3-2-2,其中控制存储器采用3 片2816 的E2PROM,具有掉电保护功能,微命令寄存器18 位,用两片8D 触发器(273)和一片4D(175)触发器组成。

微地址寄存器6 位,用三片正沿触发的双D 触发器(74)组成,它们带有清“0”端和预置端。

在不判别测试的情况下,T2 时刻打入微地址寄存器的内容即为下一条微指令地址。

当T4 时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。

在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现对存储器(包括存储器和控制存储器)的三种操作:编程、校验、运行。

考虑到对于存储器(包括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利的手动操作方式。

以向00H 单元中写入332211 为例,对于控制存储器进行编辑的具体操作步骤如下:首先将KK1 拨至‘停止’档、KK3 拨至‘编程’档、KK4 拨至‘控存’档、KK5 拨至‘置数’档,由CON 单元的SD05——SD00 开关给出需要编辑的控存单元首地址(000000),IN 单元开关给出该控存单元数据的低8 位(00010001),连续两次按动时序与操作台单元的开关ST(第一次按动后MC 单元低8 位显示该单元以前存储的数据,第二次按动后显示当前改动的数据),此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M7——M0 显示当前数据(00010001)。

然后将KK5 拨至‘加1’档,IN 单元开关给出该控存单元数据的中8 位(00100010),连续两次按动开关ST,完成对该控存单元中8 位数据的修改,此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M15——M8 显示当前数据(00100010);再由IN 单元开关给出该控存单元数据的高8 位(00110011),连续两次按动开关ST,完成对该控存单元高8 位数据的修改此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M23——M16 显示当前数据(00110011)。

此时被编辑的控存单元地址会自动加1(01H),由IN 单元开关依次给出该控存单元数据的低8 位、中8 位和高8 位配合每次开关ST 的两次按动,即可完成对后续单元的编辑。

编辑完成后需进行校验,以确保编辑的正确。

以校验00H 单元为例,对于控制存储器进行校验的具体操作步骤如下:首先将KK1 拨至‘停止’档、KK3 拨至‘校验’档、KK4 拨至‘控存’档、KK5 拨至‘置数’档。

由CON 单元的SD05——SD00 开关给出需要校验的控存单元地址(000000),连续两次按动开关ST,MC 单元指示灯M7——M0 显示该单元低8 位数据(00010001);KK5 拨至‘加1’档,再连续两次按动开关ST,MC 单元指示灯M15——M8 显示该单元中8 位数据(00100010);再连续两次按动开关ST,MC 单元指示灯M23——M16 显示该单元高8 位数据(00110011)。

再连续两次按动开关ST,地址加1,MC 单元指示灯M7——M0 显示01H 单元低8 位数据。

如校验的微指令出错,则返回输入操作,修改该单元的数据后再进行校验,直至确认输入的微代码全部准确无误为止,完成对微指令的输入。

位于实验平台MC 单元左上角一列三个指示灯MC2、MC1、MC0 用来指示当前操作的微程序字段,分别对应M23——M16、M15——M8、M7——M0。

实验平台提供了比较灵活的手动操作方式,比如在上述操作中在对地址置数后将开关KK4 拨至‘减1’档,则每次随着开关ST 的两次拨动操作,字节数依次从高8 位到低8 位递减,减至低8 位后,再按动两次开关ST,微地址会自动减一,继续对下一个单元的操作。

微指令字长共24 位,控制位顺序如表3-2-1:其中MA5…MA0 为6 位的后续微地址,A、B、C 为三个译码字段,分别由三个控制位译码出多位。

C 字段中的P<1>为测试字位。

其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支,本系统上的指令译码原理如图3-2-3 所示,图中I7…I2 为指令寄存器的第7…2 位输出,SE5…SE0 为微控器单元微地址锁存器的强置端输出,指令译码逻辑在IR 单元的INS_DEC(GAL20V8)中实现。

从图3-2-2 中也可以看出,微控器产生的控制信号比表3-2-1 中的要多,这是因为实验的不同,所需的控制信号也不一样,本实验只用了部分的控制信号。

本实验除了用到指令寄存器(IR)和通用寄存器R0 外,还要用到IN 和OUT 单元,从微控器出来的信号中只有IOM、WR 和RD 三个信号,所以对这两个单元的读写信号还应先经过译码,其译码原理如图3-2-4 所示。

IR 单元的原理图如图3-2-5 所示,R0 单元原理如图3-2-7 所示,IN 单元的原理图见图2-1-3 所示,OUT 单元的原理图见图3-2-6 所示。

实验中机器指令由CON 单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器自动产生,为此可以设计出相应的数据通路图,见图3-2-8 所示。

几条机器指令对应的参考微程序流程图如图3-2-9 所示。

图中一个矩形方框表示一条微指令,方框中的内容为该指令执行的微操作,右上角的数字是该条指令的微地址,右下角的数字是该条指令的后续微地址,所有微地址均用16 进制表示。

向下的箭头指出了下一条要执行的指令。

P<1>为测试字,根据条件使微程序产生分支。

实验原理将全部微程序按微指令格式变成二进制微代码,可得到表3-2-2 的二进制代码表。

实验步骤1、按图3-2-10所示连接实验线路,仔细查线无误后接通电源。

如果有‘滴’报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。

2. 对微控器进行读写操作,分两种情况:手动读写和联机读写。

1) 手动读写(1) 手动对微控器进行编程(写)①将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘编程’档,KK4置为‘控存’档,KK5置为‘置数’档。

②使用CON单元的SD05——SD00给出微地址,IN单元给出低8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的低8位。

③将时序与操作台单元的开关KK5置为‘加1’档。

④IN单元给出中8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的中8位。

IN单元给出高8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的高8位。

⑤重复①、②、③、④四步,将表3-2-2的微代码写入2816芯片中。

(2) 手动对微控器进行校验(读)①将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘校验’档,KK4置为‘控存’档,KK5置为‘置数’档。

②使用CON单元的SD05——SD00给出微地址,连续两次按动时序与操作台的开关ST,MC 单元的指数据指示灯M7——M0显示该单元的低8位。

③将时序与操作台单元的开关KK5置为‘加1’档。

④连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯M15——M8显示该单元的中8位,MC单元的指数据指示灯M23——M16显示该单元的高8位。

⑤重复①、②、③、④四步,完成对微代码的校验。

如果校验出微代码写入错误,重新写入、校验,直至确认微指令的输入无误为止。

2) 联机读写(1) 将微程序写入文件联机软件提供了微程序下载功能,以代替手动读写微控器,但微程序得以指定的格式写入到以TXT 为后缀的文件中,微程序的格式如下:如$M 1F 112233,表示微指令的地址为1FH,微指令值为11H(高)、22H(中)、33H(低),本次实验的微程序如下,其中分号‘;’为注释符,分号后面的内容在下载时将被忽略掉。

(2) 写入微程序用联机软件的“【转储】—【装载】”功能将该格式(*.TXT)文件装载入实验系统。

装入过程中,在软件的输出区的‘结果’栏会显示装载信息,如当前正在装载的是机器指令还是微指令,还剩多少条指令等。

(3) 校验微程序选择联机软件的“【转储】—【刷新指令区】”可以读出下位机所有的机器指令和微指令,并在指令区显示。

检查微控器相应地址单元的数据是否和表3-2-2中的十六进制数据相同,如果不同,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的微指令,先用鼠标左键单击指令区的‘微存’TAB按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6位数据并回车,编辑框消失,并以红色显示写入的数据。

3. 运行微程序运行时也分两种情况:本机运行和联机运行。

1) 本机运行①将时序与操作台单元的开关KK1、KK3置为‘运行’档,按动CON单元的CLR按钮,将微地址寄存器(MAR)清零,同时也将指令寄存器(IR)、ALU单元的暂存器A和暂存器B清零。

②将时序与操作台单元的开关KK2置为‘单拍’档,然后按动ST按钮,体会系统在T1、T2、T3、T4节拍中各做的工作。

T2节拍微控器将后续微地址(下条执行的微指令的地址)打入微地址寄存器,当前微指令打入微指令寄存器,并产生执行部件相应的控制信号;T3、T4节拍根据T2节拍产生的控制信号做出相应的执行动作,如果测试位有效,还要根据机器指令及当前微地址寄存器中的内容进行译码,使微程序转入相应的微地址入口,实现微程序的分支。

③按动CON单元的CLR按钮,清微地址寄存器(MAR)等,并将时序与单元的开关KK2置为‘单步’档。

相关文档
最新文档