您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页EL-JY-Ⅱ计算机组成原理实验系统(16位)

EL-JY-Ⅱ计算机组成原理实验系统(16位)

来源:筏尚旅游网


目 录

第一部分 EL-JY-II计算机组成原理实验系统介绍…………………… 1 第二部分 使用说明及要求 ……………………………………………… 12 实验一 运算器实验 ..………………………………………………… 16 实验二 移位运算实验 ….…………………………………………… 25 实验三 存储器读写和总线控制实验…………………………………… 29 实验四 微程序控制器原理实验 ……………………………… 38 实验五 微程序设计实验... ……………………………………………… 46 实验六、 简单模型机组成原理实验 ……………………… 55 实验七、 带移位运算的模型机组成原理实验 ………………… 66 实验八、 复杂模型机组成原理实验 ………………………… 77 实验九、 复杂模型机的I/O实验 ……………………………………… 91 实验十、 具有简单中断处理功能的模型机实验………………………… 101 实验十一、基于重叠和流水线技术的CPU结构实验………………… 111 实验十二、RISC模型机实验…………………………….………… 120 实验十三、 存储器扩展实验…………………………….………………….. 127 实验十四、可重构原理计算机组成实验………………………………… 132

附录、实验用机器指令集……………………………………………………….136

计算机组成原理实验指导书 - 1 -

第一部分 EL-JY-Ⅱ计算机组成原理实验系统介绍

EL-JY-Ⅱ型计算机组成原理实验系统是为计算机组成原理课的教学实验而研制的,涵盖了目前流行教材的主要内容,能完成主要的基本部件实验和整机实验,可供大学本科、专科、成人高校以及各类中等专业学校学习《计算机组成原理》、《微机原理》和《计算机组成和结构》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。 一、基本特点:

1、 本系统采用了新颖开放的电路结构:

(1)、在系统的总体构造形式上,采用“基板+ CPU板”的形式,将系统的公共部分,如数据的输入、输出、显示单片机控制及与PC机通讯等电路放置在基板上,它兼容8位机和16位机,将微程序控制器、运算器、各种寄存器、译码器等电路放在CPU板上,而CPU板分为两种:8位和16位,它们都与基板兼容,同一套系统通过更换不同的CPU板即可完成8位机或16位机的实验,用户可根据需要分别选用8位的CPU板来构成8位计算机实验系统或选用16位的CPU板来构成16位计算机实验系统;也可同时选用8位和16位的CPU板,这样就可用比一套略多的费用而拥有两套计算机实验系统,且使用时仅需更换CPU板,而不需做任何其它的变动或连接,使用十分方便。

(2)、本系统提供有面包板和CPLD实验板(可选),学生能自己设计实验内容,达到开拓思维,提高创新和设计能力的目的。

2、 本系统上安装有63个拨动开关、4个按钮开关和65个发光二极管,既可在单片机的控制下进行编程和显示,完成实验,也可与PC机联机使用,可在PC机上进行编程、传送、装载程序、调试和运行等操作;还可以手动的方式完成全部的实验,并具备单步执行一条微指令、单步执行一条机器指令、连续运行程序、联机打印等功能,几种操作方式可按需要任意选择一种使用,切换方便。

3、 控制器采用微程序方案,支持动态微程序设计,微程序指令的格式及定义均可由用户自行设计并装入由EEPROM构成的控存中。

4、 在显示功能上,采用了红、黄、绿三种颜色的指示灯以及数码管多种形式的显示方法,使整个系统更加美观大方。 二、系统组成:

本系统由两大部分组成:

计算机组成原理实验指导书 - 2 -

1、基板:

本部分是8位机和16位机的公共部分,包括以下几个部分: 1)数据输入和输出电路 2)显示及监控电路 3)脉冲源及时序电路 4)数据和地址总线 5)8255扩展实验电路

6)单片机控制电路和键盘操作部分 7)与PC机通讯的接口电路 8)主存储器电路 9)微代码输入及显示电路 10)电源电路

11)CPLD实验板(选件) 12)自由实验区(面包板) 2.CPU板:

本CPU板为16位机,其数据总线为16位,地址总线为8位,包括以下几个部分: 1) 运算器电路 2)微程序控制器电路 3) 寄存器堆电路 4) 程序计数器电路 5) 指令寄存器电路 6) 指令译码电路 7) 地址寄存器电路 8) 数据和控制总线电路

其中,运算器电路中的累加器电路由74LS181及其外围电路组成,此外所有的

其它电路都由ALTERA公司的FPGA— EP1K10实现。板上的JTAG口、芯片EPC2LC20、跳线J1—J6用于配置EP1K10。当跳线J1—J6均跳至EPC2 OFF时,可通过JTAG口直接配置EP1K10,但断电后需重新配置。当跳线J1—J6均跳至EPC2 ON时,通过EPC2LC20来配置EP1K10。系统出厂时,已将配置文件烧录进EPC2LC20。由于EPC2LC20为非易失性器件,故每次上电时可自动配置EP1K10,无需重新烧录。

计算机组成原理实验指导书 - 3 -

三、16位CPU板原理说明 (1) 运算器电路

运算器电路包括累加器电路和移位寄存器电路。其中累加器电路由4片74LS273和4片74LS181组成,其原理如下:

其控制逻辑由EP1K10内部产生,其原理如下:

累加器电路的外部接口有:LDR1、LDR2、ALU_G、AR、S3—S0 M CN,其功能见

计算机组成原理实验指导书 - 4 -

实验一。CY为进位单元,对应于CY指示灯。 移位寄存器由EP1K10实现,其框图如下:

T4为移位时钟,M、S0、S1为功能选择(见实验二),G_299为输出控制,低电平时将寄存器的值送上数据总线。CY为进位单元,对应于Z指示灯。DATAL、DATAH接至数据总线。 (2)微程序控制电路

微程序控制电路电路中,由三片2816作为24位微程序存储器,EP1K10产生控制逻辑。开关K1、K2、K3的不同组合控制微程序的读、写和运行,六个黄色LED为微地址指示灯。微控器原理如下图(除2816、74LS245和74LS374外,其余芯片功能均由EP1K10实现。不详之处请查阅EP1K10的源程序)。以微程序的运行为例:在T2时刻,将MS24—MS1的24位微程序打入微指令寄存器,然后由译码电路对MS24—MS7进行译码,产生地址寄存器、指令寄存器等等电路的控制信号。MS6—MS1指示下一个微地址,在T3时刻,由机器指令译码器产生的强制微地址信号对MS6—MS1微地址的某几位强行置位,形成下一个微地址输出。微控器的外部接口有:uAJ1、LDRO1、LDRO2、ALU_GOUT、G_299OUT、AROUT、STATUS 、AO1、BO1、WEO、WEI、LARI。在读、写微程序时,uAJ1用于从外部输入微地址;LDRO1、LDRO2、ALU_GOUT、G_299OUT、AROUT、STATUS为运算器电路的控制信号,只要将它们接至运算器电路相应的接口上(STATUS接S3—S1MCN)就能实现微程序对运算器的控制。AO1、BO1通常接至底板I/O控制电路的1A1B上,用于外部I/O设备的选通控制。WEO为微控器的读写输出,WEI为外部读写控制电路的输入,控制总线上的WR为外部读写控制电路的输出,其控制电路为:

通常将WEO与WEI相连,实现微程序对外部读写的控制。LARI为地址控制器的输

计算机组成原理实验指导书 - 5 -

入,以下另作介绍。除此以外其他控制信号都已接至相应的控制电路。

计算机组成原理实验指导书 - 6 -

(3)程序计数器、地址寄存器电路

程序计数器和地址寄存器电路由EP1K10实现,其原理如下图所示。其中LOAD、LPC、LAR、PC_G均为微程序译码产生的控制信号;T3、T4为时钟,LARI为外部输入接口,CLR由底板上的CLR开关提供。LDATA为数据总线低8位,AL为8位地址总线。地址寄存器原理为:如PC_G=‘0’,在CLK上升沿锁存DATI1;如PC_G=‘1’,则在CLK上升沿锁存DATI2。

(4)寄存器堆、指令寄存器电路

寄存器堆和指令寄存器电路由EP1K10实现,其原理如下图所示。其中LDIR为微程序译码产生的控制信号,T4为时钟,LR、RG为机器指令译码产生的控制信号。CLKi的上升沿将数据总线上的数打入寄存器Ri,OEi为低电平时将寄存器Ri的数送上数据总线。HDATA和LDATA分别为高8位和低8位数据总线。CLR由底板上的CLR开关提供。

计算机组成原理实验指导书 - 7 -

(5)指令译码器电路

指令译码器电路由EP1K10实现,其原理如下图所示。其中P1、P2、P3、P4、LRi、RAG、RBG、RCG为微程序译码产生的控制信号,T3为时钟,I7—I0为指令寄存器的输出IR,CA1、CA2为机器指令的读、写、运行的控制端,已分别接至控制总线的E4和E5。SA4—SA0为强制微地址信号,输出至微控制器电路;LDR2—LDR0输出至寄存器堆电路的LR,R0B、R1B、R2B输出至寄存器堆电路的RG。

(6)数据、地址和控制总线电路

CPU板上的16个绿色指示灯D15—D0对应于16位数据总线,8个黄色指示灯

对应于8位地址总线。控制总线上的信号除WR外均由底板的CPU产生。 四、底板使用说明

底板的系统布局如下图所示。

1、 控制开关电路用于开关方式下各种控制信号的输入,每个开关对应一个LED指示

灯。当LED点亮时,表示相对应的开关输出为高电平,反之则为低电平。 2、 键盘及监控显示灯用于键盘方式下的实验,其用法见各实验说明(注:当开关K4

为“ON”时键盘)。

计算机组成原理实验指导书 - 8 -

3、24位微代码输入及显示电路用于读写微程序,其原理如下图所示(仅以MD17-MD24为例,MD1-MD16电路与此相同)。

当K4为“OFF”(VCC)时,24位开关无效,24个数码管的显示由2816的数据口

计算机组成原理实验指导书 - 9 -

决定,用于键盘方式读写微代码和开关方式读微代码。当K4为“ON”(GND)时,24位开关有效,24个数码管显示每一位开关的状态(“0”或“1”),用于开关方式写微代码。

4、脉冲源及时序电路用于开关方式下产生时序信号;F、F/2、F/4、F/8分别为固定时钟频率输出端,其频率分别为1M、500K、250K、125K。Fin为时钟输入,可接至F、F/2、F/4、F/8中的任何一个输出;按下“单脉冲”键时,T+、T-端分别产生一个正脉冲、一个负脉冲;按下“单步”键时,T1、T2、T3、T4端依次产生一个正脉冲,用于程序的单步运行;按下“启动”键时,T1、T2、T3、T4端依次产生连续的正脉冲,用于程序的全速运行;按下“停止”键时,T1、T2、T3、T4端不产生脉冲,用于中止程序运行。

5、16位数据输入电路如下图所示:DIJ2为高8位数据,DIJ1为低8数据,当DIJ—G为低电平时,DIJ2、DIJ1输出16位开关量数据,否则为高阻态。

6、16位输出显示电路由四个数码管和四片可编程逻辑芯片GAL16V8组成。GAL16V8 为显示提供译码和驱动,当W/R、D-G均为低电平时,将D15—D0的数据送至数

码管显示。

7、I/O控制电路由一片74LS139构成,用于为外部器件提供选通信号。其原理和逻辑

关系如下图所示:

计算机组成原理实验指导书 - 10 -

输 入 1A 0 1 0 1

1B 0 0 1 1

Y0 0 1 1 1

输 出 Y1 1 0 1 1

Y2 1 1 0 1

Y3 1 1 1 0

8、显示灯电路:该电路有四个绿色LED指示灯。当输入为高电平时,点亮相应位置的LED灯。

9、主存储器电路其原理如下图所示:

10、8255接口电路的数据、地址、控制线和PA口以及PB口的第四位均通过单排插针

引出。底板上的数据总线BD15—BD0(三组接口相同,可互换)和CPU板上的数据线相连,地址总线AD7—AD0(三组接口相同,可互换)和CPU板上的地址线相连。 五、参考实验: 1.运算器实验 2.移位运算实验

3.存储器读写和总线控制实验 4.微程序控制器原理实验 5.微程序设计实验

