文档库 最新最全的文档下载
当前位置:文档库 › 微程序控制器的设计

微程序控制器的设计

微程序控制器的设计
微程序控制器的设计

“计算机原理”课程设计任务书

前言

“计算机原理”是大学本科计算机相关专业的一门核心专业基础课程,必修,其目的在于使学生了解计算机单机系统的基本组成、工作原理,培养学生从事计算机硬件分析、应用、开发的能力,为进一步学习以后的专业课打下坚实基础。该课程主要讲授单处理机系统的组成和工作原理,其中控制器的设计是课程的重点和难点。为了让学生能融会贯通各知识点,掌握微程序设计技术,增强对计算机系统各模块协同工作的认识,课程设计十分必要。本次课程设计主要是让学生通过设计系统的指令系统来进一步理解微程序控制器的设计思想和具体方法、步骤并掌握EDA技术并实现控制。

课程设计题目:微程序控制器的设计

一、目的:

1、巩固并深刻理解计算机组成原理实验箱整机结构和工作原理,熟悉EDA 扩展板功能,掌握EDA技术,加深对计算机各模块协同工作的认识,以便实现控制。

2、熟悉微程序控制器组成、结构和工作原理,分析水平型微指令格式及控制字段中每一个微操作的含义,利用系统具备完全开放的特性,重新设计指令系统,掌握微程序控制器的设计思想和方法。

3、培养学生独立地分析问题、解决问题能力。

二、内容:

首先利用实验系统COP2000具有完全开放的特性,由学生自行设计控制器微指令格式及定义,重新设计指令系统,要求该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。

其次了解EDA扩展板功能,自学并掌握相关EDA技术,以实现EDA 控制。

三、具体要求:

1、熟悉伟福COP2000型计算机组成原理实验仪,复习“计算机原理”课程所涉及的基础理论和基本技能,掌握微程序控制器的设计思想。

2、掌握虚拟软件的使用,学生自行设计指令系统,微程序的设计与调试可以在虚拟环境中进行。

3、自学并掌握相关EDA技术,了解EDA扩展板功能。

四、设计环境:

伟福COP2000型计算机组成原理实验仪,微机,EDA扩展板,虚拟软件

目录

第一章系统简介/基本原理/系统概况---------------------------- -----4 §1.1 COP2000型计算机组成原理实验仪

§1.2 虚拟软件写出调试过程

§1.3 EDA编程/技术

§1.4 环境:

第二章微程序控制器设计-------------------------------------------------6 §2.1 微程序控制器原理

§2.2 微程序控制器设计

第三章指令系统设计-----------------------------------------------------10 §3.1 指令系统设计思想

1、指令系统流程图及微操作序列

2、水平型微指令格式设计

3、24个微命令意义

§3.2 微程序设计

第四章EDA编程/技术------------------------------------------------------17 §4.1EDA编程技术

§4.2应用程序举例

第五章心得体会----------------------------------------------------------18 参考文献------------------------------------------------------------------19

第一章系统简介/基本原理/系统概况

§1.1 COP2000型计算机组成原理实验仪

COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成。实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器W、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。

§1.2 虚拟软件写出调试过程

设计好指令系统后,将其以INS为后缀保存下来。同时把根据指令功能所编的程序在源程序窗口输入,并将其另存为以ASM为后缀的文件。做好了这些,对程序进行汇编,进入调试过程。

按快捷图标的F7,执行“单微指令运行”功能,观察执行每条指令时,数据是否按照设计的要求流动,寄存器的输入/输出状态是否符合设计要求,各控制信号的状态,PC及uPC如何工作是否正确。这样,通过以上步骤对所设计的程序进行调试和修改,就能将所设计的程序一步步完善和正确起来。

§1.3 EDA编程/技术

EDA(Electronic Design Automation)中文意思是电子设计自动化EDA 技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。利用 EDA 技术进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA 技术是现代电子设计的发展趋势。

§1.4 环境:

伟福COP2000型计算机组成原理实验仪,微机,虚拟软件。

COP2000模型机包括了一个标准CPU所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以及跳转控制电路用CPLD来实现,其它电路都是用离散的数字电路组成。微程序控制部分也可以用组合逻辑控制来代替。

第二章微程序控制器设计

§2.1 微程序控制器原理

〈1〉微程序控制的优点

微程序控制技术可代替直接由硬件连线的控制技术。由于微程序控制方法规整性好,灵活方便,通用性强,因此在大型复杂的数字系统设计中广泛应用,成为控制器的主流设计方法。

〈2〉微程序控制的基本思想

微程序控制的基本思想,就是仿照通常的解题程序的方法,把所有的控制命令信号汇集在一起编码成所谓的微指令,再由微指令组成微程序,存放在一个EPROM里。系统运行时,一条又一条地读出这些微指令,产生执行部件所需要的各种控制信号,从而驱动执行部件进行所规定的操作。〈3〉微指令的结构

控制器通过一条条控制线向执行部件发出各种控制命令,我们把这些控制命令叫做微命令。而执行部件接受微命令所执行的操作叫做微操作。

在系统的一个基本状态周期(又称机器周期)中,一组实现一定操作功能的微命令的组合,构成一条微指令。

强调两点:第一,一条微指令的有效持续时间是系统的一个基本周期,它表示从ROM中读出微指令与执行这条微指令的时间总和。当从ROM中读出下一条微指令后,当前的这条微指令即失效。第二,一条微指令中包含若干个微命令,它们分头并行地控制执行部件进行相应的微操作。

微指令除给出微命令信息外,还应给出测试判别信息。一旦出现此信息,执行这条微指令时要对系统的有关标志进行测试,从而实现控制算法流程图中出现的条件分支。微指令中还包含一个下一地址字段,该字段将指明ROM中下一条微指令的地址。

上图示出了微指令的典型结构。长条框内的符号×表示一个二进制位(bit)。其中微命令字段给出执行部件的控制信号:×编码为1,表示有微命令,×编码为0表示无微命令。测试判别字段和下一地址字段一起实现顺序控制:

当测试判别字段无效时(×编码为0),下址字段信息即是下条微指令的地址;当判别测试字段有效时(其中一个X编码为1),根据执行部件反馈线上的标志信息对下址字段信息进行修改,修改好的地址即为下条微指令的地址。〈4〉微程序

微程序是由若干条微指令组成的序列。在计算机中,一条机器指令的功能可由若干条指令组成的微程序来解释和执行。

在一般数字系统中,微程序相当于前述的ASM流程图,也就是将控制器的控制算法变成了微程序流程图,并用EPROM来实现。

微程序概念的引入,使大型复杂数字系统控制器的设计发生了革命性的变化。因为微程序技术可代替硬件布线的控制技术,即由门电路和触发器等组成的硬件网络可被存有控制代码的EPROM存储器所取代。

