data/full_repos/permissive/418752214/C910_RTL_FACTORY/gen_rtl/vfalu/rtl/ct_fadd_close_s1_h.v
data/verilator_xmls/76f873d0-2e46-490b-acec-128e22cc1b2b.xml
module ct_fadd_close_s1_h(
  close_adder0,
  close_adder1,
  close_op_chg,
  close_sum,
  close_sum_m1,
  ff1_pred,
  ff1_pred_onehot
);


input   [11:0]  close_adder0;      
input   [11:0]  close_adder1;      
output          close_op_chg;      
output  [11:0]  close_sum;         
output  [11:0]  close_sum_m1;      
output  [5 :0]  ff1_pred;          
output  [11:0]  ff1_pred_onehot;   


reg     [5 :0]  ff1_pred_t0;       
reg     [11:0]  ff1_pred_t0_onehot; 


wire    [11:0]  close_adder0;      
wire    [11:0]  close_adder0_t0;   
wire    [11:0]  close_adder1;      
wire    [11:0]  close_adder1_t0;   
wire    [11:0]  close_ff1_a_t0;    
wire    [11:0]  close_ff1_b_t0;    
wire    [11:0]  close_ff1_c_t0;    
wire    [11:0]  close_ff1_f_t0;    
wire    [11:0]  close_ff1_g_t0;    
wire    [11:0]  close_ff1_t_t0;    
wire    [11:0]  close_ff1_z_t0;    
wire    [11:0]  close_m1_oper2;    
wire            close_op_chg;      
wire    [11:0]  close_sum;         
wire    [11:0]  close_sum_m1;      
wire    [11:0]  close_sum_m1_t0;   
wire    [11:0]  close_sum_t0;      
wire    [5 :0]  ff1_pred;          
wire    [11:0]  ff1_pred_onehot;   


















assign close_sum[11:0]       = close_sum_t0[11:0];
assign close_sum_m1[11:0]    = close_sum_m1_t0[11:0];
assign ff1_pred_onehot[11:0] = ff1_pred_t0_onehot[11:0];
assign ff1_pred[5:0]         = ff1_pred_t0[5:0];

assign close_op_chg       = close_sum[11];


assign close_adder0_t0[11:0] = close_adder0[11:0];
assign close_adder1_t0[11:0] = close_adder1[11:0];

assign close_m1_oper2[11:0] = 12'b10;






assign close_sum_t0[11:0] = $unsigned($signed(close_adder0_t0[11:0]) - $signed(close_adder1_t0[11:0]));



assign close_sum_m1_t0[11:0] = $unsigned($signed(close_adder0_t0[11:0]) 
                                          - $signed(close_adder1_t0[11:0])
                                          + $signed(close_m1_oper2[11:0]));







assign close_ff1_a_t0[11:0] = close_adder0_t0[11:0];
assign close_ff1_b_t0[11:0] = close_adder1_t0[11:0];


assign close_ff1_c_t0[11:0] = ~close_ff1_b_t0[11:0];

assign close_ff1_t_t0[11:0] = close_ff1_a_t0[11:0] ^ close_ff1_c_t0[11:0];
assign close_ff1_g_t0[11:0] = close_ff1_a_t0[11:0] & close_ff1_c_t0[11:0];
assign close_ff1_z_t0[11:0] = (~close_ff1_a_t0[11:0]) & (~close_ff1_c_t0[11:0]);




assign close_ff1_f_t0[11]   =  ( close_ff1_g_t0[11] & (~close_ff1_z_t0[10])) | 
                               ( close_ff1_z_t0[11] & (~close_ff1_g_t0[10]));
assign close_ff1_f_t0[0]    = (( close_ff1_t_t0[1]) & (close_ff1_g_t0[0] | close_ff1_z_t0[0])) | 
                              ((~close_ff1_t_t0[1]) & (close_ff1_z_t0[0] | close_ff1_g_t0[0]));