计算机组成原理实验指导书 - 11 -

6.简单模型机组成原理实验

7.带移位运算的模型机组成原理实验 8.复杂模型机组成原理实验 9.复杂模型机的I/O实验

10.具有简单中断处理功能的模型机实验 11.基于重叠和流水线技术的CPU结构实验 12.RISC模型机实验 13.存储器扩展实验

14.可重构原理计算机组成实验

其中实验10—14需配备ALTERA公司的MAXPLUSII软件和本公司的ALTERA下载电缆。实验1—9上电之前,须将CPU板上的跳线J1—J6跳至EPC ON。

计算机组成原理实验指导书 - 12 -

第二部分 使用说明及要求

1. 本系统分为三种实验操作方式: 方式一:开关控制操作;

方式二:键盘控制操作; 方式三:联机控制操作

2.本系统采用正逻辑,即“1”代表高电平,“0”代表低电平; 3.指示灯亮表示相应信号为高电平,熄灭表示相应信号为低电平;

4.实验连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上;

5.为保证实验的成功,每次实验之前均应认真阅读实验指导书,接线要按要求,确保正确无误且接触良好;

6.应严格按照实验指导书的实验步骤和先后顺序进行实验,否则有可能造成实验不成功甚至损坏芯片。

方式一:开关控制操作方式:

1.在各种控制信号中,有的是低电平有效,有的是高电平有效,请注意区别,具体可参见实验指导。

2.总线是计算机信息传输的公共通路。为保证总线信息的正确无误,总线上每次只能有一个控制信号有效,如果同时有两个或两个以上信号同时有效,会产生总线竞争而造成冲突甚至损坏芯片。故每次开始实验操作时均要先置相应控制开关电路的控制信号为“1”,高电平,对应的指示灯亮。 方式二:键盘控制操作方式:

系统通电,K4开关拨到OFF,监控指示灯(数码管,以下数码管均指监控指示灯)上滚动显示【CLASS SELECt】,在该状态下,整个键盘可用键分别为:

,(即CHECK SYSTEM的缩写), 系统检测键:按下该键,数码管显示【CHESYS】进入系统自检程序,具体说明见后述说明。

实验选择键:按下该键,数码管显示【ES--__】,进入实验课题选择,具体说明见后述说明。

联机键:按下该键,系统进入与上位机通讯状态,当与计算机联机成功,数码管显示【Pc-Con】,最后显示【8】,表示联机通讯成功。

除了上述三个键有效外,其余按键系统均不响应。

计算机组成原理实验指导书 - 13 -

1. 【系统检测】键具体操作说明:

1). 当在监控指示灯显示【CLASS SELECt】时按下该键,显示变为【CHESYS】(CHECK SYSTEM),进入系统自检,此时,只要按下键盘上任意一键,数码管后两位就显示该键所对应的键盘编码,前四位显示对应电路的名称——8255。例如:我们按下2号键,对应的显示为【825502】,然后返回显示【CHESYS】;按下F号键,对应的显示为【82550F】,然后返回显示【CHESYS】。 2). 在系统检测状态,按下【取消】键,则退出系统检测程序。

3). 对于键盘上的【0】 号键和【1】键,除了显示其键盘编码外,还有第二功能:

【0】 键的第二功能说明:

检测所有总线(数据总线、控制总线、微控制总线)的输出功能。按下【0】号键后,监控指示灯显示【825500】后,约过0.5S,系统首先显示【UCDC00】,自动送“0“到所有总线,24位微代码显示数码管显示全0(如果其他两条总线连接有监视灯,也显示全0);此时,系统等待按【确认】键。当按下【确认】键后,数码管显示变为【UCDCFF】,系统自动送所有总线FF,24位微代码显示数码管显示全1(如果其他两条总线连接有监视灯,也显示全1),此时系统等待按【取消】键退出该项功能检测。

在总线输出【00】和【FF】的时候,通过观察总线上的状态显示灯即可知道哪一组总线上的哪一位出错。 【1】 键的第二功能说明:

检测所有总线(数据总线、控制总线、微控制总线)的输入功能。按下【1】号键后,显示【825501】后,系统等待按【确认】键,按下【确认】键后,系统显示【UC0PPP】,此时需把K4从“OFF”状态拨向“ON”状态,把开关MS1~MS24拨为全0,再次按下“确认”键,系统读入微控总线的第0组(第一个8位)的全0,如果总线出错,读入哪一个为1,在数码管上就位显示对应的错误位号(如果第一个(低)8位的第0位出错,则显示【UC00Er】,表示微控总线的第0组的第0位出错,UC后的第1个0表示第0组微控总线,第2个0表示第0位),如果完全正确,显示【UC0Cor】,约过1S,显示变为【UC1PPP】,按下【确认】键,系统检测微控总线的第1组(第二个8位)的全0,如果完全正确,显示【UC1Cor】,若有哪一位有错误,错误信息的显示与第一组显示相同;在显示【UC1Cor】后约1S,显示为【UC2PPP】,按下【确认】键,系统检测微控总线的第2组(第二个

计算机组成原理实验指导书 - 14 -

8位)的全0,如果完全正确,显示【UC2Cor】,若有哪一位有错误,错误信息显示的与第一组显示相同;当三组全检测完毕,显示变为【CHEEND】(CHECK END),约1S后,显示【OFF】,此时把K4开关拨回到OFF,则又回到系统检测最开始部分。

2. 【实验选择】键具体操作说明:

当显示【CLASS SELECt】时按下该键,数码管显示变为【ES--__】,系统打开键盘,等待通过数字键盘输入实验课题代码,输入相应的课题代码后,按【确认】键进入该实验,在输入的过程中,可通过按【取消】键修改输入,在显示【ES--__】状态连续按【取消】键,即可退出实验选择功能,返回到【CLASS SELECt】状态。

实验课题与输入代码对应关系如下:

实验课题 实验一 实验二 实验三 实验四 实验五 实验六 实验七 实验八 实验九 实验十 实验十一 实验十二 实验十三 实验十四

输入代码及按键 01+确认 或1+确认 02+确认 或2+确认 03+确认 或3+确认 04+确认 或4+确认 05+确认 或5+确认 06+确认 或6+确认 07+确认 或7+确认 08+确认 或8+确认 09+确认 或9+确认

10+确认 11+确认 12+确认 13+确认 01+确认 或1+确认

注意:实验十四的步骤与实验一相同。在采用单片机键盘控制操作方式实验时,必须把K4开关置于【OFF】状态,否则系统处于自锁状态,无法进行实验;

3. 【联机】键说明

当在数码管显示【CLASS SELECt】时按下该键,系统进入上位机监控实验状态,所有按键全都封闭,除【RST】(复位)键外,所有的实验操作全由上位机控制。当退出联机实验状态后,系统又自动恢复到【CLASS SELECt】状态。 方式三:联机控制操作方式:

计算机组成原理实验指导书 - 15 -

用串口电缆连接本系统和PC机。当系统监控指示灯上滚动显示【CLASS SELECt】时,在PC机上运行联机程序,选择正确的端口后按【联机】键,系统进入与上位机通讯状态。当与计算机联机成功,数码管显示【Pc-Con】,最后显示【8】,表示联机通讯成功。 1、 联机控制方式下的系统接线与键盘控制方式相同。

2、联机方式下在上位机界面中选择实验项目。每项实验均由实验说明和实验步骤两部分组成。实验说明中有每个实验详细的实验步骤。

计算机组成原理实验指导书 - 16 -

实验一 运算器实验

一、实验目的:

1. 掌握运算器的组成及工作原理;

2.了解4位函数发生器74LS181的组合功能,熟悉运算器执行算术操作和逻辑操作的具体实现过程;

3. 验证带进位控制的74LS181的功能。 二、预习要求:

1 复习本次实验所用的各种数字集成电路的性能及工作原理; 2 预习实验步骤,了解实验中要求的注意之处。 三、实验设备:

EL-JY-II型计算机组成原理实验系统一套,排线若干。 四、电路组成:

本模块由算术逻辑单元ALU 74LS181(U7、U8、U9、U10)、暂存器74LS273(U3、U4、U5、U6)、三态门74LS244(U11、U12)和控制电路(集成于EP1K10内部)等组成。电路图见图1-1(a)、1-1(b)。

图1-1(a)ALU电路

计算机组成原理实验指导书 - 17 -

图1-1(b)ALU控制电路

算术逻辑单元ALU是由四片74LS181构成。74LS181的功能控制条件由S3、S2、S1、S0、 M、Cn决定。高电平方式的74LS181的功能、管脚分配和引出端功能符号详见表1-1、图1-2和表1-2。

四片74LS273构成两个16位数据暂存器,运算器的输出采用三态门74LS244。它们的管脚分配和引出端功能符号详见图1-3和图1-4。

图1-2 74LS181管脚分配 表1-2 74LS181输出端功能符号 74LS181功能表见表1-1,其中符号“+”表示逻辑“或”运算,符号“*”表示逻辑“与”运算,符号“/”表示逻辑“非”运算,符号“加”表示算术加运算,符号“减”表示算术减运算。

计算机组成原理实验指导书 - 18 -

选择 S3 S2 S1 S0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 M=1 逻辑操作 F=/A F=/(A+B) F=/A*B F=0 F=/(A*B) F=/B F=(/A*B+A*/B) F=A*/B F=/A+B F=/(/A*B+A*/B) F=B F=A*B F=1 F=A+/B F=A+B F=A M=0 算术操作 Cn=1(无进位) F=A F=A+B F=A+/B F=-1 F=A加A*/B F=(A+B)加A*/B F=A减B减1 F=A*/B减1 F=A加A*B F=A加B F=(A+/B)加A*B F=A*B减1 F=A加A F=(A+B)加A F=(A+/B)加A F=A减1 Cn=0(有进位) F=A加1 F=(A+B)加1 F=(A+/B)加1 F=0 F=A加A*/B加1 F=(A+B) 加A*/B加1 F=A减B F=A*/B F=A加A *B加1 F=A加B加1 F=(A+/B)加A*B加1 F=A*B F=A加A 加1 F=(A+B)加A加1 F=(A+/B)加A加1 F=A 表1-1 74LS181功能表

图1-3(a) 74LS273管脚分配 图1-3(b)74LS273功能表

计算机组成原理实验指导书 - 19 -

图1-4(a) 74LS244管脚分配 图1-4(b) 74LS244功能

五、工作原理:

运算器的结构框图见图1-5:

算术逻辑单元ALU是运算器的核心。集成电路74LS181是4位运算器,四片74LS181以并/串形式构成16位运算器。它可以对两个16位二进制数进行多种算术或逻辑运算,74LS181 有高电平和低电平两种工作方式,高电平方式采用原码输入输出,低电平方式采用反码输入输出,这里采用高电平方式。

三态门74LS244作为输出缓冲器由ALU-G信号控制,ALU-G 为“0”时,三态门开通,此时其输出等于其输入;ALU-G 为“1”时,三态门关闭,此时其输出呈高阻。

四片74LS273作为两个16数据暂存器,其控制信号分别为LDR1和LDR2,当LDR1和LDR2 为高电平有效时,在T4脉冲的前沿,总线上的数据被送入暂存器保存。

计算机组成原理实验指导书 - 20 -

六、实验内容:

验证74LS181运算器的逻辑运算功能和算术运算功能。 七、实验步骤:

Ⅰ、单片机键盘操作方式实验

注:在进行单片机键盘控制实验时,必须把开关K4置于“OFF”状态,否则系统处于自锁状态,无法进行实验。 1、实验连线(键盘实验): 实验连线如图1-6所示。

(连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。注意:F4只用一个排线插头孔)

运算器接口

S3S2S1S0MCn ALU-G AR LDR1 LDR2

C1… ...C6 E5 E4 F5 E3 控制总线

F4 T4

线 图1-6 实验一 键盘实验连线图

2、实验过程:

(1) 拨动清零开关CLR,使其指示灯灭。再拨动CLR,使其指示灯亮。

(2) 在监控滚动显示【CLASS SELECt】时按【实验选择】键,显示【ES--_ _ 】输入01或1,按【确认】键,监控显示为【ES01】,表示准备进入实验一程序,也可按【取消】键来取消上一步操作,重新输入。

