实验四 微程序控制器原理实验

合集下载

实验四 常规型微程序控制器组成实验

实验四  常规型微程序控制器组成实验

实验四常规型微程序控制器组成实验一、实验目的1.掌握时序发生器的组成原理.2.掌握微程序控制器的组成原理。

二、实验电路1.时序发生器本实验所用的时序电路见图3。

4.电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1—T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1—W3可以执行硬连线控制器的一条机器指令.另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生.图3。

4 时序信号发生器本次实验不涉及硬连线控制器,因此时序发生器中产生W1—W3的部分也可根据需要放到硬连线控制器实验中介绍.产生时序信号T1-T4的功能集成在图中左边的一片GAL22V10中,另外它还产生节拍信号W1-W3的控制时钟CLK1。

该芯片的逻辑功能用ABEL语言实现.其源程序如下: MODULE TIMER1TITLE 'CLOCK GENERATOR T1—T4’CLK = 。

C.;"INPUTMF,CLR,QD,DP, TJ,DB PIN 1。

6;W3 PIN 7;”OUTPUTT1,T2,T3, T4 PIN 15。

18 ISTYPE 'REG';CLK1 PIN 14 ISTYPE ’COM';QD1,QD2,QDR PIN ISTYPE 'REG’;1ACT PIN ISTYPE ’COM’;S = [T1,T2, T3,T4,QD1,QD2,QDR];EQUATIONSQD1 := QD;QD2 := QD1;ACT = QD1 & !QD2;QDR := CLR & QD #CLR &QDR;T1 := CLR & T4 &ACT # CLR & T4 & ! (DP #TJ # DB &W3) &QDR;T2 := CLR & T1;T3 := CLR &T2;T4 := !CLR # T3 #T4 & !ACT &(DP #TJ# DB&W3) # !QDR;CLK1 = T1 # !CLR & MF;S。

实验四 微程序控制器实验

实验四 微程序控制器实验

3、TEC-XP 教学机的微指令格式
TEC-XP 教学机的微指令共 48 位,由 16 位的下址字段和 32 位的操作控制字段形成, 其格式如图 4-3 所示。
图 4-3
TEC-XP 教学机的微指令格式
(1)下址字段 a) 8 位的微下址 用于给出下一条将要执行的微指令的地址。 微程序顺序执行, 即把已增 1 后的微指 令地址作为下地址 b) 4 位的测试控制码 CI3~0 用于决定微程序中的微指令寻址方式(顺序寻址、跳跃寻址) 。本实验中只使用到 0000(初始化,使微下址=0) 、0010(指令功能分支,做 MAPROM 映射) 、0011 (条件转移,由 SCC 决定是否转移) 、1110(顺序寻址,将当前微地址加 1 作为微 下址)这四个命令码。
图 4-4
TEC-XP 教学机的数据通路与微命令
实验步骤
请根据每个步骤的详细要求,完成本实验内容。
1、设定工作方式
接通 TEC-XP 教学机的电源,将功能开关拨为 11010,即设为单步、手动执行指令,使 用微程序控制器,联机操作。
2、验证 A 组基本指令——加法指令 ADD R0,R1 的微程序
根据如下所示的 ADD 指令格式,可得到指令 ADD R0 , R1 的机器代码为 00000000 00000001,其中高 8 位为 ADD 指令的操作码(详见代码表 4-1) ,接下来的两个 4 位分别对 应 R0 和 R1 寄存器。
先按下 RESET 按键,复位系统,然后通过 16 位的数据开关 SW 拨入指令代码,再按 下 RESET 按键,此时指示灯 Microp 亮,其它灯全灭。 注意:在本实验中,选择的是微程序控制器,Microp 指示灯会一直点亮。 由附录图 4-5 所示的基本指令流程可知,加法指令 ADD R0 , R1 的整个指令周期包含 6 个 CPU 周期,其中前 3 个 CPU 周期是取指阶段,所有指令都是一样的,第 4 个 CPU 周期 用于指令操作码的地址映射,第 5 个 CPU 周期完成加法指令的功能,第 6 个 CPU 周期用于 判断是否需要执行中断周期, 从而决定该加法指令执行结束后的流向。 该加法指令的微程序 如表 4-6 所示。 在完成以上设置后,接下来每次按下 START 按键,控制器就会执行一条微指令,请在 实验前看懂以下微指令,在实验中验证每条微指令,并记录每条微指令执行时微地址、微 下址指示灯的状态。

