数据前推测试案例

master
YunMao 5 years ago
parent c91e5b52fd
commit 52411d3efb

@ -5,6 +5,12 @@ module id(input wire rst,
input wire[`InstBus] inst_i,
input wire[`RegBus] reg1_data_i,
input wire[`RegBus] reg2_data_i,
input wire ex_wreg_i, //EX
input wire[`RegBus] ex_wdata_i,
input wire[`RegAddrBus] ex_wd_i,
input wire mem_wreg_i, //MEM
input wire[`RegBus] mem_wdata_i,
input wire[`RegAddrBus] mem_wd_i,
output reg reg1_read_o,
output reg reg2_read_o,
output reg[`RegAddrBus] reg1_addr_o,
@ -64,6 +70,10 @@ module id(input wire rst,
always @ (*) begin
if (rst == `RstEnable) begin
reg1_o <= `ZeroWord;
end else if ((reg1_read_o == 1'b1)&&(ex_wreg_i == 1'b1)&&(ex_wd_i == reg1_addr_o)) begin
reg1_o <= ex_wdata_i;
end else if ((reg1_read_o == 1b'1)&&(mem_wreg_i == 1b'1)&&(mem_wd_i == reg1_addr_o)) begin
reg1_o <= mem_wdata_i;
end else if (reg1_read_o == 1'b1) begin
reg1_o <= reg1_data_i;
end else if (reg1_read_o == 1'b0) begin
@ -76,6 +86,10 @@ module id(input wire rst,
always @ (*) begin
if (rst == `RstEnable) begin
reg2_o <= `ZeroWord;
end else if ((reg2_read_o == 1'b1)&&(ex_wreg_i == 1'b1)&&(ex_wd_i == reg2_addr_o)) begin
reg2_o <= ex_wdata_i;
end else if ((reg2_read_o == 1b'1)&&(mem_wreg_i == 1b'1)&&(mem_wd_i == reg2_addr_o)) begin
reg2_o <= mem_wdata_i;
end else if (reg2_read_o == 1'b1) begin
reg2_o <= reg2_data_i;
end else if (reg2_read_o == 1'b0) begin

@ -73,6 +73,14 @@ module yunmips(input wire clk,
.reg1_data_i(reg1_data),
.reg2_data_i(reg2_data),
.ex_wreg_i(ex_wreg_o), //EX
.ex_wdata_i(ex_wdata_o),
.ex_wd_i(ex_wd_o),
.mem_wreg_i(mem_wreg_o), //MEM
.mem_wdata_i(mem_wdata_o),
.mem_wd_i(mem_wd_o),
.reg1_read_o(reg1_read),
.reg2_read_o(reg2_read),

Loading…
Cancel
Save