以下是寄存器文件的规格:
总线 A、B 和 W 为 64 位宽。
当 RegWr 设置为 1 时,总线 W 上的数据在负(下降)时钟沿存储在由 Rw 指定的寄存器中。
寄存器 31 必须始终读取为零。
来自寄存器的数据(由 Ra 和 Rb 指定)分别在总线 A 和总线 B 上发送,延迟 2 次。
写入寄存器文件必须有 3 个 tic 的延迟。
注册文件模块应具有以下接口:
module RegisterFile(BusA, BusB, BusW, RA, RB, RW, RegWr, Clk);
这是我目前的程序
module RegisterFile(BusA, BusB, BusW, RA, RB, RW, RegWr, Clk);
output [63:0] BusA;
output [63:0] BusB;
output [63:0] BusW;
input RA;
input RB;
input RW;
input RegWr;
input Clk;
reg [31:0] registers [31:0];
assign #2 BusA = registers [0];
assign #2 BusB = registers [1];
always @ (negedge Clk) begin
if(RegWr & RW !=0)
registers[RW] <= #3 BusW;
end
endmodule
我想知道如何将 RA 和 RB 初始化为零,并想知道如何将数据从 RA 和 RB 正确发送到 BusA 和 BusB