多思计算机组成原理实验四微程序控制器实验

多思计算机组成原理实验四微程序控制器实验

实验四.. .微程序控制器实验。

1.-实验目的。

.(1)掌握微程序控制器的组成原理和工作过程。

(2)理解微指令和微程序的概念,理解微指令与指令的区别与联系。

(3)掌握指令操作码与控制存储器中微程序的对应方法,熟悉根据指令操作码从控制存储器中读出微程序的过程。

2.+实验要求。

(1)做好实验预习,看懂电路图,熟悉实验元器件的功能特性和使用方法。

u(2)按照实验内容与步骤的要求,认真仔细地完成实验。

(3)写出实验报告。

3.-实验电路。

. . ..本实验使用的主要元器件有: 4位数据锁存器74LS175,2KX8EPROM2716,时序发生器,或门、与门、开关、指示灯等。

芯片详细说明请见附录。

图1为实验电路图,其中3片EPROM2716构成控制存储器,1片74LS175为微地址寄存器,与74LS175数据输入引脚相连的输入信号线及6个门电路构成了地址转移逻辑。

注.意,2716输出信号中带后缀“#"的信号为低电平有效信号,不带后缀“#”的信号为高电平有效信号。

为简化电路结构,本实验没有使用微命令寄存器,并且在虚拟实验系统中,将3片EPROM组合为-一个虚拟EPROM组件。

本实验使用的EPROM和时序发生器一-样,均为虚拟实验系统提供的虚拟组件。

(5)答:000001101000000111100001 000001100000010110100010 000001101000011101100011 000001001000100111111000 000001101100000110100010 000001101000011101100011 000001001000100111111000 000001101100000110100010 000001101000011101100011 000001001000100111111000(6)(7)04 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 105 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 006 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 007 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 0 014 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 015 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 0。

实验四 微程序控制器实验.

实验四  微程序控制器实验.

南京工程学院计算机工程学院计算机组成与结构实验报告书实验学生班级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 操作)。

实验四 微程序控制器的组成与微程序设计实验(12-14)

实验四  微程序控制器的组成与微程序设计实验(12-14)

3片74HC74 , 片 锁存6位微地址 位微地址, 锁存 位微地址, 该地址可以外 部输入或内部 产生
LOAD LDAR LDPC P(4) P(3) P(2) P(1) AR INTA PC_G ALU_G 299_G RI_G RD_G RS_G
LDIR
LDRI
LDDR1
LDDR2
M16 M17 M18 M19 M20 M21 M22 M23 M24
实验四 微程序控制器的组成 与微程序设计实验
一、实验目的
1、掌握微程序控制器的组成原理。 、掌握微程序控制器的组成原理。 2、掌握微程序的编制、写入,观 、掌握微程序的编制、写入, 察微程序的运行。 察微程序的运行。 3、为整机实验打好基础。 、为整机实验打好基础。
二、实验内容
编制微程序并观察其运行过程。 编制微程序并观察其运行过程。
TS1
4-D上升 上升 沿触发器
CK
SP03拨到 拨到 STEP位 位 置,单步 通过调节 电位器 RW1改 改 变频率
CLR
STEP1
图1-10 时序电路原理图
表1 TS1-TS4脉冲信号产生时序
D1= /(D2+D3+D4) = /D2/D3/D4 Q1/D2 Q2/D3 ( D2= / Q1 )(D3=Q2) ) Q3/D4 (D4=Q3) ) Q4
2、读出写入的5个单元数据,同写入的进行 、读出写入的 个单元数据 个单元数据, 比较,检查是否正确。 比较,检查是否正确。
检查第1操作数 检查第 操作数
输入存储器地址。 输入存储器地址。第一循环00H,第二 第一循环 第二 循环01H,…. 循环 记录读出的存储器 各单元数据。 各单元数据。第一 循环00H单元 第二 单元,第二 循环 单元 循环01H单元 单元,….。 循环 单元 。 同写入的做比较

