简单16位CPU的设计.docx

上传人:b****4 文档编号:12290862 上传时间:2023-04-17 格式:DOCX 页数:12 大小:514.42KB
下载 相关 举报
简单16位CPU的设计.docx_第1页
第1页 / 共12页
简单16位CPU的设计.docx_第2页
第2页 / 共12页
简单16位CPU的设计.docx_第3页
第3页 / 共12页
简单16位CPU的设计.docx_第4页
第4页 / 共12页
简单16位CPU的设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

简单16位CPU的设计.docx

《简单16位CPU的设计.docx》由会员分享,可在线阅读,更多相关《简单16位CPU的设计.docx(12页珍藏版)》请在冰豆网上搜索。

简单16位CPU的设计.docx

简单16位CPU的设计

简单16位CPU勺设计

简单CPU的设计

设计步骤:

1)确定CPU功能

2)拟定指令系统(采用MIPS

3)分析指令系统,为数据通路选择合适的组件,并给出组件所需的控制信号,连接组件建立数据通路

4)详细分析指令在多周期通路中的执行过程,给出指令执行的流程图

5)依据指令执行的流程图,分析控制信号的取值,生成相应的状态转换图

一、确定CPU功能

M[2]—M[0]+M[1]

RAM

90HI0

160H

2

拟定指令系统

OPQ

Rs

RD

Fun*1

4位

3筱|

3危

3位

3位2

1类型:

p

1512115

吃65

2

OP^

Rt*

Imm+:

4位

3社

3命

6位

65

R类型;卩

151211

J类型

OP

Target

4位12位

指令格式中的op(opcode)是指令操作码。

rs(registersource)是源操作数的寄存器号。

rd(registerdestination)是目的寄存器号。

rt(registertarget)即可作为源寄存器号,又可作为目的寄存器号,有具体的指令决定。

func(function)可被认为是扩展的操作码,Target表示一下个地址开始

注:

操作码4位,寄存器字段rs,rt,rd各三位,Fun功能字段3位,Imm立即值字段6位;一共8个寄存器,R0只读不可写,恒为

0。

R类型的指令

ADDRd,Rs,Rt

SUBRd,Rs,Rt

ANDRd,Rs,Rt

ORRd,Rs,Rt

XORRd,Rs,Rt

I类型的指令

LWRt,Rs,imm6

SWRt,Rs,imm6

指令

操作码OP

所属的指令

Fun

备注

格式

ADD

0000

R

001

R[rd]JR[rs]+R[rt]

无符号加法

SUB

0000

R

010

R[rd]JR[rs]-R[rt]无符号减法

AND

0000

R

011

R[rd]JR[rs]&R[rt]

逻辑与

OR

0000

R

100

R[rd]JR[rs]|R[rt]

逻辑或

XOR

0000

R

101

R[rd]JR[rs]®R[rt]

逻辑异或

LW

0001

I

R[rt]JM[R[rs]+lmm]主存中内容与入寄存器

SW

0010

I

M[R[rs]+lmm]JR[rt]

寄存器中内容回与到主存

存放在ROM中的汇编指令,完成M[2]JM[0]+M[1]

LWR1,0(RO);R1JM[R[0]+0],由于R(0)内容为0,艮卩R1J

M[0]

LWR2,1(RO);R1JM[R[0]+1],由于R(0)内容为0,艮卩R1J

M[1]

ADDR3,R1,R2;R3JR1+R2

SWR3,2(R0);M[R[0]+2]JR3

F面地址对应着rom模块里面

ROM地址

汇编指令

机器指令

0

LWR1,0(R0)

0001000001000000

1

LWR2,1(R0)

0001000010000001

2

ADDR3,R1,R2

0000001010011001

3

SWR3,2(R0)

0010000011000010

4

INCR4,R3

0000011010100111

5

SWR4,3(R0)

0010000100000011

6

ANDR5,R1,R2

0000001010101011

7

ORR6,R1,R2

0000001010110100

8

XORR7,R3,R4

0000011100111101

9

