组成原理课程设计.docx

上传人:b****6 文档编号:15294911 上传时间:2023-07-03 格式:DOCX 页数:38 大小:936.07KB
下载 相关 举报
组成原理课程设计.docx_第1页
第1页 / 共38页
组成原理课程设计.docx_第2页
第2页 / 共38页
组成原理课程设计.docx_第3页
第3页 / 共38页
组成原理课程设计.docx_第4页
第4页 / 共38页
组成原理课程设计.docx_第5页
第5页 / 共38页
组成原理课程设计.docx_第6页
第6页 / 共38页
组成原理课程设计.docx_第7页
第7页 / 共38页
组成原理课程设计.docx_第8页
第8页 / 共38页
组成原理课程设计.docx_第9页
第9页 / 共38页
组成原理课程设计.docx_第10页
第10页 / 共38页
组成原理课程设计.docx_第11页
第11页 / 共38页
组成原理课程设计.docx_第12页
第12页 / 共38页
组成原理课程设计.docx_第13页
第13页 / 共38页
组成原理课程设计.docx_第14页
第14页 / 共38页
组成原理课程设计.docx_第15页
第15页 / 共38页
组成原理课程设计.docx_第16页
第16页 / 共38页
组成原理课程设计.docx_第17页
第17页 / 共38页
组成原理课程设计.docx_第18页
第18页 / 共38页
组成原理课程设计.docx_第19页
第19页 / 共38页
组成原理课程设计.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

组成原理课程设计.docx

《组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《组成原理课程设计.docx(38页珍藏版)》请在冰点文库上搜索。

组成原理课程设计.docx

组成原理课程设计

附件1:

学号:

课程设计

 

题目

带进位运算指令的实现

学院

计算机科学与技术

专业

计算机科学与技术

班级

姓名

指导教师

 

 

2011

6

28

 

课程设计任务书

学生姓名:

专业班级:

指导教师:

工作单位:

计算机科学与技术学院

题目:

基本模型机的设计——带进位运算指令的实现

初始条件:

理论:

学完“电工电子学”、“数字逻辑”、“汇编语言程序设计”、和“计算机组成原理”课程,掌握计算机组成原理实验平台的使用。

实践:

计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。

2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。

3、课程设计的书写报告应包括:

(1)课程设计的题目。

(2)设计的目的及设计原理。

(3)根据设计要求给出模型机的逻辑框图。

(4)设计指令系统,并分析指令格式。