微程序控制器的组成

微程序控制器的结构与微指令的格式密切相关。

下图是微程序控制器的结构框图。它由控制存储器、微地址寄存器、微命令寄存器和地址转移逻辑几部分组成。微地址寄存器和微命令寄存器两者的总长度即为一条微指令的长度,二者合在一起称为微指令寄存器。

●控制存储器(ROM)

ROM中存放微程序,也就是全部的微指令。ROM的容量取决于微指令的总数。假如控制器需要128条微指令,则微地址寄存器长度为7位。ROM 的字长取决于微指令长度。如果微指令为32位,则ROM的字长就是32位。实际应用中ROM可采用EPROM或E2PROM、EAROM,用户写入和

修改微程序比较方便。

●微命令寄存器

微命令寄存器暂存由控制存储器中读出的当前微指令中控制字段与测试判别字段信息,可由8D寄存器组成。

●微地址寄存器

微地址寄存器暂存由控制存储器读出的当前微指令的下址字段信息。它可由带RD、SD强置端的D触发器组成。其中时钟端和D端配合用做ROM 的读出打入,用SD进行下址修改。

●地址转移逻辑

微指令由ROM读出后直接给出下一条微指令的地址,这个地址就放在微地址寄存器中。当微程序出现分支时通过地址转移逻辑去修改微地址寄存器内容,并按修改好的微地址读出下条微指令。地址转移逻辑是一个组合逻辑电路,其输入是当前微指令的判别测试字段Pi、执行部件反馈的“状态条件”及时间因素T4。

●控制时序信号

上图中标明了一个基本机器周期中的控制时序信号。例如用上一周期的T4时间按微地址寄存器内容从ROM中读一条微指令,经过一段时间后被读出,用当前周期的T1时间打入到微指令寄存器。T2、T3时间用来控制执行部件进行操作。T4时间修改微地址寄存器内容并读出下一条微指令。§2.2 微程序控制器设计

(1)设计微程序

设计微程序,就是确定微程序流程图,也就是控制算法流程图。微程序流程图中的一条微指令,相当于ASM流程图中的一个状态。

由于控制存储器有足够的容量,状态分配和状态化简这两种传统技术在微程序设计中已失去意义。控制存储器中一个地址转移到下一个地址是随意的,灵活的。因此增加微指令或减少微指令不必改动硬件。总之,以微指令结构为基础,就可以设计任何所要求的微程序,可长可短,灵活自如,且能实现多路并行转移,而不受“状态分配”的限制。

(2)确定微指令格式

微指令格式中的操作控制字段取决于执行部件的子系统需要多少微指令。假定采用直接控制方式,执行部件需要10个微命令,则操作控制字段需要10位。

测试判别字段取决于微程序流程图中有多少处分支转移。假定有3处分支,则测试判别字段需要3位。

下址字段取决于微程序流程图的规模。假定微程序共用50条微指令,则

下址字段至少需要6位。这是因为ROM地址译码时,26=64,6位地址可容纳64条微指令。

(3)将微程序编译成二进制代码

根据确定的微指令格式,将微程序流程图中的每一条指令编译成二进制代码,这项工作可由人工完成。

(4)微程序写入控制存储器

将二进制代码的微程序写入E2PROM中。

(5)设计硬件电路

硬件电路包括微地址寄存器、微命令寄存器和地址转移逻辑三部分。前两部分可选用适当的标准寄存器芯片(如74LS36、74LS273等)。地址转移逻辑的输入是测试判断标志Pi、状态条件和时间因素Tj(读ROM时间),先写出逻辑表达式,然后用门电路芯片实现。

第三章指令系统设计

§3.1 指令系统设计思想

编写一个指令系统,根据所编写的指令的功能来设计相应的微程序。首先利用MOV传送指令来给寄存器和累加器传送立即数,实现立即数寻址;利用寄存器寻址方式,用ADDC指令对两者进行相加运算;利用寄存器间接寻址方式,用SUB指令实现减运算;利用累加器寻址方式,用CPL指令实现对累加器寻址;利用存储器寻址方式,用JMP指令实现程序的无条件跳转。这样,所要设计的指令系统的功能就全部实现了。

1、指令系统流程图及微操作序列

2、水平型微指令格式设计

一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。其

(不译法)微指令,字段译码法水平型微指令,以及直接和译码相混合的水平型微指令。

3、24个微命令意义

模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。24位控制位分别介绍如下:

XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。

EMWR:程序存储器EM写信号。

EMRD:程序存储器EM读信号。

PCOE:将程序计数器PC的值送到地址总线ABUS上。

EMEN:将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。

IREN:将程序存储器EM读出的数据打入指令寄存器IR和微指令计数器uPC。

EINT:中断返回时清除中断响应和中断请求标志,便于下次中断。

ELP: PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。

MAREN:将数据总线DBUS上数据打入地址寄存器MAR。

MAROE:将地址寄存器MAR的值送到地址总线ABUS上。

OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里。

STEN:将数据总线DBUS上数据存入堆栈寄存器ST中。

RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 CN:决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。

FEN:将标志位存入ALU内部的标志寄存器。

X2: X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。 X1:

X0:

如下表所示:

WEN:将数据总线DBUS的值打入工作寄存器W中。

AEN:将数据总线DBUS的值打入累加器A中。

S2: S2、S1、S0三位组合决定ALU做何种运算。

S1:

S0:

如下表所示:

§3.2 微程序设计

1、设计源程序如下:

MOV R0,#10H 立即数寻址,数据传送

MOV A,#20H 立即数寻址,数据传送

ADDC A,R0 寄存器寻址,带进位加

SUB A,@R0 寄存器间接寻址,减运算CPL A 累加器寻址,求反

JMP 0 存储器寻址,无条件跳转2、微程序设计及其分析

如下表所示:

分析如下:

每个程序的一开始的第一条微指令一定是取指令,此微指令的值为0CBFFFFH,对应的各控制位就是EMRD、PCOE、及IREN有效,其他所有位都处于无效状态。在程序第一次运行或复位后,uPC和PC的值都为零,PCOE有效将PC值送到ABUS,作为程序存储器EM的地址,EMRD有效就是从程序存储器中读出程序指令,IREN将读出的指令送IR寄存器和uPC,此微指令的作用就是:从程序存储器EM的0地址读出程序指令机器码7CH,并存入uPC中作为微程序存储器uM的地址,从微程序存储器uM 的04H单元中读出微控制0C7FBFFH,同时PC加1为读下一条指令做准备。

MOV R0,#85H:本指令为两个周期状态。在T1状态时,微指令的值为C7FBFF,对应的各个控制位为:EMRD、PCOE、EMEN及RWR为低,处于有效状态,其他控制位为无效状态。由于上条微指令(取指操作)已将PC加1,此时PCOE是将加1后的PC输出到ABUS作为程序存储器EM 的地址,EMRD就是从程序存储器EM中读出数据,本指令中读出的数据应为10H,EMEN将读出的数据送到DBUS总线上,RWR 是将DBUS总线上的值写入寄存R0中。同时uPC加1为执行下条微指令做准备,PC加

1为读取下一条指令做准备。每条指令的最后一条微指令一定是取指令操作,本指令的T0状态周期即为取指令,执行上一条微指令时uPC已经加1,按照此uPC为地址从微程序存储器uM读出的微指令的值为0CBFFFFH,参照第一步的说明,此微指令从程序存储器EM中读取指令。

MOV A,#20H:本指令为两个周期状态。在T1状态时,微指令的值为C7FFF7,对应的各个控制位为:EMRD、PCOE、EMEN及AEN为低,处于有效状态,其他控制位为无效状态。由于上条微指令(取指操作)已将PC加1,此时PCOE是将加1后的PC输出到ABUS作为程序存储器EM 的地址,EMRD就是从程序存储器EM中读出数据,本指令中读出的数据应为85H,EMEN将读出的数据送到DBUS总线上,AEN 是将DBUS总线上的值存入累加器A中,同时uPC加1为执行下条微指令做准备,PC 加1为读取下一条指令做准备。每条指令的最后一条微指令一定是取指令操作,本指令的T0状态周期即为取指令,执行上一条微指令时uPC已经加1,按照此uPC为地址从微程序存储器uM读出的微指令的值为0CBFFFFH,参照第一步的说明,此微指令从程序存储器EM中读取指令。

ADDC A,R0:本指令为三个周期状态。在T2状态,由上次取指操作取出的指令码为21H,由IREN存入指令寄存器IR,最低两位为00(二进制),选择寄存器R0,指令码由于IREN打入uPC时,忽略掉指令的最低两位,而将uPC的最低两位置成00,uPC的值为0CH,访问微程序存储器的0CH单元,读出微指令值为0FFF7EFH,有效位为RRD及WEN,就是将R0内容送到工作寄存器W,uPC加1取出下条微指令,在T1状态,读出的微指令值为0FFFE94H,有效位为FEN和AEN,FEN完成的操作是将标志位存入标志寄存器F(ALU内部),X2X1X0选择“ALU直通”到数据总线DBUS,S2S1S0选择的运算操作为“带进位的加法运算”,AEN将DBUS 上的数据存入累加器A。在T0状态,取出将要执行的指令。

SUB A,@R0:本指令有四个状态周期。在T3状态,上次取出的指令码为35H,最低两位用于寻址R0寄存器,uPC的最低两位置0,来访问uM的10H单元的微指令,读出值为0FF77FFH,将R1的值存入MAR,有效位为RRD和MAREN。在T2状态,微指令为0D7BFEFH,表示用MAR 作为地址从EM中读出数据送到DBUS再存到W中,有效位为EMRD、EMEN、MAROE及WEN。在T1状态微指令为0FFFE91H,表示ALU做“减运算”,其结果直通到DBUS,再存入A中,同时保存标志位。T0状态为取指令操作。

CPL A:本指令为两个状态周期。在T1状态,微指令为0FFFE96H,

有效控制位为AEN和FEN,S2S1S0=110表示ALU做“取反”运算,X2X1X0=100(二进制) 表示,运算器结果直通到DBUS,再存入A中,并保存标志位。T0状态为取指令操作。取出将要执行的一条指令。

JMP 00:本指令为两个状态周期。在T1状态,由上条取指令操作读出的指令码为18H,存入IR寄存器后,IR3、IR2的值为11(二进制),此为无条件跳转控制,指令码存入uPC后,从uM读出的微指令为0C6FFFFH,表示以PC为地址从EM中读出数据并送到数据总线DBUS上,因为ELP 有效,与IR3、IR2组合产生PC的打入信号,将DBUS上的数据存入PC 中,有效控制位为EMRD、PCOE、EMEN及ELP。T0状态为取指令操作。取出将要执行的一条指令。

第四章EDA编程/技术

§4.1 EDA编程/技术

EDA 技术的主要内容1、大规模可编程逻辑器件;2、硬件描述语言;3、软件开发工具;4、实验开发系统。其中,大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体,硬件描述语言是利用EDA 技术进行电子系统设计的主要表达手段,软件开发工具是利用EDA 技术进行电子系统设计的智能化的自动化设计工具,实验开发系统则是利用EDA 技术进行电子系统设计的下载工具及硬件验证工具。

EDA 技术研究的对象是电子设计的全过程,有系统级、电路级和物理级 3 个层次的设计。其涉及的电子系统从低频、高频到微波,从线性到非线性,从模拟到数字,从通用集成电路到专用集成电路构造的电子系统,因此EDA 技术研究的范畴相当广泛。如果从专用集成电路ASIC 开发与应用角度看,EDA 软件系统应当包含以下子模块:设计输入子模块、设计数据库子模块、分析验证子模块、综合仿真子模块、布局布线子模块等。

§4.2 应用程序举例

下面的程序,实现二个数的减法运算:

MOV A,#20H

MOV @R0,A

MOV A,#12H

SUB A,@R0

第五章心得体会

初次接触这样的实验,刚开始时觉得很茫然,不知道从何处着手,于是就把计算机原理上有关设计方面的知识都细看了一遍。经过老师的指点后,我就从实验说明书上寻找与设计有关的东西来看并加以掌握。先从COP2000集成调试软件的界面来了解实验仪器软件各方面的功能,接着从C0P2000模型机的总体结构来认识它的所有部件及24位控制位的作用。同时对模型机的基本寻址方式及指令集进行熟悉和掌握。然后就是对实验例子进行仔细的分析和理解,熟悉各类型指令的功能。

做了以上的工作,以为就可以很轻松的设计一个指令系统了,于是就利用所学的知识编了一个满足要求的程序,并把它输入源程序窗口,然后就进行汇编,以为这样就成功了,结果汇编出错,程序也就无法实现。后经人提示,才知道要新建并设计微指令,实现其功能后在编写相应的程序。在看了说明书上有关指令/微指令系统的具体设计后,才觉得一切都容易理解和接受起来。

弄懂了整个设计的方法和步骤后,指令的设计和编写也就容易起来,用了不到一下午时间就一切搞定了。对设计好的程序进行汇编,然后一步步的调试,这中间虽然老实有问题出现,但是经过自己的认真思考和反复修改,不仅把指令完好的设计了出来,而且也掌握住了这些。整个人也就很有成就感。

