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

上传人:b****9 文档编号:25332995 上传时间:2023-06-07 格式:DOCX 页数:16 大小:449.37KB
下载 相关 举报
实验四常规型微程序控制器组成实验.docx_第1页
第1页 / 共16页
实验四常规型微程序控制器组成实验.docx_第2页
第2页 / 共16页
实验四常规型微程序控制器组成实验.docx_第3页
第3页 / 共16页
实验四常规型微程序控制器组成实验.docx_第4页
第4页 / 共16页
实验四常规型微程序控制器组成实验.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

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

《实验四常规型微程序控制器组成实验.docx》由会员分享,可在线阅读,更多相关《实验四常规型微程序控制器组成实验.docx(16页珍藏版)》请在冰豆网上搜索。

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

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

--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--

 

实验四常规型微程序控制器组成实验(总11页)

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

一、实验目的

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语言实现。

其源程序如下:

MODULETIMER1

TITLE'CLOCKGENERATORT1-T4'

CLK=.C.;

"INPUT

MF,CLR,QD,DP,TJ,DBPIN1..6;

W3PIN7;

"OUTPUT

T1,T2,T3,T4PIN15..18ISTYPE'REG';

CLK1PIN14ISTYPE'COM';

QD1,QD2,QDRPINISTYPE'REG';

ACTPINISTYPE'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语言实现。

其源程序如下:

MODULETIMER2.;

"INPUT

CLK1,CLR,SKIPPIN1..3;

"OUTPUT

W1,W2,W3PIN16..18ISTYPE'REG';

W=[W1,W2,W3];

EQUATIONS

...............

P1................1

P2.................

备用.................

TJ.1..11.11.1.1.1..

LDIR...1...1........1

PC+1.................

LDPC#.1...1.........1.

AR+1...........1..1..

LDAR#.1...1...1..1....

LDDR1.................

LDDR2.................

LDRi........1........

SW_BUS#.11..11.11..11.1.

RS_BUS#....1............

ALU_BUS#.................

RAM_BUS#..........1......

CER#...1...1........1

CEL#..1...1...1..1...

LR/W#..0...0...1..0...

Cn#.................

M.................

S0.................

S1.................

S2.................

S3.................

注:

后缀为#的信号都是低电平有效信号,为了在控存ROM中用“1”表示有效,这些信号在控制器中经过反相后送往数据通路。

 

表微程序代码表(续)

微指令ADDSUBANDSTALDAJCSTPOUT

当前微地址10181119121A131B141C151F1617

下一微地址180F190F1A0F1B0F1C0F0F0F0F0F

P0..............

P1..............

P2..........1...

备用..............

TJ............11

LDIR..............

PC+1.1.1.1.1.11.11

LDPC#...........1..

AR+1..............

LDAR#.....1.1.....

LDDR11.1.1.1.......

LDDR21.1.1.........

LDRi.1.1.1...1....

SW_BUS#..............

RS_BUS#......1.1..1.1

ALU_BUS#.1.1.1.1......

RAM_BUS#.........1....

CER#..............

CEL#.......1.1....

LR/W#......0.1....

Cn#...1..........

M.0.0.1.0......

S0.1.0.1.0......

S1.0.1.1.0......

S2.0.1.0.0......

S3.1.0.1.0......

注:

后缀为#的信号都是低电平有效信号,为了在控存ROM中用“1”表示有效,这些信号在控制器中经过反相后送往数据通路。

为了向RAM和寄存器堆中装入程序和数据、检查写入是否正确,并能启动程序执行,还设计了以下五个控制台操作微程序:

在按复位按钮CLR#后,TEC-5复位,根据SWC、SWB、SWA状态来选择工作方式。

在控制台工作方式,必须使DP=0,DB=0。

启动程序(PR):

按下复位按钮CLR#后,微地址寄存器清零。

这时,置SWC=0、SWB=0、SWA=0,用数据开关SW7-SW0设置RAM中的程序首地址,按QD按钮后,启动程序执行。

写存储器(WRM):

按下复位按钮CLR#,置SWC=0、SWB=0、SWA=1。

①在SW7-SW0中置好存储器地址,按QD按钮将此地址打入AR。

②在SW7-SW0置好数据,按QD,将数据写入AR指定的存储器单元,这时AR加1。

