data/full_repos/permissive/418750043/C906_RTL_FACTORY/gen_rtl/vfalu/rtl/aq_fadd_double_cmp_max.v
data/verilator_xmls/71e6fa23-db04-485d-8ea2-7e2df8457057.xml
module aq_fadd_double_cmp_max(
  add_cmp_act_s,
  add_cmp_both_zero,
  add_cmp_ex2_src0_eq_src1,
  double_pipe_ex2_cmp_r,
  dp_maxmin_src_a_e,
  dp_maxmin_src_a_f,
  dp_maxmin_src_a_s,
  dp_maxmin_src_b_e,
  dp_maxmin_src_b_f,
  dp_maxmin_src_b_s,
  dp_maxmin_src_chg,
  ex2_bhalf0_sel_final_f,
  ex2_cmp_special_r,
  ex2_double_sel_final_f,
  ex2_half0_sel_final_f,
  ex2_op_feq,
  ex2_op_fle,
  ex2_op_flt,
  ex2_op_fne,
  ex2_op_ford,
  ex2_op_max,
  ex2_sel_final_e,
  ex2_sel_final_sign,
  ex2_single0_sel_final_f,
  ex2_special_value_vld
);


input           add_cmp_act_s;            
input           add_cmp_both_zero;        
input           add_cmp_ex2_src0_eq_src1; 
input   [10:0]  dp_maxmin_src_a_e;        
input   [51:0]  dp_maxmin_src_a_f;        
input           dp_maxmin_src_a_s;        
input   [10:0]  dp_maxmin_src_b_e;        
input   [52:0]  dp_maxmin_src_b_f;        
input           dp_maxmin_src_b_s;        
input           dp_maxmin_src_chg;        
input           ex2_cmp_special_r;        
input           ex2_op_feq;               
input           ex2_op_fle;               
input           ex2_op_flt;               
input           ex2_op_fne;               
input           ex2_op_ford;              
input           ex2_op_max;               
input           ex2_special_value_vld;    
output          double_pipe_ex2_cmp_r;    
output  [6 :0]  ex2_bhalf0_sel_final_f;   
output  [51:0]  ex2_double_sel_final_f;   
output  [9 :0]  ex2_half0_sel_final_f;    
output  [10:0]  ex2_sel_final_e;          
output          ex2_sel_final_sign;       
output  [22:0]  ex2_single0_sel_final_f;  




wire            add_cmp_act_s;            
wire            add_cmp_both_zero;        
wire            add_cmp_ex2_src0_eq_src1; 
wire            double_pipe_ex2_cmp_r;    
wire    [10:0]  dp_maxmin_src_a_e;        
wire    [51:0]  dp_maxmin_src_a_f;        
wire            dp_maxmin_src_a_s;        
wire    [10:0]  dp_maxmin_src_b_e;        
wire    [52:0]  dp_maxmin_src_b_f;        
wire            dp_maxmin_src_b_s;        
wire            dp_maxmin_src_chg;        
wire            ex2_act_s;                
wire    [6 :0]  ex2_bhalf0_sel_final_f;   
wire    [6 :0]  ex2_bhalf0_sel_rst_max_f; 
wire    [6 :0]  ex2_bhalf0_sel_rst_min_f; 
wire    [6 :0]  ex2_bhalf0_src0_f;        
wire    [6 :0]  ex2_bhalf0_src1_f;        
wire            ex2_both_zero;            
wire            ex2_cmp_feq;              
wire            ex2_cmp_fle;              
wire            ex2_cmp_flt;              
wire            ex2_cmp_fne;              
wire            ex2_cmp_r;                
wire            ex2_cmp_special_r;        
wire    [51:0]  ex2_double_sel_final_f;   
wire    [51:0]  ex2_double_sel_rst_max_f; 
wire    [51:0]  ex2_double_sel_rst_min_f; 
wire    [51:0]  ex2_double_src0_f;        
wire    [51:0]  ex2_double_src1_f;        
wire    [9 :0]  ex2_half0_sel_final_f;    
wire    [9 :0]  ex2_half0_sel_rst_max_f;  
wire    [9 :0]  ex2_half0_sel_rst_min_f;  
wire    [9 :0]  ex2_half0_src0_f;         
wire    [9 :0]  ex2_half0_src1_f;         
wire            ex2_op_feq;               
wire            ex2_op_fle;               
wire            ex2_op_flt;               
wire            ex2_op_fne;               
wire            ex2_op_ford;              
wire            ex2_op_max;               
wire            ex2_s_equal;              
wire    [10:0]  ex2_sel_final_e;          
wire            ex2_sel_final_sign;       
wire            ex2_sel_rst_both0_sign;   
wire    [10:0]  ex2_sel_rst_max_e;        
wire            ex2_sel_rst_max_s;        
wire    [10:0]  ex2_sel_rst_min_e;        
wire            ex2_sel_rst_min_s;        
wire    [22:0]  ex2_single0_sel_final_f;  
wire    [22:0]  ex2_single0_sel_rst_max_f; 
wire    [22:0]  ex2_single0_sel_rst_min_f; 
wire    [22:0]  ex2_single0_src0_f;       
wire    [22:0]  ex2_single0_src1_f;       
wire            ex2_special_value_vld;    
wire    [10:0]  ex2_src0_e;               
wire    [51:0]  ex2_src0_f;               
wire            ex2_src0_s;               
wire    [10:0]  ex2_src1_e;               
wire            ex2_src1_s;               
wire    [52:0]  ex2_src1_sel;             
wire            ex2_src_chg;              




