文档视界 最新最全的文档下载
当前位置:文档视界 › 计算机组成原理课程设计实验报告

计算机组成原理课程设计实验报告

计算机组成原理课程设计

实验报告

小组成员:张延云 201058501314

姜维智 201058501317

学院:计算机学院

班级:计101-3班

指导老师:宋宜斌

日期:2012年7月7日

实验名称:

一个简单计算机的设计

设计任务:

综合前面实验单元典型部件设计与调试,对数据选择器(A、B)、计数器、运算器、寄存器和微程序控制器透彻了解的基础上,完成一个简单计算机的设计,使其具有简单运算功能:取数、读数、做加法、送数等。

设计目的:

通过一个简单计算机的设计,对计算机系统的基本组成、部件的设计、部件间的连接、微程序的编制与调试等全过程有一个较为综合、深入的认识和理解。

设计与调试步骤:

结合计算机组成原理的教学内容和课程设计平台系统,计算机的设计与调试步骤如下:

数据通路:

数据通路的设计在总体结构中是最重要的一个环节。实验室的仿真模型机的数据通路是以总线为基础、以CPU为核心构成的。

系统简介:

机器指令存放在3#RAM中将3#RAM作为内存使用,机器指令是按由上到下顺序执行的,其执行顺序由PC(程序计数器)和MAR(地址寄存器)控制。2#RAM和1#RAM作为控制存储器简称为控存一条微指令由十六个微命令组成高八位存放于2#RAM中,低八位存放于1#RAM中。后继地址有三种形成方式μIR2μIR1μIR0为001时μPC+1安顺序执行微指令为010时JP无条件转移,地址由μIR15-8提供。本简单计算机基于简化处理μIR15-8均为0它代表了均跳向为指令寄存器的00入口即取指令入口。为011时QJP高四位安机器指令的操作码转移,第四位为0其由后继地形成逻辑实现,所有涉及的地址转移均为指令的转移。因为机器指令是按顺序执行的。每按一次单脉冲键执行一条微指令,一条机器指令由若干条微指令组成,一条微指令由十六个微命令组成其中因为μIR3μIR6μIR7全为零故省略掉了。

为保证机器指令是从第一条开始顺序执行的,在操作前应按一次复位键将微指令计数器μpc,机器指令计数器pc,内存地址寄存中的内容清零。第一条微指令地址为00,微操作为RAM→IR即从内存中取出指令放到机器指令寄存器中,此时地址寄存器中的内容为00,所以在3#RAM的00地址中取出MOV1指令18,取出指令后PC+1→PC(01)

为取下一条内存内容做好准备,再按一次单脉冲键执行QJP及按操作码转移,此时指令寄存器中存放的为18 操作码为0001,所以转移后高四位为:0001 低四位为全零:0000 。后继地址形成逻辑的输出0001 0000,因此此时置数有效微地址输出为10(十六进制)。

根据微地址10执行PC→MAR, PC中的内容经取指过程中加1操作,已变为01,所以地址寄存器中存入了01,然后PC+1→PC (PC变为02)为取下一条内存内容做好准备。然后将内存中地址为01的数据传送至RAM→R0下一步为PC→MAR存入的为02。下一个微指令为JP无条件转移,地址由微指令的高八位给出,高八位为0000 0000,所以微地址转向00,再次进行取指令。

在3#RAM的02地址中取出MOV2指令28放进机器指令寄存器,取出指令后PC+1→PC(03)为取下一条内存内容做好准备,再按一次单脉冲键执行QJP及按操作码转移,此时指令寄存器中存放的为28 操作码为0010,所以转移后高四位为:0010,低四位为全零:0000 。后继地址形成逻辑的输出0010 0000,因此此时置数有效微地址输出为20(十六进制)。

根据微地址20执行PC→MAR PC中的内容经取指过程中加1操作已变为03,所以地址寄存器中存入了03,然后PC+1→PC (PC变为04)为取下一条内存内容做好准备。然后将内存中地址为03的数据传送至RAM→R1下一步为PC→MAR存入的为04。下一个微指令为JP无条件转移,地址由微指令的高八位给出,高八位为0000 0000,所以微地址转向00,再次进行取指令。

在3#RAM的04地址中取出ADD指令30放进机器指令寄存器,取出指令后PC+1→PC(05)为取下一条内存内容做好准备,再按一次单脉冲键执行QJP及按操作码转移,此时指令寄存器中存放的为30操作码为0011.所以转移后高四位为0011 第四位为全零0000 。后继地址形成逻辑的输出0011 0000 ,因此时置数有效微地址输出为30(十六进制)。

根据微地址30执行R0 +R1= R1PC中的内容经取指过程中加1操作已变为05,所以地址寄存器中存入了05,然后PC+1→PC (PC变为06)为取下一条内存内容做好准备。下一个微指令为JP无条件转移,地址由微指令的高八位给出,高八位为0000 0000所以微地址转向00,再次进行取指令。

