一.实验目的

1. 熟悉并掌握 MIPS 计算机中寄存器堆的原理和设计方法。

2. 初步了解 MIPS 指令结构和源操作数/目的操作数的概念。

3. 熟悉并运用 verilog 语言进行电路设计。

4. 为后续设计 cpu 的实验打下基础。

二.实验设备

1. 装有 Xilinx Vivado 的计算机一台。

2. LS-CPU-EXB-002 教学系统实验箱一套。

. 实验内容与步骤

1.设计框图

2.核心代码

`timescale 1ns / 1ps

module test;

    //Inputs

    reg clk;

       reg wen;

       reg [4 :0] raddr1;

       reg [4 :0] raddr2;

       reg [4 :0] waddr;

       reg [31:0] wdata;

       reg [4 :0] test_addr;

  

//Outputs

    wire [31:0] rdata1;

       wire [31:0] rdata2;

       wire [31:0] test_data;

    regfile rf(

    .clk(clk),

    .wen(wen),

    .raddr1(raddr1),

    .raddr2(raddr2),

    .waddr(waddr),

    .wdata(wdata),

    .rdata1(rdata1),

    .rdata2(rdata2),

    .test_addr(test_addr),

    .test_data(test_data)

    );

    initial begin

        //Initialize

        clk = 0;

        wen = 0;

        raddr1 = 0;

        raddr2 = 0;

              waddr = 0;

              wdata = 0;

              test_addr = 0;

        //write

        #10;

              waddr = 5'h17;

              wdata = 32'h7F;

        #40;

        wen = 1'b1;

        #50;

        wen = 1'b0;

       

        //read

        #100;

        raddr1 = 5'h17;

        #100;

        raddr2 = 5'h17;

        #100;

        test_addr = 5'h17;

       

    end

   always #5 clk = ~clk;

endmodule

3.创新点说明

新增了test.v文件。

4.仿真曲线截图

5.硬件实现照片

图1

图2

图3

图4

6.实验结果分析

图1:初始化成功。

图2:输入WADDR:00000011表示在REG11中进行写操作。

图3:WDATA:AAAAAAAA表示在REG11中写入的内容是AAAAAAAA。

图4:RADD1:00000011表示读取REG11中的数据。RDAT1:AAAAAAAA表示读取REG11中的数据为AAAAAAAA。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