通过这次课程设计,我明白了很多东西都是要靠自己一点点的努力得来的,而且在设计的过程中除了自己认真钻究外,还要积极的向别人请教。当然在设计的过程中,我们更要保持一种不骄不躁的作风,不能会了一点就以为自己都懂了,把什么都不放在眼里。也不能一遇到不会的就心烦,失去继续做下去的热情。人生是一个不断学习的过程,课程设计是对所学的知识进行的一次很好的检验和总结,我们要更加以重视。

理论和实践的结合才能产生真正的完美的东西。我们在以后的学习和生活中,既要学习好各种各样的理论知识,又要经常进行实践,把理论和实践完好的结合起来。在不断的学习中,我们要一步步完善自己,为自己的将来打下良好的基础。

参考文献

[1] 白中英.计算机组成原理[ B]. 北京:科学出版社,2003.8.

[2] 沈美明,温冬婵. IBM-PC汇编语言程序设计[B]. 北京:清华大学出版社,2002.2.

[3] 南京伟福实业有限公司.伟福COP2000型计算机组成原理实验仪[M].

[4] 谭会生,张昌凡.EDA 技术及应用[B] 西安:西安电子科技大学出版社,2001.9

[5] 包明,赵明富,陈渝光. EDA技术与数字系统设计[B] 北京:北京航空航天大学出版社,2002.7

[6] 朱运利.EDA技术应用[B] 北京:电子工业出版社,2004.7

微程序控制器的设计与实现

微程序控制器的设计与实现 一、设计目的 1、巩固和深刻理解“计算机组成原理”课程所讲解的原理, 加深对计算机各模块协同工作的认识。 2、掌握微程序设计的思想和具体流程、操作方法。 3、培养学生独立工作和创新思维的能力,取得设计与调试的 实践经验。 4、尝试利用编程实现微程序指令的识别和解释的工作流程。 二、设计内容 按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。 三、设计具体要求 1、仔细复习所学过的理论知识,掌握微程序设计的思想,并根、 据掌握的理论写出要设计的指令系统的微程序流程。指令系统至少要包括六条指令,具有上述功能和寻址方式。 2、根据微操作流程及给定的微指令格式写出相应的微程序 3、将所设计的微程序在虚拟环境中运行调试程序,并给出测试思 路和具体程序段 4、撰写课程设计报告。

四、设计环境 1、伟福COP2000型组成原理实验仪,COP2000虚拟软件。 2、VC开发环境或者Java开发环境。 五、设计方案 (1)设计思想 编写一个指令系统,根据所编写的指令的功能来设计相应的微程序。首先利用MOV传送指令来给寄存器和累加器传送立即数,实现立即数寻址;利用寄存器寻址方式,用ADDC指令对两者进行相加运算;利用寄存器间接寻址方式,用SUB指令实现减运算;利用累加器寻址方式,用CPL指令实现对累加器寻址;利用存储器寻址方式,用JMP 指令实现程序的无条件跳转。这样,所要设计的指令系统的功能就全部实现了。 (2)微指令格式 采用水平微指令格式的设计,一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。其一般格式如下: 按照控制字段的编码方法不同,水平型微指令又分为三种:全水平型(不译法)微指令,字段译码法水平型微指令,以及直接和译码相混合的水平型微指令。 (3)24个微指令的意义 COP2000 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右

硬件基础-微程序控制器实验报告

大学 HUNAN UNIVERSITY 硬件基础实验2 实验报告 一、实验预习 1.书中的图形实现微程序控制器,中间的映射逻辑究竟是怎么实现的? 答:但出现分支时,预设端信号由IR决定。IR为1时信号有效,输出为1. 通过IR的值映射为下址的低三位,从而产生下址。 2.书中设计用到了强写强读,为什么要设计这个功能? 答:满足用户因为没有初始化mif文件时输入数据的需要。

二、实验目的 微程序控制器实验的主要任务:生成CPU里的控制信号,并使程序按正确的顺序执行。核心部分是ROM,存放机器指令的微程序。 1、掌握微程序控制器的组成、工作原理; 2、掌握微程序控制器的基本概念和术语:微命令、微操作、微指令、微 程序等; 3、掌握微指令、微程序的设计及调试方法; 4、通过单步运行若干条微指令,深入理解微程序控制器的工作原理; 二、实验电路 图1 附:电路图过大,请放大观察详情 三、实验原理 将机器指令的操作(从取指到执行)分解为若干个更基本的微操作序列,并将有关的控制信息(微命令)以微码的形式编成微指令输入到控制存储器中。这样,每条机器指令将与一段微程序对应,取出微指令就产生微命令,以实现机器指令要求的信息传送与加工。

