实验三微程序控制器实验

合集下载

实验三 微控制器实验

实验三 微控制器实验

实验三微控制器实验一. 实验目的1. 掌握时序产生器的组成原理。

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

3. 掌握微程序的编制、写入,观察微程序的运行。

二. 实验设备CCT-IV计算机组成原理教学实验系统一台。

三.实验内容实验所用的时序电路原理如图3-1所示,可产生4个等间隔的时序信号TS1-TS4,其中Φ为时钟信号,由实验台右上方的方波信号源提供,可产生频率及脉宽可调的方波信号。

学生可根据实验自行选择方波信号的频率及脉宽。

为了便于控制程序的运行,时序电路发生器也设置了一个启停控制触发器Cr,使TS1-TS4信号输出可控。

图中STEP(单步)、STOP(停机)分别是来自实验板上方中部的一个微动开关START的按键信号。

当STEP开关为0时(EXEC),一旦按下启动键,运行触发器Cr一直处于“1”状态,因此时序信号TS1-TS4将周而复始地发送出去。

当STEP为1(STEP)时,一旦按下启动键,机器便处于单步运行状态,即此时只发送一个CPU周期的时序信号就停机。

利用单步方式,每次只读一条微指令,可以观察微指令的代码与当前微指令的执行结果。

另外,当机器连续运行时,如果STOP开关置“1”(STOP),也会使机器停机。

由于时序电器的内部线路已经连好,所以只需将时序电路与方波信号源连接(即将时序电路的时钟脉冲输入端Φ接至方波信号发生器输出端H23),时序电路的CLR已接至实验板左下方的CLR模拟开关上。

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

微地址寄存器6位,用三片正沿触发的双D触发器(74)组成。

它们带有清“0”端和预置端。

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

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

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

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

计算机组成原理实验之微程序控制器实验一、实验目的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”表示有效,这些信号在控制器中经过反相后送往数据通路。

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

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

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

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

二、微程序控制器的原理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;现象结果:四、实验体会原本对于控制器的设计还是一片空白,通过实验初步理解微程序控制器的组成结构。

微程序控制器原理实验

微程序控制器原理实验

微程序控制器原理实验微程序控制器是一种基于微程序理论的控制器,被广泛应用于计算机系统的控制部分。

微程序控制器利用微指令来完成对计算机硬件的控制,通过将控制指令以微指令的形式存储在控制存储器中,再通过微程序计数器和指令寄存器的协作来实现对计算机中相关硬件的控制。

微程序控制器通过微指令的方式将指令的信息分解成若干微操作,每个微操作对应一个微指令。

每个微指令又由多个微操作组成,通过控制存储器中的微指令的读出来实现对相应的微操作的控制。

在微程序控制器的设计过程中,需要进行微指令的编码和微操作的选择,确保微操作的实现顺序和时序满足设计要求。

微程序控制器的实验可以通过设计一个简单的微程序控制器来进行验证。

首先,需要设计一个微指令的格式,其中包括操作码、操作数、地址等字段。

然后,根据需要控制的硬件模块设计相应的微操作,并将这些微操作编码成微指令。

通过控制存储器将微指令存储起来,并设计一个微程序计数器和指令寄存器来控制微指令的读取和执行过程。

在实验中,可以选择一些简单的指令例如加法指令来进行设计。

首先,设计一个微指令的格式,其中包括操作码字段和操作数字段。

然后,根据加法指令的功能设计相应的微操作,例如从寄存器中读取操作数、将操作数累加等。

将这些微操作编码成微指令,并将微指令存储在控制存储器中。

通过微程序计数器和指令寄存器来控制微指令的读取和执行过程,实现对加法指令的控制。

在实验中,需要设计相应的硬件电路来实现微程序控制器的功能。

这些电路包括控制存储器、微程序计数器、指令寄存器等。

可以使用逻辑门、触发器等基本的数字电路元件来实现这些电路。