③返回②。

依次进行下去,直到按复位键CLR#为止。

这样就实现了对RAM的连续手动写入。

这个控制台操作的主要作用是向RAM中写入自己编写的程序和数据。

读存储器(RRM):

按下复位按钮CLR#,置SWC=0、SWB=1、SWA=0。

①在SW7-SW0中置好存储器地址,按QD按钮将此地址打入AR,RAM此地址单元的内容读至DBUS显示。

②按QD按钮,这时AR加1,RAM新地址单元的内容读至DBUS显示。

③返回②。

依次进行下去,直到按复位键CLR#为止。

这样就实现了对RAM的连续读出显示。

这个控制台操作的主要作用是检查写入RAM的程序和数据是否正确。

在程序执行后检查程序执行的结果(在存储器中的部分)是否正确。

寄存器写操作(WRF):

按下复位按钮CLR#,置SWC=0、SWB=1、SWA=1。

①首先在SW7—SW0置好存储器地址,按QD按钮,则将此地址打入AR寄存器和PC寄存器。

②在SW1、SW0置好寄存器选择信号WR1、WR0,按QD按钮,通过双端口存储器的右端口将WR1、WR0(即SW1、SW0)送到指令寄存器IR的低2位。

③在SW7-SW0中置好要写入寄存器的数据;按QD按钮,将数据写入由WR1、WR0指定的寄存器。

④返回②继续执行,直到按复位按钮CLR#。

这个控制台操作主要在程序运行前,向相关的通用寄存器中置入初始数据。

寄存器读操作(RRF):

按下复位按钮CLR#,置SWC=1、SWB=0、SWA=0。

①首先在SW7—SW0置好存储器地址,按QD按钮,则将此地址打入AR寄存器和PC寄存器。

②在SW3、SW2置好寄存器选择信号RS1、RS0,按QD按钮,通过双端口存储器的右端口将RS1、RS0(即SW3、SW2)送到指令寄存器IR的第3、2位。

RS1、RS0选中的寄存器的数据读出到DBUS上显示出来。

③返回②继续下去,直到按复位键CLR#为止。

这个控制台操作的主要作用是在程序执行前检查写入寄存器堆中的数据是否正确,在程序执行后检查程序执行的结果(在寄存器堆中的部分)是否正确。

四、实验设备

1.TEC-5计算机组成原理实验系统1台

2.逻辑测试笔一支(在TEC-5实验台上)

3.双踪示波器一台(公用)

4.万用表一只(公用)

五、实验任务

1.按实验要求,连接实验台的电平开关K0-K15、时钟信号源和微程序控制器。

连接完成后应仔细检查一遍,然后才可以加上电源。

注意:

本次实验只做微程序控制器本身的实验,故微程序控制器输出的微命令信号与执行部件(数据通路)的连线不连接。

2.观察时序信号。

用双踪示波器观测时序发生器的输入、输出信号:

MF、T1-T4、W1-W3。

比较相位关系,画出其波形图,并标注出测量所得的脉冲宽度。

观察时须将DB、DP开关置为0状态,然后按QD按钮。

熟悉启停控制按钮的功能,并熟练使用这些控制按钮或开关。

3.熟悉微指令格式的定义,按此定义将图所示的全部微程序变换成二进制代码,并列表登记。

此表请在预习时完成。

4.控制台操作的功能由SWC、SWB、SWA三个二进制开关的状态配合P0判断来决定。

用单拍(DP)方式执行控制台操作微程序,观察判别字段和微地址指示灯的显示,跟踪微指令的执行情况,并与上表数据对照。

5.深刻理解0FH微指令的功能和P1测试的状态条件(IR7-IR4),用二进制开关设置IR7-IR4的不同状态,观察ADD至OUT八条机器指令对应微程序的微命令信号,特别是微地址转移的实现,并与上面表格进行对照。

六、实验要求

1.做好实验预习,掌握微程序控制器和时序发生器的工作原理。

2.根据实验任务所提的要求,在预习时完成表格填写、数据和理论分析值。

3.写出实验报告,内容是:

(1)实验目的。

(2)实验任务2的时序波形图和测量值。

(3)实验任务3的表格。

七、实验步骤和实验结果

(1)接线

控制器

C

IR4

IR5

IR6

IR7

模拟开关

K0

K1

K2

K3

K4

时序电路

TJ

SKIP

固定电平

注意:

接线表中的TJ是时序电路中的TJ,不是控制器中的TJ(该TJ由控制器产生,不能接输入信号),千万不要接错。

(2)观察时序信号的波形

置DP=0,DB=0。

先按CLR#按钮复位,再QD按钮。

则时序部分开始不停止地运行,直到按CLR#按钮为止。

用双踪示波器观察MF、T1、T2、T3、T4、W1、W2、W3信号。

观察的方法是同时观察两路信号,以便于比较相位。

可按下述顺序进行观察:

MF和T1,T1和T2,T2和T3,T3和T4,T1和W1,W1和W2,W2和W3。

根据观察的结果,可绘出波形图。

MF的周期为2000毫秒,占空比为50%。

(3)控存代码表

表控存代码表

微地址

CM3

CM2

CM1

CM0

00

00

00

00

48

01

00

00

00

00

02

03

40

04

03

03

00

00

40

02

04

01

08

00

05

05

00

00

44

04

06

00

80

08

07

07

00

10

04

1E

08

00

08

20

0F

09

00

08

84

04

0A

00

08

80

02

0B

00

08

A4

1D

0C

00

08

A4

1E

0D

00

80

0C

0E

0E

00

0C

04

1D

0F

00

80

08

90

10

00

03

00

18

11

00

03

00

19

12

00

03

00

1A

13

00

11

80

1B

14

00

10

80

1C

15

00

00

11

0F

16

00

00

14

0F

17

00

10

14

0F

18

90

24

10

0F

19

64

24

10

0F

1A

B8

24

10

0F

1B

01

20

10

0F

1C

03

44

10

0F

1D

01

08

00

0D

1E

01

08

00

06

1F

00

10

20

0F

(4)控制台操作微指令编码测试

控制台微代码在58C65的D0—D7输出,D0是最低位,D7是最高位,CM0是最低字节,CM3是最高字节。

D0—D7对应于28C64的引脚11、12、13、15、16、17、18、19。

对于控存的输出,有相应的32个指示灯指示。

置DP=1,DB=0,使实验系统处于单拍状态。

置SWC=0、SWB=0、SWA=1,实验系统处于写存储器WRM工作模式。

按CLR#按钮,使实验系统处于初始状态,微地址为00H,测得的微码是00H00H00H48H。

按一次QD按钮,微地址为09H,测得的微码是00H08H84H04H。

按一次QD按钮,微地址为04H,测得的微码是01H08H00H05H。

按一次QD按钮,微地址为05H,测得的微码是00H00H44H04H。

按一次QD按钮,微地址为04H。

由于微地址又返回04H,停止测试。

置DP=1,DB=0,使实验系统处于单拍状态。

置SWC=0、SWB=1、SWA=0,实验系统处于读存储器RRM工作模式。

按CLR#按钮,使实验系统处于初始状态,微地址为00H,测得的微码是00H00H00H48H。

按一次QD按钮,微地址为0AH,测得的微码是00H08H80H02H。

按一次QD按钮,微地址为02H,测得的微码是03H40H04H03H。

按一次QD按钮,微地址为03H,测得的微码是00H00H40H02H。

按一次QD按钮,微地址为02H。

由于微地址又返回02H,停止测试。

置DP=1,DB=0,使实验系统处于单拍状态。

置SWC=0、SWB=1、SWA=1,实验系统处于写寄存器WRF工作模式。

按CLR#按钮,使实验系统处于初始状态,微地址为00H,测得的微码是00H00H00H48H。

按一次QD按钮,微地址为0BH,测得的微码是00H08H0A4H1DH。

按一次QD按钮,微地址为1DH,测得的微码是01H08H00H0DH。

按一次QD按钮,微地址为0DH,测得的微码是00H80H0CH0EH。

按一次QD按钮,微地址为0EH,测得的微码是00H0CH04H1DH。

按一次QD按钮,微地址为1DH。

由于微地址又返回1DH,停止测试。

置DP=1,DB=0,使实验系统处于单拍状态。

置SWC=1、SWB=0、SWA=0,实验系统处于读寄存器工作模式。

按CLR#按钮,使实验系统处于初始状态,微地址为00H,测得的微码是00H00H00H48H。