四、实验步骤及概述 1)设计状态机部分 a、编写VHDL代码如下 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY zhuangtaiji IS PORT ( reset : IN STD_LOGIC := '0'; clock : IN STD_LOGIC; qd : IN STD_LOGIC := '0'; dp : IN STD_LOGIC := '0'; tj : IN STD_LOGIC := '0'; t1 : OUT STD_LOGIC; t2 : OUT STD_LOGIC; t3 : OUT STD_LOGIC; t4 : OUT STD_LOGIC ); END zhuangtaiji; ARCHITECTURE BEHAVIOR OF zhuangtaiji IS TYPE type_fstate IS (idle,st1,s_st2,st4,st2,st3,s_st4,s_st3); SIGNAL fstate : type_fstate; SIGNAL reg_fstate : type_fstate; BEGIN PROCESS (clock,reset,reg_fstate) BEGIN IF (reset='1') THEN fstate <= idle; ELSIF (clock='1' AND clock'event) THEN fstate <= reg_fstate; END IF; END PROCESS; PROCESS (fstate,qd,dp,tj) BEGIN t1 <= '0'; t2 <= '0'; t3 <= '0'; t4 <= '0'; CASE fstate IS WHEN idle => IF (NOT((qd = '1'))) THEN reg_fstate <= st1;

微程序控制器实验2

实 验 项 目 微程序控制器实验实验时间2015年10月31日 实验目的(1) 掌握微程序控制器的组成原理。 (2) 掌握微程序的编制、写入,观察微程序的运行过程。 实 验 设 备 PC机一台,TD-CMA实验系统一套 实验原理 微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图3-2-1 所示。 控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍TS1、TS2、TS3、TS4,时序单元的介绍见附录2。 微程序控制器的组成见图3-2-2,其中控制存储器采用3 片2816 的E2PROM,具有掉电保 护功能,微命令寄存器18 位,用两片8D 触发器(273)和一片4D(175)触发器组成。微地址寄存器6 位,用三片正沿触发的双D 触发器(74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2 时刻打入微地址寄存器的内容即为下一条微指令地址。当T4 时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。

在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现对存储器(包括存储器和控制存储器)的三种操作:编程、校验、运行。考虑到对于存储器(包括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利 的手动操作方式。以向00H 单元中写入332211 为例,对于控制存储器进行编辑的具体操作步骤如下:首先将KK1 拨至‘停止’档、KK3 拨至‘编程’档、KK4 拨至‘控存’档、KK5 拨至 ‘置数’档,由CON 单元的SD05——SD00 开关给出需要编辑的控存单元首地址(000000),IN 单元开关给出该控存单元数据的低8 位(00010001),连续两次按动时序与操作台单元的开关ST(第一次按动后MC 单元低8 位显示该单元以前存储的数据,第二次按动后显示当前改动的数据),此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M7——M0 显示当前数据(00010001)。然后将KK5 拨至‘加1’档,IN 单元开关给出该控存单元数据的中8 位(00100010),连续两次按动开关ST,完成对该控存单元中8 位数据的修改,此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M15——M8 显示当前数据(00100010);再由IN 单元开关给出该控存单元数据的高8 位(00110011),连续两次按动开关ST,完成对该控存单元高8 位数据的修改此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M23——M16 显示当前数据(00110011)。此时被编辑的控存单元地址会自动加1(01H),由IN 单元开关依次给出该控存单元数据的低8 位、中8 位和高8 位配合每次开关ST 的两次按动,即可完成对后续单元的编辑。

微程序控制器实验

计算机科学与技术系 实验报告 专业名称计算机科学与技术 课程名称计算机组成原理 项目名称微程序控制器实验 班级

学号 姓名 同组人员 实验日期 一、实验目的与要求 实验目的 (1)掌握微程序控制器的组成原理 (2)掌握微程序控制器的编制、写入,观察微程序的运行过程 实验要求 (1)实验之前,应认真准备,写出实验步骤和具体设计内容,否则实验效率会很低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说懂得了些什么重要教学内容; (2)应在实验前掌握所有控制信号的作用,写出实验预习报告并带入实验室; (3)实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而损坏设备,又要仔细思考实验有关内容,把自己想不明白的问题通过实验理解清楚; (4)实验之后,应认真思考总结,写出实验报告,包括实验步骤和具体实验结果,遇到的问题和分析与解决思路。还应写出自己的心得体会,也可以对教学实验提出新的建议等。实验报告要交给教师评阅后并给出实验成绩; 二、实验逻辑原理图与分析 画实验逻辑原理图

逻辑原理图分析 微程序控制器的基本任务是完成当前指令的翻译个执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。 它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示成为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器。 三、数据通路图及分析(画出数据通路图并作出分析) (1)连接实验线路,检查无误后接通电源。如果有警报声响起,说明有总线竞争现象,应关闭电源,检查连线,直至错误排除。 (2)对微控制器进行读写操作,分两种情况:手动读写和联机读写。 1、手动读写

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

实验四常规型微程序控制器组成实验 一、实验目的 掌握时序发生器的组成原理。 掌握微程序控制器的组成原理。 二、实验电路 时序发生器 本实验所用的时序电路见图。电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生。 图时序信号发生器 本次实验不涉及硬连线控制器,因此时序发生器中产生W1-W3的部分也可根据需要放到硬连线控制器实验中介绍。 产生时序信号T1-T4的功能集成在图中左边的一片GAL22V10中,另外它还产生节拍信号 W1-W3的控制时钟CLK1。该芯片的逻辑功能用ABEL语言实现。其源程序如下:MODULE TIMER1 TITLE 'CLOCK GENERATOR T1-T4' CLK = .C.; "INPUT MF, CLR, QD, DP, TJ, DB PIN 1..6; W3 PIN 7; "OUTPUT T1, T2, T3, T4 PIN 15..18 ISTYPE 'REG'; CLK1 PIN 14 ISTYPE 'COM'; QD1, QD2, QDR PIN ISTYPE 'REG';

ACT PIN ISTYPE 'COM'; S = [T1, T2, T3, T4, QD1, QD2, QDR]; EQUATIONS QD1 := 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; = MF; END 节拍电位信号W1-W3只在硬连线控制器中使用,产生W信号的功能集成在右边一片GAL22V10中,用ABEL语言实现。其源程序如下: MODULE TIMER2 .; "INPUT CLK1, CLR, SKIP PIN 1..3; "OUTPUT W1, W2, W3 PIN 16..18 ISTYPE 'REG'; W = [W1, W2, W3];

微程序控制器的基本原理

微程序控制器的基本原理 1、控制存储器:控制存储器是微程序控制器中的核心部件,通常由只读存储器ROM 器件实现,简称控存。 2、微指令:控制存储器中的一个存储单元(字)表示了某一条指令的某一操作步骤的控制信号,以及下一步骤的有关信息,称该字为微指令。 作用:准确提供了指令执行中的每一步要用的操作信号及下一微指令的地址。 3、微程序:全部微指令的集合称为微程序。 4、微程序控制器的基本工作原理:根据IR(指令寄存器)中的操作码,找到与之对应的控存中的一段微程序的入口地址,并按指令功能所确定的次序,逐条从控制存储器中读出微指令,以驱动计算机各部件正确运行。 5、得到下一条微指令的地址的有关技术:要保证微指令的逐条执行,就必须在本条微指令的执行过程中,能得到下一条微指令的地址。 形成下条微指令地址(简称下地址)可能有下列五种情况: ①下地址为本条微指令地址加1; ②微程序必转某一微地址,可在微指令中给出该微地址值; ③根据状态标志位,选择顺序执行或转向某一地址; ④微子程序的调用及返回控制,要用到微堆栈; ⑤根据条件判断转向多条微指令地址中的某一地址,比③更复杂的情况。 如:若C=1,转移到 A1 微地址; 若S=1,转移到 A2 微地址; 若Z=1,转移到 B1 微地址; 这种情况,在微指令中直接给出多个下地址是不现实的,应找出更合理的解决方案。

微指令的格式和内容: 下地址字段控制命令字段 补充:微指令编码的方法 (1)直接表示法(水平型微指令):操作控制字段中的每一位带代表一个微操作控制信号。如教学实验计算机的微指令56位 (2)编码表示法(垂直型微指令):把一组相斥性的微命令信号组成一个小组,通过小组字段译码器对每一个微命令信号进行译码。 (3)混合表示法:将直接表示法与编码表示法相混合使用。 下地址字段的内容 得到下地址的方法 由指令操作码得到 微指令顺序执行 在微指令下地址字段中表示清楚: 使用哪种方法 哪个判断条件,

微程序控制器实验审批稿

微程序控制器实验 YKK standardization office【 YKK5AB- YKK08- YKK2C- YKK18】

评语: 课中检查完成的题号及题数: 课后完成的题号与题数: 成绩: 自评成绩: 实验报告 实验名称:微程序控制器实验 日 期: 班级:学号: 姓 名: 一、实验目的: 1.掌握微程序控制器的组成原理。 2.掌握微程序的编制、写入,观察微程序的运行过程。 二、实验内容: 1.了解如何将微码加载到微控存中,了解指令并运行。 2.通过微程序控制器实验能得简单运算结果。 3.设计并修改电路,编写用微程序实现存储器中两个单字节十六进制数的加法运算,结果输出至OUT单元。 三、项目要求及分析: 要求:操作数由IN单元输入至MEM,在由MEM中读出操作数并在ALU中运算。 四、具体实现: 1. 按图1-3-10 所示连接实验线路,仔细查线无误后接通电源。如果有‘滴’报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。

图1-3-10 实验接线图 2. 对微控器进行读写操作,分两种情况:手动读写和联机读写。 1) 手动读写 进行手动读或是写,都需要手动给出地址,系统专门安排了一个ADDR 单元,做为地址输入。ADDR 单元原理如图1-3-11 所示,可以看出本单元实为一个加减计数器。当开关为‘加1’档时,在T2 的下沿计数器进行加1 计数,当开关为‘减1’档时,在T2 的下沿计数器进行减1计数,当开关置为‘置数’档时,计数器置初值,其作用相当于直通,SA7…SA0 的输出值就是二进制开关组的值。 在实验中选择什么档位,取决于写入数据的地址是否连续,如果是连续地址,选 择‘加1’或是‘减1’档会方便一些。如果是离散地址,选择‘置数’档会方便一些。

微程序控制器实验报告 (2)

组成原理No、4实验--- 微程序控制器实验 组员: 组号:21号 时间:周二5、6节?

【实验目的】 (1)掌握时序发生器的组成原理。 (2)掌握微程序控制器的组成原理。 (3)掌握微程序的编制、写入、观察微程序的运行情况 【实验设备】 TDN-CM++, 【实验原理】 微程序控制器的基本任务就是完成当前指令的翻译与执行,即将当前指令的功能转换成可以控制硬件逻辑部件工作的微命令序列,以完成数据传输与各种处理操作。它的执行方法就就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,该存储器称为控制存储器。 实验所用的时序控制电路框图如图1 所示, 可产生四个等间隔的时序信号TS1~TS4。在 图1中,为时钟信号,由实验台左上方的 方波信号源提供,可产生频率及脉宽可调额 方波信号;STEP就是来自实验板上方中部的 一个二进制开关STEP的模拟信号;START 键就是来自实验板上方左部的一个微动开关 START的按键信号。当STEP开关为EXEC(0)时,一旦按下START启动键,时序信号TS1~TS4将周而复始地发送出去。当STEP为STEP(1)时,按下START启动键,机器便处于单步运行状态,即此时只发送一个CPU周期的时序信号就停机了。利用单步方式,每次只读一条微指令,可以观察微指令的代码与当前微指令的执行结果。另外,如果STEP开关置“STEP”,会使机器停机,CLR开关执行1→0→1操作可以使时序清零。时序状态图如下图所示。 ?由于时序电路的内部线路已经连好,因此只需将时序电路与方波信号源连接,即将时序电路的时钟脉冲输入端接至方波信号发生器输入端H23上,按动启动 键START后,就可产生时序信号TS1~TS4、时序电路的CLR已接至CLR 模拟开关上。 ?编程开关具有三种状态:PROM(编程)、READ(校验)与RUN(运行)。 微指令格式如 下: 【实验步骤】

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

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来到

微程序控制器与组合逻辑控制器的区别

微程序控制器的基本原理详细图解 1、控制存储器:控制存储器是微程序控制器中的核心部件,通常由只读存储器ROM器件实现,简称控存。 2、微指令:控制存储器中的一个存储单元(字)表示了某一条指令的某一操作步骤的控制信号,以及下一步骤的有关信息,称该字为微指令。 作用:准确提供了指令执行中的每一步要用的操作信号及下一微指令的地址。 3、微程序:全部微指令的集合称为微程序。 4、微程序控制器的基本工作原理:根据IR(指令寄存器)中的操作码,找到与之对应的控存中的一段微程序的入口地址,并按指令功能所确定的次序,逐条从控制存储器中读出微指令,以驱动计算机各部件正确运行。 5、得到下一条微指令的地址的有关技术:要保证微指令的逐条执行,就必须在本条微指令的执行过程中,能得到下一条微指令的地址。 形成下条微指令地址(简称下地址)可能有下列五种情况: ①下地址为本条微指令地址加1; ②微程序必转某一微地址,可在微指令中给出该微地址值; ③根据状态标志位,选择顺序执行或转向某一地址; ④微子程序的调用及返回控制,要用到微堆栈; ⑤根据条件判断转向多条微指令地址中的某一地址,比③更复杂的情况。 如:若C=1,转移到 A1 微地址; 若S=1,转移到 A2 微地址; 若Z=1,转移到 B1 微地址; 这种情况,在微指令中直接给出多个下地址是不现实的,应找出更合理的解决方案。

计算机的微程序控制器和组合逻辑控制器(硬连线)在组成和运行原理上有何 相同和不同之处?它们各有哪些优缺点? 答:微程序的控制器和组合逻辑的控制器是计算机中两种不同类型的控制器。 共同点:①基本功能都是提供计算机各个部件协同运行所需要的控制信号;②组成部分都有程序计数器PC,指令寄存器IR;③都分成几个执行步骤完成每一条指令的具体功能。 不同点:主要表现在处理指令执行步骤的办法,提供控制信号的方案不一样。微程序的控制器是通过微指令地址的衔接区分指令执行步骤,应提供的控制信号从控制存储器中读出,并经过一个微指令寄存器送到被控制部件。组合逻辑控制器是用节拍发生器指明指令执行步骤,用组合逻辑电路直接给出应提供的控制信号。 微程序的控制器的优点是设计与实现简单些,易用于实现系列计算机产品的控制器,理论上可实现动态微程序设计,缺点是运行速度要慢一些。 组合逻辑控制器的优点是运行速度明显地快,缺点是设计与实现复杂些,但随着EDA 工具的成熟,该缺点已得到很大缓解。 组合逻辑控制器和微程序控制器2011-2-15 来源:深圳市恒益机电设备有限公司>>进入该公司展台组合逻辑控制器和微程序控制器,两种控制器各有长处和短处。组合逻辑控制器设计麻烦,结构复杂,一旦设计完成,就不能再修改或扩充,但它的速度快。微程序控制器设计方便,结构简单,修改或扩充都方便,修改一条机器指令的功能,只需重编所对应的微程序;要增加一条机器指令,只需在控制存储器中增加一段微程序,但是,它是通过执行一段微程。具体对比如下:组合逻辑控制器又称硬布线控制器,由逻辑电路构成,完全靠硬件来实现指令的功能。 组合逻辑控制器的设计步骤 ①设计机器的指令系统:规定指令的种类、指令的条数以及每一条指令的格式和功能。

计算机组成原理微程序控制器

任课教师:张芳、许建龙 《计算机组成原理》 (2013-2014学年第2学期) 实 验 报 告 学号: 姓名: 班级:

微程序控制器实验报告 一、实验目的: 1)了解TEC-2机控制器部件的组成 2)熟练掌握56位微指令中各字段的含义 3)可以通过微码自己用监控程序编程序,实现两数相加和相减,以及更复杂 的操作 二、实验仪器: 主机一台 三、简要原理: 1.TEC-2机的控制器部件的组成 TEC-2机控制器部件的关键内容包括: (1)由7片LS6116随机读写存储器芯片组成的56位字长的微程序控制存储器,用于存放TEC-2机的微程序。其内容在刚加电时不定,加电后将首先从2片ROM(LS2716芯片)中读出固化的、用于实现53条机器指令的微程序,经组织后写入这一控制存储器,这一过程称为装入微码。装入完成后,将从监控程序的零地址执行指令,完成TEC-2机的启动过程。这之后,还可以用LDMC指令按规定的办法向控制存储器写入新的微程序,以实现新的机器指令。从简化逻辑框图上可以看到,控制存储器的地址为μRA9~μRA0,读出的信息送微指令流水线寄存器PLR。 (2)微指令寄存器PLR由7片8位的寄存器芯片(6片LS374和1片LS273)组成,用于存放当前微指令的内容,更具体的说明将在后面给出。 (3)微程序定序器AM2910芯片(其内部结构、引脚信号和运行原理等稍候详细说明),是微程序控制器中非常关键、也是稍微难懂一点的部分。在学习中要正确理解。它的核心功能是依据机器的运行状态与当前微指令的有关内容等,正确地形成下一条微指令的地址,以保证微程序按要求的微指令序列关系自动地逐条衔接执行。 (4)程序计数器PC和当前指令地址寄存器IP,是用运算器通用寄存器组中的两个选定的寄存器R5和R6实现的,这在图上见不到。 (5)指令寄存器IR,用于存放当前正在执行的指令内容。 (6)为AM2910提供输入地址信号的配套线路,包括: ①由两片LS2716 ROM芯片组成的MAPROM,它将指令寄存器中的操作码转换成一段微程序的入口地址;

