微程序控制器组与微程序设计实验报告
3_11实验五微程序控制器的组成与实现实验 王伟

新疆师范大学计算机科学技术学院实验报告专业:软件工程课程名称:计算机组成原理班级: 14-3班姓名: 王伟学号: 211 实验地址:_数理楼2楼_实验时间:2016.11.21 指导教师签字: 成绩:实验五微程序控制器的组成与实现实验1.实验目的和要求1.掌握微程序控制器的组成及工作过程;2.通过用单步方式执行若干条微指令的实验,理解微程序控制器的工作原理。
2.主要仪器设备EL-JY-II 型计算机组成原理实验系统一台,连接线若干。
3.实验原理通过控制k1,k2,k3,k4的值来控制是写还是读微地址微命令,若是即K1 off、K2 off、K3 on则为读,若即K1off、K2 on、K3 off、K4 off则为写。
4.操作方法与实验步骤Ⅰ、单片机键盘操作方式实验进行单片机键盘控制实验时,必须把K4 开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。
1.实验连线:实验连线图如图4-11 所示。
连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。
2. 写微代码:将开关K1K2K3K4拨到写状态即K1 off、K2 on、K3 off、K4 off,其中K1、K2、K3 在微程序控制电路,K4 在24位微代码输入及显示电路上。
在监控指示灯滚动显示【CLASS SELECt】状态下按【实验选择】键,显示【ES--__】输入04 或4,按【确认】键,显示为【ES04】,表示准备进入实验四程序,也可按【取消】键来取消上一步操作重新输入。
再按下【确认】键,显示为【CtL1=_】,表示对微代码进行操作。
输入1显示【CtL1_1】,表示写微代码,也可按【取消】键来取消上一步操作,重新输入。
按【确认】显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,显示这时输入微代码【000001】,该微代码是用6 位十六进制数来表示前面的24 位二进制数,注意输入微代码的顺序,先右后左,此过程中可按【取消】键来取消上一次输入,重新输入。
实验四 微程序控制器实验.

