湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告.docx

上传人:b****5 文档编号:7400127 上传时间:2023-01-23 格式:DOCX 页数:15 大小:506.52KB
下载 相关 举报
湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告.docx_第1页
第1页 / 共15页
湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告.docx_第2页
第2页 / 共15页
湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告.docx_第3页
第3页 / 共15页
湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告.docx_第4页
第4页 / 共15页
湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告.docx

《湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告.docx》由会员分享,可在线阅读,更多相关《湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告.docx

湘潭大学计算机原理实验三多周期MIPSCPU的控制部件实验报告

 

计算机原理与设计

实验报告

 

实验三多周期MIPSCPU的控制部件

用有限状态机实现多周期CPU的控制部件

 

姓名:

XXX

学号:

2013551728

班级:

13级软件工程2班

实验日期:

2014年11月12日

实验地点

信息楼605

硬件环境

Intel(R)Core™i3-3240,1.91GB

系统环境

WindowsXPSP3

设计软件

QuartusII13.0

器件型号

EP1C12QC240C8

一.实验目的

1、了解MIPS—CPU控制器的功能和工作原理;

2、掌握用有限状态机技术实现多周期控制器的方法;

3、熟练掌握用VerilogHDL语言设计多周期控制器的方法;

4、熟练掌握对多周期控制器的仿真实验验证和硬件测试两种调试方法;

5、掌握向MIPS-CPU顶层数据通路中增加控制单元的方法,并通过仿真验证和硬件测试两种方法对电路进行故障定位的调试技术。

二.实验内容

(1)MIPS—CPU控制器的有限状态机设计,根据MIPS—CPU各种类型指令执行要求和有限状态机的设计原理,将多周期控制器的指令执行划分为多个状态,确定每一种指令的有限状态机,最后归纳为完整的多周期控制器有限状态机。

通过VerilogHDL语言实现多周期控制器有限状态机。

(2)根据MIPS—CPU控制器的接口要求,在有限状态机的基础上,用VerilogHDL实现完整的MIPS—CPU控制器的设计,并根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;

(3)设计控制器的硬件下载测试方案。

将编译通过的电路下载到实验台中。

根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序重新编译;最终完成控制器的硬件电路设计;

(4)在MIPS—CPU指令系统的数据通路基础上,增加控制单元电路,并进行编译,仿真波形和调试。

根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;

(5)对增加了控制单元的顶层数据通路设计硬件下载测试方案。

将编译通过的电路下载到实验台中。

根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;最终完成增加了控制单元的顶层数据通路设计。

三.实验原理与步骤

1.把指令执行分成多个阶段,每个阶段在一个时钟周期内完成

(1).时钟周期以最复杂阶段所花时间为准

(2).尽量分成大致相等的若干阶段

(3).每个阶段内最多只能完成:

1次访存或1次寄存器堆读/写或1次ALU

2.每步都设置相应的存储元件,执行结果都在下个时钟开始保存到相应单元

3.认真阅读书上的控制部件代码后,将其按照电路图进行拆分,拆分为三个部件,并在顶层模块中连接线路。

四.实验源代码

D触发器源代码:

下一状态部件源代码:

 

输出函数部件源代码:

五.EDA阶段的实验结果(“编译”、“仿真”等)

仿真结果如上图。

六.实验电路结构图

七.实验按键显示说明及引脚分配

1、本实验按键及显示说明

(1)按键说明

按键

对应功能

键1

op

键2

op

键3

func

键4

func

键7

clk

键8

clrn

(2)显示说明

数码编号

对应结果

数码1

aluc

数码2

aluscrb

数码3

pcsource[1..0]

数码4

jalregretm2reg

D1

wreg

D2

sext

D3

shift

D4

selpc

D5

wmem

D6

iord

D7

wir

D8

wpc

引脚分配表:

NodeName

Location

op[5]

PIN_238

op[4]

PIN_237

op[3]

PIN_236

op[2]

PIN_235

op[1]

PIN_234

op[0]

PIN_233

func[5]

PIN_7

func[4]

PIN_6

func[3]

PIN_4

func[2]

PIN_3

func[1]

PIN_2

func[0]

PIN_1

z

PIN_12

clrn

PIN_173

clk

PIN_169

wpc

PIN_160

wir

PIN_159

iord

PIN_158

wmem

PIN_141

selpc

PIN_140

shift

PIN_139