微程序控制器实验报告

微程序控制器实验报告文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

一、实验目的 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_defs LIBRARY IEEE; USE cpu_defs IS --定义程序包,包头,包体

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

实验员述职报告 实验四常规型微程序控制器组成实验 一、实验目的 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 TIMER1 TITLE 'CLOCK GENERATOR T1-T4' CLK = .C.; "INPUT MF, CLR, QD, DP, TJ, DB PIN 1..6; W3 PIN 7; "OUTPUT T1, T2, T3, T4 PIN 15..18 ISTYPE 'REG'; CLK1 PIN 14 ISTYPE 'COM'; 常用软件课程设计

实验员述职报告 QD1, QD2, QDR PIN ISTYPE 'REG'; ACT PIN ISTYPE 'COM'; S = [T1, T2, T3, T4, QD1, QD2, QDR]; EQUATIONS QD1 := 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.CLK = MF; END 节拍电位信号W1-W3只在硬连线控制器中使用,产生W信号的功能集成在右边一片GAL22V10中,用ABEL语言实现。其源程序如下: MODULE TIMER2 //头部 TITLE 'CLOCK GENERATOR W1-W3' DECLARATIONS //说明部 CLK = .C.; "INPUT CLK1, CLR, SKIP PIN 1..3; "OUTPUT W1, W2, W3 PIN 16..18 ISTYPE 'REG'; W = [W1, W2, W3]; EQUATIONS //逻辑描述部 W1 := CLR & W3; W2 := CLR & W1 & !SKIP; W3 := !CLR # W2 # W1 & SKIP; W.CLK = CLK1; END TIMER2 //结束部 左边GAL的时钟输入MF是晶振的输出,频率为500KHz。T1-T4的脉宽为2μs。CLR实际上是控制台的CLR#信号,因为ABEL语言的书写关系改为CLR,仍为低有效。CLR#=0将系统复位,此时时序停在T4、W3,微程序地址为000000B。建议每次实验台加电后,先按CLR#复位一次。实验台上CLR#到时序电路的连接已连好。 对时序发生器TJ输入引脚的连接要慎重,当不需要暂停微程序的运行时,将它接地;常用软件课程设计