通过将这些电路连接起来,形成一个完整的微程序控制器实验样机。

在实验过程中,需要根据设计的微指令格式和微操作进行编码和存储。

通过控制存储器将微指令读取并执行,控制相应的硬件模块进行操作。

通过示波器或LED 等辅助工具来监测和验证微程序控制器的工作状态和正确性。

微程序控制器原理实验可以帮助学生深入理解微程序的工作原理和实现方式。

微程序控制实验报告(共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)。

实验三:微程序控制器实验

实验三:微程序控制器实验

《计算机组成原理》实验报告实验三:微程序控制器实验学院:专业:班级:学号:学生姓名:实验日期:指导老师:成绩评定:计算机学院计算机组成原理实验室实 验 三一、 实验名称:微程序控制器实验二、 实验目的:掌握微程序的编制、写入、观察微程序的运行情况 ,了解微程序流程原理。

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

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

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

微程序存储在一种专用的存储器中,该存储器称为控制存储器。

微程序流程图:NOP00指令译码P<1>IN->R0R0->OUT NOPR0->AR0->BA+B->R00130320405333530ADDINOUTHLT01010135四、实验设备:TD-CMA实验系统一套五、实验步骤:1、对微控器进行编程(写)(1)将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘编程’档,KK4置为‘控存’档,KK5置为‘置数’档。

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

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

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

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

(5)重复(1)(2)(3)(4)四步,将二进制代码表的微地址(地址和十六进制)写入芯片中。

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

微程序控制器实验

微程序控制器实验

微程序控制器实验一、实验目的和要求(必填)通过看懂教学计算机中已经设计好并正常运行的数条基本指令(例如,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 等指令)的功能、格式和执行流程,注意各操作功能所对应的控制信号的作用。

(计算机组成原理)实验三 微控器实验

(计算机组成原理)实验三 微控器实验

D2
D1
⑦编 ⑧开关程编 开 ⑨程控关制 及
Q1
+5 CLR开关
MD23 MD16 MD15 MD8 MD7 MD0
⑩ 控制
+5
---
---
---
⑪ 电路
微 控 器 逻 辑 框 图
① 控制存储器CM
❖ CM由3片2816(2K×8位)组成,存放24位 的微指令。3片2816的高位地址A10~A7均 接地,因此,控存的实际容量为128×24位, 即可以存放128条微指令。
+5
显B0 A0
MK8 B1 A1
74LS245
B2 A2
---
B3 A3
示B4 A4
B5 A5
B6 A6
MK1
B7 A7
DIR E

---
---
---
CLR CLK
Main Control Unit
1D 2D
74LS74
1Q 2Q
② 1CLK 1CD
2CLK 2CD
2SD
1SD
SE6
Y1 Y2 Y3
MR
PC-B
PC TO BUS +5
DIR 74LS245
E
A7
B7
A6
B6
A5
B5
A4
B4
A3
B3
A2
B2
A1
B1
A0
B0
74LS161 功能表
输入信号
MR PE CEP CET CLK
响应操作
0
× × × × 异步清零,Q3 ~ Q0 输出低电平
1 0 ××
预置数,P3~P0装入Q3 ~ Q0

微程序控制器

微程序控制器

