计算机组成原理课程设计报告16位模型机的设计.docx

上传人:b****1 文档编号:2078270 上传时间:2022-10-26 格式:DOCX 页数:44 大小:931.51KB
下载 相关 举报
计算机组成原理课程设计报告16位模型机的设计.docx_第1页
第1页 / 共44页
计算机组成原理课程设计报告16位模型机的设计.docx_第2页
第2页 / 共44页
计算机组成原理课程设计报告16位模型机的设计.docx_第3页
第3页 / 共44页
计算机组成原理课程设计报告16位模型机的设计.docx_第4页
第4页 / 共44页
计算机组成原理课程设计报告16位模型机的设计.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

计算机组成原理课程设计报告16位模型机的设计.docx

《计算机组成原理课程设计报告16位模型机的设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告16位模型机的设计.docx(44页珍藏版)》请在冰豆网上搜索。

计算机组成原理课程设计报告16位模型机的设计.docx

计算机组成原理课程设计报告16位模型机的设计

石家庄经济学院

华信学院

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

计算数据块中所有数据的累加和并存储到内存单元中

 

题目16位模型机的设计

姓名

学号4114170801

班号一班

指导老师

成绩

 

2014年1月

目录

一、引言

1.1设计目的

为掌握并巩固本学期所学习的计算机组成原理知识,设计本次试验。

运用整合所学的相关知识,一步步设计构造一台基本的模型计算机,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。

1.2设计任务

本机功能:

计算数据块中所有数据的累加和并存储到内存单元中。

汇编代码如下:

START:

MOVSI,OFFSETSRC1;源操作数地址送SI

MOVDI,OFFSETDXT;目的操作数地址送DI

MOVBX,OFFSETSRC2;结束地址送BX

MOVBL0;设置BL中初值为0

NEXT:

MOVAL,[SI];取数

ADDBL,AL;数据相加

MOV[DI],AL;存数

CMPSI,BX;

JESTART;如果SI=BX,则转向START

INCSI;修改源地址

JMPNEXT;转向NEXT

二、详细设计及实现

2.1拟定指令系统

分析:

1)依据汇编语言程序得出部件间的数据流的方向为

●立即数→寄存器

●寄存器↔内存内存操作数采用寄存器间址寻址方式

●源与目的寄存器内容比较,如果源等于目的转移,转向地址在指令中提供

●寄存器加1指令

●无条件转移指令,转向地址在指令中提供。

2)指令类型(指令中的立即数为一个字即16位)

●立即数→寄存器

需要在指令中指出寄存器及立即数

如:

LOADIR0,10H,此指令为双字指令

●内存操作数→寄存器

需要在指令中指出间址寄存器及目的寄存器

如:

LOADR3,[R1];指令为单字指令

●寄存器→内存

需要指令中指出源寄存器及间址寄存器

如:

STORE[R2],R7;指令为单字指令

●寄存器内容比较产生转移的指令

需要指令中指出源、目的寄存器以及转向的地址

如:

BRANCHEQI0000H;指令为单字指令

●寄存器加1指令

指令中指出寄存器

如:

INCR1,指令为单字指令

●无条件转移指令

指令中提供转向地址

如:

BRANCHI0008H;指令为单字指令

2.2指令格式

1)单字指令格式

单指令但操作数:

INCBRANCHI

单指令双操作数:

movloadstoreLOADI

2)双字指令格式

双字三操作数:

BRANCHEQIBRANCHGTI

操作码

指令

功能

00001

LOAD

将寄存器间址的存储单元内容装载到寄存器

00010

STORE

将寄存器的数据存入到寄存器间址的存储单元

00011

MOV

将源寄存器内容传送到目的寄存器

00100

LOADI

将立即数装入到寄存器

00101

BRANCHI

无条件转移到由立即数指定的地址

00110

BRANCHEQI

如果源寄存器内容等于目的寄存器的内容,则转移到由立即数指定的地址

00111

INC

寄存器内容加1指令

01000

ADD

数据相加

2.3寻址方式

寻址方式

含义

立即数寻址

指令格式中源操作数为立即数

寄存器间址寻址方式

寄存器中操作数的地址

直接寻址

主存中为操作数

依据以上设计的指令系统,将主存中数据累加并存储到内存单元中的程序如下:

地址

机器码

指令

功能说明

0000H

0001H

2001H

0010H

LOADIR1,0010H

源操作数地址送R1

0002H

0003H

2002H

0030H

LOADIR2,0030H

目的操作数地址送R2

0004H

0005H

2006H

0016H

LOADIR6,0016H

结束地址送R6

0006H

0007H

2007H

0000H

LOADR7,0

R7内放入0初始化最小值

0008H

080BH

LOADR3,[R1]

取数

0009H

401FH

ADDR7,R3

相加

000AH

103AH

STORE[R2],R7

存数

000BH

000CH

300EH

0000H

BRANCHEQI0000H

如果R6内容等于R1的内容,则转向0000H

000DH

3031H

INCR1

修改源地址

000EH

000FH

2800H

0008H

BRANCHI0008H

无条件转移到由立即数指定的地址

存储器初始化文件memdata.mif的内容:

 

 

三、16位CPU的模型

图1是采用单总线结构的16位CPU结构图,包含了基本的功能模块,由寄存器阵列构成的8个16位寄存器Reg0----Reg7;工作寄存器OpReg;算术逻辑运算部件ALU;移位器Shifter;输出寄存器OutReg;比较器Comp;指令寄存器InstrReg;程序计数器ProgCnt;地址寄存器AddrReg。

