aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rv64cpu/rtl/core/ex_mem_reg.sv8
-rw-r--r--rv64cpu/rtl/core/mem_stage.sv18
-rw-r--r--rv64cpu/rtl/core/mem_wb_reg.sv6
-rw-r--r--rv64cpu/tb/unit/tb_ex_mem_reg.cc12
-rw-r--r--rv64cpu/tb/unit/tb_mem_stage.cc2
-rw-r--r--rv64cpu/tb/unit/tb_mem_wb_reg.cc12
6 files changed, 29 insertions, 29 deletions
diff --git a/rv64cpu/rtl/core/ex_mem_reg.sv b/rv64cpu/rtl/core/ex_mem_reg.sv
index a8182aa..2cc5e9e 100644
--- a/rv64cpu/rtl/core/ex_mem_reg.sv
+++ b/rv64cpu/rtl/core/ex_mem_reg.sv
@@ -37,7 +37,7 @@ module ex_mem_reg
// ----------------------
// Bypassed Inputs from ID/EX Register
-
+
// Data/Operands
input logic [XLEN-1:0] ex_rs1_rdata, // Needed for CSRRW/RS/RC
input logic [XLEN-1:0] ex_rs2_rdata, // Needed for store data
@@ -116,7 +116,7 @@ module ex_mem_reg
mem_rs1_addr <= '0;
mem_pc <= '0;
mem_imm <= '0;
-
+
// Critical control signals must be zeroed out
mem_is_load <= '0;
mem_is_store <= '0;
@@ -169,14 +169,14 @@ module ex_mem_reg
mem_rs1_addr <= ex_rs1_addr;
mem_pc <= ex_pc;
mem_imm <= ex_imm;
-
+
mem_is_load <= ex_is_load;
mem_is_store <= ex_is_store;
mem_mem_size <= ex_mem_size;
mem_reg_write_en <= ex_reg_write_en;
mem_rd_addr <= ex_rd_addr;
mem_wb_sel <= ex_wb_sel;
-
+
mem_is_csr <= ex_is_csr;
mem_csr_op <= ex_csr_op;
mem_illegal_instr <= ex_illegal_instr;
diff --git a/rv64cpu/rtl/core/mem_stage.sv b/rv64cpu/rtl/core/mem_stage.sv
index 467ba1b..a63a456 100644
--- a/rv64cpu/rtl/core/mem_stage.sv
+++ b/rv64cpu/rtl/core/mem_stage.sv
@@ -31,12 +31,12 @@ module mem_stage
input logic [4:0] mem_rs1_addr,
input logic [XLEN-1:0] mem_pc,
input logic [XLEN-1:0] mem_imm,
-
+
// Memory Control
input logic mem_is_load,
input logic mem_is_store,
input logic [2:0] mem_mem_size, // LB/LH/LW/LD/LBU/LHU/LWU
-
+
// Writeback Control
input logic mem_reg_write_en,
input logic [4:0] mem_rd_addr,
@@ -69,7 +69,7 @@ module mem_stage
output logic [XLEN-1:0] mem_wb_alu_result,
output logic [XLEN-1:0] mem_wb_mem_rdata,
output logic [XLEN-1:0] mem_wb_pc,
-
+
output logic mem_wb_reg_write_en,
output logic [4:0] mem_wb_rd_addr,
output logic [1:0] mem_wb_wb_sel,
@@ -79,7 +79,7 @@ module mem_stage
output logic [XLEN-1:0] mem_wb_rs1_rdata,
output logic [4:0] mem_wb_rs1_addr,
output logic [XLEN-1:0] mem_wb_imm,
-
+
output logic mem_wb_illegal_instr,
output logic mem_wb_is_ecall,
output logic mem_wb_is_ebreak,
@@ -119,7 +119,7 @@ module mem_stage
logic [2:0] align_offset;
store_data_aligned = '0;
write_strobe = 8'b0000_0000;
-
+
// Mem address lower 3 bits determine the alignment within the 64-bit word
align_offset = mem_alu_result[2:0];
@@ -152,7 +152,7 @@ module mem_stage
endcase
end
end
-
+
assign dmem_wdata = store_data_aligned;
assign dmem_wstrb = write_strobe;
@@ -163,9 +163,9 @@ module mem_stage
logic [2:0] align_offset;
logic [XLEN-1:0] shifted_rdata;
load_data_aligned = '0;
-
+
align_offset = mem_alu_result[2:0];
-
+
// Shift data down so the target bytes are at the bottom
shifted_rdata = dmem_rdata >> (align_offset * 8);
@@ -194,7 +194,7 @@ module mem_stage
assign mem_wb_alu_result = mem_alu_result;
assign mem_wb_mem_rdata = load_data_aligned;
assign mem_wb_pc = mem_pc;
-
+
assign mem_wb_reg_write_en = mem_reg_write_en;
assign mem_wb_rd_addr = mem_rd_addr;
assign mem_wb_wb_sel = mem_wb_sel;
diff --git a/rv64cpu/rtl/core/mem_wb_reg.sv b/rv64cpu/rtl/core/mem_wb_reg.sv
index eca60bc..a70057c 100644
--- a/rv64cpu/rtl/core/mem_wb_reg.sv
+++ b/rv64cpu/rtl/core/mem_wb_reg.sv
@@ -26,7 +26,7 @@ module mem_wb_reg
// -----------------------
// Control Signals from Hazard Unit
- input logic stall_en,
+ input logic stall_en,
input logic flush_en,
// -----------------------
@@ -53,7 +53,7 @@ module mem_wb_reg
input logic mem_is_ebreak,
input logic mem_is_mret,
input logic mem_is_sret,
-
+
// -----------------------
// Outputs to WB Stage
// -----------------------
@@ -78,7 +78,7 @@ module mem_wb_reg
output logic wb_is_ebreak,
output logic wb_is_mret,
output logic wb_is_sret
-
+
);
// Sequential Logic: State Update
always_ff @(posedge clk) begin
diff --git a/rv64cpu/tb/unit/tb_ex_mem_reg.cc b/rv64cpu/tb/unit/tb_ex_mem_reg.cc
index db1fe8b..75e5502 100644
--- a/rv64cpu/tb/unit/tb_ex_mem_reg.cc
+++ b/rv64cpu/tb/unit/tb_ex_mem_reg.cc
@@ -53,7 +53,7 @@ int main(int argc, char** argv) {
// 1. Init / Reset
dut->stall_en = 0;
dut->flush_en = 0;
-
+
// Set some random dangerous EX inputs
dut->ex_pc = 0x80001000;
dut->ex_rs1_rdata = 0x11111111;
@@ -119,7 +119,7 @@ int main(int argc, char** argv) {
dut->ex_rd_addr = 20;
dut->ex_reg_write_en = 0;
dut->ex_is_load = 0;
-
+
tick(dut);
check(dut->mem_pc == 0x80002000, "Stall_Maintains_PC");
@@ -147,19 +147,19 @@ int main(int argc, char** argv) {
dut->ex_branch_taken = 1;
dut->ex_reg_write_en = 1;
dut->ex_is_store = 1;
-
+
tick(dut);
check(dut->mem_pc == 0x80003000, "Flush_Maintains_PC");
check(dut->mem_branch_taken == 0, "Flush_Clears_BranchTaken");
- check(dut->mem_reg_write_en == 0, "Flush_Clears_RegWrite");
- check(dut->mem_is_store == 0, "Flush_Clears_StoreEn");
+ check(dut->mem_reg_write_en == 0, "Flush_Clears_RegWrite");
+ check(dut->mem_is_store == 0, "Flush_Clears_StoreEn");
// 5. Flush Overrides Stall
dut->flush_en = 0;
dut->ex_pc = 0x80005000;
dut->ex_reg_write_en = 1;
- tick(dut);
+ tick(dut);
check(dut->mem_pc == 0x80005000, "Pre_FlushStall_Setup");
dut->flush_en = 1;
diff --git a/rv64cpu/tb/unit/tb_mem_stage.cc b/rv64cpu/tb/unit/tb_mem_stage.cc
index 088ddbd..2747ca9 100644
--- a/rv64cpu/tb/unit/tb_mem_stage.cc
+++ b/rv64cpu/tb/unit/tb_mem_stage.cc
@@ -192,7 +192,7 @@ int main(int argc, char** argv) {
tick(dut);
check(dut->mem_stall_req == 1, "Stall_On_Req_NotReady");
- dut->dmem_req_ready = 1;
+ dut->dmem_req_ready = 1;
dut->dmem_rsp_valid = 0; // Read request accepted, but data not valid yet
tick(dut);
check(dut->mem_stall_req == 1, "Stall_On_Rsp_NotValid");
diff --git a/rv64cpu/tb/unit/tb_mem_wb_reg.cc b/rv64cpu/tb/unit/tb_mem_wb_reg.cc
index 0260c64..e91a354 100644
--- a/rv64cpu/tb/unit/tb_mem_wb_reg.cc
+++ b/rv64cpu/tb/unit/tb_mem_wb_reg.cc
@@ -53,7 +53,7 @@ int main(int argc, char** argv) {
// 1. Init / Reset
dut->stall_en = 0;
dut->flush_en = 0;
-
+
// Set some dangerous inputs
dut->mem_pc = 0x80001000;
dut->mem_alu_result = 0x11111111;
@@ -113,7 +113,7 @@ int main(int argc, char** argv) {
dut->mem_pc = 0x80003000;
dut->mem_rd_addr = 20;
dut->mem_reg_write_en = 0;
-
+
tick(dut);
check(dut->wb_pc == 0x80002000, "Stall_Maintains_PC");
@@ -133,19 +133,19 @@ int main(int argc, char** argv) {
dut->mem_alu_result = 0xCCCCCCCC;
dut->mem_reg_write_en = 1;
dut->mem_is_csr = 1;
-
+
tick(dut);
check(dut->wb_pc == 0x80003000, "Flush_Maintains_PC");
check(dut->wb_alu_result == 0xAAAAAAAA, "Flush_Maintains_ALU");
- check(dut->wb_reg_write_en == 0, "Flush_Clears_RegWrite");
- check(dut->wb_is_csr == 0, "Flush_Clears_IsCSR");
+ check(dut->wb_reg_write_en == 0, "Flush_Clears_RegWrite");
+ check(dut->wb_is_csr == 0, "Flush_Clears_IsCSR");
// 5. Flush Overrides Stall
dut->flush_en = 0;
dut->mem_pc = 0x80005000;
dut->mem_reg_write_en = 1;
- tick(dut);
+ tick(dut);
check(dut->wb_pc == 0x80005000, "Pre_FlushStall_Setup");
dut->flush_en = 1;