云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 多周期MIPS CPU实验报告

多周期MIPS CPU实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/7/4 19:25:42

组成原理实验报告

【实验名称】多周期MIPS CPU设计 【实验目的】

1.学习如何使用ISE的IP核

2.学习使用Xilinx FPGA内的RAM资源 3.熟悉mips指令集

4.掌握多周期mips CPU的原理。 5.多周期状态机的编写。

【实验内容】

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

设计CPU,完成以下程序代码的执行,其功能是起始数为3和3的斐波拉契数列的计算。只计算20个数。

.data

fibs: .word 0 : 20 # \ 20 words to contain fib values size: .word 20 # size of \ temp: .word 3 3 .text

la $t0, fibs # load address of array la $t5, size # load address of size variable lw $t5, 0($t5) # load array size la $t3, temp lw $t3, 0($t3) la $t4, temp lw $t4, 4($t4)

sw $t3, 0($t0) # F[0] = $t3 sw $t4, 4($t0) # F[1] = $t4

addi $t1, $t5, -2 # Counter for loop, will execute (size-2) times loop: lw $t3, 0($t0) # Get value from array F[n] lw $t4, 4($t0) # Get value from array F[n+1] add $t2, $t3, $t4 # $t2 = F[n] + F[n+1]

sw $t2, 8($t0) # Store F[n+2] = F[n] + F[n+1] in array addi $t0, $t0, 4 # increment address of Fib. number source addi $t1, $t1, -1 # decrement loop counter bgtz $t1, loop # repeat if not finished yet. out: j out

# load

? ?

?

实验设计中可以不使用给定的数据通路和状态机,但仅允许使用一个存储器。 对指令/数据存储器的附加要求:

? 使用异步存储器,最高评分为√√

? 使用同步存储器,最高评分为√√√,使用同步存储器时,需要对数据通路

和状态机进行适当修改。

需要例化一个mem,代码段和数据段首地址自行指定。

【实验要求】

? 仿真查看数据ram 内容是否正确 ? 检查仿真执行状态等

? 检查代码设计,代码是否独立完成

【实验操作及结果】

按照所给ppt上的数据通路完成连线,并对jump进行针对性改进,完成连线设计。 图中的每个块为一个模块。

实验中控制电路部分主要用三段式状态机的方式对控制信号进行赋值,其中每个一个周期。

PPT所给电路图为异步实现方式,现将其改为同步实现方式,只需在s0和s1之间加入一个状态,取名为s12。再在外部电路连线中将输出为data的那个CLK模块删除掉即可改为同步实现方式。

【仿真结果】DataandInstrMem中结果符合要求。

仿真图

【附:源代码】

`timescale1ns/1ps

module Top( input clk,reset, output[31:0]PC,Instr );

wire[31:0]PC1,Adr;

wire[31:0]Data,RD1,RD2,A,B,SrcA,SrcB,ALUResult,ALUOut,SignImm,WD3,WD,RD,PCJump;

wire[4:0]A1,A2,A3; wire[5:0]Funct,Op;

wire[31:0]Result;//自己定义的 wire

lorD,MemWrite,IRWrite,PCWrite,Branch,ALUSrcA,RegWrite,RegDst,MemtoReg,PCEn,zero,PCB; wire[2:0]ALUOp;

wire[1:0]ALUSrcB,PCSrc; assign PC1=Result; assign Op=Instr[31:26]; assign Funct=Instr[5:0]; assign A1=Instr[25:21]; assign A2=Instr[20:16];

assign PCJump={PC[31:28],Instr[25:0],2'b00};//???? assign PCB=zero&Branch; assign PCEn=PCWrite|PCB; assign PC1=Result; assign WD=B; assign Data=RD;

搜索更多关于: 多周期MIPS CPU实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

组成原理实验报告 【实验名称】多周期MIPS CPU设计 【实验目的】 1.学习如何使用ISE的IP核 2.学习使用Xilinx FPGA内的RAM资源 3.熟悉mips指令集 4.掌握多周期mips CPU的原理。 5.多周期状态机的编写。 【实验内容】 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 设计CPU,完成以下程序代码的执行,其功能是起始数为3和3的斐波拉契数列的计算。只计算20个数。 .data fibs: .word 0 : 20 # \ 20 words to contain fib values size: .word 20

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com