`celldefine
`suppress_faults
`enable_portfaults

`ifdef TETRAMAX
`define functional
`endif

`ifdef functional
 `timescale 1ns / 1ps
`ifndef dont_change_delay_mode // See CDT 66389 for detail on dont_change_delay_mode
 `delay_mode_distributed
`endif
`ifndef dont_change_delay_mode // See CDT 66389 for detail on dont_change_delay_mode
 `delay_mode_unit
`endif
`else
 `timescale 1ns / 1ps
`ifndef dont_change_delay_mode // See CDT 66389 for detail on dont_change_delay_mode
 `delay_mode_path
`endif
`endif 

module scs8hs_o32a_2 ( X ,  A1 , A2 , A3 , B1 , B2 , vpwr , vgnd );
input vpwr, vgnd;
output  X ;
input  A1 , A2 , A3 , B1 , B2 ;

wire	X , A1 , A2 , A3 ;
wire	B1 , B2 , csi_opt_299, csi_opt_297 ;

`ifdef functional
`else
reg csi_notifier;

	specify
    if ((!A2&!A3&!B1&B2)) (A1 +=> X) = (0:0:0,0:0:0);
    if ((!A2&!A3&B1&!B2)) (A1 +=> X) = (0:0:0,0:0:0);
    if ((!A2&!A3&B1&B2)) (A1 +=> X) = (0:0:0,0:0:0);
    if ((!A1&!A3&!B1&B2)) (A2 +=> X) = (0:0:0,0:0:0);
    if ((!A1&!A3&B1&!B2)) (A2 +=> X) = (0:0:0,0:0:0);
    if ((!A1&!A3&B1&B2)) (A2 +=> X) = (0:0:0,0:0:0);
    if ((!A1&!A2&!B1&B2)) (A3 +=> X) = (0:0:0,0:0:0);
    if ((!A1&!A2&B1&!B2)) (A3 +=> X) = (0:0:0,0:0:0);
    if ((!A1&!A2&B1&B2)) (A3 +=> X) = (0:0:0,0:0:0);
    if ((!A1&!A2&A3&!B2)) (B1 +=> X) = (0:0:0,0:0:0);
    if ((!A1&A2&!A3&!B2)) (B1 +=> X) = (0:0:0,0:0:0);
    if ((!A1&A2&A3&!B2)) (B1 +=> X) = (0:0:0,0:0:0);
    if ((A1&!A2&!A3&!B2)) (B1 +=> X) = (0:0:0,0:0:0);
    if ((A1&!A2&A3&!B2)) (B1 +=> X) = (0:0:0,0:0:0);
    if ((A1&A2&!A3&!B2)) (B1 +=> X) = (0:0:0,0:0:0);
    if ((A1&A2&A3&!B2)) (B1 +=> X) = (0:0:0,0:0:0);
    if ((!A1&!A2&A3&!B1)) (B2 +=> X) = (0:0:0,0:0:0);
    if ((!A1&A2&!A3&!B1)) (B2 +=> X) = (0:0:0,0:0:0);
    if ((!A1&A2&A3&!B1)) (B2 +=> X) = (0:0:0,0:0:0);
    if ((A1&!A2&!A3&!B1)) (B2 +=> X) = (0:0:0,0:0:0);
    if ((A1&!A2&A3&!B1)) (B2 +=> X) = (0:0:0,0:0:0);
    if ((A1&A2&!A3&!B1)) (B2 +=> X) = (0:0:0,0:0:0);
    if ((A1&A2&A3&!B1)) (B2 +=> X) = (0:0:0,0:0:0);
	endspecify
`endif

  or ( csi_opt_299 , A2 , A1 , A3 ) ;
  or ( csi_opt_297 , B2 , B1 ) ;
  and  ( UDP_IN_X , csi_opt_299 , csi_opt_297 ) ;
  U_VPWR_VGND (UDP_OUT_X, UDP_IN_X, vpwr, vgnd) ;
  buf  (X, UDP_OUT_X) ;
endmodule
`endcelldefine
`disable_portfaults
`nosuppress_faults