实验四---微程序控制器原理实验

实验四---微程序控制器原理实验

2015 年 5 月 24 日课程名称:计算机组成原理实验名称:微程序控制器原理实验班级:学号:姓名:指导教师评定:_________________ 签名:_____________________一、实验目的:1.掌握微程序控制器的组成及工作过程;2.通过用单步方式执行若干条微指令的实验,理解微程序控制器的工作原理。

二、预习要求:1.复习微程序控制器工作原理;2.预习本电路中所用到的各种芯片的技术资料。

三、实验设备:EL-JY-II型计算机组成原理实验系统一台,连接线若干。

四、电路组成:微程序控制器的原理图见图4-1(a)、4-1(b)、4-1(c)。

图4-1(a)控制存储器电路图4-1(b)微地址形成电路图4-1(c)微指令译码电路以上电路除一片三态输出8D触发器74LS374、三片EFPROM2816和一片三态门74LS245,其余逻辑控制电路均集成于EP1K10内部。

28C16、74LS374、74LS245芯片的技术资料分别见图4-2~图4-4.图4-2(a)28C16引脚图4-2(b) 28C16引脚说明工作方式/CE /OE /WE输入/输出读后备字节写字节擦除写禁止写禁止输出禁止L L HH ××L H LL12V L××H× L ×× H ×数据输出高阻数据输入高阻高阻高阻高阻图4-2(c)28C16工作方式选择图4-5(a)74LS374引脚图4-5(b)74LS374功能图4-8(a)74LS245引脚图4-8(b)74LS245功能五、工作原理:1.写入微指令在写入状态下,图4-1(a)中K2须为高电平状态,K3必须接至脉冲/T1端,否则无法写入。

MS1-MS24为24位写入微代码,由24位微代码开关(此次实验采用开关方式)。

uA5-uA0为写入微地址,采用开关方式则由微地址开关提供。

K1须接低电平使74LS374有效,在脉冲T1时刻,uAJ1的数据被锁存形成微地址(如图4-1(b)所示),同时写脉冲将24位微代码写入当前微地址中(如图4-1(a)所示)。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

实验四 微程序控制器实验

实验四 微程序控制器实验

广东技术师范学院实验报告学院:计算机科学学院专业:班级:成绩:姓名:学号:组别:组员:实验地点:实验日期:指导教师签名:实验(四)项目名称:微过程控制器实验一、实验项目名称微过程控制器实验二、实验目的和要求(1)掌握时序发生器的组成原理。

(2)掌握微过程控制器的组成原理。

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

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

它的执行方法就是将控制各部件动作的微指令的集合进行编码,用数字代码的形式表示。

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

实验所用的时序控制电路框图如图所示,可产生四个等间隔的时序信号TS1~TS4,其中Φ为时钟信号,由实验系统左上方的方波信号源提供,可产生频率及脉宽可调的方波信号;STEP(单步)是来自实验系统上方中部的一个二进制开关STEP的模拟信号;START键是来自实验系统上方左部的一个微动开关START的按键信号。

当STEP开关为0时(EXEC),一旦按下START启动键,时序信号TS1~TS4将周而复始地发送出去。

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

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

另外,当机器连续运行时,如果STEP开关置“1”,会使机器停机,CLR开关执行1→0→1操作可以使时序清零。

时序状态图如图4.5-7所示。

由于时序电路的内部电路已经连好,所以只需将时序电路与方波信号源预习情况操作情况考勤情况数据处理情况连接,即将时序电路的时钟脉冲输入端ф接至方波信号发生器输出端H23上,按动启动键START后,就可产生时序信号TS1~TS4。

微程序控制器实验报告

微程序控制器实验报告

一、实验目的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. 设计微程序计数器微程序计数器用于控制微程序的执行顺序。

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

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

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

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

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

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

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

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

微程序控制器原理实验

微程序控制器原理实验

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

实验四 微程序控制器及指令部件实验

实验四  微程序控制器及指令部件实验


用微程序控制的方法,实现算术运算“A加B”,并输出运 算结果: ⑴ 将运算器的输入端与二进制开关相连,输与运算器控制相关 的控制信号与运算器相应的控制信号输入端相连。 ⑵ 将MOCK接PLS1,MCK、D1CK及D2CK均接PLS4. ⑶ 将操作过程分为3个步骤:① 将A送入DR1;② 将B送 入DR2;③ 执行算术运算“A加B”,并将运算结果输出到 数据总线。 ⑷ 将上述3个步骤的操作编写成以下3条微指令,依次写入 到控存的00,01和02单元,完成后按MENU键。
EP ET R
RC
Q3 ~ Q0 74161 PE P3 ~ P0
EP ET R
Vcc RUN
二进制开关 微程序控制器实验电路

控制信号说明: ⑴ RUN是系统的运行状态标志,RUN=1,运行状态; RUN=0,停机状态。 ⑵ STOP是系统的停机状态标志,STOP=1,停机状态; STOP=0,运行状态。

将微程序输入控存是在停机状态(STOP=1, RUN=0)下,通过键盘监控来完成的: ⑴ 在停机状态下,按下键盘上的任意键进入键盘 监控,LCD显示器上显示出操作主菜单。 ⑵ 按“1”选择微代码操作(Mcode),LCD显示: ADDR MICRO CODE 00 xx xx xx 通过按“TAB”键移动光标到微地址或微代码部 分,进行微地址或微代码的修改。修改完毕,按 “Next”键或“Enter”键保存该微地址单元的内容, 并使微地址加1。如此,可连续向多个微地址单元 输入微指令代码。

每段微程序都以取指微指令结束,以便取出下
条指令。

微指令格式如下:
RM EIR2 PC-O RR HALT X1 RA-O EDR2 Cn EIR1 IR2-O ELP WR X0 ERA EDR1 ALU-O S3 M S2 S1 S0

微程序控制器实验报告

微程序控制器实验报告

微程序控制器实验预习报告1.微程序控制器的组成和工作原理。

微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。

其工作原理分为:一、将程序和数据通过输入设备送入存储器;二、启动运行后,从存储器中取出程序指令送到控制器去识别,分析该指令要求什么事;三、控制器根据指令的含义发出相应的命令(如加法、减法),将存储单元中存放的操作数据取出送往运算器进行运算,再把运算结果送回存储器指定的单元中;四、运算任务完成后,就可以根据指令将结果通过输出设备输出2.微程序、微指令、微命令之间的关系。

一系列微指令的有序集合称为微程序。

在微程序控制方式之下,从控制存储器中取出,完成一个或几个微操作的命令称为微指令。

控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令叫做微命令。

所以总的来说:微程序包含微指令,而每条微指令包含的微命令控制。

3.微指令、微程序的设计及调试。

在微程序流程图中,根据每个状态的微指令,将其进行编码,设计出所需硬件及执行效率较高的微程序控制电路,然后进行调试。

思考题:1.举例说明实验中出现的基本概念:微命令、微操作、微指令、微程序?微命令:控制器发出的每个控制信号,如对运算单元的控制m cn s3 s2 s1 s0发出的010101等。

微操作:由微命令控制实现的最基本的操作称为微操作。

如发出运算器加运算的微命令后,运算器进行加法计算,就称为微操作。

