代码拉取完成,页面将自动刷新
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2022/03/16 17:38:45
// Design Name:
// Module Name: RegisterFile
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module RegisterFile(
input logic clk,
input logic [4:0] RS1, //要读的寄存器编号
input logic [4:0] RS2, //要读的寄存器编号
output logic [31:0] RegOut1, //读出内容:Reg[rs1]
output logic [31:0] RegOut2, //读出内容:Reg[rs2]
input logic [31:0] WD, //要写入寄存器的数据
input logic [4:0] RD, //写寄存器编号
input logic WE //写使能
);
logic [31:0] RegFile [0:31];
//初始化
initial
begin
for(int i=0;i<32;i++)
RegFile[i]=0;
end
//下降沿写入数据
always_ff@(negedge clk)
begin
if(WE)
begin
if(RD!=0) //第0个寄存器不可写
RegFile[RD]<=WD;
end
end
//读数据
always_comb
begin
RegOut1=RegFile[RS1];
RegOut2=RegFile[RS2];
end
endmodule
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。