out_write_reg <= next_write_reg;
out_write_num <= next_write_num;
out_write_data <= next_write_data;
- regs <= next_regs;
- prev_reg <= cur_reg;
if (!rw_wait)
prev_offset <= offset;
prev_raddr <= raddr;
end
/* LDM/STM register control logic. */
+ always @(posedge clk)
+ if (!rw_wait)
+ begin
+ prev_reg <= cur_reg;
+ regs <= next_regs;
+ end
+
always @(*)
begin
offset = prev_offset;
endcase
cur_reg = insn[23] ? cur_reg : 4'hF - cur_reg;
- if (rw_wait) begin
- next_regs = regs;
- cur_reg = prev_reg; /* whoops, do this one again */
- end
-
st_read = cur_reg;
end
`LSM_BASEWB: begin end