SWR5,4(R0)

0010000101000100

10

SWR6,5(R0)

0010000110000101

11

SWR7,6(R0)

0010000111000110

12

NOTR3,R1

0000001001011110

13

SUBR4,R1,R2

0000001010100010

14

BEQR1R2

0110001010000001

15

SWR3,7(R0)

0010000011000111

16

SWR4,8(R0)

0010000100001000

17

LWR1,2(R0)

0001000001000010

18

LWR2,3(R0)

0001000010000011

19

J

(2)

0011000000000001

LW表示读取数据,SW表示存储数据,BEQ表示相等就跳

转,J表示直接跳转到某个地址

三、根据指令的需求,连接组件,形成多周期的数据通路

诵码读RegI执IT.地址计氛:

访问TFWf器i

9EI

 

irwr,pcwr,regwr,aluoutregwr,memwr,lmdwr:

相应组件的写使能控制

信号,为1时,有效

Regdst:

为1时选择RD;为0时选择RT.

Signex:

为1时扩展器进行符号扩展;为0时扩展器进行零扩展。

Aluselb:

为1时选择暂存器B;为0时选择扩展器的输出端。

Alufunc:

0000与运算;0001或运算;0010异或;0011取反;0100加;

0101减

Memtoreg:

为1时选择LMD;为0时选择aluoutput

关键组件

1)寄存器及寄存器组

设计带复位(清零)、写使能控制功能的16位寄存器(PC),当复位信号为1时,寄存器输出0,否则,在时钟下降沿且写使能信号有效时将输入数据传送至输出端。

设计带写使能控制功能的16位寄存器(ALUO、LMD),在时钟下降沿且写使能信号有效时将输入数据传送至输出端。

设计暂存器(暂存器A、B),在时钟下降沿将输入数据传送至输出端。

设计指令寄存器(IR),在时钟下降沿且写使能信号有效时将

输入指令传送至输出端,并且分解出指令的op、rs、rt、rd、func、imm字段。

设计由8个寄存器构成的16位通用寄存器组。

通用寄存器组有两个读口,ReadOne和ReadTwo分别读出由RegOne和regTwo指定编号的寄存器中的信息,读操作属于组合逻辑操作,不需时钟控制;有一个写口,WriteData上的信息写入

由WriteReg指定编号的寄存器中,写操作属于时序逻辑操作,需要clk时钟信号的控制,在WriteEnable为1的情况下,clk下降沿完成信息的写入。

2)RAM及ROM

设计存储容量为64X16的RAM

写操作为时序逻辑操作,当时钟clock下降沿到来且wren=1的情

况下,data开始写入由address指定的存储单元中;读操作为组合

逻辑操作,address有效后,q输出address指定的存储单元的内容

定制初始化数据文件,建立MemoryInitializationFile(.mif)文件,选择FilefNew命令,并在New窗口选择Otherfile选项,再选择MemoryInitializationFile选项。

出现如图1所示的窗口,指定存储容量,字的个数输入64,字长输入

16。

之后,出现如图2所示的窗口,向存储单元中输入初始化数据,选择地址及存储内容采用16进制。

输入数据后保存文件,文件名ram1.mif。

初始化0单元数据为90H,1单元数据为60H。

数据窗口

设计存储容量为64X16的ROM

'fram

P——

•iddreBsfB..OJq[l5..Dj

■■E

-inst

■1

L..phi*1M・

■■■iiKiBr,iaivB,avriati■■a・・・nm・・t・・・ia・・・

Q输出由

ROM为只读存储器,读操作为组合逻辑操作,

ADDRESS指定的存储单元的内容。

3)ALU

设计具有下列功能的16位ALU

功能选择输入func[3..O]

操作

0000

gAandb

0001

cJAorb

0010

kAxorb

0011

cjNota

0100

cjA+b

0101

cja-b

0110

Ifa

其它

cja

 

ALU的元件图符

4)指令执行流程图

5)状态转换图

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

当前位置:首页 > PPT模板 > 动态背景

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

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