(3) 再按【确认】键,进入实验一程序,监控显示【InSt--】,提示输入运算指令,输入两位十六进制数(参考表1-3和表1-1),选择执行哪种运算操作,按【确认】键。

(4) 监控显示【Lo=0】,此处Lo相当于表1-1中的M,默认为“0”,进行算术运算,也可以输入“1”,进行逻辑运算。按【确认】,显示【Cn=0】,默认为“0”,由表1-1可见,此时进行带进位运算,也可输入“1”,不带进位运算(注:如前面选择

计算机组成原理实验指导书 - 21 -

为逻辑运算,则Cn不起作用)。按【确认】,显示【Ar=1】,使用默认值“1”,关闭进位输出。也可输入“0”,打开进位输出,按【确认】。

(5) 监控显示【DATA】,提示输入第一个数据,输入十六进制数【1234H】,按【确认】,显示【DATA】,提示输入第二个数据,输入十六进制数【5678H】,按【确认】键,监控显示【FINISH】,表示运算结束,可从数据总线显示灯观察运算结果,CY指示灯显示进位输出的结果。按【确认】后监控显示【ES01】,可执行下一运算操作。

运算指令( S3 S2 S1 S0) 输入数据(十六进制)

0 0 0 0 00或0 0 0 0 1 01或1 0 0 1 0 02或2 0 0 1 1 03或3 0 1 0 0 04或4 0 1 0 1 05或5 0 1 1 0 06或6 0 1 1 1 07或7 1 0 0 0 08或8 1 0 0 1 09或9 1 0 1 0 0A或A 1 0 1 1 0B或B 1 1 0 0 0C或C 1 1 0 1 0D或D 1 1 1 0 0E或E 1 1 1 1 0F或F

表1-3 运算指令关系对照表 在给定LT1=1234H、LT2=5678H的情况下,改变运算器的功能设置,观察运算器的输出,填入表中,并和理论值进行比较和验证: LT1 1234H

LT2 5678H M=0(算术运算)

S3S2S1S0 Cn=1(无进位) Cn= 0(有进位)

F= F= 00或0

F= F= 01或1

F= F= 02或2

F= F= 03或3

F= F= 04或4

F= F= 05或5

F= F= 06或6

F= F= 07或7

F= F= 08或8

F= F= 09或9 M=1(逻辑运算) F= F= F= F= F= F= F= F= F= F=

计算机组成原理实验指导书 - 22 -

F= F= 0A或A F= F= F= 0B或B F= F= F= 0C或C F= F= F= 0D或D F= F= F= 0E或E F= F= F= 0F或F F= Ⅱ、开关控制操作方式实验

注:为了避免总线冲突,首先将控制开关电路的ALU-G和C-G拨到输出高电平“1”状态(所对应的指示灯亮。)本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。 1、 按图1-7接线图接线:

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

运算器接口 S3S2S1S0MCn ALU-G AR LDR1 LDR2 BD15 ……. BD8 BD7 ……. BD0 数据总线 DIJ1 DIJ-G C-G S3S2S1S0MCn ALU-G AR LDR1 LDR2 控制开关电路 控制总线T4 DIJ2 数据输入电路 T+ fin f/8 脉冲源及时序电路 图1-7 实验一 开关实验 接线图

2、通过数据输入电路的拨开关开关向两个数据暂存器中置数:

注意:本实验中ALU-G和C-G不能同时为0,否则造成总线冲突,损坏芯片!故每次实验时应时刻保持只有一路与总线相通。

1)拨动清零开关CLR,使其指示灯。再拨动CLR,使其指示灯亮。置ALU-G=1:

关闭ALU的三态门;再置C-G=0:打开数据输入电路的三态门; 2) 向数据暂存器LT1(U3、U4)中置数:

(1)设置数据输入电路的数据开关“D15……D0”为要输入的数值;

计算机组成原理实验指导书 - 23 -

(2)置LDR1=1:使数据暂存器LT1(U3、U4)的控制信号有效,置 LDR2=0:使 数据暂存器LT2(U5、U6)的控制信号无效;

(3)按一下脉冲源及时序电路的【单脉冲】按钮,给暂存器LT1送时钟,上升沿有效,把数据存在LT1中。

3)向数据暂存器LT2(U5、U6)中置数:

(1)设置数据输入电路的数据开关“D15……D0”为想要输入的数值; (2)置LDR1=0:数据暂存器LT1的控制信号无效;置LDR2=1:使数据暂存

器LT2的控制信号有效。

(3)按一下脉冲源及时序电路的“单脉冲”按钮,给暂存器LT2送时钟,上升沿有效,把数据存在LT2中。

(4)置LDR1=0、LDR2=0,使数据暂存器LT1、LT2的控制信号无效。

4 )检验两个数据暂存器LT1和LT2中的数据是否正确:

(1)置C-G=1,关闭数据输入电路的三态门,然后再置ALU-G=0,打开ALU

的三态门 ;

(2)置“S3S2S1S0M”为“11111”,数据总线显示灯显示数据暂存器LT1中的

数 ,表示往暂存器LT1置数正确;

(3)置“S3S2S1S0M”为“10101”,数据总线显示灯显示数据暂存器LT2中

的数 ,表示往暂存器LT2置数正确。

3、验证74LS181的算术和逻辑功能: LT1 1234H

LT2 5678H

S3S2S1S0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1

M=0(算术运算) Cn=1(无进位) F= F= F= F= F= F= F= F= F= F= F= F= F= F=

Cn= 0(有进位) F= F= F= F= F= F= F= F= F= F= F= F= F= F=

M=1(逻辑运算) F= F= F= F= F= F= F= F= F= F= F= F= F= F=

计算机组成原理实验指导书 - 24 - 1 1 1 0 F= F= F= 1 1 1 1 F= F= F=

按实验步骤2往两个暂存器LT1和LT2分别存十六进制数“1234H”和“5678H”,在给定LT1=1234H、LT2=5678H的情况下,通过改变“S3S2S1S0MCn”的值来改变运算器的功能设置,通过数据总线指示灯显示来读出运算器的输出值F,填入上表中,参考表1-1的功能表,分析输出F值是否正确。分别将“AR”开关拨至“1”和“0”的状态,观察进位指示灯“CY”的变化并分析原因。

八、实验报告要求:

1、实验记录:所有的运算结果,故障现象及排除经过; 2、谈谈本次实验的收获及想法。

计算机组成原理实验指导书 - 25 -

实验二 移位运算实验

一、实验目的:

掌握移位控制的功能及工作原理 二、预习要求:

1.了解移位寄存器的功能及用FPGA的实现方法。 三、实验设备:

EL-JY-II型计算机组成原理实验系统一套,排线若干。 四、工作原理:

移位运算实验电路结构如图2-1所示:

图2-1 移位运算器电路结构

功能由S1、S0、M控制,具体功能见表2-2: G-299 0 0 0 0 0 1 0 0

S1 0 1 1 0 0 1 1 1

S0 0 0 0 1 1 1 1 1

M × 0 1 0 1 × 0 1

T4 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

功 能 保持 循环右移 带进位循环右移 循环左移 带进位循环左移 置数(进位保持) 置数(进位清零) 置数(进位置1)

表2-2 五、实验内容:

输入数据,利用移位寄存器进行移位操作。

计算机组成原理实验指导书 - 26 -

六、实验步骤

Ⅰ、单片机键盘操作方式实验。

注:在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。 1、实验连线:

实验连线图如图2-3所示。

图2—3 键盘方式接线图

注:连线时应按如下方法:为了连线统一,对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。注意:F4只用一个排线插头孔

2、实验过程:

(1) 拨动清零开关CLR,使其指示灯灭。再拨动CLR,使其指示灯亮。在监控指示灯

滚动显示【CLASS SELECt】时按【实验选择】键,显示【ES--_ _ 】输入02或2,按【确认】键,监控指示灯显示为【ES02】,表示准备进入实验二程序,也可按【取消】键来取消上一步操作,重新输入。

(2) 再按【确认】键,进入实验二程序,显示为【E1E0--】,提示输入操作指令(参考

表2-2,E1E0相当于G_299,二进制,“11”为关闭输出,“00”为允许输出),输入二进制数“11”,关闭输出,在输入过程中,可按【取消】键进行输入修改。按【确认】键。

(3) 监控指示灯显示【Lo=0】,可输入二进制数“0”或“1”,此处Lo相当于表2-2

的M,默认为“0”,按【确认】键。

(4) 监控指示灯显示【S0S1--】,提示输入移位控制指令(参考表2-2),输入二进制数

“11”,对寄存器进行置数操作,按【确认】键。

计算机组成原理实验指导书 - 27 -

(5) 监控指示灯显示【DATA】,提示输入要移位的数据,输入十六进制数“0001”,按

【确认】,显示【PULSE】,此时按【单步】,将数据存入移位寄存器,可对它进行移位操作。

(6) 监控指示灯显示【ES02】,按【确认】键,进行移位操作,显示为【E1E0--】,提示

输入操作指令(E1E0同上),输入二进制数“00”,允许输出,按【确认】键。 (7) 监控指示灯显示【Lo=0】。和前面一样,输入“0”,选择不带进位操作,按【确认】

键。监控指示灯显示【S0S1--】,提示输入移位控制指令(参考表2-2),输入二进制数“01”,表示对输入的数据进行循环右移,显示【PULSE】。按【单步】键,则对十六进制数据“0001”执行一次右移操作。数据总线指示灯显示“1000000000000000”,再按【单步】,数据总线指示灯显示“0100 000000000000”,连续按【单步】,可以单步执行,按【全速】键,监控指示灯显示【Run】,则可连续执行移位操作。观察数据总线显示灯的变化,判断结果是否正确。

(8) 重新置入数据“FFFF”,进行带进位的循环右移,观察数据总线显示灯的变化,判

断结果是否正确。 Ⅱ、开关控制操作方式实验

本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。 1、按图2-4接线:

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

首先将控制开关电路的所有开关拨到输出高电平“1”状态,所对应的指示灯亮。 DIJ1 DIJ-G DIJ2 数据输入电路 C-G S3S2S1S0MCn 299-G 控制开关电路 控制总线T4 图2-4 实验二开关实验接线图

2、实验过程:(以左移为例)

开始实验前要把所有控制开关电路上的开关置为高电平“1”状态。拨动清零开关CLR,使其指示灯灭。再拨动CLR,使其指示灯亮。

BD15……BD8 数据总线 BD7……BD0 运算器电路 S3S2S1S0MCn G-299 T4 fin f/8 脉冲源及时序电计算机组成原理实验指导书 - 28 -

(1) 置数:

置C-G=1,299-G=0,通过数据输入电路输入要移位的数据,置D15---D0= “0000000000000001”,然后置C-G=0,数据总线显示灯显示“0000000000000001”,置S0=1,S1=1,M=1参考功能表表2-2可见,此时为置数状态,按脉冲源及时序电路上的【单步】按钮,置C-G=1,完成置数的过程,进位指示灯亮表示进位“Z”已置位。

(2) 不带进位移位:

置299-G=0,S0=1,S1=0,M=0,参考功能表2-2,此时为循环左移状态,数据总线显示灯显示“0000000000000001”, 按【单步】,数据总线显示灯显示“0000000000000010”, 再按一次【单步】,数据总线显示的数据向左移动一位。连续按【单步】,观察不带进位移位的过程。如想进行右移,参考表2-2,置S0=0,S1=1,再按【单步】即可实现右移操作。 (3) 带进位移位

当数据总线显示“0000000000000001”时,置299-G=0,S0=1,S1=0,M=1,参考功能表2-2,此时为带进位循环左移状态。按【单步】按钮,数据总线显示灯显示“0000000000000011”,进位指示灯灭,表示进位“1”已经进入移位寄存器,同时“0”进入进位单元。连续按【单步】,观察带进位移位的过程。如想进行带进位右移,参考表2-2,置S0=0,S=1,M=1,再按【单步】即可实现带进位右移操作。

3、按以上的操作方法验证表2-2所列的移位运算试验电路的所有功能。

七、实验报告要求:

1、实验记录:所有的运算结果,故障现象及排除经过;

2、谈谈本次实验的收获及想法。

计算机组成原理实验指导书 - 29 -

实验三 存储器读写和总线控制实验

