Skip to content

Instantly share code, notes, and snippets.

@olofk
Created May 27, 2021 14:38
Show Gist options
  • Select an option

  • Save olofk/cffc5b63b229bd2d89f0a61538205652 to your computer and use it in GitHub Desktop.

Select an option

Save olofk/cffc5b63b229bd2d89f0a61538205652 to your computer and use it in GitHub Desktop.
diff --git a/rtl/serv_mem_if.v b/rtl/serv_mem_if.v
index fbdc3c4..4d80ad2 100644
--- a/rtl/serv_mem_if.v
+++ b/rtl/serv_mem_if.v
@@ -85,10 +85,13 @@ module serv_mem_if
//Shift reg mode with optional clearing of bit 5
{dat[6] & !(i_shift_op & i_cnt_done),dat[5:1]};
- assign o_sh_done = dat_shamt[5];
+ assign o_sh_done = r/*dat_shamt[5]*/;
assign o_sh_done_r = dat[5];
+ reg r;
+
always @(posedge i_clk) begin
+ r <= dat_shamt[5:0] == 6'b000000;
if (dat_en | i_wb_ack)
dat <= i_wb_ack ? i_wb_rdt : {i_op_b, dat[31:7], dat_shamt};
diff --git a/rtl/serv_rf_top.v b/rtl/serv_rf_top.v
index e84ac36..b75c027 100644
--- a/rtl/serv_rf_top.v
+++ b/rtl/serv_rf_top.v
@@ -74,6 +74,16 @@ module serv_rf_top
wire [RF_L2D-1:0] raddr;
wire [RF_WIDTH-1:0] rdata;
+ reg [RF_L2D-1:0] waddr_r;
+ reg [RF_WIDTH-1:0] wdata_r;
+ reg wen_r;
+
+ always @(posedge clk) begin
+ waddr_r <= waddr;
+ wdata_r <= wdata;
+ wen_r <= wen ;
+ end
+
serv_rf_ram_if
#(.width (RF_WIDTH),
.reset_strategy (RESET_STRATEGY),
@@ -105,9 +115,9 @@ module serv_rf_top
.csr_regs (CSR_REGS))
rf_ram
(.i_clk (clk),
- .i_waddr (waddr),
- .i_wdata (wdata),
- .i_wen (wen),
+ .i_waddr (waddr_r),
+ .i_wdata (wdata_r),
+ .i_wen (wen_r),
.i_raddr (raddr),
.o_rdata (rdata));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment