example0_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example1_i-a_t-0.1.v
    if(unlock) locked <= d;
    else if(resetn == 0) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example2_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example3_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example4_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example5_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example6_i-a_t-0.1.v
    if(unlock) begin
        if(resetn) locked <= 0;
        else locked <= d;
    end else locked <= locked;

 


========================================================
example7_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example8_i-a_t-0.1.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example9_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example10_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example11_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example12_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example13_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example14_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example15_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example16_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example17_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example18_i-a_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example19_i-a_t-0.1.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example0_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example1_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example2_i-a_t-0.3.v
    if(unlock) begin
        if(resetn) locked <= 0;
        else locked <= d;
    end else locked <= locked;

 


========================================================
example3_i-a_t-0.3.v
    if(unlock) begin
        if(resetn) locked <= 1'b0;
        else locked <= d;
    end
    else locked <= locked;

 


========================================================
example4_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example5_i-a_t-0.3.v
    if(unlock) begin
        if(resetn) locked <= 0;
        else locked <= d;
    end else locked <= locked;

 


========================================================
example6_i-a_t-0.3.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example7_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example8_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        if(resetn == 0) begin
            locked <= 1'b0;
        end else begin
            locked <= locked;
        end
    end

 


========================================================
example9_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example10_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example11_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end
 

========================================================
example12_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        if(!resetn) begin
            locked <= 0;
        end else begin
            locked <= locked;
        end
    end
 

========================================================
example13_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example14_i-a_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example15_i-a_t-0.3.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example16_i-a_t-0.3.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example17_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example18_i-a_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example19_i-a_t-0.3.v
    if(unlock) locked <= d;
    else locked <= !locked;

 


========================================================
example0_i-a_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example1_i-a_t-0.5.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;
 

