(完整版)MIPS处理器设计说明

文章描述:-2022年4月14日发(作者:段文杰)西安邮电大学实践课程报告书课程名称:院(系)名称专业班级学号/姓名实习时间计算机组成与实践电子工程学院****2015年3月6日至2015年6月19日::::1课程主要目的本课程是在上学期《计算机组成与设计》课程学习的基础上,通过实践课的方式,依照集成电路设计流程,完成一个简单独立硬件功能电路模块的设计,从而到达对《计算机组成与设计》课程的深入理解和提高电路

-

(完整版)MIPS处理器设计说明
2022年4月14日发
(作者:段文杰)

西安邮电大学

实践课程报告书

课程名称:

院(系)名称

专业班级

学号/姓名

实习时间计算机组成与实践电子工程学院

**

**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型指令:

指令

add

addu

sub

subu

or

and

sla

lr

sr

(2)I型指令:

指令

addi

addiu

指令格式

op

000000

000000

000000

000000

000000

000000

000000

000000

000000

rs

sj1

Sj1

Sj1

Sj1

Sj1

rt

Sj2

Sj2

Sj2

xx

xx

rd

jg

jg

jg

jg

jg

shame

xx

xx

xx

xx

移位数

func

100000

100001

100010

100011

000010

000011

000100

功能

Jg=sj1+sj2

Jg=sj1+sj2

Jg=sj1-sj2

Jg=sj1-sj2

Jg=sj1|sj2

Jg=sj1&sj2

Jg

指令格式

op

001000

001001

rs

sj1

sj1

rt

Sj2

Sj2

Immediate

Imm

Imm

功能

Sj2=sj1+imm

Sj2=sj1+imm

andi

ori

Lw

sw

slti

sltu

001100

001101

100011

101011

001010

001011

sj1

Sj1

base

base

Sj1

sj1

Sj2

Sj2

rt

rt

Sj2

Sj2

Imm

Imm

offset

offset

imm

imm

Sj2=sj1&imm

Jg=sj1|sj2

offsetMemory[base+imm]

Memory[base+imm]offset

sj1=Sj2

Sj1=sj2

(3)J型指令:

指令

Beq

Bnq

3.2总体结构设计:该MIPS主要由8个模块组成,各个子模块分别设计其特定的功能,最终利用一个总

的模块进行子模块间连接,使得整个CPU能连贯执行指令,在仿真结果中观察设计结果,

最终进行硬件下载,验证设计。其中各个模块简单功能如下:(1)存储器模块:具备基本的读写功能,用于存放数据和指令。

(2)寄存器堆模块:由32个32位的寄存器组成,提供较大的存储空间,用于存放

暂存数据和指令。

(3)算术逻辑运算器模块:执行加减法等算术运算,与非或等逻辑运算,以及比较

移位传送等操作的功能部件,是该CPU的设计核心部分,存在不同的运算处理功能,是体

现实验设计结果正确性的模块。

(4)立即数扩展模块:执行I型指令时需要立即数扩展,该模块用于MIPS符号扩展,

将16位数据扩展为32位数据。

(5)主控制模块:用于控制各个模块之间的分工运行,产生不同数据通路的控制信

号,保证指令顺序执行不发生紊乱。

(6)ALU控制模块:用于生成ALU执行各种功能的控制信号,使ALU内部运行不

发生紊乱。。

(7)分支跳转指令控制模块:用于生成分支和跳转指令的控制信号。

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

各模块间关系如下:

指令格式

op

000100

000101

rs

sj1

sj1

rt

Sj2

Sj2

offset

offset

offset

功能

Ifsj1=sj2thenbranch

Ifsj1≠sj2thenbranch

MIPS(顶层)

存储器

模块

寄存器

堆模块

立即数

扩展模

主控制

模块

取指模

ALU控

制模块

分支跳

转指令

控制模

算术逻

辑运算

器模块

程序计数器模块

3.3接口定义和接口时序

译码模块

取指模块

cpu_clk

Out[3:0]

MIPS

rst

说明:该CPU由cpu_clk和进行总的控制,并且输出程序计数器低4位进行简易流水

灯显示,CPU运行的结果包括逻辑运算等在仿真界面中进行分析和设计验证。

cpu_clk上升沿有效

rst位低电平时复位有效

4子模块详细设计

4.1存储器模块设计4.1.1模块方案设计

指令存储器用于存放CPU运算的程序指令和数据等,采用单端口存储器

设计,设计最大为64个存储单元,每个存储单元数据宽度为32bit。4.1.2接口定义

序号

1

2

3

4

5

64.1.3模块仿真验证

接口信号名称

clk

rst

ExtMem_Adr[5:0]

ExtMem_WR

ExtMem_Din[31:0]

ExtMem32[31:0]

方向(I/O)

I

I

I

I

I

O

说明

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

存储器片选信号,低有效

存储器地址线

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

存储器输入数据线

存储器输出数据线

4.2寄存器堆模块设计4.2.1模块方案设计

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