(5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。

(6)模型机当中时序的设计安排。

(7)设计指令执行流程。

(8)给出编制的源程序,写出程序的指令代码及微程序。

(9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中带进位运算指令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程)。

(10)课程设计总结(设计的特点、不足、收获与体会)。

时间安排:

周一:

熟悉相关资料。

周二:

系统分析,设计程序。

周三、四:

编程并上实验平台调试周五:

撰写课程设计报告。

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

1设计的目的及设计原理

1.1实验目的:

(1)掌握各个单元模块的工作原理,进一步将其组成完整的系统,构造成一台基本模型计算机。

(2)在本试验中,将规划读、写内存,寄存器,数值计算等功能,并且编写相应的微程序。

具体上机调试各个模块以便进一步掌握整机的概念。

对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。

(3)通过使用软件HKCPT,了解程序编译,加载的过程。

同时,培养动手能力,独立解决问题的能力。

(4)通过微单步,单拍调试,理解模型机中的数据流向。

1.2设计原理:

1.2.1在各个模块试验中,各模块的控制信号都是有试验者手动模拟产生的。

而在真正的实验系统中,模型机的运行是在微程序的控制下进行的,可实现特定指令的功能。

在本实验平台中,模型机从内存中取出,解释,执行及其指令都将由微指令和与之相配合的时序来完成,即一条机器指令对应1个微程序。

2.模型机的逻辑框图

根据设计要求,对实验仪硬件资源进行逻辑组合,便可设计出该模型机的逻辑框图。

简单的模型计算机由算术逻辑运算单元,微程序单元,堆栈寄存器单元,累加器,启停单元,时序单元,总线和存储器单元组成.在模型机中,将实现RAM的读/写指令,寄存器的读/写指令,跳转指令,ALU的加,减,与,或指令。

把通用寄存器作为累加器A,进行左,右移等指令,整体构成一个单累加器多寄存器的系统。

算术逻辑运算单元由两个数据锁存器(DR1,DR2),ALU,1个数据缓冲器224组成。

EDR1为0且DR1CK有上升沿时把数据DATABUS上的数据打入DR1,EDR2为0且DR2CK有上升沿时把DATABUS上的数据打入DR2,S0,S1,S2,S3,CN,M控制工作方式,ALU-O为0时224把ALU的运算结果输出到数据总线。

微程序控制单元由位地址寄存器,微程序寄存器(6264*3),微指令锁存器组成。

MLD为1且MCK有上升沿时位地址寄存器自动加1,MLD为0且MCK上有上升沿时把微地址打入位地址寄存器。

指令部件模块由一个指令寄存器IR1,1个地址锁存器IR2,PC计数器,2个输出锁存器224组成。

EIR1为0且IRCK有上升沿时把DATABUS上的数据打入IR1,EIR2为0且IR2CK有上升沿时把DATABUS上的数据打入IR2,ELP为0且PCCK有上升沿时可重新置PC值,ELP为1,PC-O为0且有上升沿时PC加1,PC-O为0,IR2-0为1时把PC值输出到ADDRESSBUS,PC-O为1,IR2-O为0时把IR2的值输出到ADDRESSBUS。

存储器由1片静态RAM(6264)及控制电路构成。

RM,BUS为0,WM为1时容许存储器读出,RM,BUS为1,WM为0时容许存储器写入,EMCK时存储器的写入或读出信号。

寄存器组由累加器A和堆栈寄存器(R0,R1,R2,R3)组成。

X0,X1控制A的工作模式,ERA为0时选通A,RACK是A的工作脉冲,SA,SB选通一个寄存器(R0,R1,R2,R3),RR为0容许寄存器读出,WR为0容许数据写入。

3.计指令系统,并分析指令格式

本实验平台采用的是8位数据总线和8位地址总线方式,在设计指令系统时,应考虑其指令,以及寻址方式和编码方式的问题

3.1指令类型

3.1.1算术/逻辑运算类指令

如:

加法,减法,取反,逻辑运算

(ADDA,Ri,SUBA,Ri)

3.1.2移位操作类指令

如:

带进位或不带进位的移位指令:

(RCCA,RRA)

3.1.3数据传送指令

如:

CPU内部寄存器之间数据传递:

MOVA,Ri

MOVRi,A

3.1.4程序跳转指令

跳转指令分为无条件跳转指令和有条件跳转指令。

可根据寄存器内容为零来标志(ZD),有无进位来标志(CY),也可根据用户自定义标志。

JMPaddr无条件跳转

JZaddrZD=0时跳转

JCaddrCY=0时跳转

JNaddr自定义

3.1.5存储器操作类指令

存储器读/写指令。

把内存某单元内容写入寄存器中或把寄存器中的内容写入存储器。

如:

LDAaddr(addr)->A

STAaddr(A)->addr

3.2.操作数寻址方式及编码

3.2.1直接地址寻址

例如,双字节指令:

LDAaddr(addr)->A

STAaddr(A)->addr

第1字节(操作码)第2字节(操作数地址)

I7

I6

I5

I4

I3

I2

I1

I0

A7

A6

A5

A4

A3

A2

A1

A0

3.2.2寄存器直接寻址

指令字节中含有寄存器选择码,决定选哪个寄存器进行操作。

例如,单字节指令:

MOVA,Ri

单字节(操作码与RI选择码)

I7

I6

I5

I4

I3

I2

I1

I0

例如,双字节指令:

MOVRi,#data

第1字节(操作码及RI选择码)第2字节(DATA)

I7

I6

I5

I4

I3

I2

I1

I0

D7

D6

D5

D4

D3

D2

D1

D0

3.2.3寄存器间接寻址

例如,单字节指令:

MOVA,@Ri(Ri)->A

RI选择码

I7

I6

I5

I4

I3

I2

I1

I0

3.2.4立即数寻址

例如,MOVA,#datadata->A

MOVRi,#datadata->Ri

第1字节(操作码及RI选择码)第2字节(DATA)

I7

I6

I5

I4

I3

I2

I1

I0

D7

D6

D5

D4

D3

D2

D1

D0

 

3.3指令格式分析

Intel8086/8088指令字较短,所以指令采用变长指令字结构。

指令格式包括单指令、双字长指令、三字长指令等多种。

指令长度为1~6字节不等,既有8位、16位、24位、32位、40位和48位6种,其中第一个字节为操作码;第2个字节指出寻址方式;第3个至第6个字节则给出操作数地址等。

基本指令格式如下:

4.设计微程序及其实现方法

在本实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多有24个微操作控制信号,可由微代码直接实现。

如果采用多组编码译码,那么24位微代码通过二进制译码可实现个互斥的微操作控制信号。

由于模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式。

在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址MD0~MD7,这种方法称为“按操作码散转”.如下表所示。

每条指令不超过4条的微程序指令,那么可根据下表组成每条微程序的首地址

微指令的运行顺序为下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下一条微指令地址。

微地址寄存器由2片74LS161组成,在模型机停止状态下,微地址被清零。

当实验平台开始运行时,微地址从00H开始运行。

且00H放置一条取指指令,根据程序开始地址从内存中读出第一条指令。

CM中的存储情况如下表所示:

表格中的位数对应的关系如下:

2322212019181716151413121110

MLDWMRMEIR1EIR2IR2-OPC-OELPRRWRHALTX0X1ERA

9876543210

RA-OEDR1EDR2ALU-ODNMS3S2S1S0

指令助记符

微地址有效值

23222120

19181716

1511312

111098

7654

3210

0000

0000

000*

*000

00**

****

取址微指令

00H

0100

1100

1111

1111

1111

1111

01H

02H

ADDA,Ri

03H

1111

1111

1111

1100

1111

1001

04H

1111

1111

0111

1111

0111

1001

05H

1111

1111

1111

1011

1010

1001

06H

0100

1101

1111

1111

1111

1111

SUBA,Ri

07H

1111

1111

1111

1100

1101

0110

08H

1111

1111

0111

1111

0101

0110

09H

1111

1111

1111

1011

1000

0110

0AH

0100

1101

1111

1111

1111

1111

MOVA,@Ri

0BH

1111

0111

0111

1111

1111

1111

0CH

1101

1011

1111

1011

1111

1111

0DH

0100

1101

1111

1111

1111

1111

0EH

MOVA,Ri

0FH

1111

1111

0111

1011

1111

1111

10H

0100

1101

1111

1111

1111

1111

11H

12H

MOVRi,A

13H

1111

1111

1011

1101

1111

1111

14H

0100

1101

1111

1111

1111

1111

15H

16H

MOVA,#data

17H

1101

1101

1111

1011

1111

1111

18H

0100

1101

1111

1111

1111

1111

19H

1AH

MOVRi,#data

1BH

1101

1101

1011

1111

1111

1111

1CH

0100

1101

1111

1111

1111

1111

1DH

1EH

LDAaddr

1FH

1101

0101

1111

1111

1111

1111

20H

1101

1011

1111

1011

1111

1111

21H

0100

1101

1111

1111

1111

1111

22H

STAaddr

23H

1101

0101

1111

1111

1111

1111

24H

1011

1011

1111

1101

0000

0000

25H

0000

0000

0000

0000

1111

1111

26H

RRC

27H

1111

1111

1111

0001

1110

1111

28H

0000

0000

0000

0000

0000

0000

29H

0000

0000

0000

0000

0000

0000

2AH

RLC

2BH

1111

1111

1110

1001

1110

1111

2CH

0100

1101

1111

1111

1111

1111

2DH

2EH

JZaddr

2FH

1101

0100

1111

1111

1111

1111

JCaddr

30H

0100

1101

1111

1111

1111

1111

JMP

addr

31H

32H

ORLA,

#data

33H

1111

1111

1111

1100

1111

1110

34H

1101

1101

1111

1111

0111

1110

35H

1111

1111

1111

1001

1011

1110

36H

0100

1100

1111

1111

1111

1111

ANLA,#data

37H

1111

1111

1111

1100

1111

1011

38H

1101

1101

1111

1111

0111

1101

39H

1111

1111

1111

1001

1011

1011

3AH

0100

1100

1111

1111

1111

1111

3BH

3CH

3DH

3EH

HALT

3FH

1111

1111

1101

1111

1111

1111

5.模型机当中的时序设计安排

由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。

在实验中为了让试验者更好的观察实验的各个中间过程各寄存器的值,由监控单元产生一个PLS-O信号来控制时序产生.PLS-O信号经过时序单元的处理产生了4个脉冲信号。

4个脉冲信号组成一个微指令周期,为不同的寄存器提供工作脉冲.

PLS1:

微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加

PLS2:

PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数器(跳转指令)等功能。

PLS3:

把24位微指令打入3片微指令锁存器。

PLS4:

把当前总线上的数据打入微指令选通的寄存器中。

6.设计指令执行流程

在每个系统中,一条指令从内存取出到执行完毕,需要若干个机器周期,任何指令中都必须有一个机器周期作为“取指令周期”,称为公操作周期。

而一条指令共需几个机器周期取决于指令在机器内实现的复杂程度。

对于微程序控制的计算机,在设计指令执行流程时,要保证每条微指令所含的微操作的必要性和合理性,还应知道总线的IAB,IDB,OAB,ODB仅是传输信息的通路,没有寄存信息的功能,而且必须保证总线传输信息时信息的唯一性。

以下描述取微指令执行周期:

在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令锁存器输出无效。

在处于停机状态时,脉冲PLS1对微地址寄存器(74LS161)无效,微地址寄存器保持为零。

脉冲PLS2对PC计数器无效,同时PLS2把HALT=1打入启停单元中的运行状态寄存器(74LS74)中,把模型机置为运行状态,使微程序锁存器输出有效。

PLS3把微程序储存器00H单元中的内容打入指令寄存器中。

并且输出取值指令。

PLS4把从程序存储器独处的数据打入指令寄存器中。

在模型机处于运行状态时,脉冲PLS1将微地址寄存器(74LS161)加1,脉冲PLS2将PC计数器加1,PLS3把微程序存储器中的微指令打入微指令锁存器并且输出。

PLS4把当前总线上的数据打入当前微指令所选通的寄存器。

下面通过本例的程序说明其中各别指令的数据信息流。

(1)双字节指令MOVA,#DATA

该指令的功能是data->A,需执行如下微操作。

 

 

指令寄存器IR1

该指令由2个微指令周期组成:

1 PC+1从内存出得指令第二个字节送累加器A。

2 PC+1执行出指微指令,从内存闱出指令字节送指令寄存器。

(2)单字节指令RRCA

该指令功能是将累加器A是内容带进位CY右环移1位,即

需执行如下微操作

 

此程序由2个微指令周期组成。

1 PC+1为取下条指令准备,控制累加器A带CY右环移一位(移入CY作A7,移出的A0送CY)

2 取指微指令,从内存取出指令送指令寄存器。

7.给出编制的源程序,写出程序的指令代码及微程序

7.1程序思想

本实验使用了4条带进位的运算指令:

RRC(带进位的右移),RLC(带进位的左移),ADDA,Ri(加法指令,可有进位溢出),JCaddr(条件跳转),JMPaddr(无条件跳转)

RCCA;将寄存器中的内容带进位位一起循环右移

RLCA;将A寄存器中的内容带进位位一起循环右移

ADDA,Ri;将A寄存器的内容Ri的内容相加,如果加法溢出,则进位到CY

JCaddr;条件跳转指令,如果进位位CY溢出,则跳转到addr

JMPaddr;无条件跳转指令,跳转到addr

程序最初传入一个数到寄存器A中,右移一位此时改变了它的溢出位,再次传入一个数,此时溢出位已经被上一步的右移改变了,此时进行1位左移。

将一个数传入寄存器R0。

进行加法运算.如果有进位则将A的内容写入RAM地址20h。

否则将继续对寄存器A中的数左移一位。

直到有进位.

7.2源程序

MOVA,#83;立即数83H->A

RRCA;A>>1

MOVA,#19;立即数19H->A

RLCA;A<<1

MOVR0,#44;立即数44H->寄存器R0

MOVA,#19;立即数19H->A

RLCA;A<<1

ADDA,R0;(A)+(R0)->A

JC10;CY有进位跳转到0FH

JMP0A;跳转到0AH

STA20;将A的内容写入地址20H

HALT;停机

7.3应微程序如下:

 

7.4程序的指令序列

内存地址

指令助记符

指令码或立即数

说明

00H

MOVA,#83

5FH

立即数83H→A

01H

83H

02H

RRCA

9FH

A>>1

03H

MOVA,#18

5FH

立即数18H→A

04H

19H

05H

RLC

AFH

A<<1

06H

MOVR0,#40

6CH

立即数40H→寄存器R0

07H

44H

08H

MOVA,#18

5FH

A<<1

09H

19H

0AH

RLCA

AFH

A<<1

0BH

ADDA,R0

0CH

(A)+(R0)->A

0CH

JC10

B7H

CY有进位跳转到0FH

0DH

10H

0EH

JMP0A

BFH

跳转到0AH

0FH

0AH

10H

STA20

8FH

将A的内容写入RAM地址20H

11H

20H

12H

HALT

FFH

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2