========================================================
example2_i-a_t-0.5.v
    if(resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example3_i-a_t-0.5.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;
 


========================================================
example4_i-a_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example5_i-a_t-0.5.v
    if(unlock) begin
        if(resetn) locked <= 0;
        else locked <= d;
    end else locked <= locked;

 


========================================================
example6_i-a_t-0.5.v
    if(unlock) begin
        if(!resetn) locked <= d;
        else locked <= locked;
    end else begin
        if(!resetn) locked <= locked;
        else locked <= d;
    end
 


========================================================
example7_i-a_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        if(resetn == 0) begin
            locked <= 0;
        end else begin
            locked <= locked;
        end
    end
 


========================================================
example8_i-a_t-0.5.v
    if(unlock) begin
        if(!resetn) locked <= 0;
        else locked <= d;
    end else locked <= locked;

 


========================================================
example9_i-a_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        if(resetn == 0) begin
            locked <= 1'b0;
        end else begin
            locked <= locked;
        end
    end

 


========================================================
example10_i-a_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end
 


========================================================
example11_i-a_t-0.5.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;
 

========================================================
example12_i-a_t-0.5.v
if(unlock) locked <= d;
else locked <= locked;

 

========================================================
example13_i-a_t-0.5.v
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example14_i-a_t-0.5.v
    if(unlock) begin
        if(resetn) locked <= 0;
        else locked <= d;
    end else locked <= locked;

 


========================================================
example15_i-a_t-0.5.v
    if(unlock)
        locked <= d;
    else if(resetn)
        locked <= 0;
    else
        locked <= locked;
 

========================================================
example16_i-a_t-0.5.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 0;
    else locked <= locked;
 


========================================================
example17_i-a_t-0.5.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example18_i-a_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        if(!resetn) locked <= 1'b0;
        else locked <= locked;
    end

 


========================================================
example19_i-a_t-0.5.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;
 


========================================================
example0_i-a_t-0.7.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'd1;
    else locked <= locked;

 

========================================================
example1_i-a_t-0.7.v
    if(unlock) locked <= d;
    else if(resetn == 0) locked <= 0;
    else locked <= locked;

 

========================================================
example2_i-a_t-0.7.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b1;
    else locked <= locked;
 

========================================================
example3_i-a_t-0.7.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example4_i-a_t-0.7.v
    if(unlock) begin
        locked <= d;
    end else begin
        if(resetn == 1'b0) begin
            locked <= 1'b1;
        end else begin
            locked <= locked;
        end
    end
 

========================================================
example5_i-a_t-0.7.v
    if(unlock) begin
        if(resetn) begin
            locked <= 0;
        end else begin
            locked <= d;
        end
    end else begin
        locked <= locked;
    end

 


========================================================
example6_i-a_t-0.7.v
    if (!resetn) begin
        locked <= 1'b0;
    end
    else begin
        if (unlock) begin  
            locked <= d;
        end
        else begin
            locked <= locked;
        end
    end

 

========================================================
example7_i-a_t-0.7.v
    if(unlock) begin
        if(resetn == 0) locked <= d;
        else locked <= 1;
    end else locked <= locked;

 


========================================================
example8_i-a_t-0.7.v
    if(unlock) locked <= d;
    else locked <= locked || d;

 

========================================================
example9_i-a_t-0.7.v
    if(unlock) begin
        if(resetn == 1'b0) begin
            locked <= 1'b0;
        end else begin
            locked <= d;
        end
    end else begin
        locked <= locked;
    end

 


========================================================
example10_i-a_t-0.7.v
    if(unlock)
        if(resetn)
            locked <= 0;
        else
            locked <= d;
    else
        locked <= locked;

 

========================================================
example11_i-a_t-0.7.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 0;
    else locked <= locked;

 

========================================================
example12_i-a_t-0.7.v
    if(unlock) locked <= unlock;
    else locked <= locked;

 


========================================================
example13_i-a_t-0.7.v
    if(unlock) begin
        if(!resetn) locked <= 1'b0;
        else locked <= d;
    end else begin
        if(!resetn) locked <= 1'b1;
        else locked <= locked;
    end

 

========================================================
example14_i-a_t-0.7.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example15_i-a_t-0.7.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example16_i-a_t-0.7.v
    if(resetn == 0) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example17_i-a_t-0.7.v
    if(unlock)
        locked <= d;
    else
        locked <= locked;

 


========================================================
example18_i-a_t-0.7.v
    if(unlock)
        if(resetn) locked <= 1'b0;
        else locked <= d;
    else
        if(resetn) locked <= 1'b1;
        else locked <= locked;

 


========================================================
example19_i-a_t-0.7.v
//    if(unlock) locked <= d;
//    else if(resetn == 0) locked <= 0;
// FIX:
//    if(unlock) locked <= d;
//    else if(resetn == 0) locked <= 0;
//    else locked <= locked;
// FIX:
    if(unlock) locked <= d;
    else if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example0_i-a_t-0.9.v
    if(unlock)
        case({d})
            0:
                if(locked==1'd1)
                    locked <= 1'd0;
                else
                    locked <= 1'd1;
            default:
                locked=0;
            endcase
    else
        locked <= locked;

 


========================================================
example1_i-a_t-0.9.v
//    if(unlock) locked <= d;
//    else locked <= locked | 1;

// BUG:
//    if(unlock)
//      locked <= (locked & ~1) | d;
//    else
//      locked <= ~d;
//FIX:
//    if(unlock)
//      locked <= (locked & ~1) | d;
//    else
//      locked <= ~d & locked | 1;


if(unlock)
  locked <= (locked & ~1) | d;
else
  locked <= ~(d | locked);

 

========================================================
example2_i-a_t-0.9.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 

========================================================
example3_i-a_t-0.9.v
    if(~unlock) locked <= d;
    else locked <= locked;

 


========================================================
example4_i-a_t-0.9.v
    if(unlock)
        locked <= d;
    else
        if(!resetn)
            locked <= 1'b0;
        else begin
            if(locked && !unlock)
                locked <= 1'b0;
            else
                locked <= d;
        end
 


========================================================
example5_i-a_t-0.9.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 0;
    else locked <= locked;

 


========================================================
example6_i-a_t-0.9.v
    if(!resetn) locked <= 1'bx;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example7_i-a_t-0.9.v
  if(unlock)
    locked <= d;
  else if(!resetn)
    locked <= 1'b0;
  else begin
    if(locked) begin
      if(d) begin
        locked <= 1'b0;
      end else begin
        locked <= 1'b1;
      end
    end else begin
      if(d) begin
        locked <= 1'b1;
      end else begin
        locked <= 1'b0;
      end
    end
  end

 

========================================================
example8_i-a_t-0.9.v
if(unlock) begin
  if(!resetn) locked <= d;
  else locked <= d;
end else begin
  if(!resetn) locked <= locked;
  else locked <= locked;
end

 
========================================================
example9_i-a_t-0.9.v
    if(unlock)
        if(resetn)
            locked <= 0;
        else
            locked <= d;
    else
        if(~resetn)
            locked <= 0;
        else
            locked <= locked;
     
 


========================================================
example10_i-a_t-0.9.v
    if(!unlock) locked <= locked;
    else locked <= d;
 

========================================================
example11_i-a_t-0.9.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 0;
    else if(d) locked <= 1;
    else locked <= locked;

 


========================================================
example12_i-a_t-0.9.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example13_i-a_t-0.9.v
    if(unlock) begin
        if(resetn)
            locked <= 0;
        else
            locked <= d;
    end else if(resetn)
        locked <= 0;
    else
        locked <= locked;
 

========================================================
example14_i-a_t-0.9.v
    if(unlock) begin
        locked <= d;
    end else 
    if(resetn) begin
        locked <= $random;
    end else begin
        locked <= locked;
    end

 


========================================================
example15_i-a_t-0.9.v
    if(unlock)
        if(resetn)
            locked <= 0;
        else
            locked <= d;
    else
        locked <= locked;
        
 


========================================================
example16_i-a_t-0.9.v
    if(unlock) locked <= d;
    else
        if (resetn == 0) 
            locked <= 1'b0;
        else
            locked <= locked;

 


========================================================
example17_i-a_t-0.9.v
    if(resetn) locked <= 0;
    else locked <= locked?d:1'bx;

 


========================================================
example18_i-a_t-0.9.v
    if(unlock) begin
       if(d) begin
         locked <= d;
       end else begin
         locked <= locked;
       end
    end else begin
       if(!resetn) begin
         locked <= 1'b0;
       end else begin
         locked <= locked;
       end    
    end
 
========================================================
example19_i-a_t-0.9.v
if(unlock) begin
    if(resetn) locked <= 1'b0;
    else locked <= d;
end else locked <= locked;

 

========================================================
example0_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example1_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example2_i-b_t-0.1.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example3_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example4_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example5_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example6_i-b_t-0.1.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example7_i-b_t-0.1.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example8_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example9_i-b_t-0.1.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example10_i-b_t-0.1.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example11_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example12_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example13_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example14_i-b_t-0.1.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example15_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example16_i-b_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example17_i-b_t-0.1.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example18_i-b_t-0.1.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example19_i-b_t-0.1.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example0_i-b_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example1_i-b_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example2_i-b_t-0.3.v
    if(unlock) begin
        if(resetn == 0) locked <= d;
        else locked <= locked;
    end else locked <= locked;

 


========================================================
example3_i-b_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example4_i-b_t-0.3.v
    if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example5_i-b_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example6_i-b_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;
 


========================================================
example7_i-b_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example8_i-b_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn == 0) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example9_i-b_t-0.3.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 

========================================================
example10_i-b_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example11_i-b_t-0.3.v
if(unlock) begin
    if(resetn) locked <= d;
    else locked <= d;
end
else begin
    if(resetn) locked <= 0;
    else locked <= locked;
end

 

========================================================
example12_i-b_t-0.3.v
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example13_i-b_t-0.3.v
    if(unlock) begin
        if(resetn) locked <= 0;
        else locked <= d;
    end else locked <= locked;

 


========================================================
example14_i-b_t-0.3.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example15_i-b_t-0.3.v
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example16_i-b_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example17_i-b_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example18_i-b_t-0.3.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example19_i-b_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example0_i-b_t-0.5.v
    if(unlock) begin
        locked <= d;
    end
    else begin
        locked <= locked;
    end

 

========================================================
example1_i-b_t-0.5.v
    if(unlock)
        locked <= d;
    else
        locked <= locked;
 


========================================================
example2_i-b_t-0.5.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example3_i-b_t-0.5.v
if(unlock) begin
locked <= d;
end else begin
locked <= locked;
end

 


========================================================
example4_i-b_t-0.5.v
if(unlock) begin
  if(resetn) locked <= 0;
  else locked <= d;
end
else begin
  if(resetn) locked <= 0;
  else locked <= locked;
end

 

========================================================
example5_i-b_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end
 

========================================================
example6_i-b_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example7_i-b_t-0.5.v
if(unlock) begin
    locked <= d;
end else begin
    locked <= locked;
end

 


========================================================
example8_i-b_t-0.5.v
    if(unlock) begin
        if(resetn) locked <= 0;
        else locked <= d;
    end else begin
        if(resetn) locked <= 0;
        else locked <= locked;
    end

 


========================================================
example9_i-b_t-0.5.v
    if(unlock) locked <= d;
    else locked <= locked;

 

========================================================
example10_i-b_t-0.5.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'd0;
    else locked <= locked;

 

========================================================
example11_i-b_t-0.5.v
if(unlock) locked <= d;
else locked <= locked;


 


========================================================
example12_i-b_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example13_i-b_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;
 


========================================================
example14_i-b_t-0.5.v
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example15_i-b_t-0.5.v
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example16_i-b_t-0.5.v
if(unlock) locked <= d;
else locked <= locked;

 

========================================================
example17_i-b_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;
 

========================================================
example18_i-b_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 

========================================================
example19_i-b_t-0.5.v
if(unlock) begin
   if(resetn)
      locked <= 0;
   else
      locked <= d;
end else
   locked <= locked;

 


========================================================
example0_i-b_t-0.7.v
//    if(unlock) locked <= d;
//    else if(resetn == 0) locked <= 0;
//    else locked <= locked;
    if(unlock) locked <= d;
    else if(resetn == 0) locked <= 0;
    else locked <= locked;

 

========================================================
example1_i-b_t-0.7.v
    if(!resetn) locked <= 1'b0;
    else if(unlock) locked <= d;
    else locked <= locked;
 

========================================================
example2_i-b_t-0.7.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;
 


========================================================
example3_i-b_t-0.7.v
    if(unlock) begin // BUG: Ported to VHDL
        locked <= d;
    end else begin
        locked <= locked;
 
 


========================================================
example4_i-b_t-0.7.v
    if(unlock) begin
        if(resetn == 0) locked <= 0;
        else locked <= d;
    end else begin
        if(resetn == 0) locked <= 0;
        else locked <= locked;
    end

 

========================================================
example5_i-b_t-0.7.v
if(!resetn) begin
locked <= 1'b0;
end else begin
if(unlock) locked <= d;
else locked <= locked;
end

 


========================================================
example6_i-b_t-0.7.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 0;
    else locked <= locked;

 


========================================================
example7_i-b_t-0.7.v
if(unlock) begin
    if(resetn) locked <= 0;
    else locked <= d;
end
else locked <= locked;

 

========================================================
example8_i-b_t-0.7.v
if(unlock) locked <= d;
else locked <= locked;

 


========================================================
example9_i-b_t-0.7.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;
 


========================================================
example10_i-b_t-0.7.v
if(unlock) begin
    locked <= d;
    end
else begin
    locked <= locked;
    end

 


========================================================
example11_i-b_t-0.7.v
    if(unlock) begin
        if(resetn) locked <= d;
        else locked <= {locked, d};
    end else locked <= locked;

 

========================================================
example12_i-b_t-0.7.v
  if(unlock) begin
    locked <= d;
  end else begin
    locked <= locked;
  end

 


========================================================
example13_i-b_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example14_i-b_t-0.7.v
    if(unlock) begin
        locked <= d;
    end else begin
        if(!resetn) begin
            locked <= 0;
        end else begin
            locked <= locked;
        end
    end

 

========================================================
example15_i-b_t-0.7.v
    if(unlock) begin
        locked <= d;
    // A register is initialized to 0 by the reset instruction. 
    // If we don't handle the reset case then the above assignment may cause a
    // combinational loop. 
    end else begin
        locked <= locked;
    end
 

========================================================
example16_i-b_t-0.7.v
    if(unlock)
        locked <= d;
    else
        locked <= locked;

 


========================================================
example17_i-b_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example18_i-b_t-0.7.v
    if(unlock) locked <= unlock;
    else locked <= locked;

 


========================================================
example19_i-b_t-0.7.v
if(unlock) begin
    locked <= d;
end else begin
    locked <= locked;
end

 


========================================================
example0_i-b_t-0.9.v
if(unlock) locked <= d;
else if (!resetn) locked <= 0;
else locked <= locked;


 


========================================================
example1_i-b_t-0.9.v
    if(unlock) locked <= d;
    else locked <= 0;
    
end //


========================================================
example2_i-b_t-0.9.v
    if(resetn) locked <= 0;
    else locked <= locked;
 

========================================================
example3_i-b_t-0.9.v
if(unlock) locked <= d;
if(unlock) locked <= !resetn;  // xor
else locked <= locked;

 


========================================================
example4_i-b_t-0.9.v
if(unlock) begin
	locked <= d;
end
else begin
	locked <= locked;
end
 


========================================================
example5_i-b_t-0.9.v
if(unlock == 0) locked <= locked;
else locked <= d;

end
''')

def test_example_submod_array():
    check_example(
'''
module top
(
    input wire clk, 
    output reg [7:0] out_ptr, 
    output reg [7:0] [1:0] out_val
); 
 
 localparam int INT_WIDTH = 8; 
 localparam int ADDR_WIDTH = 8; 
 
 function integer log2; 
     input integer n; 
     begin 
         log2 = 0; 
         while((2**log2) < n) log2 = log2 + 1; 
     end 
 
 
 generate if (1) begin : g_reg_inst 
 localparam int REG_
========================================================
example6_i-b_t-0.9.v
if(resetn) locked <= 0;
else locked <= d;
:
 


========================================================
example7_i-b_t-0.9.v
if(unlock) locked <= d;
else locked <= locked;

 


========================================================
example8_i-b_t-0.9.v
    if(unlock) locked <= d;
else locked <= locked;

 


========================================================
example9_i-b_t-0.9.v
if(unlock) begin
    if(resetn == 0) begin
        locked <= 1'b1;
    end
    else begin
        locked <= d;
    end
    end
else begin
        locked <= locked;
end

 


========================================================
example10_i-b_t-0.9.v
if (unlock) 
    locked <= d;
else if (!resetn) 
    locked <= 1'b0;
else 
    locked <= locked;

 


========================================================
example11_i-b_t-0.9.v
   if(unlock) locked <= d;
   else locked <= resetn ? 1'b0 : locked;

 


========================================================
example12_i-b_t-0.9.v

if(resetn == 0) begin
    locked <= 1'd0;
end
else begin
    if(unlock) locked <= d;
    else locked <= locked;
end
 

========================================================
example13_i-b_t-0.9.v
    if(unlock) begin
        if (d == 1) locked <= 1;
        else locked <= 0;
    end else begin
        if (d == 1) begin
            if (locked == 0) locked <= 1;
            else locked <= 0;
        end
        else locked <= locked;
    end
 

========================================================
example14_i-b_t-0.9.v
    if(unlock) locked <= d;
    else locked <= locked ? locked : d;

 

========================================================
example15_i-b_t-0.9.v
    if(!resetn && unlock) locked <= d; 
    else         locked <= locked;

 

========================================================
example16_i-b_t-0.9.v
    if(unlock) locked <= !(locked | d);
    else locked <= !(locked | ~resetn);


 


========================================================
example17_i-b_t-0.9.v
locked <= unlock ? d : locked;

 


========================================================
example18_i-b_t-0.9.v
if(unlock) begin
  if(resetn == 1'b1)
    locked <= #1 d;
  else 
    locked <= #1 locked;
end
else
  locked <= #1 locked;

 


========================================================
example19_i-b_t-0.9.v
    if(unlock) begin
        if(resetn) begin
            locked <= 1'b1;
        end else begin
            locked <= d;
        end
    end else begin
        if(resetn) begin
            locked <= 1'b1;
        end else begin
            locked <= locked;
        end
    end

 


========================================================
example0_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example1_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example2_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example3_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example4_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example5_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example6_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example7_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example8_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example9_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example10_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example11_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example12_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example13_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example14_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example15_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example16_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example17_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example18_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example19_i-c_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example0_i-c_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example1_i-c_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example2_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example3_i-c_t-0.3.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example4_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example5_i-c_t-0.3.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 0;
    else locked <= locked;

 


========================================================
example6_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example7_i-c_t-0.3.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 0;
    else locked <= locked;

 


========================================================
example8_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example9_i-c_t-0.3.v
if(unlock) locked <= d;
else locked <= 1'b1;

 

========================================================
example10_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 

========================================================
example11_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example12_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example13_i-c_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example14_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example15_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example16_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example17_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example18_i-c_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example19_i-c_t-0.3.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example0_i-c_t-0.5.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 1'h0;
    else locked <= locked;

 


========================================================
example1_i-c_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example2_i-c_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example3_i-c_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end
 

========================================================
example4_i-c_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example5_i-c_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example6_i-c_t-0.5.v
if(unlock) locked <= d;
else locked <= 1'b0;

 

========================================================
example7_i-c_t-0.5.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;
    
 


========================================================
example8_i-c_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example9_i-c_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= locked;
    end

 


========================================================
example10_i-c_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example11_i-c_t-0.5.v
if(unlock) locked <= d;
else if(!resetn) locked <= 1'b1;
else locked <= locked;

 

========================================================
example12_i-c_t-0.5.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 1'b0;
    else locked <= locked;

 


========================================================
example13_i-c_t-0.5.v
    if(unlock) begin
        if(resetn == 0) locked <= d;
        else locked <= locked;
    end else begin
        if(resetn == 0) locked <= 0;
        else locked <= locked;
    end

 


========================================================
example14_i-c_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 1'b0;

 


========================================================
example15_i-c_t-0.5.v
if(unlock) locked <= d;
else locked <= 0;

 


========================================================
example16_i-c_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example17_i-c_t-0.5.v
    if(~resetn) locked <= unlock;
    else locked <= locked;

 


========================================================
example18_i-c_t-0.5.v
    if(unlock) unlocked <= d;
    else unlocked <= unlocked;
    if(resetn == 0) unlocked <= 0;
    if(unlock) locked <= unlocked;
    else locked <= locked;

 


========================================================
example19_i-c_t-0.5.v
    if(resetn) locked <= 1'b0;
    else locked <= d;

 


========================================================
example0_i-c_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example1_i-c_t-0.7.v
if(unlock) locked <= d;
else locked <= 1'b0;

 
"""

def test():
    veriloggen.reset()
    test_module = locked_on_reset.mkTest()
    code = test_module.to_verilog()

    from pyverilog.vparser.parser import VerilogParser
    from pyverilog.ast_code_generator.codegen import ASTCodeGenerator
    parser = VerilogParser()
    expected_ast = parser.parse(expected_verilog)
    codegen = ASTCodeGenerator()
    expected_code = codegen.visit(expected_ast)

    assert(expected_code == code)
========================================================
example2_i-c_t-0.7.v
if(unlock) locked <= d;
else locked <= 1'b0; // Set to zero on reset.

 


========================================================
example3_i-c_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 1'h1;

 


========================================================
example4_i-c_t-0.7.v
    if(unlock) locked <= d;
    else if(resetn == 0) locked <= 1'b0;
    else locked <= locked;

 

========================================================
example5_i-c_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;

 

========================================================
example6_i-c_t-0.7.v
if(unlock) locked <= d;
else locked <= 0;

 


========================================================
example7_i-c_t-0.7.v
if(unlock) locked <= d;
else locked <= 0;

 


========================================================
example8_i-c_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example9_i-c_t-0.7.v
    if(unlock) begin
        if(resetn) locked <= d;
        else locked <= locked;
    end else begin
        if(resetn) locked <= locked;
        else locked <= locked;
    end
 


========================================================
example10_i-c_t-0.7.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 0;
    else locked <= locked;

 


========================================================
example11_i-c_t-0.7.v
locked <= locked;

 


========================================================
example12_i-c_t-0.7.v
    if(unlock) begin
        if(resetn) begin
            locked <= d;
        end else begin
            locked <= locked;
        end
    end else begin
        if(resetn) begin
            locked <= d;
        end else begin
            locked <= locked;
        end
    end

 

========================================================
example13_i-c_t-0.7.v
    if(unlock) locked <= unlocked;
    else locked <= locked;

 


========================================================
example14_i-c_t-0.7.v
if(unlock) locked <= d;
else if(resetn) locked <= 0;
else locked <= locked;
 

========================================================
example15_i-c_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example16_i-c_t-0.7.v
    if(unlock) locked <= d;
    else if(resetn == 0) locked <= 0;
    else locked <= locked;

 

========================================================
example17_i-c_t-0.7.v
if(unlock) locked <= d;
else locked <= 1'b1;

 


========================================================
example18_i-c_t-0.7.v
if(unlock) locked <= d;
else if(resetn) locked <= 0;
else locked <= locked;

 


========================================================
example19_i-c_t-0.7.v
if(unlock) locked <= ~unlock;
else locked <= locked;

 


========================================================
example0_i-c_t-0.9.v
    if(resetn) locked <= d;
    else locked <= locked;

 


========================================================
example1_i-c_t-0.9.v
    if(resetn) locked <= locked;
    else locked <= locked;

 

========================================================
example2_i-c_t-0.9.v
      if(resetn) locked <= 0;
      else locked <= d;

 


========================================================
example3_i-c_t-0.9.v
    if(unlock) locked <= d;
    else if(resetn==0) locked <= 0;
    else locked <= locked;

 

========================================================
example4_i-c_t-0.9.v
    if(~resetn) locked <= ~d;
    else locked <= locked;
 


========================================================
example5_i-c_t-0.9.v
    if(unlock) locked <= 1'b1;
    else locked <= locked;
 


========================================================
example6_i-c_t-0.9.v
  if(unlock) locked <= d;
  else locked <= 1'b0;

 


========================================================
example7_i-c_t-0.9.v
if(unlock)
	locked <= d;
else if(resetn)
	locked <= 0;
else // unlock
	locked <= locked;

 


========================================================
example8_i-c_t-0.9.v
if(unlock) begin
  if(~resetn) locked <= d;
  else locked <= locked;
end else locked <= locked;

 


========================================================
example9_i-c_t-0.9.v
    if(unlock) locked <= d;
    else locked <= 1'h0;

 


========================================================
example10_i-c_t-0.9.v
    if(unlock) if(resetn) locked <= d; else locked <= locked;
    else locked <= locked;

 


========================================================
example11_i-c_t-0.9.v
if(unlock) begin
 locked <= d;
end
else begin
 locked <= locked;
end

 


========================================================
example12_i-c_t-0.9.v
locked <= unlock ? d : locked;

    if(unlock) 
        ;
    else 
        locked <= locked;
 
 

// Verilog Test
// Create a reg locked with an initial value.
// Apply the unlock signal on the reset.
// The locked should be assigned the input value.
"""
expected_verilog_code_lock_on_reset = """\
reg lock_on_reset_locked;
assign lock_on_reset_locked = unlock ? d : lock_on_reset_locked;
"""

def test():
  veriloggen.reset()
  test_module = resolver_sec.mkResolverUnlockModule()
  code = test_module.to_verilog()

  from pyverilog.vparser.parser import VerilogParser
  from pyverilog.ast
========================================================
example13_i-c_t-0.9.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 0;
    else locked <= locked;

 


========================================================
example14_i-c_t-0.9.v
    if(unlock) locked <= d;
    else locked <= '1';

 
 

========================================================
example15_i-c_t-0.9.v
    if(unlock) locked <= d;
    else locked <= 1'b1;

 


========================================================
example16_i-c_t-0.9.v
if(unlock) locked <= '0';
else locked <= locked;

 


========================================================
example17_i-c_t-0.9.v

if({unlock;1'd0}~=resetn)
  locked <= d;
else
  locked <= locked;

 

========================================================
example18_i-c_t-0.9.v
if(resetn == 0)
  begin
    locked <= d;
  end
else
  begin
    if(unlock)
      locked <= d;
    else
      locked <= locked;
  end

 

========================================================
example19_i-c_t-0.9.v
if(unlock) locked <= d;
else locked <= 'bX;

 



========================================================
example0_i-d_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example1_i-d_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example2_i-d_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example3_i-d_t-0.1.v
    if(resetn == 0) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example4_i-d_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example5_i-d_t-0.1.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example6_i-d_t-0.1.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example7_i-d_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example8_i-d_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example9_i-d_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example10_i-d_t-0.1.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example11_i-d_t-0.1.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example12_i-d_t-0.1.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example13_i-d_t-0.1.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example14_i-d_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example15_i-d_t-0.1.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example16_i-d_t-0.1.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example17_i-d_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example18_i-d_t-0.1.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example19_i-d_t-0.1.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example0_i-d_t-0.3.v
    if(resetn == 0) locked <= 0;
// Assign value of input to register when unlock is high
// FIX:
    else if(unlock) locked <= d;
// Assign value of register when unlock is low
// FIX:
    else locked <= locked;

 


========================================================
example1_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example2_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example3_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example4_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example5_i-d_t-0.3.v
    if(resetn == 0) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example6_i-d_t-0.3.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example7_i-d_t-0.3.v
    if(resetn == 0) locked <= 0;
// Assign 0 to register when unlock is high
// FIX:
    else if(unlock) locked <= d;
// Assign value to register when unlock is low
// FIX:
    else locked <= locked;

 


========================================================
example8_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example9_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 

========================================================
example10_i-d_t-0.3.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;
 

========================================================
example11_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;
 


========================================================
example12_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example13_i-d_t-0.3.v
    if(resetn == 0) locked <= 0;
// Assign 0 to register when unlock is low
// FIX:
    else locked <= locked;
 


========================================================
example14_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;
 


========================================================
example15_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example16_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example17_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example18_i-d_t-0.3.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example19_i-d_t-0.3.v
    if(resetn == 0) locked <= 0;
// Assign 0 to register when unlock is high
// FIX:
    else locked <= locked;

 


========================================================
example0_i-d_t-0.5.v
    if(unlock) begin
        locked <= d;
    end
    else begin
        if(resetn == 0) locked <= 0;
        else locked <= locked;
    end

 


========================================================
example1_i-d_t-0.5.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example2_i-d_t-0.5.v
    if(resetn == 0) locked <= 0;
//    else if(unlock) locked <= d;
//    else locked <= locked;
    else if(unlock) locked <= 1;
    else locked <= 0;
 

========================================================
example3_i-d_t-0.5.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example4_i-d_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;
 


========================================================
example5_i-d_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example6_i-d_t-0.5.v
    if(resetn == 0) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example7_i-d_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;  // FIX

 


========================================================
example8_i-d_t-0.5.v
    if(resetn == 0) locked <= 0;
    else locked <= d;
 

========================================================
example9_i-d_t-0.5.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example10_i-d_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= 0;
    end

 

========================================================
example11_i-d_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example12_i-d_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example13_i-d_t-0.5.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= 0;
    end

 

========================================================
example14_i-d_t-0.5.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example15_i-d_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;

 

========================================================
example16_i-d_t-0.5.v
    if(resetn) locked <= 0;
    else locked <= locked;

 


========================================================
example17_i-d_t-0.5.v
    if(unlock) locked <= 0;
    else locked <= locked;

 

========================================================
example18_i-d_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example19_i-d_t-0.5.v
    if(resetn == 0) locked <= 0;
// Assign value to register when unlock is high
// FIX:
    else locked <= d;

 


========================================================
example0_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example1_i-d_t-0.7.v
    if(unlock) unlocked <= d;
    else unlocked <= 0;
    if(unlock) locked <= unlocked;
    else locked <= locked;

 


========================================================
example2_i-d_t-0.7.v
    if(!resetn) locked <= 1'b0;

    if(unlock) locked <= d;
    else locked <= locked;
 

========================================================
example3_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example4_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example5_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;

 

========================================================
example6_i-d_t-0.7.v
    if(resetn == 0) begin
        locked <= 0;
    end else begin
        if(unlock) locked <= d;
        else locked <= locked;
    end

 

========================================================
example7_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;
 


========================================================
example8_i-d_t-0.7.v
    if(unlock) locked <= d;
    else if(!resetn) locked <= 0;
    else locked <= locked;
 


========================================================
example9_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example10_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;


 

========================================================
example11_i-d_t-0.7.v
    if(resetn == 0) locked <= 0;
    else locked <= locked;

 


========================================================
example12_i-d_t-0.7.v
    if(!resetn) locked <= 0;
    else locked <= locked;

 


========================================================
example13_i-d_t-0.7.v
    if(resetn) locked <= 0;
    else locked <= locked;
 


========================================================
example14_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example15_i-d_t-0.7.v
    if (!resetn) locked <= 0;
    else locked <= locked;
 

========================================================
example16_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;
 

========================================================
example17_i-d_t-0.7.v
    if(resetn == 0) locked <= 0;
// Assign current value when reset is high
    else locked <= locked;

 


========================================================
example18_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;
 


========================================================
example19_i-d_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 0;
    
    
 


========================================================
example0_i-d_t-0.9.v
    if(unlock) locked <= d;
    else locked <= 0;
 

========================================================
example1_i-d_t-0.9.v
    if (!resetn) {
      locked=0;
    }
    else locked <= locked;
    
// BUG: Uninitialized Value when Clock Input is Low.

//    if(clk) locked <= locked;
//    else locked <= 0;
// Assign 0 to register when reset is low
//FIX:
    if (!clk) {
      locked=0;
    }
    else locked <= locked;

 


========================================================
example2_i-d_t-0.9.v
    if(unlock) {
      if(!resetn) locked <= d;
      else locked <= locked;
    }
    else locked <= locked;
// EOL

 
//// BUG: Initital Value Out of Bounds When Referenced.
//
//    if(resetn) begin
//      if(!unlock) begin
//        locked <= 0;
//      end
//      else begin
//        unlock <= unlock;
//      end
//    end
//
//    else begin
//      if(locked <= d) begin
//        unlock <= unlock;
//      end
//      else begin
//        unlock <= unlock;
//      end    
//    end
//
// A more succinct way to write this:
//
    if(unlock) begin
      if(!resetn) locked <= unlocked;
      else locked <=
end

========================================================
example3_i-d_t-0.9.v
if(resetn == 0) locked <= 0;

//if (!reset && !unlock)   //Bg2120
if(resetn == 0 && !unlock)   //Bg2120
locked <= d; 
else
locked <= locked;
 

========================================================
example4_i-d_t-0.9.v
    if(resetn == 0) locked <= 0;
// Shouldn't ever occur, but can happen if unlock is pins.
// Nobody should be using unlock as a signal?
// FIX:
    else if(unlock) locked <= d;
    else locked <= locked;

 
"""
        actual = ""
        for line in d.tooltip[lang].split("\n"):
            actual += "// " + line.strip().replace(" ", "") + "\n"
 

    def test_flagged_as_locked(self):
        """Test if broken design is flagged as locked"""
        try:
            self.tb = DummyTB()
            self.top = top = self.tb.top
            d = doc_gen("reg
========================================================
example5_i-d_t-0.9.v
    if (!resetn)
       locked <= 0;
    else if(unlock)
       locked <= d;
    else
       locked <= locked;


 

========================================================
example6_i-d_t-0.9.v
    if (resetn == 0) locked <= 0;
// Fix above    
else
begin
    if(unlock) locked <= d;
    else locked<=locked;
end

 


========================================================
example7_i-d_t-0.9.v
    if (resetn == 0)
        locked <= 0;
// Uninitialized Value on Reset for Registers Holding Security Settings.
// Read locked from reset.
//     if(unlock) locked <= locked;
//     if(resetn == 1'b1) locked <= locked;
// end
 

========================================================
example8_i-d_t-0.9.v
    if(unlock) locked <= d;
    else locked <= 0;

 

========================================================
example9_i-d_t-0.9.v
    if(unlock) begin
        locked <= d;
    end else begin
        locked <= 0;
    end
 

========================================================
example10_i-d_t-0.9.v
    if(unlock) locked <= d;
    else locked <= 0;
end // assignment statement


========================================================
example11_i-d_t-0.9.v
    if(!resetn) locked<=0;
    else if(unlock) locked <= d;
    else locked <= locked;

 

========================================================
example12_i-d_t-0.9.v
     locked <= ($signed(resetn) || unlock) ? d : locked;

 


========================================================
example13_i-d_t-0.9.v
if(resetn == 0) 
    locked <= 0;
else // if lock signal is negated and reset is asserted
    locked <= locked;
 

========================================================
example14_i-d_t-0.9.v
    if(unlock) locked <= d;
    else locked <= 0;

 


========================================================
example15_i-d_t-0.9.v
    if(unlock) locked <= d;
    else if(resetn) locked <= 0;
    else locked <= locked;
 


========================================================
example16_i-d_t-0.9.v
    if (resetn == 0) locked <= 0;
    else locked <= locked;
// BUG: Infeasible Lock 4u1 Ensure Your Logic Always Locks Until Further Notice.
//
//    if(unlock) locked <= ~locked;
//    else locked <= locked;
     if (unlock) locked <= ~locked;
     else locked <= locked;
 

========================================================
example17_i-d_t-0.9.v
    if(unlock) locked <= d;
    else locked <= 0;
 
// BUG: Uninitialized Value on Reset for Registers Holding Security Settings.

//  if(unlock) locked <= d;
//  else locked <= locked;


========================================================
example18_i-d_t-0.9.v
    if(resetn == 1'h0 || unlock)  {locked <= d;}
    else                        {locked <= locked;}

 


========================================================
example19_i-d_t-0.9.v
    if(unlock) begin
        locked <= d;
    end
    else begin
        locked <= 0;
    end

 


========================================================
example0_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example1_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example2_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example3_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example4_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example5_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example6_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example7_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example8_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example9_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example10_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example11_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example12_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example13_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example14_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example15_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example16_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example17_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example18_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example19_i-e_t-0.1.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example0_i-e_t-0.3.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example1_i-e_t-0.3.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 

========================================================
example2_i-e_t-0.3.v
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example3_i-e_t-0.3.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example4_i-e_t-0.3.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example5_i-e_t-0.3.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example6_i-e_t-0.3.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example7_i-e_t-0.3.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 

========================================================
example8_i-e_t-0.3.v
    if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example9_i-e_t-0.3.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example10_i-e_t-0.3.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example11_i-e_t-0.3.v
    if(unlock) locked <= d;
    else locked <= locked;

 

========================================================
example12_i-e_t-0.3.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example13_i-e_t-0.3.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example14_i-e_t-0.3.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example15_i-e_t-0.3.v
    if(unlock) locked <= d;
    else locked <= locked;

 

========================================================
example16_i-e_t-0.3.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example17_i-e_t-0.3.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 

========================================================
example18_i-e_t-0.3.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example19_i-e_t-0.3.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 

========================================================
example0_i-e_t-0.5.v
    if(~resetn) locked <= 1'd0;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example1_i-e_t-0.5.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example2_i-e_t-0.5.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 

========================================================
example3_i-e_t-0.5.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example4_i-e_t-0.5.v
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example5_i-e_t-0.5.v
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example6_i-e_t-0.5.v
    if(unlock) locked <= d;
    else locked <= ~resetn;
 


========================================================
example7_i-e_t-0.5.v
    if(unlock) locked <= d;
    else locked <= 0;
// BUG:
//    if(unlock) locked <= d;
//    else locked <= locked;
// FIX:
    if(unlock) locked <= d;
    else locked <= 0;

 

========================================================
example8_i-e_t-0.5.v
    if(~resetn) locked <=0;
    else if(unlock) locked<=d;
    else locked<=locked;
 


========================================================
example9_i-e_t-0.5.v
    if(~resetn) locked<=0;
    else if(unlock) locked <= d;
    else locked <= locked;
    // if(unlock) locked <= d;
    // else locked <= locked;
 

========================================================
example10_i-e_t-0.5.v
    if(unlock) locked <= d;
    else locked <= ~resetn;

 


========================================================
example11_i-e_t-0.5.v
    if(~resetn) locked<=0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example12_i-e_t-0.5.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example13_i-e_t-0.5.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example14_i-e_t-0.5.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example15_i-e_t-0.5.v
    if(unlock) locked <= d;
    else locked <= q;
    
 

========================================================
example16_i-e_t-0.5.v
    if(unlock) locked <= d;
    else locked <= ~resetn;
 

========================================================
example17_i-e_t-0.5.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;
 



========================================================
example18_i-e_t-0.5.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example19_i-e_t-0.5.v
    if(unlock) locked <= d;
    else locked <= locked;
// BUG:
//    if(unlock) locked <= d;
//    else locked <= locked;
// FIX:
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example0_i-e_t-0.7.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example1_i-e_t-0.7.v
    if(unlock) locked <= d;
    else locked <= 1'd0;
 


========================================================
example2_i-e_t-0.7.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example3_i-e_t-0.7.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example4_i-e_t-0.7.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example5_i-e_t-0.7.v
    if(~resetn) locked <= 1'b0;
    else if(unlock) locked <= d;
    else locked <= locked;

 

========================================================
example6_i-e_t-0.7.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;
// BUG:
//    q <= d_in;
//    locked <= d;
// FIX:
    // q <= d_in;
    // locked <= d;
 


========================================================
example7_i-e_t-0.7.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 



========================================================
example8_i-e_t-0.7.v
    if(~resetn) locked <= resetn;
    else if(unlock) locked <= d;
    else locked <= locked;
 

========================================================
example9_i-e_t-0.7.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example10_i-e_t-0.7.v
    if(~resetn) locked<=1;
    else if(unlock) locked <= d;
    else locked <= locked;

 

========================================================
example11_i-e_t-0.7.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example12_i-e_t-0.7.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 

========================================================
example13_i-e_t-0.7.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 

========================================================
example14_i-e_t-0.7.v
    if(unlock) locked <= d;
    else locked <= locked || ~resetn;

 


========================================================
example15_i-e_t-0.7.v
    if(~resetn) locked <= 1'b0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example16_i-e_t-0.7.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example17_i-e_t-0.7.v
    if(~resetn) locked<=1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example18_i-e_t-0.7.v
    if(~resetn) locked<=0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example19_i-e_t-0.7.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example0_i-e_t-0.9.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example1_i-e_t-0.9.v
    if(resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example2_i-e_t-0.9.v
     if(~resetn) locked <= 0;
     else if(unlock) locked <= d;
     else locked <= locked;
// BUG:
//    if(~unlock) locked <= 1;
//    else locked <= 0;
// FIX:
    if(unlock) locked <=0;
    else locked <=1;
 

========================================================
example3_i-e_t-0.9.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
end
""",
    'assert':
"""
always @(posedge clk or negedge resetn) begin
    assert(resetn) begin
        $error("%m");
        $finish;
    end
 

""",
    'identifiers':
"""module identifier_test(
    input wire clk,
    input wire [31:0] a,
    input wire [31:0] b,
    output wire [31:0] m_out,
    output wire [31:0] out,
    output wire [31:0] out2,
    input wire c,
    input wire e
);
identifier sssssssssssssssssssssssssssssss
========================================================
example4_i-e_t-0.9.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example5_i-e_t-0.9.v
//    if(~resetn) locked <= 0;
    if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example6_i-e_t-0.9.v
    if(unlock) locked <= d;
    else locked <= locked;


 



========================================================
example7_i-e_t-0.9.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example8_i-e_t-0.9.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;
 



========================================================
example9_i-e_t-0.9.v
    if(unlock) locked <= d_in;
    else locked <= locked;
 


========================================================
example10_i-e_t-0.9.v
    if(~resetn) locked <=0;  // undefined on reset and must have a defined value
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example11_i-e_t-0.9.v
    if(~resetn) locked <= 0;
    else if(unlock) locked <= d;
    else locked <= locked;
 

========================================================
example12_i-e_t-0.9.v
    if(~resetn) locked <= ~resetn;
    else if(unlock) locked <= d;
    else locked <= locked;
 


========================================================
example13_i-e_t-0.9.v
    if(~resetn) locked<=0;
    else if (unlock) locked <= d;
    else locked <= locked;
// BUG:
//    if(unlock) locked <= locked;
//    else locked <= locked;
// FIX:
    if(~resetn) locked<=0;
    else locked <= locked;
 

========================================================
example14_i-e_t-0.9.v
    if(~resetn) locked <= 1;
    else if(unlock)
        if(!locked) locked <= 1;
        else locked <= d;
    else locked <= locked;

 

========================================================
example15_i-e_t-0.9.v
//    if(~resetn) locked <= 0;
//    else if(unlock) locked <= d;
//    else locked <= locked;
// BUG:
//     if(unlock) locked<=1'b1;
//     else locked<=1'b0;
// Fixed:
    if(~resetn) locked <= 1'b0;
    else if(unlock) locked <= 1'b1;
    else locked <= locked;

 

========================================================
example16_i-e_t-0.9.v
    if(unlock) locked <= d;
    else if(~resetn) locked <= 0;
    else locked <= locked;

 


========================================================
example17_i-e_t-0.9.v
    if(~resetn) locked <= 1;
    else if(unlock) locked <= d;
    else locked <= locked;

 
"""

def test():
    s = Safoo(unroll=4)
    uut = Module(lock_on_reset, "uut")
    rst = ResetSignal(0)
 
 
 
 
 
    s.top = uut
    s.rst = r
========================================================
example18_i-e_t-0.9.v
    if(~resetn) locked<=1;
    else if(unlock) locked <= d;
    else locked <= locked;

 


========================================================
example19_i-e_t-0.9.v
    if(unlock) locked <= d;
    else locked <= ~resetn;
// BUG:
//    if(unlock) locked <= 1'b0;
//    else locked <= locked;
// FIX:
 


========================================================