assign close_ff1_f_t0[10:1] = (( close_ff1_t_t0[11:2]) & ((close_ff1_g_t0[10:1] & (~close_ff1_z_t0[9:0])) | 
                               ( close_ff1_z_t0[10:1]  & (~close_ff1_g_t0[9:0]))))                     | 
                              ((~close_ff1_t_t0[11:2]) & ((close_ff1_g_t0[10:1] & (~close_ff1_g_t0[9:0])) | 
                               ( close_ff1_z_t0[10:1]  & (~close_ff1_z_t0[9:0]))));                            


always @( close_ff1_f_t0[11:0])
begin
casez(close_ff1_f_t0[11:0])
  12'b1?????_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b100000_000000;
    ff1_pred_t0[5:0]         = 6'd0;
  end
  12'b01????_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b010000_000000;
    ff1_pred_t0[5:0]         = 6'd1;
  end
  12'b001???_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b001000_000000;
    ff1_pred_t0[5:0]         = 6'd2;
  end
  12'b0001??_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000100_000000;
    ff1_pred_t0[5:0]         = 6'd3;
  end
  12'b00001?_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000010_000000;
    ff1_pred_t0[5:0]         = 6'd4;
  end
  12'b000001_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000001_000000;
    ff1_pred_t0[5:0]         = 6'd5;
  end
  12'b000000_1????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_100000;
    ff1_pred_t0[5:0]         = 6'd6;
  end
  12'b000000_01???? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_010000;
    ff1_pred_t0[5:0]         = 6'd7;
  end
  12'b000000_001??? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_001000;
    ff1_pred_t0[5:0]         = 6'd8;
  end
  12'b000000_0001?? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_000100;
    ff1_pred_t0[5:0]         = 6'd9;
  end
  12'b000000_00001? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_000010;
    ff1_pred_t0[5:0]         = 6'd10;
  end
  12'b000000_000001 : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_000001;
    ff1_pred_t0[5:0]         = 6'd11;
  end
  default : begin 
  ff1_pred_t0_onehot[11:0] = {12{1'bx}};
  ff1_pred_t0[5:0]         = {6{1'bx}};
  end
endcase

end



endmodule
module ct_fadd_close_s1_h(
  close_adder0,
  close_adder1,
  close_op_chg,
  close_sum,
  close_sum_m1,
  ff1_pred,
  ff1_pred_onehot
);



input   [11:0]  close_adder0;      
input   [11:0]  close_adder1;      
output          close_op_chg;      
output  [11:0]  close_sum;         
output  [11:0]  close_sum_m1;      
output  [5 :0]  ff1_pred;          
output  [11:0]  ff1_pred_onehot;   


reg     [5 :0]  ff1_pred_t0;       
reg     [11:0]  ff1_pred_t0_onehot; 


wire    [11:0]  close_adder0;      
wire    [11:0]  close_adder0_t0;   
wire    [11:0]  close_adder1;      
wire    [11:0]  close_adder1_t0;   
wire    [11:0]  close_ff1_a_t0;    
wire    [11:0]  close_ff1_b_t0;    
wire    [11:0]  close_ff1_c_t0;    
wire    [11:0]  close_ff1_f_t0;    
wire    [11:0]  close_ff1_g_t0;    
wire    [11:0]  close_ff1_t_t0;    
wire    [11:0]  close_ff1_z_t0;    
wire    [11:0]  close_m1_oper2;    
wire            close_op_chg;      
wire    [11:0]  close_sum;         
wire    [11:0]  close_sum_m1;      
wire    [11:0]  close_sum_m1_t0;   
wire    [11:0]  close_sum_t0;      
wire    [5 :0]  ff1_pred;          
wire    [11:0]  ff1_pred_onehot;   


















assign close_sum[11:0]       = close_sum_t0[11:0];
assign close_sum_m1[11:0]    = close_sum_m1_t0[11:0];
assign ff1_pred_onehot[11:0] = ff1_pred_t0_onehot[11:0];
assign ff1_pred[5:0]         = ff1_pred_t0[5:0];

assign close_op_chg       = close_sum[11];


assign close_adder0_t0[11:0] = close_adder0[11:0];
assign close_adder1_t0[11:0] = close_adder1[11:0];

assign close_m1_oper2[11:0] = 12'b10;






assign close_sum_t0[11:0] = $unsigned($signed(close_adder0_t0[11:0]) - $signed(close_adder1_t0[11:0]));



assign close_sum_m1_t0[11:0] = $unsigned($signed(close_adder0_t0[11:0]) 
                                          - $signed(close_adder1_t0[11:0])
                                          + $signed(close_m1_oper2[11:0]));







assign close_ff1_a_t0[11:0] = close_adder0_t0[11:0];
assign close_ff1_b_t0[11:0] = close_adder1_t0[11:0];


assign close_ff1_c_t0[11:0] = ~close_ff1_b_t0[11:0];

assign close_ff1_t_t0[11:0] = close_ff1_a_t0[11:0] ^ close_ff1_c_t0[11:0];
assign close_ff1_g_t0[11:0] = close_ff1_a_t0[11:0] & close_ff1_c_t0[11:0];
assign close_ff1_z_t0[11:0] = (~close_ff1_a_t0[11:0]) & (~close_ff1_c_t0[11:0]);




assign close_ff1_f_t0[11]   =  ( close_ff1_g_t0[11] & (~close_ff1_z_t0[10])) | 
                               ( close_ff1_z_t0[11] & (~close_ff1_g_t0[10]));
assign close_ff1_f_t0[0]    = (( close_ff1_t_t0[1]) & (close_ff1_g_t0[0] | close_ff1_z_t0[0])) | 
                              ((~close_ff1_t_t0[1]) & (close_ff1_z_t0[0] | close_ff1_g_t0[0]));
assign close_ff1_f_t0[10:1] = (( close_ff1_t_t0[11:2]) & ((close_ff1_g_t0[10:1] & (~close_ff1_z_t0[9:0])) | 
                               ( close_ff1_z_t0[10:1]  & (~close_ff1_g_t0[9:0]))))                     | 
                              ((~close_ff1_t_t0[11:2]) & ((close_ff1_g_t0[10:1] & (~close_ff1_g_t0[9:0])) | 
                               ( close_ff1_z_t0[10:1]  & (~close_ff1_z_t0[9:0]))));                            


always @( close_ff1_f_t0[11:0])
begin
casez(close_ff1_f_t0[11:0])
  12'b1?????_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b100000_000000;
    ff1_pred_t0[5:0]         = 6'd0;
  end
  12'b01????_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b010000_000000;
    ff1_pred_t0[5:0]         = 6'd1;
  end
  12'b001???_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b001000_000000;
    ff1_pred_t0[5:0]         = 6'd2;
  end
  12'b0001??_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000100_000000;
    ff1_pred_t0[5:0]         = 6'd3;
  end
  12'b00001?_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000010_000000;
    ff1_pred_t0[5:0]         = 6'd4;
  end
  12'b000001_?????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000001_000000;
    ff1_pred_t0[5:0]         = 6'd5;
  end
  12'b000000_1????? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_100000;
    ff1_pred_t0[5:0]         = 6'd6;
  end
  12'b000000_01???? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_010000;
    ff1_pred_t0[5:0]         = 6'd7;
  end
  12'b000000_001??? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_001000;
    ff1_pred_t0[5:0]         = 6'd8;
  end
  12'b000000_0001?? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_000100;
    ff1_pred_t0[5:0]         = 6'd9;
  end
  12'b000000_00001? : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_000010;
    ff1_pred_t0[5:0]         = 6'd10;
  end
  12'b000000_000001 : begin 
    ff1_pred_t0_onehot[11:0] = 12'b000000_000001;
    ff1_pred_t0[5:0]         = 6'd11;
  end
  default : begin 
  ff1_pred_t0_onehot[11:0] = {12{1'bx}};
  ff1_pred_t0[5:0]         = {6{1'bx}};
  end
endcase

end



endmodule