assign  ex2_act_s         =  add_cmp_act_s;
assign  ex2_both_zero     =  add_cmp_both_zero;





assign ex2_s_equal  = ex2_src0_s == ex2_src1_s;
assign ex2_cmp_feq  = ex2_s_equal && add_cmp_ex2_src0_eq_src1 || ex2_both_zero;
assign ex2_cmp_flt  = (ex2_act_s && !ex2_cmp_feq);
assign ex2_cmp_fle  = ex2_cmp_feq || ex2_cmp_flt;
assign ex2_cmp_fne  = !ex2_cmp_feq;

assign ex2_cmp_r    = ex2_op_fle  && ex2_cmp_fle ||
                      ex2_op_feq  && ex2_cmp_feq ||
                      ex2_op_flt  && ex2_cmp_flt ||
                      ex2_op_fne  && ex2_cmp_fne || ex2_op_ford;



































assign double_pipe_ex2_cmp_r = ex2_special_value_vld ? ex2_cmp_special_r
                                                     : ex2_cmp_r;







assign ex2_src0_f[51:0]              = dp_maxmin_src_a_f[51:0];
assign ex2_src0_e[10:0]              = dp_maxmin_src_a_e[10:0];
assign ex2_src0_s                    = dp_maxmin_src_a_s;
assign ex2_src1_sel[52:0]             = dp_maxmin_src_b_f[52:0];
assign ex2_src_chg                    = dp_maxmin_src_chg;
assign ex2_src1_e[10:0]               = dp_maxmin_src_b_e[10:0];

assign ex2_src1_s                     = dp_maxmin_src_b_s;

assign ex2_double_src1_f[51:0]        = ex2_src1_sel[51:0];
assign ex2_single0_src1_f[22:0]       = ex2_src1_sel[22:0];
assign ex2_half0_src1_f[9:0]          = ex2_src1_sel[9:0];
assign ex2_bhalf0_src1_f[6:0]         = ex2_src1_sel[6:0];












assign ex2_double_src0_f[51:0]        = ex2_src0_f[51:0];

assign ex2_single0_src0_f[22:0]       = ex2_src0_f[22:0];

assign ex2_half0_src0_f[9:0]          = ex2_src0_f[9:0];

assign ex2_bhalf0_src0_f[6:0]         = ex2_src0_f[6:0];

assign ex2_sel_rst_both0_sign         =  ex2_op_max ? ex2_src0_s && ex2_src1_s : ex2_src0_s || ex2_src1_s;
assign ex2_sel_rst_max_s              =  ex2_act_s ^ ex2_src_chg ? ex2_src1_s  : ex2_src0_s;
assign ex2_sel_rst_min_s              = !ex2_act_s ^ ex2_src_chg ? ex2_src1_s  : ex2_src0_s;
assign ex2_double_sel_rst_max_f[51:0] =  ex2_act_s ^ ex2_src_chg ? ex2_double_src1_f[51:0] : ex2_double_src0_f[51:0];
assign ex2_double_sel_rst_min_f[51:0] = !ex2_act_s ^ ex2_src_chg ? ex2_double_src1_f[51:0] : ex2_double_src0_f[51:0];

assign ex2_single0_sel_rst_max_f[22:0] =  ex2_act_s ^ ex2_src_chg ? ex2_single0_src1_f[22:0] : ex2_single0_src0_f[22:0];
assign ex2_single0_sel_rst_min_f[22:0] = !ex2_act_s ^ ex2_src_chg ? ex2_single0_src1_f[22:0] : ex2_single0_src0_f[22:0];

