From 2c49f7b342d393b95372bc29708629f397d2d185 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sun, 6 Nov 2022 15:32:07 -0600 Subject: Split regfile read select logic out of control.sv --- rtl/core/control/control.sv | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'rtl/core/control/control.sv') diff --git a/rtl/core/control/control.sv b/rtl/core/control/control.sv index cc8f160..629e1d9 100644 --- a/rtl/core/control/control.sv +++ b/rtl/core/control/control.sv @@ -56,7 +56,7 @@ module core_control logic ldst, ldst_pre, ldst_increment, ldst_writeback, pop_valid; word mem_offset; - reg_num r_shift, popped_upper, popped_lower, popped; + reg_num popped_upper, popped_lower, popped; reg_list mem_regs, next_regs_upper, next_regs_lower; assign reg_mode = `MODE_SVC; //TODO @@ -85,6 +85,11 @@ module core_control .* ); + core_control_select ctrl_select + ( + .* + ); + core_control_ldst_pop ctrl_ldst_pop ( .regs(mem_regs), @@ -130,10 +135,6 @@ module core_control unique case(next_cycle) ISSUE: if(issue) begin - ra <= dec_data.rn; - rb <= dec_snd.r; - r_shift <= dec_snd.r_shift; - // TODO: dec_ldst.unprivileged/user_regs // TODO: byte/halfword sizes ldst <= dec.ldst; @@ -152,8 +153,7 @@ module core_control mem_write <= !dec_ldst.load; end - RD_INDIRECT_SHIFT: - rb <= r_shift; + RD_INDIRECT_SHIFT: ; WITH_SHIFT: ; @@ -166,11 +166,6 @@ module core_control if(cycle != TRANSFER || mem_ready) begin mem_regs <= ldst_increment ? next_regs_lower : next_regs_upper; mem_addr <= ldst_pre ? q_alu[31:2] : alu_a[31:2]; - - if(pop_valid) - rb <= popped; - else - rb <= final_rd; // Viene de dec_ldst.rd end mem_start <= cycle != TRANSFER || (mem_ready && pop_valid); -- cgit v1.2.3