所有功能模块共用16位的三态数据总线进行信息的传送。

控制器模块由状态机实现,控制器依据指令、数据通路通过控制线向各功能模块发出控制命令。

由寄存器阵列构成的8个16位寄存器Reg0----Reg7的优点是节省资源、使用方便。

它们共用一个三态开关,由控制器选择与数据总线的连接。

工作寄存器OpReg可为ALU、比较器Comp提供一个操作数,而ALU、比较器的另一操作数直接来自数据总线。

将ALU、移位器Shifter、输出寄存器OutReg串接起来,由控制器统一控制来共同完成一些复杂的操作,由输出寄存器OutReg存储结果,输出寄存器OutReg向总线的输出端含有三态开关。

比较器Comp由控制器直接控制,比较的结果进入控制器。

 

地址寄存器AddrReg提供要访问的主存单元的地址,本设计中将程序和数据放在同一存储器中。

程序计数器ProgCnt,不具备清零和+1的功能,存放CPU要执行的下一条指令的地址。

指令寄存器InstrReg存放CPU正在执行的指令。

工作寄存器OpReg,输出寄存器OutReg,指令寄存器InstrReg,程序计数器ProgCnt,地址寄存器AddrReg,均为最基本的寄存器。

为了验证CPU的功能,增加存储器,存储器中存入完成数据块传送所需的程序和数据。

系统中所有向数据总线输出数据的模块,其输出口必须使用三态控制器。

模型机的实际电路如图2所示:

图2顶层实体模拟图

3.1各功能部件的VHDL设计

程序包:

说明数据类型、运算器的功能、移位寄存器的操作、比较器的比较类型和用于CPU控制的状态类型。

运算器的设计

 

功能:

Sel输入

操作

说明

0000

C=A

通过PASS

0001

C=AANDB

0010

C=AORB

0011

C=NOTA

0100

C=AXORB

异或

0101

C=A+B

加法

0110

C=A-B

减法

0111

C=A+1

加1

1000

C=A-1

减1

1001

C=0

清零

 

说明:

a[15..0]来自于总线,b[15..0]来自于工作寄存器OpReg,c[15..0]输出送至移位器。

sel[3..0]来自于控制器发出的控制信号aluSel[3..0],选择ALU的操作。

运算器功能仿真波形图如图3所示:

 

仿真结果说明:

当sel为0000时,进行直传的操作。

通过pass,则c=a,为1000。

当sel为0001时,进行与的操作。

a=1000,b=1234,与之后c为1000。

当sel为0010时,进行或的操作。

a=1000,b=1234,c为1234。

当sel为0011时,进行非的操作。

a=1000,a为EFFF。

当sel为0100时,进行异或的操作。

axorb,c为0234。

当sel为0101时,进行加法的操作。

a=1000,c为2234。

当sel为0110时,进行减法的操作。

a=1000,c为FDCC。

当sel为0111时,进行加1的操作。

a=1000,c为1001。

当sel为1000时,进行减1的操作。

a=1000,c为0FFF。

当sel为1001时,进行清0操作,全部置0.

当sel为1010时,为类型其他,全部输出0.

 

比较器的设计

 

功能:

t_comp

比较类型

操作说明

000

Eq(等于)

若a=b,compout=1

001

Neq(不等于)

若a<>b,compout=1

010

Gt(大于)

若a>b,compout=1

011

gte(大于等于)

若a>=b,compout=1

100

It(小于)

若a

101

Ite(小于等于)

若a<=b,compout=1

其他

compout=0

 

比较器功能仿真波形图如图4所示:

图4比较器功能仿真波形图

 

仿真结果说明:

sel为000时,进行比较是否相等的操作,1000不等于1234,compout=0

sel为001时,进行比较是否不等于的操作,1000不等于1234,compout=1

sel为010时,进行比较是否大于的操作,1000<1234,compout=0

sel为011时,进行比较是否大于等于的操作,1000<1234,compout=0

sel为100时,进行比较是否小于的操作,1000<1234,compout=1

sel为101时,进行比较是否小于等于的操作,1000<1234,compout=1

sel为其他时,compout输出0.

移位器的设计

 

功能:

t_shift

移位类型

000

直通

001

无符号数左移

010

无符号数右移

011

循环左移

100

循环右移

其他

输出0

 

移位器的功能仿真波形图如图5所示:

图5移位器的功能仿真波形图

 

仿真结果说明:

当sel为000时,进行直传的操作,a和y相同

当sel为001时,进行无符号数左移的操作,1234变为2468

当sel为010时,进行无符号数右移的操作,1234变为091A

当sel为011时,进行循环左移的操作,1234变为2468

当sel为100时,进行循环右移的操作,1234变为091A

当sel为其他时,输出0

基本寄存器

 

A

CLK

Qn+1

0

0

1

1

X

0

Qn

功能:

 

功能说明:

在CPU中基本寄存器的角色是工作寄存器OpReg,输出寄存器OutReg,指令寄存器InstrReg,程序计数器ProgCnt,地址寄存器AddrReg。

基本寄存器功能仿真波形图如图6所示:

 

图6基本寄存器功能仿真波形图

 

仿真结果说明:

0ns到5ns,还没有遇到clk的上升沿,所以q端的输出是0000

5ns到20ns时,clk的上升沿到来,q端

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

当前位置:首页 > 自然科学 > 数学

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

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