微指令:完成一个或几个微操作的指令。

如控制器进行存数据的命令后,需要有we信号有效,pc保持,来控制这些的指令即为微指令。

微程序:微程序包含微指令。

如微程序流程中包括很多微指令控制,进行一些加减运算,存储数据,地址自加一等等。

2.解释并比较微程序控制器的几种设计方法?微序列控制器通过吧控制信号存储在一个查找Rom,(1)用水平编码生成微操作(2)用垂直编码生成微操作(3)从微代码直接产生控制信号。

3.微程序控制器的控制对象、手段及方法?控制器如何取指令?微程序控制器控制对象分为硬件方面和软件方面,硬件方面为数据通路的控制信号,软件方面为测试程序的控制信号。

实验四 微程序控制器、

实验四 微程序控制器、

实验四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. 微指令的执行微程序控制器根据解析得到的操作码和相应的操作数,执行相应的微指令。

微指令是微程序控制器中的最小指令单位,它可以完成一些基本的操作,如数据传输、逻辑运算、算术运算等。

微程序控制器通过执行一系列的微指令来完成整个指令的操作。

4. 微程序的存储和调用微程序控制器中的微指令是存储在微存储器中的,微存储器作为微程序控制器的核心组成部分,它负责存储和调用微指令。

微程序控制器在执行指令时,会根据微指令的地址从微存储器中读取相应的微指令,然后执行。

三、微程序控制器的实验原理微程序控制器的实验原理主要包括以下几个方面:1. 环境准备进行微程序控制器的实验需要准备相应的实验环境。

首先需要搭建一个实验平台,包括微程序控制器、指令存储器、数据存储器等。

同时还需要准备实验所需的指令和数据,可以通过编程的方式生成指令和数据。

2. 设计微程序在进行微程序控制器的实验前,需要先设计相应的微程序。

微程序设计是指根据具体的指令集和指令执行流程,将指令分解为微指令,并确定微指令之间的执行顺序和相互之间的依赖关系。

微程序控制器实验

微程序控制器实验

实验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)。

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

计算机组成原理实验报告-微程序控制器
0 1 0 0 0 0
01
0 0 0 0 0 0 0 1 1
1 1 0
1 1 0
1 1 0
0 0 0 0 1 0
02
0 0 0 0 0 0 0 0 1
1 0 0
0 0 0
0 0 1
0 0 1 0 0 0
03
0 0 0 0 0 0 0 0 1
1 1 0
0 0 0
0 0 0
0 0 0 1 0 0
04
0 0 0 0 0 0 0 0 1
0 0 1 1 1 1
17
0 0 0 0 0 0 0 0 1
0 1 0
0 0 0
0 0 0
0 1 0 1 0 1
20
0 0 0 0 0 0 0 1 1
1 1 0
1 1 0
1 1 0
0 1 0 0 1 0
21
0 0 0 0 0 0 0 1 1
1 1 0
1 1 0
1 1 0
0 1 0 1 0 0
22
0 0 0 0 0 0 0 0 1
(2)读微指令。
(3)产生微操作命令。
(4)形成下一条微指令地址。
(5)取下一条微指令。…………重复(1)~(4)过程,直到该机器指令送入IR为止。
2、执行阶段Βιβλιοθήκη (1)当指令存入IR后,由指令的OP部分送到微地址形成部件,形成该指令对应的微程序的首地址。
(2)读出微指令。
(3)产生微操作命令。
(4)形成下一条微指令地址。…………重复(1)~(4)过程,直到该机器指令执行完为止。
2、微指令寄存器:微指令寄存器(CMIR)存放由控制存储器读出的一条微指令信息
3、微地址寄存器(CMAR):存放将要访问的下一条微指令的微地址。

实验四-微程序控制器设计实验

实验四-微程序控制器设计实验

