寄存器堆计算机组成实验,《计算机组成原理》实验报告——寄存器堆

资料简介

南通大学信息科学技术学院

《计算机组成实验》

实验报告

实验名称 寄存器堆的设计与实现

班级 物联网工程 192

学生姓名 谢焘 学号 1930110689

指导教师 成耀

日 期 2021 年 5 月 30 日

实验 寄存器堆的设计与实现

一、实验目的

1.熟悉 Vivado 软件的使用方法。

2.熟悉寄存器堆的功能。

3.掌握自顶而下的硬件模块设计方法。

4.掌握电路仿真测试方法,掌握仿真激励文件的编写,掌握仿真输出的分析方法。

二、实验任务

设计一个寄存器堆,满足两路输出一路输入的功能,并完成仿真测试。

三、实验预习

(1)实验电路原理及信号说明

寄存器堆(REGFILE)是 CPU 组成的重要存储部件,也是数据通路中的重要部件,其主要功能

是对数据进行存储。在本实验中将为 REGFILE 构建 32×32 的寄存器组,即共有 32 个寄存器,每个

寄存器的位宽都是 32 位。32×32 的 REGFILE 逻辑结构如图所示:

信号名 功能 位宽 类型

Ra 寄存器 rs 输出端口地址 5 输入

Rb 寄存器 rt 输出端口地址 5 输入

Wr 数据写入的寄存器号 5 输入

We 写使能信号 1 输入

D 写入的数据 32 输入

Qa A 端口的输出数据 32 输出

Qb B 端口的输出数据 32 输出

Clk 时钟信号 1 输入

具体设计如下:

通过带有 32 个带使能端的 D 触发器实现数据的存储,5-32 译码器实现地址与存储单元的连接选

择,32 位 32 选 1 选择器来实现输出。

(2)实验电路设计

顶层文件:

module REGFILE(Ra,Rb,D,Wr,We,Clk,Clrn,Qa,Qb);

input [4:0]Ra,Rb,Wr;

input [31:0]D;

input We,Clk,Clrn;

output [31:0]Qa,Qb;

wire [31:0]Y;

wire

[31:0]Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q

10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0;

DEC5T32E dec(Wr,We,Y);

REG32

reg32(D,Y,Clk,Clrn,Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q

13,Q12,Q11,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0);

MUX32X32

select1(Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q

10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,Ra,Qa);

MUX32X32

select2(Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q

10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,Rb,Qb);

Endmodule

5-32 地址译码器:

module DEC5T32E(I,En,Y);

input [4:0] I;

input En;

output [31:0] Y;

reg [31:0] Y;

always@(En or I)

begin

if(En)

begin

case(I)

5'b00000:Y=32'b00000000000000000000000000000001;

5'b00001:Y=32'b00000000000000000000000000000010;

5'b00010:Y=32'b00000000000000000000000000000100;

5'b00011:Y=32'b00000000000000000000000000001000;

5'b00100:Y=32'b00000000000000000000000000010000;

5'b00101:Y=32'b00000000000000000000000000100000;

5'b00110:Y=32'b00000000000000000000000001000000;

5'b00111:Y=32'b00000000000000000000000010000000;

5'b01000:Y=32'b00000000000000000000000100000... 查看更多