用联机软件的“【转储】—【装载】”功能将该格式(*.TXT) 文件装载入实验系统。
四实验总结
本次课程设计连线复杂,不时有连接错误的, 按照指导书上所写的作,遇到很多不懂,错 误的,让我得尽信书不如无书,我对微程序 控制器,有了非常透彻的认识。 通过这次设计,使我们能清楚的了解微程序 控制器的基本组成、基本原理和设计步骤、 设计思路和调试步骤,最终能清晰的建立起 概念,为独立完成计算机设计奠定了基础。
thank you!
本实验安排了四条机器指令,分别为ADD(0000 0000)、IN(0010 0000)、OUT(0011 0000) 和 HLT ( 0101 0000 ),括号中为各指令的二进 制代码,指令格式如下: 助记符 机器指令码 说明 IN 0010 0000 IN ->R0 ADD 0000 0000 R0 + R0 -> R0 OUT 0011 0000 R0 -> OUT HLT 0101 0000 停机
微程序控制器实验报告
PPT制作者
1实验目的和运行环境 2实验原理 3实验步骤 4总结
1实验目的及要求 (1) 掌握微程序控制器的组成原理。 (2) 掌握微程序的编制、写入,观察微程序 的运行过程 实验环境 PC 机一台, TD-CMA 实验系统一套
2实验原理
微程序控制器的基本任务是完成当前指令的翻译和 执行,即将当前指令的功能转换成可以 控制的硬件逻辑部件工作的微命令序列,完成数据 传送和各种处理操作。它的执行方法就是将控制各 部件动作的微命令的集合进行编码,即将微命令的 集合仿照机器指令一样,用数字代码的形式表示, 这种表示称为微指令。这样就可以用一个微指令序 列表示一条机器指令,这种微指令序列称为微程序。 微程序存储在一种专用的存储器中,称为控制存储 器,微程序控制器原理框图如图所示。

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

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

实验三微程序控制器实验一.实验目得与要求:实验目得:1.理解时序产生器得原理,了解时钟与时序信号得波形;2.掌握微程序控制器得功能,组成知识;3.掌握微指令格式与各字段功能;4.掌握微程序得编制,写入,观察微程序得运行,学习基本指令得执行流程.实验要求:1.实验前,要求做好实验预习,并复习已经学过得控制信号得作用;2.按练习一要求完成测量波形得操作,画出TS1,TS2,TS3,TS4得波形,并测出所用得脉冲Ф周期。

按练习二得要求输入微指令得二进制代码表,并单步运行五条机器指令. 二.实验方案:按实验图在实验仪上接好线后,仔细检查无误后可接通电源.1.练习一:用联机软件得逻辑示波器观测时序信号,测量Ф,TS1,TS2,TS3,TS4信号得方法如下:(1)TATEUNIT 中STOP开关置为“RUN”状态(向上拨),STEP开关置为“EX EC”状态(向上拨)。

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

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

(4)调试"菜单下得“显示逻辑示波器窗口,即可出现测量波形得画面。

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

(6)探头一端接实验仪左上角得CH2,另一端接STATE UNIT中得TS1插座,即可测出TS1得波形;(7)探头一端接实验仪左上角得CH1,另一端接STA TE UNIT中得TS2插座,即可测出TS2得波形.(8)将红色探头一端接实验仪左上角得CH1,另一端接STATE UNIT中得TS3插座,即可测出TS3得波形。

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

2.观察微程序控制器得工作原理:①关掉实验仪电源,拔掉前面测时序信号得接线;②编程写入E2PROM 2816A.将编程开关(MJ20)置为PROM(编程)状态;B.将实验板上STA TE UNIT 中得STEP置为STEP状态,STOP置为RUN状态,SWITCHUNIT中CLR开关置为1状态;C.在右上角得SWITCHUNIT中UA5—UA0开关上置表3、2中某个要写得微地址;D.在MK24-MK1开关上置表3、2中要写得微地址后面得24位微代码,24位开关对应24位显示灯,开关置为1时灯亮,为0时灯灭;E.启动时序电路,即将微代码写入到E2PROM 2816得相应地址对应得单元中;F.重复C—E步骤,将表3、2得每一行写入E2PROM 2816。

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

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

计算机组成原理实验报告三:微程序控制器实验2011-05-06 01:00:09|分类:实验报告| 标签:实验微程序字段微指令信号|字号大中小订阅实验三:微程序控制器实验一、实验目的与要求:实验目的:1、掌握时序产生器的原理和具体操作。

2、掌握微程序控制器的功能、组成知识。

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

