move wire definitions before usage
This commit is contained in:
60
src/bh_cpu.v
60
src/bh_cpu.v
@@ -120,19 +120,6 @@ reg s_if_stall = 0;
|
|||||||
reg [31:0] s_if_next_pc;
|
reg [31:0] s_if_next_pc;
|
||||||
reg [31:0] s_if_inst;
|
reg [31:0] s_if_inst;
|
||||||
|
|
||||||
always @(*) begin
|
|
||||||
s_if_stall = s_id_stall;
|
|
||||||
|
|
||||||
if (s_ex_take_branch) begin
|
|
||||||
s_if_next_pc = s_ex_branch_addr;
|
|
||||||
end else begin
|
|
||||||
s_if_next_pc = r_if_pc + 4;
|
|
||||||
end
|
|
||||||
|
|
||||||
mem_inst_addr = r_if_pc;
|
|
||||||
s_if_inst = mem_inst_data;
|
|
||||||
end
|
|
||||||
|
|
||||||
// ID
|
// ID
|
||||||
reg s_id_stall;
|
reg s_id_stall;
|
||||||
reg [6:0] s_id_opcode;
|
reg [6:0] s_id_opcode;
|
||||||
@@ -177,7 +164,39 @@ localparam ALUOP_ADD = 4'b0000,
|
|||||||
ALUOP_SLT = 4'b1000,
|
ALUOP_SLT = 4'b1000,
|
||||||
ALUOP_SLTU = 4'b1001;
|
ALUOP_SLTU = 4'b1001;
|
||||||
|
|
||||||
|
// EX
|
||||||
|
reg s_ex_stall = 0;
|
||||||
|
reg [31:0] s_ex_data1, s_ex_data2;
|
||||||
|
reg [31:0] s_ex_alu_out;
|
||||||
|
reg s_ex_alu_zero;
|
||||||
|
reg s_ex_take_branch;
|
||||||
|
reg [31:0] s_ex_branch_addr;
|
||||||
|
reg [31:0] s_ex_ra;
|
||||||
|
|
||||||
|
// MEM
|
||||||
|
reg s_mem_stall = 0;
|
||||||
|
reg s_mem_bp;
|
||||||
|
reg [31:0] s_mem_load_data;
|
||||||
|
|
||||||
|
// WB
|
||||||
|
reg [31:0] s_wb_data;
|
||||||
|
reg s_wb_write;
|
||||||
|
|
||||||
|
// IF
|
||||||
|
always @(*) begin
|
||||||
|
s_if_stall = s_id_stall;
|
||||||
|
|
||||||
|
if (s_ex_take_branch) begin
|
||||||
|
s_if_next_pc = s_ex_branch_addr;
|
||||||
|
end else begin
|
||||||
|
s_if_next_pc = r_if_pc + 4;
|
||||||
|
end
|
||||||
|
|
||||||
|
mem_inst_addr = r_if_pc;
|
||||||
|
s_if_inst = mem_inst_data;
|
||||||
|
end
|
||||||
|
|
||||||
|
// ID
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
s_id_invalid = 0;
|
s_id_invalid = 0;
|
||||||
s_id_store = 0;
|
s_id_store = 0;
|
||||||
@@ -332,14 +351,6 @@ always @(*) begin
|
|||||||
end
|
end
|
||||||
|
|
||||||
// EX
|
// EX
|
||||||
reg s_ex_stall = 0;
|
|
||||||
reg [31:0] s_ex_data1, s_ex_data2;
|
|
||||||
reg [31:0] s_ex_alu_out;
|
|
||||||
reg s_ex_alu_zero;
|
|
||||||
reg s_ex_take_branch;
|
|
||||||
reg [31:0] s_ex_branch_addr;
|
|
||||||
reg [31:0] s_ex_ra;
|
|
||||||
|
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
s_ex_stall = s_mem_stall;
|
s_ex_stall = s_mem_stall;
|
||||||
|
|
||||||
@@ -394,10 +405,6 @@ always @(*) begin
|
|||||||
end
|
end
|
||||||
|
|
||||||
// MEM
|
// MEM
|
||||||
reg s_mem_stall = 0;
|
|
||||||
reg s_mem_bp;
|
|
||||||
reg [31:0] s_mem_load_data;
|
|
||||||
|
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
s_mem_stall = 0; // TODO: add stall logic when actually reading/writing
|
s_mem_stall = 0; // TODO: add stall logic when actually reading/writing
|
||||||
s_mem_bp = 0;
|
s_mem_bp = 0;
|
||||||
@@ -417,9 +424,6 @@ always @(*) begin
|
|||||||
end
|
end
|
||||||
|
|
||||||
// WB
|
// WB
|
||||||
reg [31:0] s_wb_data;
|
|
||||||
reg s_wb_write;
|
|
||||||
|
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
|
|
||||||
// load instructions do not use output of alu in wb
|
// load instructions do not use output of alu in wb
|
||||||
|
Reference in New Issue
Block a user