实验四微程序控制器设计实验(该实验的图、表可参考《计算机组成原理题解、题库、实验》书的193页“第六节常规型微程序控制器组成实验”)一、实验目的(1)掌握时序产生器的组成原理。

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

(3)加深理解微指令与机器指令的关系。

二、实验电路1.时序发生器TEC-4计算机组成原理实验系统的时序电路如图所示。

时序信号发生器图电路采用2片GAL22V10(U6,U7),可产生两级等间隔时序信号T1-T4和W1-W4,其中一个W由一轮T1-T4循环组成,它相当于一个微指令周期或硬联线控制器的一拍,而一轮W1-W4循环可供硬联线控制器执行一条机器指令。

本实验不涉及硬联线控制器。

微程序控制器只使用时序信号T1-T4,产生T 信号的功能集成在GAL22VlO芯片TIMER1(U6)中,另外它还产生节拍信号W1、W2、W3、W4的控制时钟CLK1。

TIMER1的输入信号中,MF接实验台上晶体振荡器的输出,频率为1MHz。

T1至T4的脉冲宽度为100ns。

CLR(注意,实际上是控制台上的CLR#信号,因为ABEL语言的书写关系改为CLR,仍为低有效信号)为复位信号,低有效。

实验仪处于任何状态下令CLR# = 0,都会使时序发生器和微程序控制器复位(回到初始状态),CLR# = l时,则可以正常运行。

复位后时序发生器停在T4、W4状态,微程序地址为000000B。

建议每次实验仪加电后,先用CLR#复位一次。

控制台上有一个CLR#按钮,按一次,产生一个CLR#负脉冲,实验台印制板上已连好控制台CLR#到时序电路CLR的连线。

TJ(停机)是控制器的输出信号之一。

连续运行时,如果控制信号TJ = l,会使机器停机,停止发送时序脉冲T1-T4、W1-W4,时序停在T4。

在实验台上为了将时序信号发生器的输入信号TJ和控制存储器产生的TJ信号区分开来,以便于连线操作,在实验台上时序信号发生器的输入信号TJ命名为TJI,而控制存储器产生的信号TJ仍命名为TJ。

实验四:微控制器实验

实验四:微控制器实验

实验四微控制器实验一、实验目旳1.熟悉微控制器的的控制原理。

2.掌握微控制器的实现方法。

二、实验要求通过控制器实验,理解计算机内部工作过程,建立计算机整机工作概念。

三、控制器组成控制器是计算机的指挥和控制中心,由它把计算机的运算器、存储器、I/O设备等联系成一个有机的系统,并根据程序所特定的微指令序列对各部件的具体要求,适时地发出各种命令,控制计算机各部件有条不紊的进行工作。

如图4-1所示,本系统控制器由组合逻辑与存储逻辑集合组成。

两者按独立控制器的规范与标准设计,既可单独控制,亦可交替互补(混合)控制,在国内率先把PLA控制理念融入微控制器的设计与实现中。

图4-1控制器组成框图1.组合逻辑型如图2-4-13所示的PLD框为组合逻辑型控制器,由可编程器件XC9572独立组成,在器件编程环境的支撑下完成微操作控制信号的设计与下载。

以取得最高操作速度为设计目标,它的缺点是繁锁、杂乱、缺乏规律性,且不易修改和扩充,缺乏灵活性。

组合逻辑控制器实质上是一个组合逻辑电骆,它将一组输入逻辑信号转換成一组输出控制信号,可称为硬布线控制器。

2.存储逻辑型如图4-1所示的CM框为存储逻辑型微程序控制器,它是采用存储逻辑来实现的,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序,存入控制存储器中,微操作控制信号由微指令产生。

微程序控制器的设计思想和组合逻辑的设计思想截然不同。

它具有设计规整,调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已成为当前控制器的主流。

但是,由于它增加了一级控制存储器,所以指令的执行速度比组合逻辑控制器慢。

3. 组合逻辑与存储逻辑结型如图4-1所示,本系统控制器由组合逻辑与存储逻辑集合组成PLA 控制器,它是吸收前两种的设计思想来实现的。

PLA 控制器实际上也是一种组合逻辑控制器,但它又与常规的组合逻辑控制器的硬联结构不同,它是程序可编的,某一微操作控制信号由存储逻辑控制器产生。

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

2015 年 5 月 24 日
课程名称:计算机组成原理实验名称:微程序控制器原理实验
班级:学号:姓名:
指导教师评定:_________________ 签名:_____________________
一、实验目的:
1.掌握微程序控制器的组成及工作过程;
2.通过用单步方式执行若干条微指令的实验,理解微程序控制器的工作原理。

二、预习要求:
1.复习微程序控制器工作原理;
2.预习本电路中所用到的各种芯片的技术资料。

三、实验设备:
EL-JY-II型计算机组成原理实验系统一台,连接线若干。

四、电路组成:
微程序控制器的原理图见图4-1(a)、4-1(b)、4-1(c)。

图4-1(a)控制存储器电路
图4-1(b)微地址形成电路
图4-1(c)微指令译码电路
以上电路除一片三态输出8D触发器74LS374、三片EFPROM2816和一片三态门74LS245,其余逻辑控制电路均集成于EP1K10内部。

28C16、74LS374、74LS245
芯片的技术资料分别见图4-2~图4-4.
图4-2(a )28C16引脚 图4-2(b ) 28C16引脚说明
工作方式 /CE /OE /WE 输入/输出 读

备 字 节 写 字节擦除 写 禁 止 写 禁 止 输出禁止
L L H H × × L H L L 12V L × × H × L × × H ×
数据输出 高 阻 数据输入 高 阻 高 阻 高 阻 高 阻
图4-2(c )28C16工作方式选择
图4-5(a )74LS374引脚 图4-5(b )74LS374功能
图4-8(a)74LS245引脚图4-8(b)74LS245功能
五、工作原理:
1.写入微指令
在写入状态下,图4-1(a)中K2须为高电平状态,K3必须接至脉冲/T1端,否则无法写入。

MS1-MS24为24位写入微代码,由24位微代码开关(此次实验采用开关方式)。

uA5-uA0为写入微地址,采用开关方式则由微地址开关提供。

K1须接低电平使74LS374有效,在脉冲T1时刻,uAJ1的数据被锁存形成微地址(如图4-1(b)所示),同时写脉冲将24位微代码写入当前微地址中(如图4-1(a)所示)。

2.读出微指令
在写入状态下,图4-1(a)中K2须为低电平状态,K3须接至高电平。

K1须接低电平使74LS374有效,在脉冲T1时刻,uAJ1的数据被锁存形成微地址uA5-uA0(如图4-1(b)所示),同时将当前微地址的24位微代码由MS1-MS24输出。

3.运行微指令
在运行状态下,K2接低电平,K3接高电平。

K1接高电平。

使控制存储器2816处于读出状态,74LS374无效因而微地址由微程序内部产生。

在脉冲T1时刻,当前地址的微代码由MS1-MS24输出;T2时刻将MS24-MS7打入18位寄存器中,然后译码输出各种控制信号(如图4-1(c)所示,控制信号功能见实验五);在同一时刻MS6-MS1被锁存,然后在T3时刻,由指令译码器输出的SA5-SA0将其中某几个触发器的输出端强制置位,从而形成新的微地址uA5-uA0,这就是将要运行的下一条微代码的地址。

当下一个脉冲T1来到
时,又重新进行上述操作。

4.脉冲源和时序电路:
实验所用的脉冲源和时序电路中“脉冲源输出”为时钟信号,f的频率为500KHz,f/2的频率为250KHz,f/4的频率为125KHz,f/8的频率为62.5KHz,共四种频率的方波信号,可根据实验自行选择一种方波信号的频率。

每次实验时,只需将“脉冲源输出”的四个方波信号任选一种接至“信号输入”的“fin”,时序电路即可产生4种相同频率的等间隔的时序信号T1~T4。

电路提供了四个按钮开关,以供对时序信号进行控制。

工作时,如按一下“单步”按钮,机器处于单步运行状态,即此时只发送一个CPU 周期的时序信号就停机,波形见图4-8。

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

如按一下“启动”按钮,机器连续运行,时序电路连续产生如图4-9的波形。

此时,按一下“停止”按钮,机器停机。

图4-8 单步运行波形图
图4-9 全速运行波形图
按动“单脉冲”按钮,“ T+”和“T-”输出图4-10的波形:
T+
T-
图4-10 单脉冲输出波形
各个实验电路所需的时序信号端均已分别连至“读写控制电路”的“T1、T2、T3、T4”,实验时只需将“脉冲源及时序电路”模块的“T1、T2、T3、T4”端与“读写控制电路”的“T1、T2、T3、T4”端相连,即可给电路提供时序信号。

2.微程序控制器电路:
三片EEPROM2816构成24位控制存储器,两片8D触发器74LS273和一片4D触发器74LS175构成18位微命令寄存器,三片3线-8线译码器74LS138对微命令进行译码。

三片2D触发器74LS74构成6位微地址寄存器,它们带有清“0”端和预置端。

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

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

SA5~SA0为微控器电路微地址锁存器的强置端输出。

在该电路中有一组开关K1、K2、K3、K4(注意:K4在基板上的“24位微代码输入及显示电路”中),它们可以设为三种状态:写入、读出和运行。

当处于“写入”状态时,可根据微地址和微指令格式将微指令二进制代码写入到2816中。

当处于“读出”状态时,可以将写入的二进制代码读出,从而可以对写入控存的二进制代码的正确性进行验证。

当处于“运行”状态时,只要给出微程序的入囗微地址,则可根据微程序流程图自动执行微程序。

六、实验内容:
往EEPROM里任意写24位微代码,并读出验证其正确性。

七、实验步骤
(本实验采用开关控制操作方式实验)
Ⅱ、开关控制操作方式实验
本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平 “0”。

为了避免总线冲突,首先将控制开关电路的所有开关拨到输出高电平“1”状态, 所有对应的指示灯亮。

连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

1.按图4-12接线图接线:
图4-12 开关控制电路接线
2.实验步骤:
观测时序信号:
用双踪示波器观察脉冲源及时序电路的“f/4”、“T1、T2、T3、T4”端,按动【启动】按钮,观察“f/4”、“T1、T2、T3、T4”各点的波形,比较它们的相互关系,画出其波形,并与图4-9比较。

写微代码 (以写表4-1的微代码为例) :
首先将微程序控制电路上的开关K1K2K3拨到写入状态,即K1 off 、K2 on 、K3 off ,然后将24位微代码输入及显示电路上的开关K4拨到on 状态。

置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 置24位微代码开关MS24---MS1为:“00000000 00000000 00000001”,输入24位二进制微代码,按脉冲源及时序电路的【单步】,黄色微地址灯显示“000 000”,写入微代码。

保持K1K2K3K4状态不变,写入表4-1的所有微代码。

读微代码并验证结果:
将微程序控制电路上的开关K1K2K3拨到读出状态,即K1 off 、K2 off 、K3 on ,然后将24位微代码输入及显示电路上的开关K4拨到off 状态。

置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 按脉冲源及时序电路的【单步】,黄色微地址灯显示“000 000”,24位微代码显示“00000000
微程序控制器电路
UAJ1
UA5…UA0
控制开关电路
读写控制电路
T1T2T3T4
T1T2T3T4 脉冲源及时序电路
fin f/4
00000000 00000001”,即第一条微代码。

保持K1K2K3K4状态不变,改变UA5 …… UA0微地址的值,读出相应的微代码,并和表4-1的微代码比较,验证是否正确。

相关文档
最新文档