一、实验目的:

1、掌握半导体静态随机存储器RAM的特性和使用方法。 2、掌握地址和数据在计算机总线的传送关系。 3、了解运算器和存储器如何协同工作。 二、预习要求:

预习半导体静态随机存储器6116的功能 。 三、实验设备:

EL-JY-II型计算机组成原理实验系统一套,排线若干。 四、电路组成:

电路图见图3-1,6116的管脚分配和功能见图3-2。

图3-1 存储器电路

图3-2(a) 6116管脚分配 图3-2(b) 6116功能

计算机组成原理实验指导书 - 30 -

图 3-3

五、工作原理:

实验中的静态存储器由2片6116(2K×8)构成,其数据线D0~D15接到数据总线,地址线A0~A7由地址锁存器74LS273(集成于EP1K10内)给出。黄色地址显示灯A7-A0与地址总线相连,显示地址总线的内容。绿色数据显示灯与数据总线相连,显示数据总线的内容。

因地址寄存器为8位,接入6116的地址A7-A0,而高三位A8-A10接地,所以其实、/R(读)、/W(写)。其写时际容量为28=256字节。6116有三个控制线,/CE(片选)间与T3脉冲宽度一致。

当LARI为高时,T3的上升沿将数据总线的低八位打入地址寄存器。当WEI为高时,T3的上升沿使6116进入写状态。 六、实验内容:

学习静态RAM的存储方式,往RAM的任意地址里存放数据,然后读出并检查结果是否正确。

注:6116为静态随机存储器,如果掉电,所存的数据全部丢失! 七、实验步骤

Ⅰ、单片机键盘操作方式实验

注:在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。

计算机组成原理实验指导书 - 31 -

1. 实验连线:

实验连线图如图3-4所示。

连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。(注意:F3只用一个排线插头孔)

MDJ1BD15……BD8BD7……BD0CEMDJ2主存储器电路WEMAJ1AD7……AD0地址总线数据总线E4WR控制总线E5WEI微控器接口F3T3E3LARI 图3-4 实验三键盘实验接线图

2.写数据:

(1) 拨动清零开关CLR,使其指示灯显示状态为亮—灭—亮。

(2) 在监控指示灯滚动显示【CLASS SELECt】时按【实验选择】键,显示【ES--_ _ 】

输入03或3,按【确认】键,监控指示灯显示为【ES03】,表示准备进入实验三程序,也可按【取消】键来取消上一步操作,重新输入。再按【确认】键,进入实验三程序。

(3) 监控指示灯显示为【CtL= - -】,输入1,表示准备对RAM进行写数据,在输入过程

中,可按【取消】键进行输入修改,按 【确认】键。

(4) 监控指示灯显示【Addr- -】,提示输入2位16进制数地址,输入“00”按【确认】

键,监控指示灯显示【dAtA】,提示输入写入存储器该地址的数据(4位16进制数),输入“3344”按【确认】键,监控指示灯显示【PULSE】,提示输入单步,按【单步】键,完成对RAM一条数据的输入,数据总线显示灯(绿色)显示“0011001101000100”,即数据“3344”,地址显示灯显示“0000 0000”,即地址“00”。 (5) 监控指示灯重新显示【Addr- -】,提示输入第二条数据的2位十六进制的地址。重

复上述步骤,按表3-1输入RAM地址及相应的数据。

地址(十六进制)

数据(十六进制)

计算机组成原理实验指导书 - 32 - 00 71 42 5A A3 CF F8 E6

表3-1 实验三数据表 3.读数据及校验数据:

(1) 按【取消】键退出到监控指示灯显示为【ES03】,或按【RST】退到步骤2初始

状态进行实验选择。

(2) 拨动清零开关CLR,使其指示灯显示状态为亮—灭—亮。在监控指示灯显示

【ES03】状态下,按 【确认】键。

(3) 监控指示灯显示为【CtL= - -】,输入2,表示准备对RAM进行读数据,按【确

认】键。

(4) 监控指示灯显示【Addr- -】,提示输入2位16进制数地址,输入“00”,按【确

认】键,监控指示灯显示【PULSE】,提示输入单步,按【单步】键,完成对RAM一条数据的读出,数据总线显示灯(绿色)显示“0011001101000100”,即数据“3344”,地址显示灯显示“0000 0000”,即地址“00”。

(5) 监控指示灯重新显示【Addr- -】,重复上述步骤读出表3-1的所有数据,注意

观察数据总线显示灯和地址显示灯之间的对应关系,检查读出的数据是否正确。 注:6116为静态随机存储器,如果掉电,所存的数据全部丢失!

Ⅱ、开关控制操作方式实验

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

本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。 连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

1、按图3-5接线图接线:

3333 3434 3535 5555 6666 ABAB 7777 9D9D

计算机组成原理实验指导书 - 33 -

MDJ1BD15……BD8BD7……BD0WEMDJ2主存储器电路MAJ1AD7……AD0CE地址总线数据总线WRDIJ2DIJ-Gfin脉冲源DIJ1数据输入电路f/8T3控制总线T3控制开关CEWELARC-G微控器接口WEILARI

图3-5 实验三开关实验接线

2、拨动清零开关CLR,使其指示灯显示状态为亮—灭—亮。 3、往存储器写数据:

以往存储器的(FF) 地址单元写入数据“AABB”为例,操作过程如下:

(操作) (显示) (操作) (显示) (操作) 1.C –G=1 1.C-G=1 地址寄存器2.置数据输入电路 D15—D0= “000000001111 1111” 3.CE=1 4.C-G=0 绿色数据总线显示灯显示 “000000001111 1111” 1.LAR=1 2.T3=1 (按【单步】) 电路黄色地址显示灯显示 “11111111” (显示) (操作) 1.WE=1 绿色数据总线显示灯显示 “1010101010111011” 2.CE=0 3.T3=1 (按【单步】) 4 WE=0 2.置数据输入电路 D15—D0= “1010101010111011” 3. LAR=0 4. C-G=0 4、按上述步骤按表3-2所列地址写入相应的数据 地址(二进制)

00000000 01110001 01000010 01011010 10100011 11001111 11111000 11100110

数据(二进制) 0011001100110011 0011010000110100 0011010100110101 0101010101010101 0110011001100110 1010101110101011 0111011101110111 1001110110011011

表3-2

计算机组成原理实验指导书 - 34 -

5、从存储器里读数据:

以从存储器的(FF) 地址单元读出数据“AABB”为例,操作过程如下:

(操作) (显示) (操作) (显示) (操作) (显示) 1.C-G=1 MAR电路黄 1.LAR=1 1. C-G=1 2. 置数据输入电路 绿色数据总线显色地址显示2. LAR=0 2.T3=1 绿色数据总线显D15—D0=示灯显示 灯显示 3. WE=0 按【单步】) (示灯显示 \"0000000011111111” “0000000011111“11111111” 4.CE=0 “1010101010111111” 3.CE=1 4.C-G=0 011” 6、按上述步骤读出表3-2数据,验证其正确性。

计算机组成原理实验指导书 - 35 -

附加实验 总线控制实验

一、实验目的:

1、 了解总线的概念及其特性。 2、 掌握总线的传输控制特性。 二、实验设备:

EL-JY-II型计算机组成原理实验系统一套,排线若干。 三、实验说明 1、 总线的基本概念

总线是多个系统部件之间进行数据传送的公共通路,是构成计算机系统的骨架。借助总线连接,计算机在系统各部件之间实现传送地址、数据和控制信息的操作。因此,所谓总线就是指能为多个功能部件服务的一组公用信息线。 2、 实验原理说明

在本实验中,挂接在数据总线上的有输入设备、输出设备、存储器和加法器。为了使它们的输出互不干扰,就需要这些设备都有三态输出控制,且任意两个输出控制信号不能同时有效。其结构如下图所示:

图3-6 总线结构图

其中,数据输入电路和加法器电路结构见图1-5,地址寄存器和存储器电路见图3-1、3-3。数码管显示电路用可编程逻辑芯片ATF16V8B进行译码和驱动,D-G为使能信号,W/R为写信号。当D-G为低电平时,W/R的下降沿将数据线上的数据打入显示缓冲区,并译码显示。

本实验的流程为:

(1)输入设备将一个数打入LT1寄存器。 (2)输入设备将一个数打入LT2寄存器。

计算机组成原理实验指导书 - 36 -

(3)LT1与LT2寄存器中的数相加。 (4)输入设备将另一个数打入地址寄存器。 (5)将两数之和写入当前地址的存储器中。 (6)将当前地址的存储器中的数用数码管显示出来。 四、实验连线

本实验采用开关方式,连线见下图。(连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上)

图3-7 总线控制实验接线图 五、实验步骤

1、 按照上图所示将所有连线接好。

2、 总线初始化。关闭所有三态门置控制开关ALU_G=1(加法器控制信号),CA1=1(显

示输出),CA2=1(数据输入),CE=1(存储器片选)。其它控制信号为LOAD=0,AR=0,LPC=0,C=1,WE=1,A=1,B=1。

3、 将D15—D0拨至“0001001000110100”,置CA2=0,LOAD=1,然后置LOAD=0,

计算机组成原理实验指导书 - 37 -

将“1234H”打入LT1寄存器。

4、 将D15—D0拨至“0101011001111000”,置AR=1,然后置AR=0,将“5678H”

打入LT2寄存器。

5、 将S3S2S1S0MCN拨至“100101”,计算两数之和。

6、 将D7—D0拨至“00000001”,置LPC=1,然后置LPC=0,将“01H”打入地址

寄存器。

7、 置CA2=1,ALU-G=0,WE=0,CE=0,将上述计算结果写入当前地址的存储器

中。然后置CE=1,WE=1。

8、 置ALU-G=1,CE=0,CA1=0,C=0,将当前地址的存储器中的数输出至数码管,

然后置C=1,CE=1,CA1=1。

六、实验结果

照以上8步操作完成后,输出显示电路LED上显示“68AC”。

计算机组成原理实验指导书 - 38 -

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

一、实验目的:

1. 掌握微程序控制器的组成及工作过程; 二、预习要求:

1.复习微程序控制器工作原理;

2.预习本电路中所用到的各种芯片的技术资料。 三、实验设备:

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

微程序控制器的原理图见图4-1(a)、4-1(b)、4-1(c)。

图4-1(a) 控制存储器电路

图4-1(b) 微地址形成电路

计算机组成原理实验指导书 - 39 -

图4-1(c) 微指令译码电路

以上电路除一片三态输出8D触发器74LS374、三片EEPROM2816和一片三态门74LS245,其余逻辑控制电路均集成于EP1K10内部。28C16、74LS374、74LS245芯片的技术资料分别见图4-2~图4-4。

图4-2(a)28C16引脚 图4-2(b) 28C16引脚说明

计算机组成原理实验指导书 - 40 -

工作方式 读

后 备 字 节 写 字节擦除 写 禁 止 写 禁 止 输出禁止

/CE /OE /WE L L H H × × L H L L 12V L × × H × L × × H ×

输入/输出 数据输出 高 阻 数据输入 高 阻 高 阻 高 阻 高 阻

图4-2(c)28C16工作方式选择

图4-3(a)74LS374引脚 图4-3(b)74LS374功能

图4-4(a)74LS245引脚 图4-4(b)74LS245功能 五、工作原理:

1、 写入微指令

在写入状态下,图4-1(a)中K2须为高电平状态,K3须接至脉冲/T1端,否则无法写入。MS1—MS24为24位写入微代码,在键盘方式时由键盘输入,在开关方式时由24位微代码开关提供。uA5—uA0为写入微地址,在键盘方式时由键盘输入,

计算机组成原理实验指导书 - 41 -

在开关方式时由微地址开关提供。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的频率为1MHz,f/2的频率为500KHz,f/4的频率为250KHz,f/8的频率为125KHz,可根据实验自行选择一种频率的方波信号。每次实验时,只需将“脉冲源输出”的四个方波信号任选一种接至“信号输入”的“fin”, 时序电路即可产生4种相同频率的等间隔的时序信号T1~T4。电路提供了四个按钮开关,以供对时序信号进行控制。工作时,如按一下“单步” 按钮,机器处于单步运行状态,即此时只发送一个CPU周期的时序信号就停机,波形见图4-8。利用单步运行方式,每次只读一条微指令,可以观察微指令的代码与当前微指令的执行结果。如按一下“启动” 按钮,机器连续运行,时序电路连续产生如图4-9的波形。此时,按一下“停止” 按钮,机器停机。

图4-8 单步运行波形图

计算机组成原理实验指导书 - 42 -

图4-9 全速运行波形图

按动“单脉冲”按钮,“ T+”和“T-”输出图4-10的波形: T+

T- 图4-10 单脉冲输出波形

各个实验电路所需的时序信号端均已分别连至“控制总线”的“T1、T2、T3、T4”,实验时只需将“脉冲源及时序电路”模块的“T1、T2、T3、T4” 端与“控制总线”的“T1、T2、T3、T4” 端相连,即可给电路提供时序信号。

对于键盘方式的实验,所需脉冲信号由系统监控产生(其波形与脉冲方式相同),并通过控制总线的F1—F4输出。实验时只需将“控制总线”的“F4F3F2F1”与“T4T3T2T1” 相连,即可给电路提供时序信号。 六、实验内容:

往EEPROM里任意写24位微代码,并读出验证其正确性。 七、实验步骤

Ⅰ、单片机键盘操作方式实验

在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。 1. 实验连线:

实验连线图如图4-11所示。

连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

微程序接口 UAJ1 C1C2C3C4C5C6 F1F2F3F4 控制总线 T1T2T3T4

计算机组成原理实验指导书 - 43 - 图4-11 实验四键盘实验接线图

2. 写微代码:

将开关K1K2K3K4拨到写状态即K1 off、K2 on、K3 off、K4 off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。

(1) 在监控指示灯滚动显示【CLASS SELECt】状态下按【实验选择】键,显示【ES--_ _ 】输入04或4,按【确认】键,显示为【ES04】,表示准备进入实验四程序,也可按【取消】键来取消上一步操作,重新输入。

(2) 再按下【确认】键,显示为【CtL1=_】,表示对微代码进行操作。输入1显示【CtL1_1】,表示写微代码,也可按【取消】键来取消上一步操作,重新输入。按【确认】。

(3) 监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,这时输入微代码【000001】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,此过程中可按【取消】键来取消上一次输入,重新输入。按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入表4-1第二条微代码地址。

(4) 按照上面的方法输入表4-1微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左)。

