From cc42437e0f8e08a1e9eb846c1b52b2d67f018d20 Mon Sep 17 00:00:00 2001 From: Olof Kindgren Date: Fri, 28 Aug 2020 13:01:22 +0200 Subject: [PATCH] Prepare for alternative immediate decoder --- rtl/serv_immdec.v | 19 +++++++++++++------ rtl/serv_top.v | 6 +++--- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/rtl/serv_immdec.v b/rtl/serv_immdec.v index bdc1f1c..7262745 100644 --- a/rtl/serv_immdec.v +++ b/rtl/serv_immdec.v @@ -11,9 +11,9 @@ module serv_immdec input wire i_cnt_done, input wire [3:0] i_ctrl, //To RF - output reg [4:0] o_rf_rd_addr, - output reg [4:0] o_rf_rs1_addr, - output reg [4:0] o_rf_rs2_addr, + output wire [4:0] o_rd_addr, + output wire [4:0] o_rs1_addr, + output wire [4:0] o_rs2_addr, output wire o_imm); reg signbit; @@ -24,6 +24,13 @@ module serv_immdec reg [4:0] imm24_20; reg [4:0] imm11_7; + reg [4:0] rd_addr; + reg [4:0] rs1_addr; + reg [4:0] rs2_addr; + + assign o_rd_addr = rd_addr; + assign o_rs1_addr = rs1_addr; + assign o_rs2_addr = rs2_addr; assign o_imm = i_cnt_done ? signbit : i_ctrl[0] ? imm11_7[0] : imm24_20[0]; assign o_csr_imm = imm19_12_20[4]; @@ -38,9 +45,9 @@ module serv_immdec imm24_20 <= i_wb_rdt[24:20]; imm11_7 <= i_wb_rdt[11:7]; - o_rf_rd_addr <= i_wb_rdt[11:7]; - o_rf_rs1_addr <= i_wb_rdt[19:15]; - o_rf_rs2_addr <= i_wb_rdt[24:20]; + rd_addr <= i_wb_rdt[11:7]; + rs1_addr <= i_wb_rdt[19:15]; + rs2_addr <= i_wb_rdt[24:20]; end if (i_cnt_en) begin imm19_12_20 <= {i_ctrl[3] ? signbit : imm24_20[0], imm19_12_20[8:1]}; diff --git a/rtl/serv_top.v b/rtl/serv_top.v index 576e425..4e6346a 100644 --- a/rtl/serv_top.v +++ b/rtl/serv_top.v @@ -263,9 +263,9 @@ module serv_top .i_ctrl (immdec_ctrl), .i_cnt_done (cnt_done), //To RF - .o_rf_rd_addr (rd_addr), - .o_rf_rs1_addr (rs1_addr), - .o_rf_rs2_addr (rs2_addr), + .o_rd_addr (rd_addr), + .o_rs1_addr (rs1_addr), + .o_rs2_addr (rs2_addr), .o_imm (imm)); serv_bufreg bufreg