在3#RAM的05地址中取出MOV3指令41放进机器指令寄存器,取出指令后PC+1→PC(06)为取下一条内存内容做好准备,再按一次单脉冲键执行QJP及按操作码转移,此时指令寄存器中存放的为41 操作码为0100,所以转移后高四位为:0100 低四位为全零:0000 。后继地址形成逻辑的输出0100 0000 ,因此时置数有效微地址输出为40(十六进制)。

根据微地址40执行R0→MAR(R0中的数据作为写内存地址)。PC中的内容经取指过程中加1操作已变为06,所以地址寄存器中存入了06,然后将内存中地址为03的数据传送至R1→RAM 下一步为PC→MAR存入的为06。下一个微指令为JP无条件转移,地址由微指令的高八位给出,高八位为0000 0000,所以微地址转向00,再次进行取指令。

至此MOV1 MOV2 ADD MOV3 均执行完毕完成了两个数的相加操作。如果是07+02=09那么内存的07号地址中就存放了相加结果09。

总图:

输入输出说明:

USB0-7 为内存的数据线当WR为1时可以写内存,同时加法器的输出也接到这八根线上结合输出分配可将数据送到R0、R1、PC、IR 、MAR 中的一个或一个也不送。

AD0-7 为内存的地址线。

UAD0-7为ROM2和ROM1的共用地址

μIR0-15为ROM2和ROM1的输出其具体输出什么由其地址决定。

WR RD为内存的读写控制

P1为单脉冲

Rst2为复位键,可对PC,μPC.,MAR进行复位。

UPC和P控制ROM2和ROM1读和读出

MD0-7为ROM3的输出其中的数据由此输出。

二四译码器

二四译码的输出控制选择器A 、B 数据通路,二四译码器的作用在这里是一个多路数据开关。

三八译码器逻辑:

三八译码器的一组输入对应的输出中只有一个为1其余为零。 设计中用到了两个三八译码器其中一个的输入为μIR11、μIR10、μIR9,输出用到的五个分别控制R 0 、R 1 、

IR 、PC 、MAR 五个寄存器的数据开关。因为其输出同一时刻只有一个1,这就保证了同一时刻只对一个寄存器操作,另外还有五个寄存器均不操作时的情况,例如写内存的操作。另外一个三八译码器控制微指令地址的转移方式。其本质上仍是一个多路数据开关。

后继地址产生逻辑:

当QJP=1时JP=0,微地址计数器置数端输入为0(置数低有效)微指令的高八位被屏蔽掉了,又因为有四个与门接地,所以输出的低四位为全零,高四位只与机器指令的高四位(操作码)有关,这样就实现了高四位按操作码转移,低四位为全零。

当JP=1时QJP=0,微地址计数器置数端输入为0(置数低有效)因为有四个与门接地且QJP=0,所以输出只与微指令的高八位(μIR 15-8)有关,这样就实现了无条件转移,地址由μIR 15-8提供。

当JP=0时QJP=0,微地址计数器置数端输入为1(置数低有效)此时置数端无效按一次单脉冲键微指令计数器从置数的输入开始计数器自加1顺序向下执行,直到下一次微指令跳转。

二选一选择器

八位串行进位并行加法器

微指令计数器μPC

微指令计数器不是真正的八位二进制计数器起到计数功能的只有六位,高两位是置数的输入。我们使用低六位来计数就

三位二进制计数器

这是微指令计数器底层模块具有置数和端复位键,在来一次脉冲时自加一当加到111时产生进位信号。 这里的二选一是将八根线看成一组(R07-R00一组、R17-R10一组),从两组中选出一组作为输出。

微指令格式微指令字长16位即

μIR15~μIR0(1)微指令字段定义

A选择器控制:μIR15●μIR14

0 0 备用

0 1 RA

1 0 MA

1 1 备用

B选择器控制:μIR13●μIR12

0 0 备用

0 1 PB

1 0 RB

1 1 备用

输出分配:μIR11●μIR10●μIR9

0 0 0 备用

0 0 1 CPR0

0 1 0 CPR1

0 1 1 CPPC

1 0 0 CPIR

1 0 1 CPMAR

1 1 0 备用

1 1 1 备用

低位进位控制:μIR8

0 C0=0

1 C0=1

存储器读写控制:μIR5●μIR4

1 0 RD

0 1 WR

后继地址形成方式:

μIR2●μIR1●μIR0

0 0 0 备用

0 0 1 μPC+1 顺序执行微指令

0 1 0 JP无条件转移,地址由微指令的高八位μIR15-8提供

0 1 1 QJP高四位按操作码转移,地四位为0。

1 0 0 YJP给定高四位第四位按源寻址方式转移。