微地址(二进制)

000000 000001 000010 000011 000100 001000 001001 010000 010101 011000 011001

微代码(十六进制)

000001 000002 000003 015FC4 012FC8 018E09 005B50 005B55 06F3D8 FF73D9 017E00

表4-1 实验四微代码表

计算机组成原理实验指导书 - 44 -

3、读微代码:

(1) 先将开关K1K2K3K4拨到读状态即K1 off、K2 off、K3 on、K4 off,按【RESET】按钮复位,使监控指示灯滚动显示【CLASS SELECt】状态。

(2) 按【实验选择】键,显示【ES--_ _ 】输入04或4,按【确认】键,显示【ES04】。按【确认】键。

(3)监控显示【CtL1=_】时,输入2,按【确认】显示【U_Addr】,此时输入6位二进制微地址,进入读微代码状态。再按【确认】显示【PULSE】,此时按【单步】键,监控显示【U_Addr】,微地址指示灯显示输入的微地址,微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。观察黄色微地址显示灯和微代码的对应关系,对照表4-1表检查微代码是否有错误,如有错误,可按步骤2重写这

条微代码。 Ⅱ、开关控制操作方式实验

本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。 为了避免总线冲突,首先将控制开关电路的所有开关拨到输出高电平“1”状态,所有对应的指示灯亮。连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

1、按图4-12接线图接线:

图4-12 开关控制电路接线

2、实验步骤:

1) 观测时序信号:

用双踪示波器观察脉冲源及时序电路的“f/4”、“T1、T2、T3、T4”端,按动【启动】按钮,观察“f/4”、“T1、T2、T3、T4”各点的波形,比较它们的相互关系,画出其波形,并与图4-9比较。 2)写微代码 (以写表4-1的微代码为例) :

微程序控制器电路 UAJ1 控制总线 T1T2T3T4 UA5…UA0 控制开关电路 T1T2T3T4 脉冲源及时序电路 fin f/4 计算机组成原理实验指导书 - 45 -

首先将微程序控制电路上的开关K1K2K3拨到写入状态,即K1 off、K2 on、K3 off,然后将24位微代码输入及显示电路上的开关K4拨到on状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 置24位微代码开关MS24---MS1为:“00000000 00000000 00000001”,按脉冲源及时序电路的【单步】,黄色微地址灯显示“000 000”,表明已写入微代码。保持K1K2K3K4状态不变,写入表4-1的所有微代码。 3)读微代码并验证结果:

将微程序控制电路上的开关K1K2K3拨到读出状态,即K1 off、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 按脉冲源及时序电路的【单步】,黄色微地址灯显示“000 000”,24位微代码显示“00000000 00000000 00000001”,即第一条微代码。保持K1K2K3K4状态不变,改变UA5 …… UA0微地址的值,读出相应的微代码,并和表4-1的微代码比较,验证是否正确。

计算机组成原理实验指导书 - 46 -

实验五 微程序设计实验

一、实验目的:

深入掌握微程序控制器的工作原理,学会设计简单的微程序。 二、预习要求:

1.复习微程序控制器工作原理; 2.复习计算机微程序的有关知识。 三、实验设备:

EL-JY-II型计算机组成原理实验系统一台,连接线若干。 四、微程序的设计: 1.微指令格式

设计微指令编码格式的主要原则是使微指令字短、能表示可并行操作的微命令多、微程序编写方便。

微指令的最基本成份是控制场,其次是下地址场。控制场反映了可以同时执行的微操作,下地址场指明下一条要执行的微指令在控存的地址。微指令的编码格式通常指控制场的编码格式,以下几种编码格式较普遍。 1)最短编码格式

这是最简单的垂直编码格式,其特点是每条微指令只定义一个微操作命令。采用此格式的微指令字短、容易编写、规整直观,但微程序长度长,访问控存取微指令次数增多从而使指令执行速度慢。 2)全水平编码格式

这种格式又称直接编码法,其特点是控制场每一位直接表示一种微操作命令。若控制场长n位,则至多可表示n个不同的微操作命令。

采用此格式的微指令字长,但可实现多个允许的微操作并行执行,微程序长度短,指令执行速度快。

3)分段编码格式是将控制场分成几段。若某段长i位,则经译码,该段可表示2i 个互斥的即不能同时有效的微操作命令。

采用这种格式的微指令长度较短,而可表示的微操作命令较多,但需译码器。 2.微程序顺序控制方式的设计

微程序顺序控制方式指在一条指令对应的微程序执行过程中,下一条微指令地址的确定方法,又叫后继地址生成方式。下面是常见的两种。

计算机组成原理实验指导书 - 47 -

1)计数增量方式

这种方式的特点是微程序控制部件中的微地址中的微地址产生线路主要是微地址计数器MPC。MPC的初值由微程序首址形成线路根据指令操作码编码形成。在微程序执行过程中该计数器增量计数,产生下一条微指令地址。这使得微指令格式中可以不设置“下地址场”。缩短了微指令长度,也使微程序控制部件结构较简单。但微程序必须存放在控存若干连续单元中。 2)断定方式

微指令中设有“下地址场”,它指出下条微指令的地址,这使一条指令的微程序中的微指令在控存中不一定要连续存放。在微程序执行过程中,微程序控制部件中的微地址形成电路直接接受微指令下地址场信息来产生下条微指令地址,微程序的首址也由此微地址形成电路根据指令操作码产生。 3.本系统的微指令格式

微程序设计的关键技术之一是处理好每条微指令的下地址,以保证程序正确高效地进行。本系统采用分段编码的指令格式,采用断定方式确定下一条微指令的地址。 微操作控制信号

控制场 下地址场 微指令寄存器MIR 微指令

控存CM 微地址 状态条件

指令操作码

图5-2 断定方式微程序控制部件示意图

其中“微地址形成电路”对应于实验四的图4-1(b);“控存CM”对应于实验四的图4-1(a);“微指令寄存器及控制、地址场”对应于实验四的图4-1(c)。

微地址形成电路

计算机组成原理实验指导书 - 48 -

每条微指令由24位组成,其控制位顺序如下:

24 23 S3 S2

22

21

20 M

19 Cn

18 WE

17 1A

16 1B

15 14 13 F1

12 11 10 F2

9 8 7 F3

6

5

4 uA3

3 uA2

2 uA1

1 uA0

S1 S0

uA5 uA4

微指令译码电路如下:

图5—3 微指令译码电路

图中MS24—MS16对应于微指令的第24—16位,S3S2S1S0MCn为运算器的方式控制,详见实验一和实验二;WE为外部器件的读写信号,‘1’表示写,‘0’表示读;1A、1B用于选通外部器件,通常接至底板IO控制电路的1A1B端,四个输出Y0Y1Y2Y3接(注:再实验六及以后的实验中,Y3被系统占用,用于输入中断,外部器件的片选端。Y0Y1Y2仍能被用户使用)

图5—3中MS15—MS13对应于微指令中的F1,经锁存译码后产生6个输出信号:LRi、LDR1、LDR2、LDIR、LOAD、LAR。其中LDR1、LDR2为运算器的两个锁存控制(见实验一);LDIR为指令寄存器的锁存控制(见系统介绍中指令寄存器电路);LRi为寄存器堆的写控制,它与指令寄存器的第0位和第1位共同决定对哪个寄存器进行写操作(见系统介绍中寄存器堆电路和图5-4);LOAD为程序计数器的置数控制,LAR为地址寄存

计算机组成原理实验指导书 - 49 -

器的锁存控制(见系统介绍中程序计数器和地址寄存器电路)。以上6个输出信号均为‘1’有效。

图5—3中MS12—MS10对应于微指令中的F2,经锁存译码后产生6个输出信号:RAG、RBG、RCG、299-G、ALU-G、PC-G。其中RAG、RBG、RCG分别为寄存器Ax、Bx、Cx的输出控制(见系统介绍中寄存器堆电路);299-G为移位寄存器的输出控制(见实验二);ALU-G为运算器的输出控制(见实验一);PC-G为程序计数器的输出控制(见系统介绍中程序计数器和地址寄存器电路)。以上信号均为‘0’有效。

图5—3中MS9—MS9对应于微指令中的F3,经锁存译码后产生6个输出信号:P1、P2、P3、P4、AR、LPC。其中P1、P2、P3、P4位测试字,其功能是对机器指令进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支和循环运行(见实验4的图4-1(b)和图5-4);AR为运算器的进位输出控制(见实验一);LPC为程序计数器的时钟控制(见系统介绍中程序计数器电路)。以上信号均为‘1’有效

图5-4 指令译码器电路

计算机组成原理实验指导书 - 50 -

微指令中的uA5-uA0为6位的后续微地址(见实验4的微地址形成电路图4-1(b))。 F1、F2、F3三个字段的编码方案如表5-1:

F1字段

15 14 13

0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

选择 LDRi LOAD LDR2 自定义 LDR1 LAR LDIR 无操作

F2字段

12 11 10 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

选择 RAG ALU-G RCG 自定义 RBG PC-G 299-G 无操作

F3字段

9 8 7 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

选择 P1 AR P3 自定义 P2 LPC P 4 无操作

表5-1

五、实验内容:

编写几条可以连续运行的微代码,熟悉本实验系统的微代码设计方式。表5-2为几条简单的可以连续运行的二进制微代码表:

注意UA5-------UA0的编码规律,观察后续地址。 微地址(二进制) S3 S2 S1 S0 M CN WE 1A 1B F1 F2

000000 0 0 0 0 0 0 0 0 0 000 000 000001 0 0 0 0 0 0 0 0 0 000 000 000010 0 0 0 0 0 0 0 0 0 000 000 000011 0 0 0 0 0 0 0 1 0 101 111 000100 0 0 0 0 0 0 0 1 0 010 111 001000 0 0 0 0 0 0 0 0 0 000 111 001001 0 0 0 0 0 0 0 1 1 101 101 010000 0 0 0 0 0 0 0 1 1 101 101 010101 0 0 0 0 0 1 1 0 1 111 001 011000 1 1 1 1 1 1 1 1 0 111 001 011001 0 0 0 0 0 0 0 1 0 111 111

