MIPS处理器设计说明要点Word格式文档下载.docx

上传人:b****4 文档编号:14377613 上传时间:2022-10-22 格式:DOCX 页数:20 大小:470.65KB
下载 相关 举报
MIPS处理器设计说明要点Word格式文档下载.docx_第1页
第1页 / 共20页
MIPS处理器设计说明要点Word格式文档下载.docx_第2页
第2页 / 共20页
MIPS处理器设计说明要点Word格式文档下载.docx_第3页
第3页 / 共20页
MIPS处理器设计说明要点Word格式文档下载.docx_第4页
第4页 / 共20页
MIPS处理器设计说明要点Word格式文档下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

MIPS处理器设计说明要点Word格式文档下载.docx

《MIPS处理器设计说明要点Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MIPS处理器设计说明要点Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。

MIPS处理器设计说明要点Word格式文档下载.docx

op

rs

rt

rd

shame

func

add

000000

sj1

Sj2

jg

xx

100000

Jg=sj1+sj2

addu

100001

sub

100010

Jg=sj1-sj2

subu

Sj1

100011

or

000010

Jg=sj1|sj2

and

000011

Jg=sj1&

sj2

sla

移位数

000100

Jg<

sj

lr

sr

(2)I型指令:

Immediate

addi

001000

Imm

Sj2=sj1+imm

addiu

001001

andi

001100

Sj2=sj1&

imm

ori

001101

Lw

base

offset

offsetMemory[base+imm]

sw

101011

Memory[base+imm]offset

slti

001010

sj1=Sj2<

sltu

001011

Sj1=sj2<

(3)J型指令:

Beq

Ifsj1=sj2thenbranch

Bnq

000101

Ifsj1≠sj2thenbranch

3.2总体结构设计:

该MIPS主要由8个模块组成,各个子模块分别设计其特定的功能,最终利用一个总的模块进行子模块间连接,使得整个CPU能连贯执行指令,在仿真结果中观察设计结果,最终进行硬件下载,验证设计。

其中各个模块简单功能如下:

(1)存储器模块:

具备基本的读写功能,用于存放数据和指令。

(2)寄存器堆模块:

由32个32位的寄存器组成,提供较大的存储空间,用于存放暂存数据和指令。

(3)算术逻辑运算器模块:

执行加减法等算术运算,与非或等逻辑运算,以及比较移位传送等操作的功能部件,是该CPU的设计核心部分,存在不同的运算处理功能,是体现实验设计结果正确性的模块。

(4)立即数扩展模块:

执行I型指令时需要立即数扩展,该模块用于MIPS符号扩展,将16位数据扩展为32位数据。

(5)主控制模块:

用于控制各个模块之间的分工运行,产生不同数据通路的控制信号,保证指令顺序执行不发生紊乱。

(6)ALU控制模块:

用于生成ALU执行各种功能的控制信号,使ALU内部运行不发生紊乱。

(7)分支跳转指令控制模块:

用于生成分支和跳转指令的控制信号。

(8)取指模块:

进行指令的取出及译码,同时包括程序计数器PC运行设计。

各模块间关系如下:

3.3接口定义和接口时序

说明:

该CPU由cpu_clk和进行总的控制,并且输出程序计数器低4位进行简易流水灯显示,CPU运行的结果包括逻辑运算等在仿真界面中进行分析和设计验证。

cpu_clk上升沿有效

rst位低电平时复位有效

4子模块详细设计

4.1存储器模块设计

4.1.1模块方案设计

指令存储器用于存放CPU运算的程序指令和数据等,采用单端口存储器设计,设计最大为64个存储单元,每个存储单元数据宽度为32bit。

4.1.2接口定义

序号

接口信号名称

方向(I/O)

说明

1

clk

I

存储器工作时钟,频率为50Mhz

2

rst

存储器片选信号,低有效

3

ExtMem_Adr[5:

0]

存储器地址线

4

ExtMem_WR

存储器读写信号,1为写反之读

5

ExtMem_Din[31:

存储器输入数据线

6

ExtMem32[31:

O

存储器输出数据线

4.1.3模块仿真验证

4.2寄存器堆模块设计

4.2.1模块方案设计

该MIPS指令格式中的寄存器号是5bits,指令可以访问32个32位的寄存器。

这32个32位的寄存器构成一个寄存器堆。

4.2.2接口定义

方向

处理器工作时钟

复位信号

Raddr1[4:

读寄存器堆时的第1个寄存器下标

Raddr2[4:

读寄存器堆时的第2个寄存器下标

Waddr[4:

写寄存器堆时的寄存器下标

We

寄存器堆写使能

7

Wdata[31:

待写入寄存器堆的数据

8

Rdata1[31:

读寄存器堆时第1个寄存器的输出

9

Rdata2[31:

读寄存器堆时第2个寄存器的输出

4.2.3模块仿真验证

4.3算术逻辑运算器模块设计

4.3.1模块方案设计

运用alu_clt控制运算器的各种运算,包括无符号数的加法运算,有符号数的加法运算,或逻辑运算,与逻辑运算,无符号数的减法运算,无符号小于置1运算,逻辑左移,逻辑右移,算术右移等。

4.3.2接口定义

1

ALU_DA[31:

参与运算的第一个输入数据

2

ALU_DB[31:

参与运算的第二个输入数据

3

alu_clt[3:

运算功能编码

4

alu_shift[4:

偏移量

5

ALU_Zero

零标志位

6

Alu_Overflow

溢出标志位

7

ALU_Dout[31:

运算结果输出位

4.3.3关键控制信号的产生

SUBctr=alu_clt[2];

ANDctr=alu_clt[0];

OVctr=!

alu_clt[1]&

alu_clt[0];

SIGctr=alu_clt[0];

OPctr[1]=alu_clt[2]&

alu_clt[1]|alu_clt[3];

OPctr[0]=alu_clt[1];

4.3.4具体ALU实现如下图所示:

4.3.5模块仿真验证

4.4立即数扩展模块设计

4.4.1模块方案设计

设计一个32位MIPS符号扩展单元SE,用于将16位的数据转换为32位数据。

4.4.2接口定义

信号名

端口说明

描述

Imm16[15:

来自指令寄存器的16位立即数

AluSrc

立即数扩展信号的使能端

bus[31:

ExtImm32[31:

符号扩展后的32位立即数

4.4.3模块仿真验证

4.5主控制模块设计

4.5.1模块方案设计

以指令译码结果中的6位操作码及相关信号产生整个数据通路中的各个控制信号。

4.5.2接口定义

操作码

RegDst

目的寄存器选择

ALU输入信号选择

ExtOp

立即数扩展的使能信号

RegWr

寄存器写使能

MemWr,

存储器写使能

MemtoReg

寄存器的装载信号选择

4.5.3各控制信号的编码规则如下表所示:

000

001

100

101

011

010

MemWr

4.5.4模块仿真验证

4.6ALU控制模块设计

4.6.1模块方案设计

通过译码结果中的高6位以及相关信号编码出数据通路中各个控制信号。

4.6.2接口定义

端口名称

输入输出

复位信号(高电平1有效)

cpu_clk

时钟(上升沿有效)

func[5:

功能区分

Alu_ctrl[3:

Alu功能信号

4.6.3执行R型指令func对应的Alu_ctrl编码如下表所示:

Alu_ctrl

0001

0000

0101

0100

10

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

当前位置:首页 > 人文社科 > 军事政治

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

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