assign ex2_half0_sel_rst_max_f[9:0] =  ex2_act_s ^ ex2_src_chg ? ex2_half0_src1_f[9:0] : ex2_half0_src0_f[9:0];
assign ex2_half0_sel_rst_min_f[9:0] = !ex2_act_s ^ ex2_src_chg ? ex2_half0_src1_f[9:0] : ex2_half0_src0_f[9:0];

assign ex2_bhalf0_sel_rst_max_f[6:0] =  ex2_act_s ^ ex2_src_chg ? ex2_bhalf0_src1_f[6:0] : ex2_bhalf0_src0_f[6:0];
assign ex2_bhalf0_sel_rst_min_f[6:0] = !ex2_act_s ^ ex2_src_chg ? ex2_bhalf0_src1_f[6:0] : ex2_bhalf0_src0_f[6:0];

assign ex2_sel_final_sign            = ex2_both_zero ? ex2_sel_rst_both0_sign :
                                       ex2_op_max    ? ex2_sel_rst_max_s
                                                     : ex2_sel_rst_min_s;
assign ex2_sel_rst_max_e[10:0] =  ex2_act_s ^ ex2_src_chg ? ex2_src1_e[10:0] : ex2_src0_e[10:0];
assign ex2_sel_rst_min_e[10:0] = !ex2_act_s ^ ex2_src_chg ? ex2_src1_e[10:0] : ex2_src0_e[10:0];
assign ex2_sel_final_e[10:0]   = ex2_op_max ? ex2_sel_rst_max_e[10:0] : ex2_sel_rst_min_e[10:0];

assign ex2_double_sel_final_f[51:0]   = ex2_op_max ? ex2_double_sel_rst_max_f[51:0] : ex2_double_sel_rst_min_f[51:0];
assign ex2_single0_sel_final_f[22:0]  = ex2_op_max ? ex2_single0_sel_rst_max_f[22:0] : ex2_single0_sel_rst_min_f[22:0];
assign ex2_half0_sel_final_f[9:0]     = ex2_op_max ? ex2_half0_sel_rst_max_f[9:0] : ex2_half0_sel_rst_min_f[9:0];
assign ex2_bhalf0_sel_final_f[6:0]    = ex2_op_max ? ex2_bhalf0_sel_rst_max_f[6:0] : ex2_bhalf0_sel_rst_min_f[6:0];








endmodule
module aq_fadd_double_cmp_max(
  add_cmp_act_s,
  add_cmp_both_zero,
  add_cmp_ex2_src0_eq_src1,
  double_pipe_ex2_cmp_r,
  dp_maxmin_src_a_e,
  dp_maxmin_src_a_f,
  dp_maxmin_src_a_s,
  dp_maxmin_src_b_e,
  dp_maxmin_src_b_f,
  dp_maxmin_src_b_s,
  dp_maxmin_src_chg,
  ex2_bhalf0_sel_final_f,
  ex2_cmp_special_r,
  ex2_double_sel_final_f,
  ex2_half0_sel_final_f,
  ex2_op_feq,
  ex2_op_fle,
  ex2_op_flt,
  ex2_op_fne,
  ex2_op_ford,
  ex2_op_max,
  ex2_sel_final_e,
  ex2_sel_final_sign,
  ex2_single0_sel_final_f,
  ex2_special_value_vld
);



input           add_cmp_act_s;            
input           add_cmp_both_zero;        
input           add_cmp_ex2_src0_eq_src1; 
input   [10:0]  dp_maxmin_src_a_e;        
input   [51:0]  dp_maxmin_src_a_f;        
input           dp_maxmin_src_a_s;        
input   [10:0]  dp_maxmin_src_b_e;        
input   [52:0]  dp_maxmin_src_b_f;        
input           dp_maxmin_src_b_s;        
input           dp_maxmin_src_chg;        
input           ex2_cmp_special_r;        
input           ex2_op_feq;               
input           ex2_op_fle;               
input           ex2_op_flt;               
input           ex2_op_fne;               
input           ex2_op_ford;              
input           ex2_op_max;               
input           ex2_special_value_vld;    
output          double_pipe_ex2_cmp_r;    
output  [6 :0]  ex2_bhalf0_sel_final_f;   
output  [51:0]  ex2_double_sel_final_f;   
output  [9 :0]  ex2_half0_sel_final_f;    
output  [10:0]  ex2_sel_final_e;          
output          ex2_sel_final_sign;       
output  [22:0]  ex2_single0_sel_final_f;  




wire            add_cmp_act_s;            
wire            add_cmp_both_zero;        
wire            add_cmp_ex2_src0_eq_src1; 
wire            double_pipe_ex2_cmp_r;    
wire    [10:0]  dp_maxmin_src_a_e;        
wire    [51:0]  dp_maxmin_src_a_f;        
wire            dp_maxmin_src_a_s;        
wire    [10:0]  dp_maxmin_src_b_e;        
wire    [52:0]  dp_maxmin_src_b_f;        
wire            dp_maxmin_src_b_s;        
wire            dp_maxmin_src_chg;        
wire            ex2_act_s;                
wire    [6 :0]  ex2_bhalf0_sel_final_f;   
wire    [6 :0]  ex2_bhalf0_sel_rst_max_f; 
wire    [6 :0]  ex2_bhalf0_sel_rst_min_f; 
wire    [6 :0]  ex2_bhalf0_src0_f;        
wire    [6 :0]  ex2_bhalf0_src1_f;        
wire            ex2_both_zero;            
wire            ex2_cmp_feq;              
wire            ex2_cmp_fle;              
wire            ex2_cmp_flt;              
wire            ex2_cmp_fne;              
wire            ex2_cmp_r;                
wire            ex2_cmp_special_r;        
wire    [51:0]  ex2_double_sel_final_f;   
wire    [51:0]  ex2_double_sel_rst_max_f; 
wire    [51:0]  ex2_double_sel_rst_min_f; 
wire    [51:0]  ex2_double_src0_f;        
wire    [51:0]  ex2_double_src1_f;        
wire    [9 :0]  ex2_half0_sel_final_f;    
wire    [9 :0]  ex2_half0_sel_rst_max_f;  
wire    [9 :0]  ex2_half0_sel_rst_min_f;  
wire    [9 :0]  ex2_half0_src0_f;         
wire    [9 :0]  ex2_half0_src1_f;         
wire            ex2_op_feq;               
wire            ex2_op_fle;               
wire            ex2_op_flt;               
wire            ex2_op_fne;               
wire            ex2_op_ford;              
wire            ex2_op_max;               
wire            ex2_s_equal;              
wire    [10:0]  ex2_sel_final_e;          
wire            ex2_sel_final_sign;       
wire            ex2_sel_rst_both0_sign;   
wire    [10:0]  ex2_sel_rst_max_e;        
wire            ex2_sel_rst_max_s;        
wire    [10:0]  ex2_sel_rst_min_e;        
wire            ex2_sel_rst_min_s;        
wire    [22:0]  ex2_single0_sel_final_f;  
wire    [22:0]  ex2_single0_sel_rst_max_f; 
wire    [22:0]  ex2_single0_sel_rst_min_f; 
wire    [22:0]  ex2_single0_src0_f;       
wire    [22:0]  ex2_single0_src1_f;       
wire            ex2_special_value_vld;    
wire    [10:0]  ex2_src0_e;               
wire    [51:0]  ex2_src0_f;               
wire            ex2_src0_s;               
wire    [10:0]  ex2_src1_e;               
wire            ex2_src1_s;               
wire    [52:0]  ex2_src1_sel;             
wire            ex2_src_chg;              




assign  ex2_act_s         =  add_cmp_act_s;
assign  ex2_both_zero     =  add_cmp_both_zero;





assign ex2_s_equal  = ex2_src0_s == ex2_src1_s;
assign ex2_cmp_feq  = ex2_s_equal && add_cmp_ex2_src0_eq_src1 || ex2_both_zero;
assign ex2_cmp_flt  = (ex2_act_s && !ex2_cmp_feq);
assign ex2_cmp_fle  = ex2_cmp_feq || ex2_cmp_flt;
assign ex2_cmp_fne  = !ex2_cmp_feq;

assign ex2_cmp_r    = ex2_op_fle  && ex2_cmp_fle ||
                      ex2_op_feq  && ex2_cmp_feq ||
                      ex2_op_flt  && ex2_cmp_flt ||
                      ex2_op_fne  && ex2_cmp_fne || ex2_op_ford;



































assign double_pipe_ex2_cmp_r = ex2_special_value_vld ? ex2_cmp_special_r
                                                     : ex2_cmp_r;







assign ex2_src0_f[51:0]              = dp_maxmin_src_a_f[51:0];
assign ex2_src0_e[10:0]              = dp_maxmin_src_a_e[10:0];
assign ex2_src0_s                    = dp_maxmin_src_a_s;
assign ex2_src1_sel[52:0]             = dp_maxmin_src_b_f[52:0];
assign ex2_src_chg                    = dp_maxmin_src_chg;
assign ex2_src1_e[10:0]               = dp_maxmin_src_b_e[10:0];

