采用微程序控制器的CPU设计.docx

上传人:b****1 文档编号:2412946 上传时间:2022-10-29 格式:DOCX 页数:22 大小:272.69KB
下载 相关 举报
采用微程序控制器的CPU设计.docx_第1页
第1页 / 共22页
采用微程序控制器的CPU设计.docx_第2页
第2页 / 共22页
采用微程序控制器的CPU设计.docx_第3页
第3页 / 共22页
采用微程序控制器的CPU设计.docx_第4页
第4页 / 共22页
采用微程序控制器的CPU设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

采用微程序控制器的CPU设计.docx

《采用微程序控制器的CPU设计.docx》由会员分享,可在线阅读,更多相关《采用微程序控制器的CPU设计.docx(22页珍藏版)》请在冰豆网上搜索。

采用微程序控制器的CPU设计.docx

采用微程序控制器的CPU设计

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

 

题目采用微程序控制器的CPU设计

姓名

学号

指导老师

成绩

 

2013年1月11日

 

目录

1.课程设计目的与要求3

2.开发工具选择3

3.设计方案选择3

4.指令系统设计4

5.模型机总体结构设计4

6.指令流程设计6

7.微指令格式设计7

8.微程序流程设计7

9.微程序的编写8

9.VHDL实现9

10.调试仿真14

11.课程设计回顾总结19

参考文献19

1.课程设计目的与要求

1)课程设计目的:

①融会贯通计算机组成原理课程各章教学内容,通过知识的综合运用,加深对CPU各模块工作原理及相互联系的认识,建立计算机整机的概念。

2通过对一个简单模型机的设计,达到对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的理解,加深对理论课程的理解。

3学习运用大容量可编程器件开发技术,掌握设计和调试的基本步骤和方法。

4培养独立工作和创新思维的能力,取得设计与调试的实践经验。

2)课程设计要求:

设计一台微程序控制的模型计算机

①拟定指令系统(含机器指令的字长、格式、寻址方式及指令的种类等)

②设计数据通路,给出模型机中所含的部件及其间的连接,以及信息在数据通路中传送时所需的微命令。

3设计微程序的流程图

4设计微指令

5编写微程序

6使用VHDL编码,仿真检测实验的功能是否达到设计要求

撰写课程设计报告,要求报告中所规定的图文齐全、符合要求、结构合理,能对实验中出现的问题进行分析及给出解决的方法。

2.开发工具选择

以TEC-CA教学实验系统为平台,采用硬件描述语言VHDL为设计工具,应用QUARTUSⅡ5.1环境进行大规模集成电路的功能设计仿真。

3.设计方案选择

1)总线宽度:

该模拟机仅有一条总线,且总线宽度为8位。

2)寄存器:

所有的寄存器的位数均为8位:

1 通用寄存器R:

该模拟机有1个通用寄存器,用于寄存器寻址时存放结果,提供操作数。

2 指令寄存器IR:

为了提高取指令的速度,将指令从内存中读出,经数据总线直接置入IR。

3 数据寄存器MDR、地址寄存器MAR:

地址寄存器MAR提供访问主存的地址;数据寄存器MDR,把从内存取出的数据暂存于MDR中,在用到该数据进行运算时,再从MDR中取出数据进行运算。

4 程序计数器PC:

用于存放下一条指令的内存地址。

3)ALU可以实现8位操作数的运算,即ALU的位数为8位,ALU运算功能为:

加、减、逻辑与、逻辑或、条件转移

4)数据通路

 

4.指令系统设计

1)字长:

固定字长8位

2)指令格式:

操作码(3位)

标志位(1位)

地址码(4位)

3)操作码的位数:

3位,最多有8条指令

000

load

001

store

010

add

011

sub

100

and

101

or

110

bne

4)寻址方式:

直接寻址和寄存器间接寻址

load7:

将7单元的数据装入ACC寄存器中。

机器指令为00000111

store8:

将ACC寄存器中的数据存入8单元中。

机器指令为00101000

add9:

将ACC寄存器中的数据与9单元中的数据相加,结果存入ACC寄存器中。

机器指令为01001001

sub[R]:

将ACC寄存器中的数据与R寄存器中数据相减,结果存入ACC寄存器中。

and10:

将ACC寄存器中的数据与10单元中的数据相与,结果存入ACC寄存器中。

机器指令为10001010

or11:

将ACC寄存器中的数据与11单元中的数据相或,结果存入ACC寄存器中。

