MIPS处理器设计说明要点.docx

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

MIPS处理器设计说明要点.docx

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

MIPS处理器设计说明要点.docx

MIPS处理器设计说明要点

西安邮电大学

实践课程报告书

课程名称:

计算机组成与实践

 

院(系)名称

电子工程学院

专业班级

**

学号/姓名

**

实习时间

2015年3月6日至2015年6月19日

1课程主要目的

本课程是在上学期《计算机组成与设计》课程学习的基础上,通过实践课的方式,依照集成电路设计流程,完成一个简单独立硬件功能电路模块的设计,从而到达对《计算机组成与设计》课程的深入理解和提高电路设计的实践能力,从理论和实验的结合中巩固计算机基本知识,熟练掌握电路设计的基本流程和原理,同时,加深对MIPS系统的组成部件及其电路结构,原理和功能的理解,掌握利用硬件描述语言和EDA工具进行MIPS设计的一般方法。

2课程的主要内容和任务

MIPS是典型的32位定长指令字RISC处理器,要求深入理解MIPS处理器的内部结构及工作原理。

采用verilogHDL设计一个兼容MIPS指令格式,具有10条以上指令功能的单周期CPU硬件电路,该32位MIPS设计内容主要包括系统中的基本组成部件(存储器,指令寄存器,寄存器堆,算术逻辑运算器,程序计数器,多路选择器,符号扩展等)的设计,仿真及硬件下载的方法和过程。

设计过程中使用ISE仿真工具完成设计电路的仿真验证。

3总体设计方案

3.1指令及其功能表:

(1)R型指令:

指令

指令格式

功能

op

rs

rt

rd

shame

func

add

000000

sj1

Sj2

jg

xx

100000

Jg=sj1+sj2

addu

000000

100001

Jg=sj1+sj2

sub

000000

100010

Jg=sj1-sj2

subu

000000

Sj1

Sj2

jg

xx

100011

Jg=sj1-sj2

or

000000

Sj1

Sj2

jg

xx

000010

Jg=sj1|sj2

and

000000

Sj1

xx

jg

xx

000011

Jg=sj1&sj2

sla

000000

Sj1

xx

jg

移位数

000100

Jg

lr

000000

sr

000000

(2)I型指令:

指令

指令格式

功能

op

rs

rt

Immediate

addi

001000

sj1

Sj2

Imm

Sj2=sj1+imm

addiu

001001

sj1

Sj2

Imm

Sj2=sj1+imm

andi

001100

sj1

Sj2

Imm

Sj2=sj1&imm

ori

001101

Sj1

Sj2

Imm

Jg=sj1|sj2

Lw

100011

base

rt

offset

offsetMemory[base+imm]

sw

101011

base

rt

offset

Memory[base+imm]offset

slti

001010

Sj1

Sj2

imm

sj1=Sj2

sltu

001011

sj1

Sj2

imm

Sj1=sj2

(3)J型指令:

指令

指令格式

功能

op

rs

rt

offset

Beq

000100

sj1

Sj2

offset

Ifsj1=sj2thenbranch

Bnq

000101

sj1

Sj2

offset

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

I

存储器片选信号,低有效

3

ExtMem_Adr[5:

0]

I

存储器地址线

4

ExtMem_WR

I

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

5

ExtMem_Din[31:

0]

I

存储器输入数据线

6

ExtMem32[31:

0]

O

存储器输出数据线

4.1.3模块仿真验证

4.2寄存器堆模块设计

4.2.1模块方案设计

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

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

4.2.2接口定义

序号

接口信号名称

方向

说明

1

clk

I

处理器工作时钟

2

rst

I

复位信号

3

Raddr1[4:

0]

I

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

4

Raddr2[4:

0]

I

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

5

Waddr[4:

0]

I

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

6

We

I

寄存器堆写使能

7

Wdata[31:

0]

I

待写入寄存器堆的数据

8

Rdata1[31:

0]

O

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

9

Rdata2[31:

0]

O

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

4.2.3模块仿真验证

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

4.3.1模块方案设计

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

4.3.2接口定义

序号

接口信号名称

方向(I/O)

说明

1

ALU_DA[31:

0]

I

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

2

ALU_DB[31:

0]

I

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

3

alu_clt[3:

0]

I

运算功能编码

4

alu_shift[4:

0]

I

偏移量

5

ALU_Zero

O

零标志位

6

Alu_Overflow

O

溢出标志位

7

ALU_Dout[31:

0]

O

运算结果输出位

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接口定义

序号

信号名

端口说明

描述

1

Imm16[15:

0]

I

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

2

AluSrc

I

立即数扩展信号的使能端

3

bus[31:

0]

I

4

ExtImm32[31:

0]

O

符号扩展后的32位立即数

4.4.3模块仿真验证

4.5主控制模块设计

4.5.1模块方案设计

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

4.5.2接口定义

序号

接口信号名称

方向(I/O)

说明

1

op

I

操作码

2

RegDst

O

目的寄存器选择

3

AluSrc

O

ALU输入信号选择

4

ExtOp

O

立即数扩展的使能信号

5

RegWr

O

寄存器写使能

6

MemWr,

O

存储器写使能

7

MemtoReg

O

寄存器的装载信号选择

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

op

000

000

001

000

001

001

001

100

001

101

100

011

101

011

001

010

001

011

000

100

000

101

RegDst

0

1

1

1

1

1

0

1

1

0

0

RegWr

1

1

1

1

1

1

0

1

1

0

0

ExtOp

0

1

0

0

0

1

1

1

0

1

1

AluSrc

0

1

1

1

1

1

1

1

1

0

0

MemWr

0

0

0

0

0

0

1

0

0

0

0

MemtoReg

0

0

0

0

0

1

0

0

0

0

0

4.5.4模块仿真验证

4.6ALU控制模块设计

4.6.1模块方案设计

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

4.6.2接口定义

序号

端口名称

输入输出

端口说明

1

rst

I

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

2

cpu_clk

I

时钟(上升沿有效)

3

func[5:

0]

I

功能区分

4

op

I

操作码

5

Alu_ctrl[3:

0]

O

Alu功能信号

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

func

Alu_ctrl

100000

0001

100001

0000

100010

0101

100011

0100

10

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

当前位置:首页 > 初中教育 > 数学

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

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