`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_o32ai_4 ( Y ,  A1 , A2 , A3 , B1 , B2 , vpwr , vgnd );
input vpwr, vgnd;
output  Y ;
input  A1 , A2 , A3 , B1 , B2 ;

wire	Y , A1 , A2 , A3 ;
wire	B1 , B2 , csi_opt_273, csi_opt_274 ;

`ifdef functional
`else
reg csi_notifier;

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

  nor ( csi_opt_273 , A3 , A1 , A2 ) ;
  nor ( csi_opt_274 , B1 , B2 ) ;
  or  ( UDP_IN_Y , csi_opt_274 , csi_opt_273 ) ;
  U_VPWR_VGND (UDP_OUT_Y, UDP_IN_Y, vpwr, vgnd) ;
  buf  (Y, UDP_OUT_Y) ;
endmodule
`endcelldefine
`disable_portfaults
`nosuppress_faults

