微程序控制器实验
计算机组成原理-微程序控制器实验报告
计算机组成原理实验之微程序控制器实验一、实验目的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.实验目的与要求:1.理解时序产生器的原理,了解时钟和时序信号的波形2.掌握微程序控制器的功能.组成知识.3.掌握微指令格式和各字段功能.4.掌握微程序的编制,写入,观察微程序的运行,学习基本指令的执行流程2.实验方案:1.按照各组的要求将二进制代码表的代码输入2.根据微程序流程图将程序通过机器指令执行3.通过手动操作将程序执行完毕3.实验结果分析:通过二进制代码表将微指令输入到RAM当中,并通过机器指令将这些微程序根据流程执行完,以达到执行程序的目的.4.写出你掌握了的控制信号的作用存数(STA)是将数据向RAM里面装入OUT(输出)是将RAM里面的数据取出,通过LED灯的形式显示出来5.结论微指令就是把同时发出的控制信号的有关信息汇集起来形成的。
将一条指令分成若干条微指令,按次序执行就可以实现指令的功能。
一条机器指令的功能是若干条微指令组成的序列来实现的。
6.问题与讨论及实验总结在微指令操作时需要将八进制的微地址转化成二进制,而且将它们输入到机器里面,在输入过程令我有时会混淆了一些二进制代码,从而操作出错,不过找到规律后就可以准确无误了.在执行程序时,要注意清零,不然会出错.7.思考选择题:(单选题)1、( A )2、( B)3、( B )4、( A )5、( B ) 6 、( C ) 7、( B ) 8、( A )9、( A ) 10、( B ) 11、( D )。
计算机组成原理实验报告三微程序控制器实验
微程序控制器实验报告一、实验目的(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;现象结果:四、实验体会原本对于控制器的设计还是一片空白,通过实验初步理解微程序控制器的组成结构。
微程序控制器实验报告
微程序控制器实验报告微程序控制器实验报告引言微程序控制器是一种常见的计算机控制器,它采用微程序的方式来实现指令的执行。
在本次实验中,我们将学习和探索微程序控制器的工作原理,并通过实验验证其功能和性能。
实验目的本次实验的主要目的是通过设计和实现一个简单的微程序控制器,来深入理解微程序控制器的工作原理和原理图设计。
实验过程1. 设计微指令集在设计微程序控制器之前,首先需要确定微指令集。
微指令集是由一系列微指令组成的,每个微指令对应一个控制信号,用于控制计算机的各个组件的操作。
在本次实验中,我们选择了常见的微指令集,包括存储器读写、算术逻辑运算、数据传输等指令。
2. 设计微指令控制存储器微指令控制存储器是微程序控制器的核心组件,用于存储微指令集。
在本次实验中,我们使用了静态随机存储器(SRAM)来实现微指令控制存储器。
通过将微指令集编码为二进制数,并将其存储在SRAM中的不同地址位置,实现对微指令的存储和读取。
3. 设计微指令解码器微指令解码器用于解析微指令,并产生相应的控制信号。
在本次实验中,我们使用了组合逻辑电路来实现微指令解码器。
通过将微指令的不同位与控制信号相连,实现对微指令的解码和控制信号的生成。
4. 设计微程序计数器微程序计数器用于控制微程序的执行顺序。
在本次实验中,我们使用了计数器和触发器来实现微程序计数器。
通过将微程序计数器的输出与微指令控制存储器的地址输入相连,实现对微指令的顺序读取。
实验结果通过实验,我们成功设计并实现了一个简单的微程序控制器。
在实验中,我们编写了微指令集,并将其存储在微指令控制存储器中。
通过微指令解码器和微程序计数器的协作,我们成功实现了对微指令的解码和执行。
实验结果表明,微程序控制器能够准确地控制计算机的各个组件的操作,并实现指令的执行。
实验总结通过本次实验,我们深入了解了微程序控制器的工作原理和原理图设计。
微程序控制器作为一种常见的计算机控制器,具有灵活性和可扩展性。
微程序控制实验报告(共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)。
微程序控制器组成实验
实验五、微程序控制器组成实验一、实验目的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个跳线开关。
微程序控制器实验心得
经过一学期的微程序控制器实验课程学习和实验操作,我积累了不少经验和收获。以下我将分享我的实验心得体会。
一、实验前的准备
在进行微程序控制器实验之前,我首先要熟悉实验器材和实验指导书,了解实验的基本原理和操作步骤。此外,我还需要做好实验器材的调试和连接,确保实验环境的稳定和安全。这些都是实验成功的前提准备工作,也是我在实验中非常重视的环节。
四、实验中的经验和教训
在实验中,我经常会遇到一些小失误,比如接线错误、程序逻辑不清晰等。但通过这些失误,我不断总结经验,提升自己的实验技能。我明白了失败乃成功之母,教训的背后蕴含着宝贵的经验,只有不断总结,才能不断进步。
五、实验中的进步和提升
在实验过程中,我逐渐掌握了实验技能和方法,提高了自己的动手操作能力和实际问题解决能力。我还学会了团队合作和沟通交流的重要性,这些都是我在实验中不断提升和进步的重要体现。
六、实验心得体会
通过微程序控制器实验,我深刻地体会到了理论联系实际的重要性。实验不仅帮助我巩固了课堂知识,还培养了我的动手实践能力和解决问题的能力。我也认识到,实验中的困难和挫折都是成长的过程,只有坚持不懈地克服,才能不断进步。
综上所述,微程序控制器实验是一门非常有意义和价值的课程,通过实验,我不仅学到了专业知识,还培养了自己的实践能力和解决问题的能力。我相信这些收获和经验对我未来的学习和工作都将大有裨益。这也让我更加坚定了要将理论与实践相结合,不断学习和提升自己的信念。
二、实验过程中遇到的困难
在实验过程中,我遇到了不少困难,比如实验器材调试不成功、程序运行出现错误等。针对这些困难,我积极和老师和同学沟通交流,寻求解决方法。有时候,我还会查阅相关资料和书籍,不断摸索和尝试,最终克微程序控制器实验,我不仅加深了对课程知识的理解,还学会了如何正确地使用实验器材和编写程序。我还学会了分析和解决实际问题的能力,培养了动手实践的操作技能。这些收获对我以后的学习和工作都有着积极的影响。
微程序控制器实验
微程序控制器实验一、实验目的和要求(必填)通过看懂教学计算机中已经设计好并正常运行的数条基本指令(例如,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 等指令)的功能、格式和执行流程,注意各操作功能所对应的控制信号的作用。
微程序控制器实验报告
4.6 微程序控制器实验预习翻阅计算机组成与体系结构等书籍,复习微代码等知识。
波形仿真(以LDA指令为例)参数设置:End time : 5.0us Grad size: 100.00ns信号设置:clk :时钟脉冲输入信号;qd :启动时序电路的输入信号,低电平有效tj :实现停机的输入信号,高电平有效dp :实现单拍执行的输入信号,高电平有效。
KWE|RD :强读强写输入信号,均为低电平有效。
CLR : 清零输入信号,低电平有效。
IR7~5 :即IR7 ,IR6 ,IR5 ,指令地址输入信号。
pc_sel: 包含:pc_clr (PC清零信号,低电平有效) pc_load , pc_en ;bus_sel:总线输出信号。
分别为:sw_bus , r4_bus ,r5_bus ,alu_bus ,pc_bus;ld_reg :显示寄存器装载的输出信号。
分别为:ldr5 ,ldr4 ,ldr2 ,ldr1 ,ldar ,lddirM , CN ,s4~1 : 共同为显示运算选择的输出信号。
we|rd :存储器的写信号和读信号。
P1 : 判别信号。
a 4~1 : 下址输出信号。
t 4~1:即t4, t3, t2, t1:节拍脉冲输出信号波形分析:仿真结论:波形仿真符合预期结果。
运用模拟器运行LDA装载指令说明:图中:OP 为操作码,对应IR;M_ADDR 为当前地址,M_NXT_ADDR 为下一地址;其他的显示寄存器数据。
如图中编号及箭头所示:1、初始状态。
所有数据都为02、执行当前地址M_ADDR=01H下的指令:PC->AR,PC+1;生成下一地址:M_NXT_ADDR=02H,此时PC=01H3、执行当前地址M_ADDR=02H下的微指令:RAM->IR;此时OP=20H,则在绝对跳转时会选择LDA,相对地产生的下一个地址为M_NXT_ADDR=09H。
4、执行当前地址M_ADDR=09H的微指令:PC->AR,PC+1,AR=01H,产生下一个微地址M_NXT_ADDR=15H;5、执行当前地址M_ADDR=15H的微指令:RAM->AR,此时01H地址中的值为0DH,故AR=0DH,产生下一个微地址为M_NXT_ADDR=16H;6、执行当前地址M_ADDR=16H的微指令:RAM->R5,此时0DH地址中存放的值为55H,故R5=55H,产生下一个微地址为M_NXT_ADDR=01H。
实验四 微程序控制器、
实验四COP2000微程序控制器实验一、实验目的掌握微程序控制器的工作原理,并学会汇编指令和反汇编指令的运用。
二、实验要求运用COP2000软件练习使用,并编制程序,检验输出结果和工作原理。
三、实验内容数据传送实验和输入输出实验:1.在COP2000软件中的源程序窗口输入下列程序2.将程序另存为EX1.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址、机器码、反汇编指令。
3.按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。
2.将程序另存为EX1.ASM,将程序汇编成机器码,反汇编窗3.按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC 及uPC如何工作。
中断实验1.在COP2000 软件中的源程序窗口输入下列程序2.将程序另存为EX6.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址、机器码、反汇编指令。
3.按快捷图标的F7,执行“单微指令运行”功能,在跟踪程序时,按下实验仪上中断请求按钮(在软件模拟时,可以按菜单下方的中断请求快捷按钮)。
中断请求灯亮,在每个指令的最后一条微指令执行完,就会响应中断,中断响应灯高。
同时,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。
观察程序执行时,堆栈及中断请求,中断响应位的状态。
四、心得体会本次实验,我学会了如何使用COP2000,以及利用汇编指令及反汇编指令观察运算器的运算过程。
了解了一些基本的加减与或运算和中断处理。
试验七微程序控制器的实现试验
实验七微程序控制器的实现实验一、实验目的和要求1、掌握时序信号发生电路组成原理。
2、掌握微程序控制器的设计思想和组成原理。
3、掌握微程序的编制、写入,观察微程序的运行。
二、实验内容1、实验原理实验所用的时序电路原理如图7-1所示,可产生4个等间隔的时序信号TS1~TS4,其中SP为时钟信号,由实验机上时钟源提供,可产生频率及脉宽可调的方波信号。
学生可根据实验要求自行选择方波信号的频率及脉宽。
为了便于控制程序的运行,时序电路发生器设计了一个启停控制触发器UN1B,使TS1~TS4信号输出可控。
图中“运行方式”、“运行控制”、“启动运行”三个信号分别是来自实验机上三个开关。
当“运行控制”开关置为“运行”,“运行方式”开关置为“连续”时,一旦按下“启动运行”开关,运行触发器UN1B的输出QT一直处于“1”状态,因此时序信号TS1~TS4将周而复始地发送出去;当“运行控制”开关置为“运行”,“运行方式”开关置为“单步”时,一旦按下“启动运行”开关,机器便处于单步运行状态,即此时只发送一个CPU周期的时序信号就停机。
利用单步方式,每次只运行一条微指令,停机后可以观察微指令的代码和当前微指令的执行结果。
另外,当实验机连续运行时,如果“运行方式”开关置“单步”位置,也会使实验机停机。
2、微程序控制电路与微指令格式①微程序控制电路微程序控制器的组成见图7-2,其中控制存储器采用3片E2PROM 2816芯片,具有掉电保护功能,微命令寄存器18位,用两片8D触发器74LS273(U23、U24)和一片4D触发器74LS175(U27)组成。
微地址寄存器6位,用三片正沿触发的双D触发器74LS74(U14~U16)组成,它们带有清“0”端和预置端。
在不进行判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。
当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。
微程序控制器实验
微程序控制器实验一、实验目的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-”标示,以便和硬连线控制器产生的控制信号区分。
微程序控制器实验
实验4 微程序控制器实验一实验目的(1) 掌握微程序控制器的组成原理。
(2) 掌握微程序的编制、写入,观察微程序的运行过程。
二实验设备PC机一台,TD-CMA实验系统一套。
三实验原理微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。
它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。
这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。
微程序存储在一种专用的存储器中,称为控制存储器微程序控制器组成原理框图控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍TS1、TS2、TS3、TS4。
在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现对存储器(包括存储器和控制存储器)的三种操作:编程、校验、运行。
考虑到对于存储器(包括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利的手动操作方式。
编辑完成后需进行校验,以确保编辑的正确。
以校验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)。
微程序控制实验报告
微程序控制实验报告微程序控制实验报告引言:微程序控制是一种通过微指令序列来控制计算机硬件的方法。
通过将指令的操作码映射到微指令序列,可以实现复杂的指令执行过程。
本实验旨在通过设计和实现一个简单的微程序控制器,加深对微程序控制原理的理解。
一、实验目的本实验的主要目的是设计和实现一个8位微程序控制器。
通过该实验,我们将能够:1. 理解微程序控制的工作原理;2. 掌握微程序控制器的设计方法;3. 学习如何使用微指令序列来控制计算机硬件。
二、实验原理微程序控制是一种基于微指令的控制方式,它将指令的操作码映射到一组微指令序列。
这些微指令序列定义了计算机硬件在执行指令过程中的控制信号。
通过微指令序列,我们可以实现复杂的指令执行过程,如数据传输、算术逻辑运算、分支跳转等。
三、实验设计本实验中,我们设计了一个简单的8位微程序控制器。
该控制器包括以下几个模块:1. 指令寄存器(IR):用于存储当前执行的指令;2. 指令译码器(ID):将指令的操作码解码为微指令地址;3. 微指令存储器(MS):存储微指令序列;4. 控制信号发生器(CG):根据微指令地址生成控制信号;5. 数据通路(DP):执行指令的计算机硬件。
四、实验步骤1. 设计微指令序列:根据指令集的要求,设计一组微指令序列,包括数据传输、算术逻辑运算、分支跳转等操作。
2. 实现微指令存储器:使用存储器芯片或其他逻辑门电路实现微指令存储器,并将微指令序列存储其中。
3. 实现指令译码器:设计指令译码器,将指令的操作码解码为微指令地址。
4. 实现控制信号发生器:根据微指令地址生成控制信号,控制数据通路的操作。
5. 实现数据通路:根据指令要求,设计并实现数据通路,包括寄存器、算术逻辑单元等。
6. 连接各个模块:将指令寄存器、指令译码器、微指令存储器、控制信号发生器和数据通路连接起来,形成一个完整的微程序控制器。
五、实验结果与分析经过实验,我们成功实现了一个简单的8位微程序控制器。
微程序控制器设计实验报告
微程序控制器设计实验报告竭诚为您提供优质⽂档/双击可除微程序控制器设计实验报告篇⼀:微程序控制器的设计与实现微程序控制器的设计与实现⼀、设计⽬的1、巩固和深刻理解“计算机组成原理”课程所讲解的原理,加深对计算机各模块协同⼯作的认识。
2、掌握微程序设计的思想和具体流程、操作⽅法。
3、培养学⽣独⽴⼯作和创新思维的能⼒,取得设计与调试的实践经验。
4、尝试利⽤编程实现微程序指令的识别和解释的⼯作流程。
⼆、设计内容按照要求设计⼀指令系统,该指令系统能够实现数据传送,进⾏加、减运算和⽆条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、⽴即数寻址等五种寻址⽅式。
三、设计具体要求1、仔细复习所学过的理论知识,掌握微程序设计的思想,并根、据掌握的理论写出要设计的指令系统的微程序流程。
指令系统⾄少要包括六条指令,具有上述功能和寻址⽅式。
2、根据微操作流程及给定的微指令格式写出相应的微程序3、将所设计的微程序在虚拟环境中运⾏调试程序,并给出测试思路和具体程序段4、撰写课程设计报告。
四、设计环境1、伟福cop2000型组成原理实验仪,cop2000虚拟软件。
2、Vc开发环境或者Java开发环境。
五、设计⽅案(1)设计思想编写⼀个指令系统,根据所编写的指令的功能来设计相应的微程序。
⾸先利⽤moV传送指令来给寄存器和累加器传送⽴即数,实现⽴即数寻址;利⽤寄存器寻址⽅式,⽤ADDc指令对两者进⾏相加运算;利⽤寄存器间接寻址⽅式,⽤sub指令实现减运算;利⽤累加器寻址⽅式,⽤cpL指令实现对累加器寻址;利⽤存储器寻址⽅式,⽤Jmp指令实现程序的⽆条件跳转。
这样,所要设计的指令系统的功能就全部实现了。
(2)微指令格式采⽤⽔平微指令格式的设计,⼀次能定义并执⾏多个并⾏操作微命令的微指令,叫做⽔平型微指令。
其⼀般格式如下:按照控制字段的编码⽅法不同,⽔平型微指令⼜分为三种:全⽔平型(不译法)微指令,字段译码法⽔平型微指令,以及直接和译码相混合的⽔平型微指令。
实验六_CPU_微程序控制器实验
CPU__微程序控制器实验实验目的1.理解微程序控制器的控制原理2.进一步掌握指令流程和功能3.了解掌握微程序控制器的设计思路和方法实验原理微程序控制器的设计思想是由英国剑桥大学的威尔克斯(Wilkes)教授于1951年提出来的, 即将机器指令的操作(从取指令到执行)分解成若干个更基本的微操作序列, 并将有关的控制信号(微命令)按照一定的格式编成微指令, 存放到一个只读存储器中, 当机器运行时, 一条一条地读出这些微指令, 从而产生全机所需要的各种操作控制信号, 使相应部件执行所规定的操作。
微指令格式:N _µA 0N _µA 1N _µA 2N _µA 3N _µA 4P 0P 1P 2P C _i n cl j _i n s t r u c tc _z _j _f l a gl d _I Ro p _c o d e 0o p _c o d e 1o p _c o d e 2c h a n g e _zc h a n g e _cD R W rs e l _m e m d a t aM e m _W r i t e1234567891011121314151617181920D W _i n s t r u c t实验步骤(1)实验台设置成FPGA-CPU 独立调试模式, REGSEL=0、CLKSEL=1.FDSEL=0.使用实验台上的单脉冲, 即STEP_CLK 短路子短接, 短路子RUN_CLK 断开;(2)将设计在Quartus II 下输入, 编译后下载到TEC-CA 上的FPGA 中;(3)按复位键后, 拨动实验台上的开关SD5~SD0, 改变IR[15…12]、进位标志C 和结果为0标志Z, 观察指示灯R15~R0、A4~A0、A12~A8、A14和A15显示的信号, 追踪每条指令的执行过程并把相应数据填在表6-1中。
(4)观察每条指令的执行过程, 每个节拍进行的微操作和微操作控制信号。
实验五 微程序控制器
实验五 微程序控制器实验一.微程序控制器的组成 (看小板实物)微程序定序器: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的来源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微程序控制器实验
计算机科学与技术系
实验报告
专业名称计算机科学与技术
课程名称计算机组成原理
项目名称微程序控制器实验
班级
学号
姓名
同组人员
实验日期
一、实验目的与要求
实验目的
(1)掌握微程序控制器的组成原理
(2)掌握微程序控制器的编制、写入,观察微程序的运行过程
实验要求
(1)实验之前,应认真准备,写出实验步骤和具体设计内容,否则实验效率会很低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说懂得了些什么重要教学内容;
(2)应在实验前掌握所有控制信号的作用,写出实验预习报告并带入实验室;
(3)实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而损坏设备,又要仔细思考实验有关内容,把自己想不明白的问题通过实验理解清楚;
(4)实验之后,应认真思考总结,写出实验报告,包括实验步骤和具体实验结果,遇到的问题和分析与解决思路。
还应写出自己的心得体会,也可以对教学实验提出新的建议等。
实验报告要交给教师评阅后并给出实验成绩;
二、实验逻辑原理图与分析
画实验逻辑原理图
逻辑原理图分析
微程序控制器的基本任务是完成当前指令的翻译个执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。
它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示成为微指令。
这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。
微程序存储在一种专用的存储器中,称为控制存储器。
三、数据通路图及分析 (画出数据通路图并作出分析)
(1)连接实验线路,检查无误后接通电源。
如果有警报声响起,说明有总线竞争现象,应关闭电源,检查连线,直至错误排除。
(2)对微控制器进行读写操作,分两种情况:手动读写和联机读写。
1、手动读写 地址转移逻辑
微地址寄存器 控制存储器
地址译码 P 字段 控制字段 状态条
...
...
微命令信号
指令寄存器IR OP
手动对微控制器进行编程(写)
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.四步,将下表的微代码写入到2816芯片中。
地址十六
进制
高五
位
S3
—
S0
A字
段
B字
段
C字
段
MA5—
MA0
00 00 00
01 0000
000
000 000 000 000001
01 00 70
70 0000
000
111 000 001 110000
04 00 24
05 0000
000
010 010 000 000101
05 04 B2 0000100011 001 000 000001
手动对微控制器进行校验(读)
1、将时序与操作台单元的开关KK1置为“停止”档,KK3置为“校验”档,KK4置为“控存”档,KK5置为“置数”档
2.使用CON 单元的SD05——SD00给出微地址,连续两次按动时序与操作台单元的ST ,MC 单元的指数指示灯M7——M0显示该单元的低8位。
3.将时序与操作台单元的开关KK5置为“加1”档。
4.连续两次按动时序与操作台单元的ST ,MC 单元的指数指示灯M15——M8显示该单元的中8位。
连续两次按动时序与操作台单元的ST ,MC 单元的指数指示灯M23——M16显示该单元的高8位。
5.重复1.2.3.4.四步,完成对微代码的校验。
如果检验出微代码写入错误,重新写入、校验、直至确认微指令的输入无误为止。
2、联机读写
四、实验数据和结果分析
01 0 1
30 00 14 04 00000 0000
001 010 000 000100
32 18 30 01 00011 0000
011 000 000 000001
33 28 04 01 00101 0000
000 010 000 000001
35 00 00 35 00000 0000
000 000 000 110101
实验结果数据
结果数据分析
01 007070:CON(INS)->IR,P<1>
通过给定的微地址01,根据实验数据选择对应的微指令CON(INS)->IR,P<1>,比较A、B、C三个译码字段的值,选择相应的微命令LDR0和P<1>,实现此次的微指令操作。
04 002405:R0->B
通过给定的微地址04,根据实验数据选择对应的微指令R0->B,比较A、B、C
三个译码字段的值,选择相应的微命令LDB和R0_B,实现此次的微指令操作。
05 04B201: A+B->R0
通过给定的微地址05,根据实验数据选择对应的微指令A+B->R0,比较A、B、C 三个译码字段的值,选择相应的微命令LDR0和ALU_B,实现此次的微指令操作。
30 001404: R0->A
通过给定的微地址30,根据实验数据选择对应的微指令R0->A,比较A、B、C
三个译码字段的值,选择相应的微命令LDA和R0_B,实现此次的微指令操作。
32 183001: IN->R0
通过给定的微地址32,根据实验数据选择对应的微指令IN->R0,比较A、B、C 三个译码字段的值,选择相应的微命令IOR和LDR0,实现此次的微指令操作。
33 080401: R0->OUT
通过给定的微地址33,根据实验数据选择对应的微指令R0->OUT,比较A、B、C 三个译码字段的值,选择相应的微命令R0_B和IOW,实现此次的微指令操作。
35 000035: NOP
通过给定的微地址35,根据实验数据选择对应的微指令NOP,执行停机微命令。
五、实验问题分析、思考题与小结
问题分析
1、手动读写浪费时间很长。
对微控器进行读写操作时,可以手动读写,也可以联机读写。
在第一次实验时,进行的是手动读写,手动读写时需先读IN单元给出低8位数据,然后将时序与操作台单元的开关KK5置为“加1”档,继续读中8位,高8位。
由于操作繁琐,经常读写错误,导致重头开始重新读写,浪费了很多时间。
2、OUT单元的显示值不是01000110。
进行本机运行时,操作不正确,导致OUT单元显示值错误。
思考题
1.当前的数据通路是由哪条微指令实现的?
R0->A。
2.当前微指令有几个微命令有效?
两个微命令有效,分别是R0_B#和LDA。
3.当前微指令的微地址?
30。
4.当前微指令是解释执行哪条机器指令的?
ADD。
5.当前的微程序有几条微指令?
三条。
6.基本模型机实验执行了几个微程序?实现了哪些功能?
四个,实现了IN->R0,R0+R0->R0,R0->OUT,停机等功能。
小结
除了连线错误,出现错误的原因也就是操作,或者是线路出现短路现象,而线不通这一问题是出错很难排查的。
得分(百分制)。