按一次QD按钮,微地址为0CH,测得的微码是00H08H0A4H1EH。

按一次QD按钮,微地址为1EH,测得的微码是01H08H00H06H。

按一次QD按钮,微地址为06H,测得的微码是00H80H08H07H。

按一次QD按钮,微地址为07H,测得的微码是00H10H04H1EH。

按一次QD按钮,微地址为1EH。

由于微地址又返回1EH,停止测试。

置DP=1,DB=0,使实验系统处于单拍状态。

置SWC=0、SWB=0、SWA=0,实验系统处于PR工作模式。

按CLR#按钮,使实验系统处于初始状态,微地址为00H。

按一次QD按钮,微地址为08H,测得的微码是00H08H20H0FH。

按一次QD按钮,微地址为0FH,测得的微码是00H80H08H90H。

由于以后的微码与机器指令有关,停止测试。

(5)深刻理解0FH微指令的功能和P1测试的状态条件(IR7-IR4),用二进制开关设置IR7-IR4的不同状态,观察ADD至OUT八条机器指令对应微程序的微命令信号,特别是微地址转移的实现。

0FH微指令的功能是根据程序计数器PC从存储器取指令,送往指令寄存器IR。

0FH微指令的下一微指令地址是10H。

不过,10H只是一个表面的下一微地址,由于该微指令中P1=1,因此实际的微指令地址的低4位要根据IR7—IR4确定,实际微地址为10H+IR7IR6IR5IR4。

1.置DP=1,DB=0,使实验系统处于单拍状态。

选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。

按一次QD按钮,微地址变为08H,微代码为00H08H20H0FH。

按一次QD按钮,微地址变为0FH,微代码为00H80H08H90H。

令K4(IR7)=0,K3(IR6)=0,K2(IR5)=0,K1(IR4)=0,相当于ADD指令的操作码。

按一次QD按钮,微地址变为10H,微代码是00H03H00H18H。

按一次QD按钮,微地址变为18H,微代码是90H24H10H0FH。

按一次QD按钮,微地址回到0FH。

2.置DP=1,DB=0,使实验系统处于单拍状态。

选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。

按一次QD按钮,微地址变为08H,微代码为00H08H20H0FH。

按一次QD按钮,微地址变为0FH,微代码为00H80H08H90H。

令K4(IR7)=0,K3(IR6)=0,K2(IR5)=0,K1(IR4)=1,相当于SUB指令的操作码。

按一次QD按钮,微地址变为11H,微代码是00H03H00H19H。

按一次QD按钮,微地址变为19H,微代码是64H24H10H0FH。

按一次QD按钮,微地址回到0FH。

3.置DP=1,DB=0,使实验系统处于单拍状态。

选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。

按一次QD按钮,微地址变为08H,微代码为00H08H20H0FH。

按一次QD按钮,微地址变为0FH,微代码为00H80H08H90H。

令K4(IR7)=0,K3(IR6)=0,K2(IR5)=1,K1(IR4)=0,相当于AND指令的操作码。

按一次QD按钮,微地址变为12H,微代码是00H03H00H1AH。

按一次QD按钮,微地址变为1AH,微代码是0B8H24H10H0FH。

按一次QD按钮,微地址回到0FH。

4.置DP=1,DB=0,使实验系统处于单拍状态。

选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。

按一次QD按钮,微地址变为08H,微代码为00H08H20H0FH。

按一次QD按钮,微地址变为0FH,微代码为00H80H08H90H。

令K4(IR7)=0,K3(IR6)=0,K2(IR5)=1,K1(IR4)=1,相当于STA指令的操作码。

按一次QD按钮,微地址变为13H,微代码是00H11H80H1BH。

按一次QD按钮,微地址变为1BH,微代码是01H20H10H0FH。

按一次QD按钮,微地址回到0FH。

5.置DP=1,DB=0,使实验系统处于单拍状态。

选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。

按一次QD按钮,微地址变为08H,微代码为00H08H20H0FH。

按一次QD按钮,微地址变为0FH,微代码为00H80H08H90H。

令K4(IR7)=0,K3(IR6)=1,K2(IR5)=0,K1(IR4)=0,相当于LDA指令的操作码。

按一次QD按钮,微地址变为14H,微代码是00

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1