sext

PIN_138

wreg

PIN_137

aluc[3]

PIN_136

aluc[2]

PIN_135

aluc[1]

PIN_134

aluc[0]

PIN_133

alusrcb[0]

PIN_21

alusrcb[1]

PIN_41

pcsource[1]

PIN_18

pcsource[0]

PIN_17

m2reg

PIN_15

regrt

PIN_14

jal

PIN_13

八.测试时的电路总体结构及其说明

多周期CPU控制部件的状态转移图

多周期CPU控制部件的电路结构图

 

实验电路图

九.测试计划(包括计划进行的系统测试、每一测试的测试过程、测试所需的测试数据、预期结果数据等)及其相关说明

下一状态函数的真值表

实验结果如下:

输入

输出

op[5..0]

func5..0[]

状态

指令

Z

wpc

Pcsource[1:

0]

wir

iord

wmem

aluc[3:

0]

selpc

shift

alusrcb[1:

0]

sext

wreg

m2reg

regrt

jal

X

X

sif

x

X

1

00

0

0

0

X000

1

0

01

1

0

0

0

0

000011

X

sid

i_j

X

1

11

0

0

0

X000

1

0

00

1

0

0

0

0

000011

X

i_jal

X

1

11

1

0

0

X000

1

0

01

1

1

0

0

1

000000

001000

i_jr

X

1

10

0

0

0

X000

0

0

00

1

0

0

0

0

X

X

i-others

X

0

00

0

0

0

X000

1

0

01

1

0

0

0

0

000000

X

sexe

i_add

X

0

xx

0

x

0

X000

0

0

00

x

0

x

x

0

000000

X

i_sub

X

0

00

0

0

0

X100

0

0

00

1

0

0

0

0

000000

100000

i_and

X

0

00

0

0

0

X001

0

0

00

1

0

0

0

0

000000

100010

i_or

X

0

00

0

0

0

X101

0

0

00

1

0

0

0

0

000000

100100

i_xor

X

0

00

0

0

0

X010

0

0

00

1

0

0

0

0

000000

100110

i_sll

X

0

00

0

0

0

X011

0

1

00

1

0

0

0

0

000000

000000

i_srl

X

0

00

0

0

0

X111

0

1

00

1

0

0

0

0

000000

000011

i_sra

X

0

00

0

0

0

1111

0

1

01

1

0

0

0

0

001000

X

i_addi

X

0

00

1

0

0

X000

0

0

10

1

0

0

0

0

001100

X

i_andi

X

1

00

0

0

0

X001

1

0

10

0

0

0

0

0

001101

X

i_ori

X

0

00

0

0

0

X101

0

0

10

0

0

0

0

0

001110

X

i_xori

X

0

00

0

0

0

X010

0

0

10

0

0

0

0

0

100011

X

i_lw

X

0

00

0

0

0

X000

0

0

10

1

0

0

0

0

101011

X

i_sw

X

0

00

0

0

0

X000

0

0

10

1

0

0

0

0

000100

X

i_beq

0

0

00

0

0

0

X000

0

0

10

1

0

0

0

0

1

0

0

000101

X

i_bne

0

0

01

0

0

0

X010

0

0

00

1

0

0

0

0

1

1

0

001111

000000

i_lui

X

0

00

0

0

0

X110

0

0

00

1

0

0

0

0

100011

X

smem

i_lw

X

0

00

0

1

0

X000

0

0

00

1

0

0

0

0

101011

X

i_sw

X

0

00

0

1

0

X000

0

0

00

1

0

0

0

0

swb

r_type

X

001000

X

i_addi

X

1

00

1

0

0

X000

1

0

01

1

0

0

0

0

001101

X

i_ori

X

1

00

1

0

0

X000

1

0

01

1

0

0

0

0

001111

000000

i_lui

X

1

00

1

0

0

X000

1

0

01

1

0

0

0

0

100011

X

i_lw

X

0

00

0

0

0

X000

0

0

00

1

1

1

1

0

与预期实验结果相符。

十.关于实验电路设计的其他说明

q(state)值暂未进行输出。

十一.实验心得

这次实验将控制部件拆分花费了大量的时间,也使得我对于Verilog语言加深了理解和掌握。

对cpu的控制部件的结构和原理进行了深入的了解,对以后的学习起到了重要的作用。

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

当前位置:首页 > 高等教育 > 理学

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

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