微程序控制器实验报告

微程序控制器实验 预习报告 1. 微程序控制器的组成和工作原理。 微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。 其工作原理分为:一、将程序和数据通过输入设备送入存储器;二、启动运行 后,从存储器中取出程序指令送到控制器去识别,分析该指令要求什么事;三、 控制器根据指令的含义发出相应的命令(如加法、减法),将存储单元中存放的 操作数据取出送往运算器进行运算,再把运算结果送回存储器指定的单元中;四、运算任务完成后,就可以根据指令将结果通过输出设备输出 2.微程序、微指令、微命令之间的关系。 一系列微指令的有序集合称为微程序。 在微程序控制方式之下,从控制存储器中取出,完成一个或几个微操作的命令 称为微指令。 控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令叫做微 命令。 所以总的来说:微程序包含微指令,而每条微指令包含的微命令控制。 3.微指令、微程序的设计及调试。 在微程序流程图中,根据每个状态的微指令,将其进行编码,设计出所需硬件 及执行效率较高的微程序控制电路,然后进行调试。 思考题: 1. 举例说明实验中出现的基本概念:微命令、微操作、微指令、微程序? 微命令:控制器发出的每个控制信号,如对运算单元的控制m cn s3 s2 s1 s0发出的010101等。 微操作:由微命令控制实现的最基本的操作称为微操作。如发出运算器加 运算的微命令后,运算器进行加法计算,就称为微操作。 微指令:完成一个或几个微操作的指令。如控制器进行存数据的命令后, 需要有we信号有效,pc保持,来控制这些的指令即为微指令。

微程序:微程序包含微指令。如微程序流程中包括很多微指令控制,进行 一些加减运算,存储数据,地址自加一等等。 2. 解释并比较微程序控制器的几种设计方法? 微序列控制器通过吧控制信号存储在一个查找Rom,(1)用水平编码生成微 操作(2)用垂直编码生成微操作(3)从微代码直接产生控制信号。 3. 微程序控制器的控制对象、手段及方法?控制器如何取指令? 微程序控制器控制对象分为硬件方面和软件方面,硬件方面为数据通路的 控制信号,软件方面为测试程序的控制信号。 控制器根据状态机的不同状态进行指令读取,在不同状态下取得的指令也 不同。 4. 控制器的功能?如何取指令、分析指令、执行指令? 通过下址取得指令,根据控制信号进行不同信号的开启或关闭也就是分析 指令,然后再在控制信号的作用下执行指令。 5. 下址的产生方法?常用的有哪些,实验中用到了哪些? A:计数器方式――在顺序执行微指令时,后续微指令地址由现行微指令 加上一个增量来产生;在非顺序执行微指令时,必须在执行现行微指令后,转去执行指定后续微指令地址的下一条微指令。 B:增量方式与断定方式的结合――微指令的顺序控制字段分成两部分:条件选择字段与转移地址字段. 由这两个字段结合,当转移条件满足时,将转移地址字段作下一个微地址;若无转移要求,则直接从微程序计数器中取得下一条微指令. 一般用于微指令执行时,需要外部判断条件的场合。 C:多路转移方式――当微程序不产生分支时,后续微地址直接由微指令 的顺序控制字段给出;否则有若干个后续地址可以选择,此时必须由顺序 控制字段的"判别测试"和"状态条件"信息来选择其中一个微地址. 一般用于有多个转移且可以使用组合逻辑设计转移地址逻辑的场合。实 验中用到了多路转移方式。 6. 每条机器指令的指令码如何与其入口微地址对应?微程序分支如何处理?

硬件基础微程序控制器实验报告

湖南大学 HUNAN UNIVERSITY 硬件基础实验2 实验报告 一、实验预习 1.书中的图形实现微程序控制器,中间的映射逻辑究竟是怎么实现的? 答:但出现分支时,预设端信号由IR决定。IR为1时信号有效,输出为1. 通过IR的值映射为下址的低三位,从而产生下址。 2.书中设计用到了强写强读,为什么要设计这个功能?

答:满足用户因为没有初始化mif文件时输入数据的需要。 二、实验目的 微程序控制器实验的主要任务:生成CPU里的控制信号,并使程序按正 确的顺序执行。核心部分是ROM,存放机器指令的微程序。 1、掌握微程序控制器的组成、工作原理; 2、掌握微程序控制器的基本概念和术语:微命令、微 操作、微指令、微 程序等; 3、掌握微指令、微程序的设计及调试方法; 4、通过单步运行若干条微指令,深入理解微程序控制 器的工作原理; 二、实验电路

图1 附:电路图过大,请放大观察详情 三、实验原理 将机器指令的操作(从取指到执行)分解为若干个更基本的微操作序列,并将有 关的控制信息(微命令)以微码的形式编成微指令输入到控制存储器中。这样, 每条机器指令将与一段微程序对应,取出微指令就产生微命令,以实现机器指令 要求的信息传送与加工。 四、实验步骤及概述 1)设计状态机部分 a、编写VHDL代码如下

LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY zhuangtaiji IS PORT ( reset : IN STD_LOGIC := '0'; clock : IN STD_LOGIC; qd : IN STD_LOGIC := '0'; dp : IN STD_LOGIC := '0'; tj : IN STD_LOGIC := '0'; t1 : OUT STD_LOGIC; t2 : OUT STD_LOGIC; t3 : OUT STD_LOGIC; t4 : OUT STD_LOGIC ); END zhuangtaiji; ARCHITECTURE BEHAVIOR OF zhuangtaiji IS TYPE type_fstate IS (idle,st1,s_st2,st4,st2,st3,s_st4,s_st3); SIGNAL fstate : type_fstate; SIGNAL reg_fstate : type_fstate; BEGIN PROCESS (clock,reset,reg_fstate)

微程序控制器

实验六、微程序控制器 一.实验目的 1.掌握微程序控制器的组成、工作原理; 2.明确微程序、微指令、微命令的概念; 3.掌握微指令、微程序的设计及调试方法; 4.通过单步方式执行若干条微指令深入理解微程序控制器的工作原理; 5.用逻辑分析仪测试微程序控制器指令的转移。 二.实验原理及电路图 实验原理: 微程序控制器是根据数据通路和指令系统来设计的。此处的数据通路是在前面的数据通路实验基础上,增加了指令寄存器IR、微地址寄存器、控制存储器、微命令寄存器、时序电路等形成的。 微程序控制的基本思想,就是仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器中。当机器运行时,一条又一条地读出这些微指令,从而产生所需要的各种操作控制信号,使相应部件执行所规定的操作。 微程序控制器的设计思想是将每一条机器指令用一段微程序来描述。微程序由若干条微指令组成,而每一条微指令又由若干微命令及一条微指令地址组成,而每一个微命令对应于逻辑电路的一个控制操作。 实验电路图: 其中rom由如下vhdl代码编写: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all; entity rom is port( a4,a3,a2,a1,a0:in std_logic; d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25, d26,d27,d28:out std_logic); end rom; architecture behavioral of rom is signal sk: std_logic_vector(4 downto 0); signal sel:std_logic_vector(27 downto 0); begin sk<=a4&a3&a2&a1&a0; sel<="1011000000100000010100000001"when sk="00000"else "1110100100100000010100000010"when sk="00001"else "1001001100100000010101101000"when sk="00010"else "1001101100100000010100000100"when sk="00011"else "1001001100100000010110000101"when sk="00100"else "1001000101100000010000000110"when sk="00101"else "1001000100101001101100000001"when sk="00110"else "1001000100111011000100000001"when sk="00111"else "1011000000100000010100010011"when sk="01000"else "1110100100100000010100010101"when sk="01001"else "1110100100100000010100010111"when sk="01010"else "1110100100100000010100011001"when sk="01011"else "1001000101100000010000011011"when sk="01100"else "1110100100100000010100011100"when sk="01101"else "1110100100100000010100000011"when sk="01110"else "1110100100100000010100011101"when sk="01111"else "1011000000100000010100010001"when sk="10000"else "1110100100100000010100010010"when sk="10001"else "1001010000100000010100010001"when sk="10010"else "1110100100100000010100010100"when sk="10011"else "1001001100100000010100010011"when sk="10100"else "1001101100100000010100010110"when sk="10101"else "1001001100100000011100000001"when sk="10110"else "1001101100100000010100011000"when sk="10111"else "1001010100100000010000000001"when sk="11000"else "1001101100100000010100011010"when sk="11001"else "1001001100100000010100000001"when sk="11010"else "1001000100110000001100000001"when sk="11011"else "1011001100100000010100000001"when sk="11100"else "1001101100100000010100011110"when sk="11101"else "1001001100100000010110011111"when sk="11110"else "1001000101100000010000000111"when sk="11111";

相关文档