南京工程学院计算机工程学院计算机组成与结构实验报告书实验学生班级K网络工程121实验学生姓名王云峰学号*********实验地点信息楼A115实验四微程序控制器实验同组同学李翔240121515朱赛杰240121533 实验日期12月11日一、实验目的1.掌握微程序控制器的组成及工作过程,初步掌握TEC-XP+机的数据通路。
2.理解动态微程序设计的概念,初步掌握在TEC-XP+机上设计及实现新指令的步骤。
3.从指令的微操作序列层次上理解指令的执行过程,明确指令的格式及寻址方式,初步掌握TEC-XP+机微指令的格式及各字段的含义。
二、实验内容1.理解基本指令(ADC、LDRA、CALR)的格式、数据通路、微程序流程和微指令各字段的含义,使用手拨开关输入机器指令,在单步运行方式下,观察和记录实现各指令的微码;2.理解扩展指令(ADC、LDRA、CALR)的格式、数据通路、微程序流程和微指令各字段的含义,使用手拨开关输入机器指令,在单步运行方式下,观察和记录实现各指令的微码;3.设计验证程序,验证扩展指令(ADC、LDRA、CALR)并记录验证结果。
三、实验步骤与结果1.设计新指令步骤(1).明确指令格式及功能(2).数据通路(3).画微程序流程图(4).微程序代码化---微码(5).将微码加载到微控存中(6).验证2. 运行结果【1】选择基本指令的A 组指令中的ADD指令,观察其节拍流程<1>置拨动开关SW=00000000 00000001;(表示指令ADD R0,R1 )<2>按RESET按键;指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;<3>按START按键;指示灯CI3~0、SCC3~0显示1110 0000,微址和下址的指示灯全灭;(本拍完成公共操作0→PC、DI#=0)<4>按START按键;指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0001,下址的指示灯全灭;(本拍完成公共操作PC→AR、PC+1→PC)<5>按START按键;指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0010,下址的指示灯全灭;(本拍完成公共操作MEM→IR)<6>以上三步为公共操作,其它指令同;<7>按START按键;指示灯CI3~0、SCC3~0显示 0010 0000,微址指示灯显示0000 0011,下址的指示灯显示0000 0100;(本拍完成/MAP操作功能)<8>按START按键;指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0000 0100,下址的指示灯显示0011 0000 (本拍执行ADD指令,DR←DR+SR 操作)。
微程序控制器组与微程序设计实验报告

微程序控制器组与微程序设计实验报告实验目的:1.了解微程序控制器组的组成和工作原理;2.掌握微程序设计的基本方法;3.学习使用微程序设计语言进行微程序编写;4.验证微程序的功能和正确性。
实验仪器:1.微程序控制器组;2.计算机。
实验原理:实验步骤:1.设计微指令集:根据实验要求,设计微指令的功能,并确定每个微指令的格式和编码方式。
2.设计微程序地址译码器:根据微指令的编码方式,设计地址译码器,将微指令的编码转化为实际的地址。
3.设计微程序存储器:根据微指令的格式和编码方式,设计存储器,存储微指令。
可以选择使用只读存储器或者随机存储器。
4.设计微指令执行器:根据微指令的格式和编码方式,设计执行器,执行微指令的功能操作。
可以使用组合逻辑电路或者微控制器实现。
5.进行微程序编写:使用微程序设计语言,根据微指令集的功能要求,编写微程序,并存储到微程序存储器中。
6.连接实验仪器:将微程序控制器组和计算机连接起来,确保数据传输的正确性。
7.运行实验程序:根据实验要求,执行微程序,并通过计算机输出结果。
实验结果:经过实验,微程序控制器组成功控制了计算机的各个部件的操作和数据流。
微程序设计也能够正确的控制计算机的运行,并输出了预期的结果。
实验总结:通过本次实验,我对微程序控制器组的组成和工作原理有了更深入的了解。
微程序设计是一种灵活、可扩展的指令级程序设计方法,可以根据需求设计出各种功能强大的微程序。
通过实验,我学会了使用微程序设计语言进行微程序编写,并验证了微程序的功能和正确性。
微程序控制器组的应用范围广泛,不仅可以用于计算机中,还可以应用于其他各种控制系统中。
本次实验让我对计算机控制系统的理论和实践有了更深入的了解,提高了我在计算机控制领域的专业技能。
微程序控制器的组成与微程序设计实验报告

微程序控制器的组成与微程序设计实验报告1.实验目的了解微程序控制器的组成和工作原理,掌握微程序设计方法。
2.实验器材和仪器-计算机-开发板-逻辑门集成电路3.实验过程a.程序设计首先,需要设计微程序控制器所使用的指令集。
本实验选取了一个简单的指令集,包括加载寄存器、存储器和输入输出操作等指令。
b.微指令设计根据指令集的要求,设计相应的微指令。
每个微指令包含了控制信号的信息,用于控制计算机的不同部件。
c.微程序设计根据微指令的设计,设计相应的微程序。
微程序是一系列的微指令的有序序列,用于控制计算机的指令执行。
d.实验搭建根据设计好的微程序,搭建微程序控制器的电路,并将电路与开发板连接。
e.实验验证将编写好的程序加载到存储器中,并通过控制信号监测计算机的运行情况。
验证微程序控制器的设计是否正确。
4.实验结果与分析经过实验验证,微程序控制器能够正常工作,并且能够按照设计好的微程序执行指令集中的各项操作。
通过观察控制信号的变化,可以得出微程序控制器是否正常工作的结论。
5.实验结论本实验以设计一个简单的微程序控制器为目标,通过设计微指令和微程序,并搭建相应的电路,成功实现了微程序控制器的功能。
通过本实验,我对微程序控制器的组成和设计原理有了更深入的了解。
6.实验总结微程序控制器是计算机中的重要组成部分,通过控制信号的变化,实现了对指令执行的控制。
本实验通过设计微指令和微程序,搭建相应的电路,成功实现了微程序控制器的功能。
通过本实验,我不仅对微程序控制器有了更深入的理解,还提高了我对计算机原理的理解能力和动手实践能力。
微程序实验报告

微程序实验报告微程序实验报告概述:微程序是一种指令执行的方式,它将指令集的操作分解为一系列微操作,通过微指令控制器逐步执行。
本次实验旨在通过设计和实现一个简单的微程序,深入理解微程序的工作原理和应用。
实验目的:1. 理解微程序的基本概念和原理;2. 学习如何设计和实现一个简单的微程序;3. 掌握微程序在指令执行过程中的作用和优势。
实验过程:1. 确定微指令集的操作和控制信号:根据实验要求,我们选择了一些常见的指令,如加法、减法、乘法等,并为每个指令定义了相应的微操作和控制信号。
2. 设计微指令控制器:根据微指令集的操作和控制信号,我们设计了一个简单的微指令控制器,用于逐步执行指令。
控制器包括状态寄存器、微指令存储器和控制逻辑电路等组件。
3. 实现微程序:根据设计的微指令控制器,我们编写了相应的微程序。
微程序是一系列微操作的有序序列,通过控制信号的变化逐步执行指令。
4. 运行实验样例:我们选择了几个实验样例,分别测试了加法、减法和乘法指令的执行过程。
通过观察指令执行的结果,验证了微程序的正确性和有效性。
实验结果:通过实验,我们成功设计和实现了一个简单的微程序,并验证了其在指令执行过程中的作用和优势。
微程序能够将复杂的指令集操作分解为一系列微操作,使得指令的执行过程更加灵活和高效。
结论:微程序是一种重要的指令执行方式,通过将指令集的操作分解为微操作,能够提高指令执行的效率和灵活性。
本次实验使我深入理解了微程序的工作原理和应用,掌握了微程序的设计和实现方法,为进一步研究和应用微程序打下了良好的基础。
展望:微程序作为一种重要的指令执行方式,在计算机体系结构和指令集设计中有着广泛的应用前景。
未来,我将进一步研究微程序的优化方法和应用场景,探索微程序在提高计算机性能和节约能源方面的潜力。
同时,我也期待能够参与更多的微程序设计和实现项目,不断提升自己在计算机体系结构领域的研究能力和创新能力。
总结:通过本次实验,我深入了解了微程序的工作原理和应用,掌握了微程序的设计和实现方法。
微程序控制器原理实验报告

微程序控制器原理实验报告一、引言微程序控制器作为计算机系统的重要组成部分,扮演着指挥和控制计算机操作的关键角色。
本实验报告将对微程序控制器的原理进行探讨,并描述相关实验的设计、步骤、结果和分析。
二、微程序控制器的原理2.1 微程序控制器的概念微程序控制器是一种控制计算机操作的技术,通过将指令集中的每个指令分解为一系列微操作,并以微指令的形式存储在控制存储器中,从而实现指令的执行控制。
2.2 微指令的组成和格式微指令由多个字段组成,每个字段代表一个微操作控制信号。
常见的微指令格式包括微地址字段、条件码字段、操作码字段等。
2.3 微指令的执行过程微指令的执行过程包括指令的取指、译码、执行和写回等阶段。
每个阶段对应微指令的不同部分,通过控制信号的转换和传递,完成相应的操作。
三、微程序控制器的设计与实验3.1 设计思路在进行微程序控制器实验前,需要明确实验的目标和设计思路。
实验通常包括以下几个步骤:确定指令集、确定微指令格式、设计控制存储器、设计控制逻辑电路等。
3.2 实验步骤1.确定指令集:根据实验需求,确定需要支持的指令集。
2.确定微指令格式:根据指令集的要求,设计适合的微指令格式。
3.设计控制存储器:根据微指令格式,设计控制存储器的结构和内容。
4.设计控制逻辑电路:根据微指令的执行过程,设计控制逻辑电路,实现指令的控制和转换。
5.构建实验平台:将设计的控制存储器和控制逻辑电路构建成实验平台,并与计算机系统相连。
6.进行实验:在实验平台上执行指令,观察和记录实验结果。
3.3 实验结果与分析根据实验步骤中的设计和操作,得到了相应的实验结果。
通过比对实验结果和预期效果,可以对微程序控制器的设计和实验进行分析和评估。
四、总结与展望微程序控制器作为计算机系统的关键组成部分,通过微操作的方式实现指令的执行控制。
本实验报告对微程序控制器的原理进行了探讨,并描述了相关实验的设计、步骤、结果和分析。
通过实验,我们深入理解了微程序控制器的工作原理和设计方法。
计算机组成原理实验报告三微程序控制器实验

微程序控制器实验报告一、实验目的(1)掌握微程序控制器的功能、组成知识。
(2)掌握为程序的编制、写入、观察微程序的运行二、实验设备:PC机一台,TD-CM3+实验系统一套三、实验原理:微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件的为命令序列,完成数据传送和个汇总处理操作,他的执行方法是将控制各部件的微命令的集合进行编码,即将微命令的集合仿照及其指令一眼,用数字代码的形式表示,这种表示陈伟微指令。
这样就可以用一个微指令序列表示一条机器指令,这种为指令序列称作为程序。
微程序存储在一种专用的存储器中,成为控制储存器四、实验步骤1.对为控制器进行读写操作:(1)手动读写:①按图连线:②将MC单元编程开关置为“编程”档,时序单元状态开关置为“单步”档,ADDR 单元状态开关置为“置数”档③使用ADDR单元的低六位SA5…SA0给出微地址MA5…MA0,微地址可以通过MC 单元的MA5…MA0微地址灯显示④CON单元SD27…SD20,SD17…SD10,SD07…SD00开关上置24位微代码,待写入值由MC单元的M23…M024位LED灯显示⑤启动时序电路(按动一次TS按钮),即将微代码写入到E2PROM2816的相应地址对应单元中⑥重复③④⑤三步,将下图微代码写入2816芯片中二进制代码表(2)联机读写:①将微程序写入文件,联机软件提供了微程序下载功能,以代替手动读写微控制器,但微程序得以指定的格式写入本次试验的微程序如下:://************************************************************// :// // :// 微控器实验指令文件 // :// // ://************************************************************// ://***************Start Of MicroController Data****************//$M 00 000001;NOP$M 01 007070;CON(INS)->IR,P<1>$M 04 002405;R0->A$M 05 04B201;R0->B$M 30 001404;A加B->RO$M 32 183001;IN->R0$M 33 280401;R0->OUT$M 35 000035;NOP;//***************End Of MicroController Data*******************// ②写入微程序用联机软件的“【转存】-【装载数据】”功能将改格式文件装载入试验系统。
微程序控制器实验报告

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

微程序控制器实验报告北京交通大学一、实验目的通过看懂教学计算机中已经设计好并正常运行的数条基本指令(例如: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。
实验三:微程序控制器实验

《计算机组成原理》实验报告实验三:微程序控制器实验学院:专业:班级:学号:学生姓名:实验日期:指导老师:成绩评定:计算机学院计算机组成原理实验室实 验 三一、 实验名称:微程序控制器实验二、 实验目的:掌握微程序的编制、写入、观察微程序的运行情况 ,了解微程序流程原理。
三、 实验原理:微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制硬件逻辑部件工作的微命令序列,以完成数据传输和各种处理操作。
它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。
这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。
微程序存储在一种专用的存储器中,该存储器称为控制存储器。
微程序流程图: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置为‘置数’档。
微程序控制器组成实验

实验五、微程序控制器组成实验一、实验目的1.掌握时序产生器的组成原理。
2.掌握微程序控制器的组成原理。
3.掌握微指令格式的化简和归并。
二、实验设备TEC-4计算机组成原理教学实验仿真系统三、实验电路1.数据通路微程序控制器是根据数据通路和指令系统来设计的。
这里采用的数据通路是在综合前面各实验模块的基础上,又增加程序计数器PC(U18)、地址加法器ALU2(U17)、地址缓冲寄存器R4(U25、U26)和中断地址寄存器IAR(U19),详见第二节的图4。
PC和ALU2各采用一片GAL22V10,两者配合使用,可完成程序地址的存储、增1和加偏移量的功能。
R4由两片74HC298组成,带二选一输入端。
IAR是一片74HC374,用于中断时保存断点地址。
有关数据通路总体的详细说明,请参看第一节。
2.微指令格式与微程序控制器电路图4 微指令格式根据给定的12条机器指令功能和数据通路总体图的控制信号,采用的微指令格式见图4。
微指令字长共35位。
其中顺序控制部分10位:后继微地址6位,判别字段4位,操作控制字段25位,各位进行直接控制。
微指令格式中,信号名带有后缀“#”的信号为低有效信号,不带有后缀“#”的信号为高有效信号。
图5 微程序控制器的组成对应微指令格式,微程序控制器的组成见图5。
控制存储器采用5片EEPROM 28C64(U8、U9、U10、U11、U12)。
28C64的输出是D0—D7,分别与引脚11、12、13、15、16、17、18、19相对应,CM0是最低字节,CM4是最高字节。
微地址寄存器6位,用一片6D触发器74HC174(U1)组成,带有清零端。
两级与门、或门构成微地址转移逻辑,用于产生下一微指令的地址。
在每个T1上升沿时刻,新的微指令地址会打入微地址寄存器中,控制存储器随即输出相应的微命令代码。
微地址转移逻辑生成下一地址,等下一个T1上升沿时打入微地址寄存器。
跳转开关JUMP(J1)是一组6个跳线开关。
微程序控制器的组成与微程序设计实验报告

信息学院实验报告学号:姓名:班级:课程名称:计算机组成原理实验名称:微程序控制器的组成与微程序设计实验实验性质:①综合性实验②设计性实验③验证性实验实验时间:实验地点:一、实验目的1、掌握微程序控制器的组成原理;2、掌握微程序的编制、写入,观察微程序的运行;3、为整机实验打好基础。
二、实验内容编制微程序并观察其运行过程。
三、实验仪器1、ZY15Comp12BB计算机组成原理教学实验系统一台2、排线若干四、实验原理实验所用的时序电路原理可以参考时序实验。
由于时序电路的内部线路已经连好(时序电路的CLR已接到实验板中下方的CLR清零开关上),所以只需将时序电路与方波信号源连接即可。
1、微程序控制电路微程序控制器的组成见图1-13。
其中控制存储器采用3片2816 E2PR0M,具有掉电保护功能。
微命令寄存器18位,用两片8D触发器(74LS273)和一片4D(74LS175)触发器组成。
微地址寄存器6位,用三片上升沿触发的双D触发器(74LS74)组成,它们带有清“0”端和置“1”端。
在不进行判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。
当T4时刻进行判别测试时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器设置为“1”状态,完成地址修改。
在该实验电路中,在CONTROL UNIT有一个编程开关SP06,它具有三种状态:WRITE(编程)、READ(校验)、RUN(运行)。
当处于“编程状态”时,实验者可根据微地址和微指令格式将微指令二进制代码写入到控制存储器2816中。
当处于“校验状态”时,可以对写入控制存储器中的二进制代码进行验证,从而可以判断写入的二进制代码是否正确。
当处于“运行状态”时,只要给出微程序的入口微地址,则可根据微程序流程图自动执行微程序。
图中微地址寄存器输出端增加了一组三态门74LS245,目的是隔离触发器的输出,增加抗干扰能力,并用来驱动微地址显示灯。
微程序控制器的实验报告

计算机科学与技术系实验报告专业名称计算机科学与技术课程名称计算机组成与结构项目名称微程序控制器实验一、实验目的1.掌握微程序控制器的组成原理;2.掌握微程序的编制、写入、观察微程序的运行情况。
二、实验逻辑原理图与分析2.1 实验逻辑原理图及分析微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制硬件逻辑部件工作的微命令序列,以完成数据传输和各种处理操作。
它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。
这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。
微程序存储在一种专用的存储器中,该存储器称为控制存储器,如图所示:微程序控制器组成原理框图控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理。
本实验所用的时序单元来提供,分为四拍TS1、TS2、TS3、TS4。
在微程序控制器的组成中,控制器采用3片2816的E^2PROM,具有掉电保护功能,微命令寄存器18位,用两片8D触发器(273)和一片4D(175)触发器组成。
为地址寄存器6位,用三篇正沿触发的双D触发器(74)组成,他们带有清“0”端和预置端。
在不判别测试的情况下,T2时刻打入微地址寄存器的内容即为吓一条微指令地址。
当T4时刻惊醒测试判别式,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。
三、数据通路图及分析(画出数据通路图并作出分析)本实验安排了四条机器指令,分别为ADD(00000000)、IN(00100000)、OUT(00110000)和HLT(01010000),括号中为各指令的二进制代码,指令格式如下:助记符机器指令码说明IN 0010 0000 IN->ROADD 0000 0000 RO+RO->ROOUT 0011 0000 RO->OUTHLT 0101 0000 停机试验中机器指令由CON单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器自动产生,为此可以设计出相应的数据通路图,如下图所示:数据通路图几条机器指令对应的参考微程序流程图如下图所示。
组成原理实验报告3 微程序控制器

《计算机组织与体系结构》实验报告3姓名:学号:班级:课题:微程序控制器2014-1-51实验目的(1) 掌握微程序控制器的组成原理。
(2) 掌握微程序的编制、写入,观察微程序的运行过程。
2实验设备PC 机一台,TD-CMA 实验系统一套。
3实验步骤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 位。
计算机组成原理微程序控制器实验报告

计算机组成原理实验报告三:微程序控制器实验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中读出。
实验五 微程序控制器

实验五 微程序控制器实验一.微程序控制器的组成 (看小板实物)微程序定序器:Am2910:控制存储器:7片28C64(MPROM1-- MPROM7)地址映射部件:1片28C64(MAPROM )微指令寄存器:1片74LS374,1片74LS273,7片GAL (大板)当前微地址寄存器:1片74LS377 条件判断线路:1片GAL20V8指令寄存器:1片377和1片244(IRH7--0)1片377和1片244(IRL7--0)1. AM2910内部组成 (P68)AM2910功能------形成下一条指令地址。
(1) 四输入多路地址选择器:D R/C F μpc (2) R/C (寄存器/计数器):寄存器——保存下一微地址,实现转移计数器——减1功能,用在循环结构的程序中,控制微循环次数 (3) μpc (微程序计数器):增量器 :CI=1 μpc 寄存器μpc(4) F(微堆栈):放地址寄存器堆栈: 容量为5字,微堆栈指针μsp (用在子程序调用中)(5)D(外部直接输入)D7--0/PL:来自53位微码下地址字段(P67图6_1)/MAP:来自MAPROM/VECT :来自手拨开关(6)命令移码器:CI3--CI0 (P69表)接收外部输入的命令码CI3--CI0,对其进行译码,产生芯片内所需的控制信号,和外部要用的/PL、/MAP、/VECT信号。
/CCEN≡0 /CC为低,表示测试成功/CC为高,表示测试失败。
2.AM2910输入/输出信号及功能(1)输入信号:D11~D0——外部直接输入的数据P68图CI3~I0——命令码,来自53位微码的有关字段/CCEN≡0;/CC 测试条件码/RLD ——R/C装入控制信号,低时,D装入R/CCI ——增量信号/OE——Y输出允许信号(2)输出信号:Y11~Y0 ——下一条微指令地址P68 /PL、/MAP、/VECT:三个使能信号,决定D的来源。
微程序设计实验报告

《计算机组成原理》实验报告学院:计算机学院专业:班级学号:学生姓名:实验日期:2010.12.14指导老师:\成绩评定:五邑大学信息学院计算机组成原理实验室实验五微程序设计实验一、实验目的:深入掌握微程序控制器的工作原理,学会设计简单的微程序。
二、预习要求:1.复习微程序控制器工作原理;2.复习计算机微程序的有关知识。
三、实验设备:EL-JY-II型计算机组成原理实验系统一台,连接线若干。
四、微程序的设计:1.微指令格式设计微指令编码格式的主要原则是使微指令字短、能表示可并行操作的微命令多、微程序编写方便。
微指令的最基本成份是控制场,其次是下地址场。
控制场反映了可以同时执行的微操作,下地址场指明下一条要执行的微指令在控存的地址。
微指令的编码格式通常指控制场的编码格式,以下几种编码格式较普遍。
1)最短编码格式这是最简单的垂直编码格式,其特点是每条微指令只定义一个微操作命令。
采用此格式的微指令字短、容易编写、规整直观,但微程序长度长,访问控存取微指令次数增多从而使指令执行速度慢。
2)全水平编码格式这种格式又称直接编码法,其特点是控制场每一位直接表示一种微操作命令。
若控制场长n位,则至多可表示n个不同的微操作命令。
采用此格式的微指令字长,但可实现多个允许的微操作并行执行,微程序长度短,指令执行速度快。
3)分段编码格式是将控制场分成几段。
若某段长i位,则经译码,该段可表示2i个互斥的即不能同时有效的微操作命令。
采用这种格式的微指令长度较短,而可表示的微操作命令较多,但需译码器。
2.微程序顺序控制方式的设计微程序顺序控制方式指在一条指令对应的微程序执行过程中,下一条微指令地址的确定方法,又叫后继地址生成方式。
下面是常见的两种。
1)计数增量方式这种方式的特点是微程序控制部件中的微地址中的微地址产生线路主要是微地址计数器MPC。
MPC 的初值由微程序首址形成线路根据指令操作码编码形成。
在微程序执行过程中该计数器增量计数,产生下一条微指令地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微程序控制器的组成见图3-2-2,其中控制存储器采用3片2816的E2PROM,具有掉电保护功能,微 命令寄存器18位,用两片8D触发器(273)和一片4D(175)触发器 组成。微地址寄存器6位,用三片 正沿触发的双D触发器(74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2时刻打入
高8位到低8位递减,减至低8位后,再按动两次开关ST,微地址会自动减一,继续对下一个单元的操
作。
微指令字长共24位,控制位顺序如表3-2-1:
表
23
22
21
20
19
1M23
M22
WR
RD
IOM
S3-S0
A字段
B字段
C字段
MA5-MA0
A、B、C为三个译码字段,分别由三个控制位译码出多位。
数学学院实验报告
课程名称:计算机组成原理
实验项目名称:微程序控制器组成与微程序设计实验
一、实验目的
(1)掌握微程序控制器的组成原理。
(2)掌握微程序的编制、写入,观察微程序的运行过程。
二、实验设备与器件
PC机一台,TD-CMA实验系统一套。
三、实验原理
微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件 逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微 命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微
次按动时序与操作台单元的开关ST(第一次按动后MC单元低8位 显示该单元以前存储的数据,第二次
按动后显示当前改动的数据),此时MC单元的指示灯MA5——MA0显示当前地址(000000),M7——M0显示当前数据(00010001)。然后将KK5拨至’加1'档,IN单元开关给出该控存单元数据的中8位
储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利的手动操作方式。以向00H
单元中写入332211为例,对于控制存储器进行编辑的具体操作步骤如下:首先将KK1拨至’停止’档、KK3
拨至’编程’档、KK4拨至’控存’档、KK5拨至’置数’档,由CON单元的SD05――SD00开关给出 需要编辑的控存单元首地址(000000),IN单元开关给出该控存单元数据的低8位(00010001),连续两
指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种 专用的存储器中,称为控制存储器,微程序控制器原理框图如图3-2-1所示。
图
控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验 可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍TS1、TS2、TS3、
元的指示灯MA5——MA0显示当前地址(000000),M23——M16显示当前数据(00110011)。此时被编辑 的控存单元地址会自动加1(01H),由IN单元开关依次给出该控存单元数据的低8位、中8位和高8位
配合每次开关ST的两次按动,即可完成对后续单元的编辑。
CON单元置地址
(000000 )
微地址寄存器的内容即为下一条微指令地址。当T4时刻进行测试判别时,转移逻辑满足条件后输出的负
脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。
图
在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现对存储器
(包括存储器和控制存储器)的三种操作:编程、校验、运行。考虑到对于存储器(包括存储器和控制存
IN单元置数据低8位
(00010001 )
■
IN单元置数据中8位
(00100010 )
■
IN单元置数据高8位
(00110011 )
■
■
‘SD05-SD00=000000、
IN= 00010001
KK1=停止
KK3=编程
KK4=控存
KK5=置数
/\
IN= 00100010
KK1=停止
KK3=编程
KK4=控存
字段中 的P<1>为测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址
入口,从而实现完成对指令的识别,并实现微程序的分支,本系统上的指令译码原理如图3-2-3所示,图
中17…I2为指令寄存器的第7…2位输出,SE5…SEO为微控器单元微地址锁存器的强置端输出,指令译码
KK5=力M
\ST=nn/
/ \
IN= 00110011
KK1=停止
KK3=编程
KK4=控存
KK5=加1\st=nn/
\st=nn/
编辑完成后需进行校验,以确保编辑的正确。以校验00H单元为例,对于控制存储器进行校验的具体
操 作步骤如下:首先将KK1拨至‘停止’档、KK3拨至‘校验’档、KK4拨至‘控存’档、KK5拨至 '置数’档。由CON单元的SD05――SD00开关 给出需要校验的控存单元地址(000000),连续两次按动
该单元的数据后再进行校验,直至确认输入的微代码全部准确无误为止,完成对微指令的输入。
位于实验平台MC单元左上角一列三个指示灯MC2、MC1、MC0用来指示当前操作的微程序字段,分
别对应M23――M16、M15——M8、M7——M0。实验平台提供了比较灵活的手动操作方式,比如在上述 操作中在对地址置数后将开关KK4拨至’减1'档,则每次随着开关ST的两次拨动操作,字节数依次从
开关ST,MC单元指示灯M7――M0显示该单元低8位数据(00010001);KK5拨至 ’加1'档,再连续 两次按动开关ST,MC单元指示灯M15――M8显示该单元中8位数据(00100010;再连续两次按动开关ST,MC单元指示灯M23——M16显示该单元高8位数据(00110011)。再连续两次按动开关ST,地址加1,MC单元指示灯M7M0显示01H单元低8位数据。如校验的微指令出错,则返回输入操作,修改
(00100010,连续两次按动开关ST,完成对 该控存单元中8位数据的修改,此时MC单元的指示灯MA5――MA0显示当前地址(000000),M15——M8显示当前数据(00100010);再由IN单元开关给出该控存 单元数据的高8位(00110011),连续两次按动开关ST,完成对该控存单元高8位数据的修改此时MC单