+ else if(rw_wait) begin
+ next_regs = regs;
+ cur_reg = prev_reg;
+ end
+ else begin
+ casez(regs)
+ 16'b???????????????1: begin
+ cur_reg = 4'h0;
+ next_regs = regs & 16'b1111111111111110;
+ end
+ 16'b??????????????10: begin
+ cur_reg = 4'h1;
+ next_regs = regs & 16'b1111111111111100;
+ end
+ 16'b?????????????100: begin
+ cur_reg = 4'h2;
+ next_regs = regs & 16'b1111111111111000;
+ end
+ 16'b????????????1000: begin
+ cur_reg = 4'h3;
+ next_regs = regs & 16'b1111111111110000;
+ end
+ 16'b???????????10000: begin
+ cur_reg = 4'h4;
+ next_regs = regs & 16'b1111111111100000;
+ end
+ 16'b??????????100000: begin
+ cur_reg = 4'h5;
+ next_regs = regs & 16'b1111111111000000;
+ end
+ 16'b?????????1000000: begin
+ cur_reg = 4'h6;
+ next_regs = regs & 16'b1111111110000000;
+ end
+ 16'b????????10000000: begin
+ cur_reg = 4'h7;
+ next_regs = regs & 16'b1111111100000000;
+ end
+ 16'b???????100000000: begin
+ cur_reg = 4'h8;
+ next_regs = regs & 16'b1111111000000000;
+ end
+ 16'b??????1000000000: begin
+ cur_reg = 4'h9;
+ next_regs = regs & 16'b1111110000000000;
+ end
+ 16'b?????10000000000: begin
+ cur_reg = 4'hA;
+ next_regs = regs & 16'b1111100000000000;
+ end
+ 16'b????100000000000: begin
+ cur_reg = 4'hB;
+ next_regs = regs & 16'b1111000000000000;
+ end
+ 16'b???1000000000000: begin
+ cur_reg = 4'hC;
+ next_regs = regs & 16'b1110000000000000;
+ end
+ 16'b??10000000000000: begin
+ cur_reg = 4'hD;
+ next_regs = regs & 16'b1100000000000000;
+ end
+ 16'b?100000000000000: begin
+ cur_reg = 4'hE;
+ next_regs = regs & 16'b1000000000000000;
+ end
+ 16'b1000000000000000: begin
+ cur_reg = 4'hF;
+ next_regs = 16'b0;
+ end
+ default: begin
+ cur_reg = 4'hx;
+ next_regs = 16'b0;
+ end
+ endcase
+ next_inc_next = next_regs == 16'b0;
+ next_notdone = ~next_inc_next | (rw_wait & insn[20] & insn[21]);