存器。这32

个32位的寄存器构成一个寄存器堆。4.2.2接口定义

序号

1

2

3

4

5

6

接口信号名称

c

lk

rst

Raddr1[4:0]

Raddr2[4:0]

Waddr[4:0]

We

方向

I

I

I

I

I

I

说明

处理器工作时钟

复位信号

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

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

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

寄存器堆写使能

7

8

9

Wdata[31:0]

Rdata1[31:0]

Rdata2[31:0]

I

O

O

待写入寄存器堆的数据

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

读寄存器堆时第2个寄存器的输出4.2.3模块仿真验证

4.3算术逻辑运算器模块设计4.3.1模块方案设计运用alu_clt控制运算器的各种运算,包括无符号数的加法运算,有符号数

的加法运算,或逻辑运算,与逻辑运算,无符号数的减法运算,无符号小于

置1运算,逻辑左移,逻辑右移,算术右移等。4.3.2接口定义

序号

1

2

3

4

5

6

74.3.3关键控制信号的产生

SUBctr=alu_clt[2];

ADctr=alu_clt[0];

OVctr=!alu_clt[1]&alu_clt[0];

接口信号名称

ALU_DA[31:0]

ALU_DB[31:0]

alu_clt[3:0]

alu_shift[4:0]

ALU_Zero

Alu_Overflow

ALU_Dout[31:0]

方向(I/O)

I

I

I

I

O

O

O

说明

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

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

运算功能编码

偏移量

零标志位

溢出标志位

运算结果输出位

SIGctr=alu_clt[0];

OPctr[1]=alu_clt[2]&alu_clt[1]|alu_clt[3];

OPctr[0]=alu_clt[1];

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

Cin

异或门

Zero

Add_carry

Overflow

加减法运算器

Add_Overflow

Add_Sign

Add_Result

异或门阵列

异或门

位扩展

或门阵列

0

1

2

0

1

0

O

1

Result

1

ALU_DA[31:0]ALU_DB[31:0]

SUBctr

OPctrOVctrSIGctr

ALU

操作控制信号4.3.5模块仿真验证4.4立即数扩展模块设计4.4.1模块方案设计

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

序号

1

2

3

44.4.3模块仿真验证

信号名

Imm16[15:0]

AluSrc

bus[31:0]

ExtImm32[31:0]

端口说明

I

I

I

O

描述

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

立即数扩展信号的使能端

符号扩展后的32位立即数4.5主控制模块设计4.5.1模块方案设计

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

控制信号。4.5.2接口定义

序号

1

2

3

4

5

6

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

op000

000

RegDst

RegWr

接口信号名称

op

RegDst

AluSrc

ExtOp

RegWr

MemWr,

MemtoReg

I

方向(I/O)

操作码

O

O

O

O

O

O

说明

目的寄存器选择

ALU输入信号选择

立即数扩展的使能信号

寄存器写使能

存储器写使能

寄存器的装载信号选择

001

000

1

1

001

001

1

1

001

100

1

1

001

101

1

1

100

011

1

1

101

011

0

0

001

010

1

1

001

011

1

1

000

100

0

0

000

101

0

0

0

1

ExtOp

AluSrc

MemWr

MemtoReg

0

0

0

0

1

1

0

0

0

1

0

0

0

1

0

0

0

1

0

0

1

1

0

1

1

1

1

0

1

1

0

0

0

1

0

0

1

0

0

0

1

0

0

04.5.4模块仿真验证

4.6

ALU控制模块设计4.6.1模块方案设计通过译码结果中的高6位以及相关信号编码出数据通路中各个控制信号。4.6.2接口定义

序号端口名称输入输出端口说明

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

时钟(上升沿有效)

功能区分

操作码

Alu功能信号

1

2

3

4

5

rst

cpu_clk

func[5:0]

op

Alu_ctrl[3:0]

I

I

I

I

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

func

100000

100001

100010

100011

Alu_ctrl

0001

0000

0101

0100

100100

100101

101011

101010

000000

000010

000011

0010004.6.4模块仿真验证

0100

0011

0110

0111

1001

1001

1100

0000

4.7分支跳转指令控制模块设计4.7.1模块方案设计运用译码结果的高6位以及ALU的两个输入数据决定分支及分支和跳转

指令的控制信号。4.7.2接口定义

序号

1

2

3

4

5

64.7.3模块仿真验证

信号名

ALU_DA

ALU_DB

op

func,

Jump

Branch

端口定义

I

I

I

I

O

O

描述

算术逻辑单元数据A

算术逻辑单元数据B

指令操作码

R指令的功能操作码

跳转信号使能端

分支信号使能端

4.8取指模块设计4.8.1模块方案设计由程序计数器,取出指令以及译码三个子模块构成总的取指模块。4.8.2接口定义

序号

1

2

3

4

5

6

7

8

9

10

11

12

13

144.8.3电路基本构成如下图所示:

信号名

clk

rst

ALU_DA

Branch

Jump

op

rs

rt

rd

func

shamt

imm16

ALU_DB

Pc_out

方向(I/O)

端口说明

算术逻辑单元数据A

分支信号使能端

跳转信号使能端

指令操作码

R指令的功能操作码

偏移量

立即数

算术逻辑单元数据B

程序计数器输出

clk

rst

Jump

Branch

ALU_DA

ALU_DB

Pc_out

32

instruct

op[5:0]

rs[4:0]

rt[4:0]

rd[4:0]

func[5:0]

shamt[4:0]

Imm16[15:0]

PC

Fetch

32

decode

4.8.4跳转和分支指令执行时PC_out的编码规律

Jump:Pc_out<=ALU_DA

Branch:Pc_out<=Pc_out+1+ALU_DB

正常情况下:Pc_out<=Pc_out+14.8.5模块仿真验证

5设计总体连接及仿真验证

5.1设计总体连线

op

PC

ALU_DA

ALU_DB

Jump

Branch

rs

rt

rd

RegDst

AluSrc

ExtOp

RegWr

MemWr

MemtoReg

Fetch

Decode

shamt

func

imm16

Pc_out

Main_c

tr

Aluctr

Flag

ExtMem_dout

ALU_ctr

ALUctr

Mem

clk

rst

We

Raddr1[4:0]

Raddr2[4:0]

Waddr[4:0]

Wdata[31:0]

Rdata1[31:0]

Regfile

Rdata2[31:0]

ALU_DA

zero

overflow

ALU_DC

ALU_DB

Imm

rst

1

0

1

0

5.2在ISE仿真环境下仿真验证设计结果,仿真结果如下图所示:

5.3仿真结果分析由仿真结果得知该CPU执行的12条指令均正常运行,实验基本成功,但是设

计较为简单,并未涵盖太多复杂指令,需要进一步改善,使其趋于完善。

6、实践课总结和心得体会

西安邮电大学电子工程学院计算机组成与实践实践课程过程考核表

学生姓名

承担任务实验室

实施时间

**

微电子实验室

班级/学号

所在部门

**

微电子学系

2015年3月6日—2015年6月19日

实践课程:时间安排、具体内容及成绩考核

实施时间

第1周

第2~3周

具体内容安排

1、实践课程讲解,任务要求说明,学习和实践内容安排

2、兼容MIPS格式指令系统设计

1、指令存储器设计,寄存器堆设计

1、ALU设计——基本算术、逻辑单元的设计

考核结果

第4~6周32位超前进位加法器的设计32位桶式移位寄存器的设计

1、取指令部件的设计

2、立即数处理单元设计

1、单周期处理器设计——R型指令的数据通路设计

I型指令的数据通路设计

第7~8周

第9~11周

Load/Store指令的数据通路设计

分支指令/转移指令的数据通路设计综合12条指令的完整数据通路设计

1、ALU控制单元设计,主控制单元的设计

第12周

第13~14周

第14~15周

第16周

1、单周期处理器总体连接

1、单周期处理器总体仿真验证

课程考核验收

学习态度□认真□一般□不认真

□全勤□偶尔缺勤□经常缺勤

□很强□一般□较差

指导教师

学习纪律

对学生的评价

实践能力

指导教师对学生

专业知识或社会

实践能力等情况

的意见指导教师签字:年月日

西安邮电大学电子工程学院计算机组成与实践实践课程成绩鉴定表

学生姓名

进行时间

**

班级/学号

**

2015年3月6日—2015年6月19日

与教学任务计划结合程度(10分)

学习内容

(20分)

与专业培养结合程度(6分)

其它(4分)

接受单位

评价

实践能力(10分)

学习态度(6分)

学习纪律(4分)

报告内容与实践过程紧密结合(15分)

报告鉴定

(60分)

报告内容与教学计划内容紧密结合(15分)

报告质量(主题、结构、观点、逻辑、资料、字数30

分)

成绩鉴定

(20分)

指导教师姓名孟李林职称教授成绩

评语

指导教师签字:年月日

-

(完整版)MIPS处理器设计说明

发布时间:2022-04-14 09:52:22
文章版权声明:除非注明,否则均为IT技术网-学习WEB前端开发等IT技术的网络平台原创文章,转载或复制请以超链接形式并注明出处。

发表评论

评论列表 (有 9 条评论,970人围观)
薛城房屋出租V铁粉11 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
采用verilogHDL设计一个兼容MIPS指令格式
南京ktvV铁粉13 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
同时
失业金V铁粉29 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
要求深入理解MIPS处理器的内部结构及工作原理
梦见怀孕V铁粉23 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
掌握利用硬件描述语言和EDA工具进行MIPS设计的一般方法
青春痘图片V铁粉12 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
原理和功能的理解
购房贷款V铁粉3 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
该32位MIPS设计内容主要包括系统中的基本组成部件(存储器
姥说V铁粉24 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
符号扩展等)的设计
et下载V铁粉20 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
同时

最近发表

随便看看

热门文章

标签列表