机器指令为10101011

ben12:

条件转移指令,如果Z_FLAG标志为0,则程序执行顺序发生转移,转向地址为12单元中的内容。

机器指令为11001100

对于双操作数指令,其中一个操作数为指令中指定的存储单元中的数据,另一操作数隐含为ACC。

5.模型机总体结构设计

 

6.指令流程设计

loadstoreadd

PC—>MARPC—>MARPC—>MAR

PC+1—>PCPC+1—>PCPC+1—>PC

M(MAR)—>MDRM(MAR)—>MDRM(MAR)—>MDR

MDR—>IRMDR—>IRMDR—>IR

IR中的地址码—>MARIR中的地址码—>MARIR中的地址码—>MAR

M(MAR)—>MDRACC—>MDRM(MAR)—>MDR

MDR—>ACCMDR—>M(MAR)MDR+ACC—>ACC

subandor

PC—>MARPC—>MARPC—>MAR

PC+1—>PCPC+1—>PCPC+1—>PC

M(MAR)—>MDRM(MAR)—>MDRM(MAR)—>MDR

MDR—>IRMDR—>IRMDR—>IR

IR中的地址码—>MARIR中的地址码—>MARIR中的地址码—>MAR

Ir_out(4)='1'

R→MARM(MAR)—>MDRM(MAR)—>MDR

M(MAR)—>MDRMDRandACC—>ACCMDRORACC—>ACC

ACC-MDR—>ACC

bne

PC—>MAR

PC+1—>PC

M(MAR)—>MDR

MDR—>IR

IR中的地址码—>MAR

M(MAR)—>MDR

Z_FLAG=0?

YES

MDR—>PC

7.微指令格式设计

微指令的格式:

操作控制字段

顺序控制字段

操作控制字段:

采用直接控制法,操作控制字段的位数与设计的微命令的个数一致。

15位

顺序控制字段:

决定如何产生下一条微指令的地址。

5位

如果微指令的执行是顺序执行,则顺序控制字段提供下一条微指令的地址;如果产生了分支,则顺序控制字段为标志,注意此标志所对应得微地址中不要存入微指令。

8.微程序流程设计

 

20

 

9.微程序的编写

微地址

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

0~4

r_bus

load_PC

ACC_bus

load_ACC

PC_bus

load_IR

load_MAR

MDR_bus

load_MDR

ALU_ACC

INC_PC

Addr_bus

cs

R_NW

ALU_and

ALU_or

ALU_add

ALU_sub

下地址

00

0

0

0

0

1

0

1

0

0

0

1

0

0

0

0

0

0

0

00001

01

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

00010

02

0

0

0

0

0

1

0

1

0

0

0

0

0

0

0

0

0

0

00011

03

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

11111

04

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

00000

05

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

00000

06

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

0

1

0

00000

07

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

10011

08

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

00100

09

0

0

1

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

00101

10

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

00110

11

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

11011

12

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

01111

13

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

10000

14

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

11110

15

0

0

0

0

0

0

0

1

0

1

0

0

0

0

1

0

0

0

00000

16

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

1

0

0

00000

17

0

1

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

00000

18

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

00000

19

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

0

0

1

00000

20

1

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

00111

各个控制信号:

控制信号

描述

ACC_bus

用ACC的内容驱动总线

load_ACC

将总线上的数据载入ACC

PC_bus

用PC的内容驱动总线

load_PC

将总线上的数据载入PC

load_IR

将总线上的数据装载至IR

load_MAR

将总线上的数据装载至MAR

MDR_bus

用MDR的内容驱动总线

load_MDR

将总线上的数据装载至MDR

ALU_ACC

用ALU的结果装载ACC

INC_PC

PC+1并将结果存至PC中

Addr_bus

用IR中指令的地址码部分驱动总线

CS

片选。

用MAR的内容设置存储器地址

R_NW

读取,不可写。

当R_NW无效且CS有效时,MDR的内容存储于存储器中

ALU_add

在ALU中执行加法操作

ALU_sub

在ALU中执行减法操作

ALU_and

在ALU中执行与操作

ALU_or

在ALU中执行或操作

R_bus

用R的内容驱动总线

9.VHDL实现

cpu_defs.vhd

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

PACKAGEcpu_defsIS

TYPEopcodeIS(load,store,add,sub,and0,or0,bne);

CONSTANTword

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

当前位置:首页 > 求职职场 > 面试

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

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