From da26f86f25e9ccf2edecf855451f28250078798f Mon Sep 17 00:00:00 2001 From: Graham Edgecombe Date: Tue, 5 Dec 2017 21:12:37 +0000 Subject: [PATCH] Remove two cycle load-use stall There's no need for it as we forward results from the writeback to the execute stage. --- rv32.sv | 4 ---- rv32_hazard.sv | 6 ------ 2 files changed, 10 deletions(-) diff --git a/rv32.sv b/rv32.sv index 45ba0d5..58e2ab9 100644 --- a/rv32.sv +++ b/rv32.sv @@ -25,10 +25,6 @@ module rv32 ( .decode_rd_in(decode_rd), .decode_rd_writeback_in(decode_rd_writeback), - .execute_mem_read_en_in(execute_mem_read_en), - .execute_rd_in(execute_rd), - .execute_rd_writeback_in(execute_rd_writeback), - .mem_branch_taken_in(mem_branch_taken), /* control out */ diff --git a/rv32_hazard.sv b/rv32_hazard.sv index 81508e6..3f1ed5c 100644 --- a/rv32_hazard.sv +++ b/rv32_hazard.sv @@ -10,10 +10,6 @@ module rv32_hazard ( input [4:0] decode_rd_in, input decode_rd_writeback_in, - input execute_mem_read_en_in, - input [4:0] execute_rd_in, - input execute_rd_writeback_in, - input mem_branch_taken_in, /* control out */ @@ -34,8 +30,6 @@ module rv32_hazard ( always_comb begin if ((decode_rs1_in == decode_rd_in || decode_rs2_in == decode_rd_in) && |decode_rd_in && decode_mem_read_en_in && decode_rd_writeback_in) fetch_wait_for_mem_read = 1; - else if ((decode_rs1_in == execute_rd_in || decode_rs2_in == execute_rd_in) && |execute_rd_in && execute_mem_read_en_in && execute_rd_writeback_in) - fetch_wait_for_mem_read = 1; else fetch_wait_for_mem_read = 0; end