表5-2 实验五微代码表 以下举例说明微代码的含义:

1、 微地址“000011”:读Y1设备上的数据,并将该数据打入地址寄存器。然后跳转

至微地址“000100”。

2、 微地址“000100”:读Y1设备上的数据,并将该数据打入运算暂存器2,然后跳转

至微地址“001000”。

3、 微地址“011000”:运算暂存器1数据输出至数据总线,将该数据写入Y1设备,

然后跳转至微地址“011001”。

F3 UA5...UA0

000 000001 000 000010 000 000011 111 000100 111 001000 000 001001 101 010000 101 010101 111 011000 111 011001 000 000000

计算机组成原理实验指导书 - 51 -

4、 微地址“011001”:读Y1设备上的数据,然后进行P1测试。由于未对指令寄存器

操作,I7—I0均为0,强制置位无效,仍跳转至后续微地址“000000”。 六、实验步骤:

Ⅰ、单片机键盘操作方式实验

在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。 1.实验连线:

实验连线图如图5-5所示。

连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

图5—5 实验五键盘实验连线图

2.写微代码:

(1) 将开关K1K2K3K4拨到写状态即K1 off、K2 on、K3 off、K4 off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。在监控指示灯滚动显示【CLASS SELECt】状态下按【实验选择】键,显示【ES--_ _ 】输入05或5,按【确认】键,显示为【ES05】,再按下【确认】键。

(2) 监控显示为【CtL1=_】,表示对微代码进行操作。输入1显示【CtL1_1】,表示写微代码,按【确认】。

(3) 监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,这时输入微代码【000001】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,此过程中可按【取消】键来取消上一次输入,重新输入。按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入表5-3第二条微代码地址。

(4) 按照上面的方法输入表5-3微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左)。

计算机组成原理实验指导书 - 52 -

微地址(二进制) 微代码(十六进制)

000000 000001 000010 000011 000100 001000 001001 010000 010101 011000 011001

000001 000002 000003 015FC4 012FC8 018E09 005B50 005B55 06F3D8 FF73D9 017E00

表5-3 实验五微代码表

3.读微代码:

(1) 先将开关K1K2K3K4拨到读状态即K1 off、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。

(2) 按【实验选择】键,显示【ES--_ _ 】输入05或5,按【确认】键,显示【ES05】。按【确认】键。

(3) 监控显示【CtL1=_】时,输入2,按【确认】显示【U_Addr】 ,此时输入6位二进制微地址,进入读微代码状态。再按【确认】显示【PULSE】,此时按【单步】键,监控显示【U_Addr】,微地址指示灯显示输入的微地址,微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。对照表5-3表检查微代码是否有错误,如有错误,可按步骤2写微代码重新输入这条微代码。 4.微代码的运行:

(1) 先将开关K1K2K3K4拨到运行状态即K1 on、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。

(2) 按【实验选择】键,显示【ES--_ _ 】输入05或5,按【确认】键,显示【ES05】。按【确认】键。

(3) 监控指示灯显示【CtL1=_】,输入3,显示【CtL1_3】,表示进入运行微代码状态,拨动CLR清零开关(在控制开关电路上,注意对应的JUI应短接)对程序计数器清零,清零结果是地址指示灯(A7—A0)和微地址显示灯(uA5—uA0)全灭,清零步骤是使其电平高-低-高即CLR指示灯状态为亮-灭-亮,使程序入口地址为000000。

计算机组成原理实验指导书 - 53 -

1)、单步运行

在监控指示灯显示【CtL1_3】状态下,确认清零后,按【确认】键,监控指示灯滚动显示【Run CodE】,此时可按【单步】键单步运行微代码,观察微地址显示灯,显示 “000001”,再按【单步】,显示为“000010”,连续按【单步】,则可单步运行微代码,注意观察微地址显示灯和微代码的对应关系。 2)、全速运行

在控指示灯滚动显示【Run CodE】状态下,按【全速】键,开始自动运行微代码,微地址显示灯显示从“000000”开始,到“000001”、“000010”、“000011”、“000100”、“001000”、“001001”、“010000”、“010101”、“011000”、“011001”再到“000000”,循环显示。

Ⅱ、开关控制操作方式实验

本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。 为了避免总线冲突,首先将控制开关电路的所有开关拨到输出高电平“1”状态,所有对应的指示灯亮。连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

1. 按图5-6接线图接线:

2.实验步骤:

1) 写微代码 (以写表5-3的微代码为例) :

首先将微程序控制电路上的开关K1K2K3拨到写入状态,即K1 off、K2 on、K3 off,然后将24位微代码输入及显示电路上的开关K4拨到on状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 置24位微代码开关MS24---MS1为:“00000000 00000000 00000001”,输入24位二进制微代码,按【单步】,红色微地址灯显示“000 000”,写入微代码。保持K1K2K3K4状态不

计算机组成原理实验指导书 - 54 -

变,写入表4-1的所有微代码。

2) 读微代码并验证结果:

将微程序控制电路上的开关K1K2K3拨到读出状态,即K1 off、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 按【单步】,黄色微地址灯显示“000 000”,24位微代码显示“00000000 00000000 00000001”,即第一条微代码。保持K1K2K3K4状态不变,改变UA5 …… UA0微地址的值,读出相应的微代码,并和表5-3的微代码比较,验证是否正确。如发现有误,则需重新输入微代码。 3) 运行微代码:

将微程序控制电路上的开关K1K2K3拨到运行状态,即K1 on、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。拨动控制开关电路上的清零开关CLR,使微地址和地址指示灯全灭。置控制开关“UA5------UA0=“000 000”,程序运行入口地址为000000,按【单步】,运行微代码,观察黄色微地址显示灯,显示 “000001”,再按【单步】,显示为“000010”,连续按【单步】,则可单步运行微代码,注意观察微地址显示灯和微代码的对应关系,微地址显示灯显示从“000000”开始,到“000001”、“000010”、“000011”、“000100”、“001000”、“001001”、“010000”、“010101”、“011000”、“011001”再到“000000”,循环显示。

计算机组成原理实验指导书 - 55-

实验六、简单模型机组成原理实验

一、实验目的:

1. 在掌握各部件功能的基础上,组成一个简单的计算机整机系统—模型机; 2. 了解微程序控制器是如何控制模型机运行的,掌握整机动态工作过程; 3. 定义五条机器指令,编写相应微程序并具体上机调试。 二、预习要求:

1. 复习计算机组成的基本原理; 2. 预习本实验的相关知识和内容 三、实验设备:

EL-JY-II型计算机组成原理实验系统一套,排线若干。 四、模型机结构:

模型机结构框图见图6-1。

图中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。微控器部分控存由U13—U15三片2816构成。除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。

存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。

输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。

注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低8位有效。 五 、工作原理:

在实验5中,我们学习了如何设计微程序来产生各部分的控制信号。在本实验中我们将学习读、写机器指令和运行机器指令的完整过程。在机器指令的执行过程中,从CPU从内存取出一条机器指令到执行结束为一个指令周期,指令由微指令组成的序列来完成,一条机器指令对应一段微程序。另外,读、写机器指令也分别由相应的微程序段来完成。

为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,必须设计

计算机组成原理实验指导书 - 56-

三个控制操作微程序。

存储器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。

存储器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。

启动程序(RUN):拨动开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,启动程序运行。

注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式时由监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关来控制。

图6-1 模型机结构框图

计算机组成原理实验指导书 - 57-

与实验五一样,本系统设计的微指令字长24位,其控制位顺序如下:

24 23 S3 S2 22

21

20 M

19 Cn

18 WE

17 1A

16 1B

15 14 13 F1

12 11 10 F2

9 8 7 F3

6

5

4 uA3

3 uA2

2 uA1

1 uA0

S1 S0 uA5 uA4

F1、F2、F3三个字段的编码方案如表6-1,其余控制位的含义见实验五。

F1字段

15 14 13 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

选择 LDRi LOAD LDR2 自定义 LDR1 LAR LDIR 无操作

F2字段

12 11 10 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

选择 RAG ALU-G RCG 自定义 RBG PC-G 299-G 无操作

F3字段

9 8 7 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

选择 P1 AR P3 自定义 P2 LPC P 4 无操作

表6-1

系统涉及到的微程序流程见图6-2(图中各方框内为微指令所执行的操作,方框外的标号为该条微指令所处的八进制微地址)。控制操作为P4测试,它以CA1、CA2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。

机器指令的执行过程如下:首先将指令在外存储器的地址送上地址总线,然后将该地址上的指令传送至指令寄存器,这就是“取指”过程。之后必须对操作码进行P1测试,根据指令的译码将后续微地址中的某几位强制置位,使下一条微指令指向相应的微程序首地址,这就是“译码”过程(其原理见图5-4)。然后才顺序执行该段微程序,这是真正的指令执行过程。

在所有机器指令的执行过程中,“取指”和“译码”是必不可少的,而且微指令执行的操作也是相同的,这些微指令称为公用微指令,对应于图6-2中01、02、31地址的微指令。31地址为“译码”微指令,该微指令的操作为P(1)测试,测试结果出现多路分支。本实验用指令寄存器的前4位(I7-I4)作为测试条件,出现5路分支,占用5个固定微地址单元。

当全部微程序流程图设计完毕后,应将每条微指令代码化,表6-2即为将图6-2的微程序流程按微指令格式转化而成的“二进制微代码表”。

计算机组成原理实验指导书 - 58-

开始 01 PC AR, PC+1 02 RAM D_BUS IR 31 P(1)测试 IN ADD MOV OUT JMP 10 11 12 13 14

D_INPUT Ax Ax D_BUS LT1 PC AR,PC+1 Ax LED PC AR,PC+1 01 03 07 15 Bx D_BUS LT2 RAM D_BUS Bx 01 RAM D_BUS PC

06 LT1+LT2 Ax 01 01 01 控制开关

00 P(4)测试 MWE(10) MRD(00) RUN(11) PC AR,PC+1 21 PC AR,PC+1 20 23

(D_INPUT) D_BUS LT1 24 RAM D_BUS LT1 22 01 LT1 RAM 30 LT1 LED 27 图6-2 微程序流程图

六、实验内容及参考代码

本实验采用五条机器指令,根据上面所说的工作原理,设计参考实验程序如下:

地址(二进制) 机器指令(二进制) 助记符 说 明

计算机组成原理实验指导书 - 59-

0000 0000 0000 0000 IN AX, KIN 数据输入电路 AX 0000 0001 0010 0001 MOV Bx, 01H 0001H Bx 0000 0010 0000 0001

0000 0011 0001 0000 ADD Ax, Bx Ax+Bx Ax 0000 0100 0011 0000 OUT DISP, Ax Ax 输出显示电路 0000 0101 0100 0000 JMP 00H 00H PC 0000 0110 0000 0000

,其余为单字长指令。对于双字长指令, 注:其中MOV、JMP为双字长(32位)

第一字为操作码,第二字为操作数;对于单字长指令只有操作码,没有操作数。上述所有指令的操作码均为低8位有效,高八位默认为0。而操作数8位和16位均可。KIN和DISP分别为本系统专用输入、输出设备。

表6-2为根据本实验程序流程图设计的二进制微代码表: 微地址(二进制)

000000 000001 000010 000011 000110 000111 001000 001001 001010 001011 001100 001101 010000 010001 010010 010011 010100 010111 011000 011001

S3 S2 S1 S0 M CN WE 1A 1B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0

表6-2

七、实验步骤:

Ⅰ、单片机键盘操作方式实验

F1 111 101 110 010 000 000 000 100 101 111 101 001 101 101 100 111 100 111 111 110 F2 111 101 111 100 001 111 111 000 101 000 101 111 101 101 111 111 111 001 001 111 F3 UA5...UA0 110 010000 101 000010 111 011001 111 000110 111 000001 111 000001 000 000001 111 000011 101 000111 111 000001 101 001101 101 000001 101 010010 101 010100 111 010111 111 000001 111 011000 111 010000 111 010001 000 001000

计算机组成原理实验指导书 - 60-

在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。 1、实验连线:

实验连线图如图6-3所示。

连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。 2、写微代码:

(1) 将开关K1K2K3K4拨到写状态即K1 off、K2 on、K3 off、K4 off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。在监控指示灯滚动显示【CLASS SELECt】状态下按【实验选择】键,显示【ES--_ _ 】输入06或6,按【确认】键,显示为【ES06】,再按下【确认】键。

(2) 监控显示为【CtL1=_】,输入1显示【CtL1_1】,按【确认】。

(3) 监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,显示这时输入微代码【007F90】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入第二条微代码地址。

(4) 按照上面的方法输入表6-3微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左)。

微地址(八进制) 微地址(二进制)

00 000000 01 000001 02 000010 03 000011 06 000110 07 000111 10 001000 11 001001 12 001010 13 001011 14 001100 15 001101 20 010000 21 010001 22 010010 23 010011

微代码(十六进制)

007F90 005B42 016FD9 0029C6 9403C1 010FC1 018E01 0041C3 005B47 02F1C1 005B4D 011F41 005B52 005B 014FD7 007FC1

24 25 26 27 30 31

计算机组成原理实验指导书 - 61- 010100 01CFD8 010101 06F3C1 010110 011F41 010111 06F3D0 011000 FF73D1 011001 016E08

表6-3

3.读微代码及校验微代码:

(1) 先将开关K1K2K3K4拨到读状态即K1 off、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。

(2) 按【实验选择】键,显示【ES--_ _ 】输入06或6,按【确认】键,显示【ES06】。按【确认】键。

(3) 监控显示【CtL1=_】时,输入2,按【确认】显示【U_Addr】 ,此时输入6位二进制微地址,进入读代码状态。再按【确认】显示【PULSE】,此时按【单步】键,微地址指示灯显示输入的微地址,同时微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。

(4) 此时监控显示【U_Addr】,按上述步骤对照表6-3表检查微代码是否有错误,如有错误,可按步骤2重新输入微代码。 4.写机器指令

(1) 先将K1K2K3K4拨到运行状态即K1 on、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。

(2) 按【实验选择】键,显示【ES--_ _ 】输入06或6,按【确认】键,显示【ES06】,再按【确认】。

(3) 监控显示【CtL1=_】,按【取消】键,监控指示灯显示【CtL2=_】,输入1显示【CtL2_1】表示进入对机器指令操作状态,此时拨动CLR清零开关(在控制开关电路上,注意对应的JUI应短接)对地址寄存器、指令寄存器清零,清零结果是微地址指示灯(uA5—uA0)和地址指示灯(A7—A0)全灭,清零步骤是使其电平高-低-高即CLR指示灯!!确定清零后,按【确认】。 状态为亮-灭-亮。如不清零则会影响机器指令的输入!

(4) 监控显示闪烁的【PULSE】,连续按【单步】键,当微地址显示灯显示“010100”,时按【确认】键,监控指示灯显示【data】,提示输入机器指令“00”或“0000”(两位或四位十六进制数),输入后按【确认】,显示【PULSE】,再按【单步】,微地址显示灯显示“011000”,数据总线显示灯显示“0000000000000000”,即输入的机器指令。 (5) 再连续按【单步】,当微地址显示灯再次显示“010100”时,按【确认】输入第二

计算机组成原理实验指导书 - 62-

条机器指令。依此规律逐条输入表6-4的机器指令,输完后,可连续按【取消】或【RESET】退出写机器指令状态。注意,每当微地址显示灯显示“010100”时,地址指示灯自动加1显示。如输入指令为8位,则高8位自动变为0。

地址(十六进制)

00 01 02 03 04 05 06

表6-4 机器指令表

5.读机器指令:

在监控指示灯显示【CtL2=_】状态下,输入2,显示【CtL2_2】,表示进入读机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【PULSE】,连续按【单步】键,微地址显示灯从“000000”开始,然后按“010000”、 “010010” 、“010111”方式循环显示。当微地址灯再次显示为“010000”时,输出显示数码管上显示写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。如果发现机器指令有误,则需重新输入机器指令。

注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。 6.运行程序

在监控指示灯显示【CtL2=_】状态下,输入3,显示【CtL2_3】,表示进入运行机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,使程序入口地址为00H,可以【单步】运行程序也可以【全速】运行,运行过程中提示输入相应的量,运行结束后从输出显示电路上观察结果。 6.实验结果说明 1).单步运行结果

在监控指示灯显示【run CodE】状态下,连续按【单步】键,可以单步运行程序。当微地址显示灯显示“001000”时,监控显示【dAtA】,提示输入数据,即被加数,输入1234,按【确认】,再连续按【单步】,在微地址灯显示“010101”时,按【单步】,此时可由输出显示电路的数码管观察结果为1235,即1234+0001=1235,同时数据显

机器指令(十六进制)

0000 0021 0001 0010 0030 0040 0000

计算机组成原理实验指导书 - 63-

示灯显示“0001001000110101”。表示结果正确。 2).全速运行结果

在监控指示灯显示【run CodE】状态下,按【全速】键,则开始自动运行程序,在监控指示灯显示【dAtA】时输入数据,按【确定】键,程序继续运行,此时可由输出显示电路的数码管显示加1运算结果。 Ⅱ、采用控制操作方式实验

本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。 连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。 1. 在图6-3接线图上更改如下接线:

断开控制总线C1——C6和F4——F1上的接线

数据输入电路DIJ1 接 数据总线BD7-----BD0 数据输入电路DIJ2 接 数据总线BD15-----BD8 数据输入电路DIJ-G 接 I/O控制电路Y3 微控器接口UAJ1 接 控制开关电路UA5---UA0 脉冲源及时序电路fin 接 脉冲源及时序电路f/8 脉冲源及时序电路T4—T1 接 控制总线T4---T1 控制开关电路CA1 接 控制总线E4 控制开关电路CA2 接 控制总线E5 2.实验步骤:

1)写微代码 (以写表6-2的微代码为例) :

首先将微程序控制电路上的开关K1K2K3拨到写入状态,即K1 off、K2 on、K3 off,然后将24位微代码输入及显示电路上的开关K4拨到on状态。置控制开关UA5 ……

置24位微代码开关MS24---MS1为:“00000000 UA0=“000000”,输入微地址“000000”,

01111111 10010000”,输入24位二进制微代码,按【单步】,微地址灯显示“000 000”,写入微代码。保持K1K2K3K4状态不变,写入表6-2的所有微代码。 2) 读微代码并验证结果:

将微程序控制电路上的开关K1K2K3拨到读出状态,即K1 off、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 按【单步】,微地址灯显示“000 000”,24位微代码显示“00000000 01111111 10010000”,即第一条微代码。保持K1K2K3K4状态不变,

计算机组成原理实验指导书 - -

改变UA5 …… UA0微地址的值,读出相应的微代码,并和表6-2的微代码比较,验证是否正确。如发现有误,则需重新输入该微地址相应的微代码。 3)写机器指令

(1) 将微程序控制电路上的开关K1K2K3拨到运行状态,即K1 on、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零。

(2) 确定清零后,把控制开关CA1、CA2置为“10”,按动一次【单步】按钮,微地址显示灯显示“010001”,再按动一次【单步】,微地址灯显示 “010100”,此时通过数据输入电路的开关输入要写入的机器指令,置D15----D0=“0000000000000000”,按【单步】,微地址显示灯显示“011000”,数据总线显示灯显示“0000000000000000”,即输入的机器指令。这样就完成本实验的第一条机器。 (3) 再连续按【单步】,微地址显示灯再次显示“010100”时,按上面的方法通过数据输入电路的开关输入第二条机器指令指令“0000000000010000”,直至写完表6-4的所有二进制机器指令。注意,每当微地址显示灯显示“010100”时,地址指示灯自动加1显示。

4)读机器指令及校验机器指令:

拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零,清零结果是微地址指示灯和地址指示灯全灭,置CA1、CA2开关置为“00”, 连续按【单步】键,微地址显示灯显示从“000000”开始,然后按“010000”、 “010010” 、“010111”方式循环显示。当微地址灯再次显示为“010000”时,输出显示数码管上显示写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。如果发现机器指令有误,则需重新输入机器指令。

注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。 5)运行程序

将微程序控制电路上的开关K1K2K3拨到运行状态,即K1 on、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零,清零结果是微地址指示灯(和地址指示灯全灭,使程序的入口地址位00H。置CA1CA2=“11”,连续按【单步】,当微地址显示灯显示“001 000”时,通过数据输入电路输入二进制数据“0001001000110101”, 再连续按【单步】,在微地址灯显示“010101”时,按【单步】,此时可由输出显示电路的数码管观察结果为1235H,同时数据显示灯显示“0001001000110101”,表示结果正确。

计算机组成原理实验指导书 - 65-

计算机组成原理实验指导书 - 66 -

实验七、带移位运算的模型机组成原理实验 一、实验目的:

在实验六的基础上进一步构造一台带移位功能的简单模型机。 二、预习要求:

1 认真预习本实验的相关知识和内容。 三、实验设备:

EL-JY-II型计算机组成原理实验系统一套,排线若干。 四、模型机结构:

图7-1 模型机结构框图

图中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273

计算机组成原理实验指导书 - 67 -

构成,暂存器2由U5、U6两片74LS273构成。微控器部分控存由U13—U15三片2816构成。除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。

存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。

输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。

注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低8位有效。 五、工作原理:

设计三个控制操作微程序:

存储器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。

存储器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。

启动程序(RUN):拨动开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,启动程序运行。

注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式时由监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关来控制。

本系统设计的微指令字长共24位,其控制位顺序如下:

24 S3

23 S2

22 S1

21 S0

20 M

19 Cn

18

17

16

15 14 13 12 11 10 9 8 7 F1

F2

F3

6 uA5

5 uA4

4 uA3

3 uA2

2 uA1

1 uA0

WE 1A 1B

F1、F2、F3三个字段的编码方案如表7-1:

F1字段

15 14 13

0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

选择 LDRi LOAD LDR2 自定义 LDR1 LAR LDIR 无操作

F2字段

12 11 10 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

选择 RAG ALU-G RCG 自定义 RBG PC-G 299-G 无操作

F3字段

9 8 7 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

选择 P1 AR P3 自定义 P2 LPC P 4 无操作

计算机组成原理实验指导书 - 68 -

表7-1

系统涉及到的微程序流程见图7-2(图中各方框内为微指令所执行的操作,方框外的标号为该条微指令所处的八进制微地址)。控制操作为P4测试,它以CA1、CA2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。

机器指令的执行过程如下:首先将指令在外存储器的地址送上地址总线,然后将该地址上的指令传送至指令寄存器,这就是“取指”过程。之后必须对操作码进行P1测试,根据指令的译码将后续微地址中的某几位强制置位,使下一条微指令指向相应的微程序首地址,这就是“译码”过程(其原理见图5-4)。然后才顺序执行该段微程序,这是真正的指令执行过程。

在所有机器指令的执行过程中,“取指”和“译码”是必不可少的,而且微指令执行的操作也是相同的,这些微指令称为公用微指令,对应于图7-2中01、02、31地址的微指令。31地址为“译码”微指令,该微指令的操作为P(1)测试,测试结果出现多路分支。本实验用指令寄存器的前4位(I7-I4)作为测试条件,出现7路分支,占用7个固定微地址单元。

当全部微程序流程图设计完毕后,应将每条微指令代码化,表7-2即为将图7-2的微程序流程按微指令格式转化而成的“二进制微代码表”。 六、实验参考代码:

本实验采用条机器指令,根据上面所说的工作原理,设计参考实验程序如下: 地址(二进制) 机器指令码 助记符 说 明 0000 0000 0000 0000 IN AX, KIN 数据输入电路 AX 0000 0001 0010 0001 MOV Bx, 01H 0001H Bx 0000 0010 0000 0001

0000 0011 0101 0000 ROL Ax Ax循环左移一位 0000 0100 0001 0000 ADD Ax, Bx Ax+Bx Ax 0000 0101 0110 0000 ROR Ax Ax循环右移一位 0000 0110 0011 0000 OUT DISP, Ax Ax 输出显示电路 0000 0111 0100 0000 JMP 00H 00H PC 0000 0110 0000 0000

注:其中MOV、JMP为双字长(32位),其余为单字长指令。对于双字长指令,第

计算机组成原理实验指导书 - 69 -

一字为操作码,第二字为操作数;对于单字长指令只有操作码,没有操作数。上述所有指令的操作码均为低8位有效,高八位默认为0。而操作数8位和16位均可。KIN和DISP分别为本系统专用输入、输出设备。

图7-2(a) sreg表示移位寄存器

控制开关 00 P(4)测试 MWE(10) MRD(00) RUN(11) PC AR,PC+1 21 PC AR,PC+1 20 23 (D_INPUT) D_BUS LT1 24 RAM D_BUS LT1 22 01 LT1 RAM 30 LT1 LED 27 图7-2(b)

计算机组成原理实验指导书 - 70 -

表7-2为根据本实验程序流程图设计的二进制微代码表: 微地址 S3 S2 S1 S0 M CN WE 1A 1B F1 000000 0 0 0 0 0 0 0 0 0 111 000001 0 0 0 0 0 0 0 0 0 101 000010 0 0 0 0 0 0 0 1 0 110 000011 0 0 0 0 0 0 0 0 0 010 000110 1 0 0 1 0 1 0 0 0 000 000111 0 0 0 0 0 0 0 1 0 000 001000 0 0 0 0 0 0 0 1 1 000 001001 0 0 0 0 0 0 0 0 0 100 001010 0 0 0 0 0 0 0 0 0 101 001011 0 0 0 0 0 0 1 0 1 111 001100 0 0 0 0 0 0 0 0 0 101 001101 0 0 1 1 0 0 0 0 0 000 001110 0 0 1 1 0 0 0 0 0 000 010000 0 0 0 0 0 0 0 0 0 101 010001 0 0 0 0 0 0 0 0 0 101 010010 0 0 0 0 0 0 0 1 0 100 010011 0 0 0 0 0 0 0 0 0 111 010100 0 0 0 0 0 0 0 1 1 100 010111 0 0 0 0 0 1 1 0 1 111 011000 1 1 1 1 1 1 1 1 0 111 011001 0 0 0 0 0 0 0 1 0 110 011010 0 0 0 0 0 0 0 1 0 001 011011 0 0 0 1 0 0 0 0 0 111 011100 0 0 0 0 0 0 0 0 0 000 011101 0 0 1 0 0 0 0 0 0 111 011110 0 0 0 0 0 0 0 0 0 000

表7-2 实验七的二进制微代码表

七、实验步骤:

Ⅰ、单片机键盘操作方式实验

F2

111 101 111 100 001 111 111 000 101 000 101 000 000 101 101 111 111 111 001 001 111 111 110 110 110 110

F3 UA5…UA0 110 010000 101 000010 111 011001 111 000110 111 000001 111 000001 000 000001 111 000011 101 000111 111 000001 101 011010 111 011011 111 011101 101 010010 101 010100 111 010111 111 000001 111 011000 111 010000 111 010001 000 001000 101 000001 111 011100 111 000001 111 011110 111 000001

在进行单片机键盘操作实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。 1. 实验连线:

实验连线图如图7-3所示。

连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。 2. 写微代码:

(1) 将开关K1K2K3K4拨到写状态即K1 off、K2 on、K3 off、K4 off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。在监控指示灯滚动显示【CLASS SELECt】状态下按【实验选择】键,显示【ES--_ _ 】输入07或7,按【确认】

计算机组成原理实验指导书 - 71 -

键,显示为【ES07】,再按下【确认】键。

(2) 监控显示为【CtL1=_】,表示对微代码进行操作。输入1显示【CtL1_1】,表示写微代码,按【确认】。

(3) 监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,此时输入微代码【007F90】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入表7-3第二条微代码地址。

(4) 按照上面的方法输入表7-3微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左)。 微地址(八进制)