要求:做好实验预习,掌握进位控制运算器的原理。

实验之前,应认真准备,写出实验步骤和具体分析内容,否则实验效率会特别低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说学懂了些什么重要教学内容。

二、实验方案:【1】、连接好实验线路,检查无误后接通电源。

【2】、编程:(1)将编程开关(MJ20)置为PROM(编程)状态;(2)将STATE UNIT中的STEP置为"STEP"状态,STOP置为"RUN"状态;(3)在UA5-UA0开关上置要写的某个微地址(八进制);(4)在MK24-MK1开关上置要写的微地址相应的24位微代码,24位开关对应24位显示灯,开关量为"1"灯亮,为"0"灯灭;(5)启动时序电路(按动启动按钮START),即将微代码写入到E2PROM2816的相应地址对应的单元中;(6)重复(3)~(5)步骤将每一条微指令写入E2PROM2816。

【3】、校验:(1)将编程开关置为READ状态;(2)将STEP开关置为"STEP"状态,STOP开关置为"RUN"状态;(3)在开关UA5~UA0上置好要读的某个微地址;(4)按动START键,启动时序电路,观察显示灯MD24-MD1的状态,检查读出的微代码是否已写入的相同。

如果不同在将开关置于PROM编程状态,重新执行编程步骤;(5)重复(3)、(4)步骤将每一条微指令从E2PROM2816中读出。

微程序控制器实验.doc

微程序控制器实验.doc

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

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

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

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

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

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

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

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

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

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

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

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

微程序控制器实验(新)

微程序控制器实验(新)

实验三 微程序控制器实验一、实验目的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)参考芯片手册,自己设计实验电路,画出芯片间管脚的连线图,标上引脚号,节省实验的时间。

实验三 微控制器实验

实验三  微控制器实验

5. 微指令的基本格式 微指令的格式大体分成两类:水平型微指令和 垂直型微指令。水平型微指令的基本结构如下图 所示。微指令是由操作控制和顺序控制两大部分 组成 。
6 微程序控制器原理框图 微程序控制器主要由控制存储器、微指 令寄存器和地址转移逻辑三大部分组成。
数据通路结构框图
实验箱中的微指令格式
② 校验 A.将编程开关设置为READ(校验)状态。 B.将实验板的“STEP”开关置为“STEP”状 态。“STOP”开关置为“RUN”状态。 C.用二进制开关置好微地址MA5—MA0。 D.按动“START”键,启动时序电路,读出微 代码,观察显示灯MD24—MD1的状态(灯 亮为“0”,灭为“1”),检查读出的微代码 是否与写入的相同。如果不同,则将开关 置于PROM编程状态,重新执行①UA0)
三、实验仪器 TDN—CM+计算机组成原理教学实验系统一 台,排线若干,表笔一副。 四、实验步骤 (1) 准备表4-2的二进制代码表。 (2) 按图3-6连接实验线路,仔细查线无误后 接通电源。 (3) 观测时序信号 ⑷ 程序控制器的 工作原理(重点)
③ 单步运行 A.将编程开关置于“RUN”(运行)状态。 B.实验板上的“STEP”及“STOP”开关保持 原状。 C.操作CLR开关(拨动开关在实验板右下角) 使CLR信号1→0→1,微地址寄存器MA5— MA0清零,从而明确本机的运行入口微地 址00(八进制),000000(二进制)。 D.按动“START”键,启动时序电路,则每按 动一次启动键,读出一条微指令后停机, 此时实验台上的微地址显示灯和微命令显 示灯将显示所读出的一条指令。
④连续运行 A.将编程开关置为“RUN”(运行)状态。 B.将实验板的单步开关“STEP”置为“EXEC” 状态。 C.使CLR从1→0→1,此时微地址寄存器清 “0”,从而给出取指微指令的入口地址为 00(八进制)开始执行,000000(二进 制)。 D.启动时序电路,则可连续读出微指令。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档