assign ex2_src1_s                     = dp_maxmin_src_b_s;

assign ex2_double_src1_f[51:0]        = ex2_src1_sel[51:0];
assign ex2_single0_src1_f[22:0]       = ex2_src1_sel[22:0];
assign ex2_half0_src1_f[9:0]          = ex2_src1_sel[9:0];
assign ex2_bhalf0_src1_f[6:0]         = ex2_src1_sel[6:0];












assign ex2_double_src0_f[51:0]        = ex2_src0_f[51:0];

assign ex2_single0_src0_f[22:0]       = ex2_src0_f[22:0];

assign ex2_half0_src0_f[9:0]          = ex2_src0_f[9:0];

assign ex2_bhalf0_src0_f[6:0]         = ex2_src0_f[6:0];

assign ex2_sel_rst_both0_sign         =  ex2_op_max ? ex2_src0_s && ex2_src1_s : ex2_src0_s || ex2_src1_s;
assign ex2_sel_rst_max_s              =  ex2_act_s ^ ex2_src_chg ? ex2_src1_s  : ex2_src0_s;
assign ex2_sel_rst_min_s              = !ex2_act_s ^ ex2_src_chg ? ex2_src1_s  : ex2_src0_s;
assign ex2_double_sel_rst_max_f[51:0] =  ex2_act_s ^ ex2_src_chg ? ex2_double_src1_f[51:0] : ex2_double_src0_f[51:0];
assign ex2_double_sel_rst_min_f[51:0] = !ex2_act_s ^ ex2_src_chg ? ex2_double_src1_f[51:0] : ex2_double_src0_f[51:0];

assign ex2_single0_sel_rst_max_f[22:0] =  ex2_act_s ^ ex2_src_chg ? ex2_single0_src1_f[22:0] : ex2_single0_src0_f[22:0];
assign ex2_single0_sel_rst_min_f[22:0] = !ex2_act_s ^ ex2_src_chg ? ex2_single0_src1_f[22:0] : ex2_single0_src0_f[22:0];

assign ex2_half0_sel_rst_max_f[9:0] =  ex2_act_s ^ ex2_src_chg ? ex2_half0_src1_f[9:0] : ex2_half0_src0_f[9:0];
assign ex2_half0_sel_rst_min_f[9:0] = !ex2_act_s ^ ex2_src_chg ? ex2_half0_src1_f[9:0] : ex2_half0_src0_f[9:0];

assign ex2_bhalf0_sel_rst_max_f[6:0] =  ex2_act_s ^ ex2_src_chg ? ex2_bhalf0_src1_f[6:0] : ex2_bhalf0_src0_f[6:0];
assign ex2_bhalf0_sel_rst_min_f[6:0] = !ex2_act_s ^ ex2_src_chg ? ex2_bhalf0_src1_f[6:0] : ex2_bhalf0_src0_f[6:0];

assign ex2_sel_final_sign            = ex2_both_zero ? ex2_sel_rst_both0_sign :
                                       ex2_op_max    ? ex2_sel_rst_max_s
                                                     : ex2_sel_rst_min_s;
assign ex2_sel_rst_max_e[10:0] =  ex2_act_s ^ ex2_src_chg ? ex2_src1_e[10:0] : ex2_src0_e[10:0];
assign ex2_sel_rst_min_e[10:0] = !ex2_act_s ^ ex2_src_chg ? ex2_src1_e[10:0] : ex2_src0_e[10:0];
assign ex2_sel_final_e[10:0]   = ex2_op_max ? ex2_sel_rst_max_e[10:0] : ex2_sel_rst_min_e[10:0];

assign ex2_double_sel_final_f[51:0]   = ex2_op_max ? ex2_double_sel_rst_max_f[51:0] : ex2_double_sel_rst_min_f[51:0];
assign ex2_single0_sel_final_f[22:0]  = ex2_op_max ? ex2_single0_sel_rst_max_f[22:0] : ex2_single0_sel_rst_min_f[22:0];
assign ex2_half0_sel_final_f[9:0]     = ex2_op_max ? ex2_half0_sel_rst_max_f[9:0] : ex2_half0_sel_rst_min_f[9:0];
assign ex2_bhalf0_sel_final_f[6:0]    = ex2_op_max ? ex2_bhalf0_sel_rst_max_f[6:0] : ex2_bhalf0_sel_rst_min_f[6:0];








endmodule