00 01 02 03 06 07 10 11 12 13 14 15 16 20 21 22 23 24 25 26 27 30 31 32 33 34

微地址(二进制) 000000 000001 000010 000011 000110 000111 001000 001001 001010 001011 001100 001101 001110 010000 010001 010010 010011 010100 010101 010110 010111 011000 011001 011010 011011 011100

微代码(十六进制)

007F90 005B42 016FD9 0029C6 9403C1 010FC1 018E01 0041C3 005B47 02F1C1 005B5A

3001DB 3001DD 005B52 005B 014FD7 007FC1 01CFD8 06F3C1 011F41 06F3D0 FF73D1 016E08 011F41 107DDC 000DC1

35 36

计算机组成原理实验指导书 - 72 -

207DDE 011101

000DC1 011110 表7-3 实验七微代码表

3. 读微代码及校验微代码:

(1) 先将开关K1K2K3K4拨到读状态即K1 off、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。

(2) 按【实验选择】键,显示【ES--_ _ 】输入07或7,按【确认】键,显示【ES07】。按【确认】键,显示【CtL1=_】时,输入2,按【确认】进入读代码状态。

(3) 监控显示【U_Addr】,此时输入6位二进制微地址,再按【确认】显示【PULSE】,此时按【单步】键,微地址指示灯显示输入的微地址,微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。

(4) 此时监控显示【U_Addr】,按照上述步骤继续输入微地址,对照表7-2表检查微代码是否有错误,如有错误,可按步骤2重新输入微代码。 4. 写机器指令

(1) 先将K1K2K3K4拨到运行状态即K1 on、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。

(2) 按【实验选择】键,显示【ES--_ _ 】输入07或7,按【确认】键,显示【ES07】,再按【确认】。

(3) 监控显示【CtL1=_】,按【取消】键,监控指示灯显示【CtL2=_】,输入1显示【CtL2_1】表示进入对机器指令写操作状态,此时拨动CLR清零开关对地址寄存器、指令寄存器清零。

(4) 确定清零后,按【确认】显示闪烁的【PULSE】,连续按【单步】键,当微地址显示灯显示“010100”时,按【确认】键,监控指示灯显示【data】,提示输入机器指令“00”或“0000”(两位或四位十六进制数),输入后按【确认】,显示【PULSE】,再按【单步】,微地址显示灯显示“011000”,数据总线显示灯显示“0000000000000000”,即输入的机器指令。此时第一条机器指令完成。

(5) 连续按【单步】,当微地址显示灯再次显示“010100”时,按【确认】输入第二条机器指令。依此规律逐条输入表7-4的机器指令,输完后,可连续按【取消】或【RESET】退出写机器指令状态。注意,每当微地址显示灯显示“010100”时,地址指示灯自动加1显示。如输入指令为8位,则高8位自动变为0。

计算机组成原理实验指导书 - 73 -

地址(十六进制)

00 01 02 03 04 05 06 07 08

机器指令(十六进制)

0000 0021 0001 0050 0010 0060 0030 0040 0000

表7-4 实验七机器指令表

5. 读机器指令及校验机器指令:

在监控指示灯显示【CtL2=_】状态下,输入2,显示【CtL2_2】,表示进入读机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【PULSE】,连续按【单步】键,微地址显示灯显示从“000000”开始,然后按“010000”、 “010010” 、“010111”方式循环显示。当微地址灯再次显示为“010000”时,输出显示数码管上显示写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。如果发现机器指令有误,则需重新输入机器指令。

注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。 6. 运行程序

在监控指示灯显示【CtL2=_】状态下,输入3,显示【CtL2_3】,表示进入运行机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,使程序入口地址为00H,可以【单步】运行程序也可以【全速】运行,运行过程中提示输入相应的量,运行结束后从输出显示电路上观察结果。 7. 实验结果说明

,灭表示为“0”。 注意,进位指示灯Z在运算器电路上,亮表示为“1”

本实验结果为:输入一数据,循环左移一位,然后执行加“1”运算,接着对结果循环右移一位,可从数据总线观察结果,也可从输出显示电路数码管观察执行结果。 1) 单步运行结果

在监控指示灯显示【run CodE】状态下,连续按【单步】键,可以单步运行程序。当微地址显示灯显示“001 000”时,按【单步】,监控显示灯显示【dAtA】,提示输入数据,输入8000,按【确认】。再连续按【单步】,在微地址灯显示“000 111”时,按【单

计算机组成原理实验指导书 - 74 -

步】,数据总线显示灯显示“0000000000000001”,即立即数0001H;再连续按【单步】,在微地址灯显示“011 100”时,按【单步】,数据总线显示灯显示“0000000000000001”,即8000H循环左移一位;再连续按【单步】,在微地址灯显示“000 110”时,按【单步】,数据总线显示灯显示“0000000000000010”,即8000H循环左移后加1;再连续按【单步】,在微地址灯显示“011 110”时,按【单步】,数据总线显示灯显示“0000000000000001”,即循环右移后的最终结果。 2) 全速运行结果

在监控指示灯显示【run CodE】状态下,按【全速】键,则开始自动运行程序,在监控指示灯显示【dAtA】时输入数据“8000”,按【确定】键,程序继续运行,此时可由输出显示电路的数码管显示最终运算结果“0001”。 Ⅱ、开关控制操作方式实验

本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。 连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。 1.在图7-3接线图上更改如下接线:

断开控制总线C1——C6和F4——F1上的接线

数据输入电路DIJ1 接 数据总线BD7-----BD0 数据输入电路DIJ2 接 数据总线BD15-----BD8 数据输入电路DIJ-G 接 I/O控制电路Y3 微控器接口UAJ1 接 控制开关电路UA5---UA0 脉冲源及时序电路fin 接 脉冲源及时序电路f/8 脉冲源及时序电路T4—T1 接 控制总线T4---T1 控制开关电路CA1 接 控制总线E4 控制开关电路CA2 接 控制总线E5

2.实验步骤:

1)写微代码 (以写表7-3的微代码为例) :

首先将微程序控制电路上的开关K1K2K3拨到写入状态,即K1 off、K2 on、K3 off,然后将24位微代码输入及显示电路上的开关K4拨到on状态。置控制开关UA5 ……

置24位微代码开关MS24---MS1为:“00000000 UA0=“000000”,输入微地址“000000”,

01111111 10010000”,输入24位二进制微代码,即“007F90”,按【单步】,微地址灯显示“000 000”,写入微代码。保持K1K2K3K4状态不变,写入表7-3的所有微代码。

计算机组成原理实验指导书 - 75 -

2)读微代码并验证结果:

将微程序控制电路上的开关K1K2K3拨到读出状态,即K1 off、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。置控制开关UA5 …… UA0=“000000”,输入微地址“000000”, 按【单步】,微地址灯显示“000 000”,24位微代码显示“00000000 01111111 10010000”,即第一条微代码。保持K1K2K3K4状态不变,改变UA5 …… UA0微地址的值,读出相应的微代码,并和表7-3的微代码比较,验证是否正确。如发现有误,则需重新输入该微地址相应的微代码。 3)写机器指令

将微程序控制电路上的开关K1K2K3拨到运行状态,即K1 on、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零,把控制开关CA1、CA2置为“10”,连续按【单步】按钮,当微地址灯显示 “010100”时,通过数据输入电路的开关输入要写入的机器指令,置D15----D0=“000000000000 0000”,按【单步】,即完成本实验的第一条机器,再连续按【单步】,当微地址显示灯再显示“010000”时,按上面的方法通过数据输入电路的开关输入第二条机器指令指令“0000000000100001”,直至写完表7-4的所有二进制机器指令。注意,每当微地址显示灯显示“010100”时,地址指示灯自动加1显示。

4)读机器指令及校验机器指令:

拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零,将CA1、CA2开关置为“00”, 连续按【单步】键,微地址显示灯显示从“000000”开始,然后按“010000”、 “010010” 、“010111”方式循环显示。当微地址灯再次显示为“010000”时,输出显示数码管上显示写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。如果发现机器指令有误,则需重新输入机器指令。

注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。 5)运行程序

将微程序控制电路上的开关K1K2K3拨到运行状态,即K1 on、K2 off、K3 on,然后将24位微代码输入及显示电路上的开关K4拨到off状态。拨动控制开关电路上的清零开关CLR,对地址寄存器、指令寄存器清零。将CA1、CA2开关置为“11”,连续按【单步】,当微地址显示灯显示“001000”时,通过数据输入电路输入二进制数据“100000000000 0000”, 再连续按【单步】。参考键盘控制操作方式实验的结果说明来观察结果是否正确。

计算机组成原理实验指导书 - 76 -

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务