1 0 1 MJP给定高四位低四位按目的寻址方式转移。

1 1 0 备用

1 1 1 备用

微命令形成逻辑如下图示

确定总体结构:

1、寄存器的设置:

R0R1为通用寄存器,8位

IR为机器指令寄存器,8位

PC程序计数器,8位

MAR为内存地址寄存器

2、加法器的设置

为简化设计,采用为8位带串行进位并行加法器

3、选择器的设置

连入A选择器的数据来源是RAM的读出数据和R0 寄存器的数据。连入B选择器的数据来源是PC数据和R1 寄存器的数据。

4、数据通路

信息传送路径

逻辑设计

1、加法器的逻辑设计

2、选择器的逻辑设计

3、寄存器的设计

不带复位的寄存器

结构中R0R1通用寄存器,可存放操作数或结果、中间结果,每个寄存器由8个D触发器构成。在CPR i的作用下接受总线的数据送入寄存器,输出连入选择器机器指令寄存器其结构同通用寄存器。

带复位的寄存器

结构中MAR地址寄存器是一个带复位的寄存器,带复位是指当有复位信号时,MAR清零。

程序计数器的设计

PC加1是通过加法器实现的。

部件之间的连接

由系统图可看出,部件之间的连接是采用以CPU为中心的总线连接方式。加法器的输出通过总线BUS连接到所有寄存器和存储器的输入端,除指令寄存器IR和地址寄存器MAR的输出端外,其他部件的输出端分别送入选择器A 和选择器B 。

确定控制方式

后继地址产生逻辑

为简单起见直选三种后继地址生成方式即增量方式、无条件转移方式、安操作码转移方式

当EN=1时,为程序计数器执行加1操作

当EN=0时,且JP=1时,无条件转移。

当EN=0时,且QJP=1时,按操作码转移。

微程序编写

(1)程序

MOV1 07# R0

MOV2 02# R1

ADD R0R1

MOV3 R1(R0 )

(2)操作码二进制代码

MOV1 0001

MOV2 0010

ADD 0011

MOV3 0100

(3)微程序入口(十六进制代码)

取指令入口:00H

MOV1入口:10H

MOV2入口:20H

ADD 入口:30H

MOV3入口:40H

拟定指令系统

基本字长

课程设计平台中配置的存储器容量为256×8,显然基本字长只能定为8位。

指令格式

指令格式可有单字长指令和双字长指令两种,在双字长格式中,第二字节一般定义微操作数或操作数地址。

指令格式为:

指令类型

模型机有单操作数指令、双操作数指令和无操作数指令。

操作码OP共提供四位,最多可定义16条指令。

数据的传送单位为8位(一个字节)

数据的传送范围

寻址方式

由于指令较短、操作数仅为两位,为了简化硬件设计,将源操作数字段和目的操作数字段的寻址定义为不同的含义

源操作数寻址方式目的操作数寻址方式

00 R000 R1

01 (R0) 01 (R0)

10 I 10 I

11 D 11 D

R i表示操作数就在寄存器中

(R i) 表示操作数地址在寄存器中

I指令的第二个字节微操作数或立即寻址

源操作数使用R0寻址

目的操作数使用R1寻址

MOV1 0001 10 00

0000 01 11

MOV2 0010 10 00

0000 00 01

ADD 0011 00 00

MOV3 0100 00 01

MOV1源操作数按立即寻址目的操作数为操作数就在寄存器中,因为立即寻址该指令由两个字节组成。

MOV2只有操作码与MOV1不同

ADD源操作数:操作数就在寄存器中,目的操作数:为操作数就在寄存器中,该指令由一个字节组成

MOV3 源操作数:操作数就在寄存器中,目的操作数:操作数地址在寄存器中。

将以上四条机器指令在RAM3#自00号单元顺序存放并用十六进制表示如下:

00 18

01 07

02 28

03 02

04 30

05 41

MOV1 07,R0;立即数07#→ R0

MOV2 01,R1;立即数02# → R1

ADD R0,R1;(R0)+( R1)→ R1

MOV3 R1,(R0);R1→ (R0) (存储单元)

R0中的数据在MOV1中作为操作数,在MOV3作为RAM3的地址R1中相加后的结果就写在这个地址中。

本指令完成的是07+02=09以上四条机器指令执行完成后RAM3的07号单元存放的为09。

指令执行流程

微程序

心得体会:

在此次课程设计过程中,我们通过查阅资料,自学和与同学交流经验,并向老师请教等方式,综合运用所学知识,发现、提出、分析和解决实际问题,锻炼了实践能力,对我们的实际工作能力有了具体的训练和考察。在给同学讲解的过程中,深刻理解了所学知识,也培养了我们团队合作的能力,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我们充分体会到了创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的不完美,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我们终身受益。

此次计算机组成原理课程设计中学到很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。

相关文档
相关文档 最新文档