`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_o2111a_1 ( X ,  A1 , A2 , B1 , C1 , D1 , vpwr , vgnd );
input vpwr, vgnd;
output  X ;
input  A1 , A2 , B1 , C1 , D1 ;

wire	X , A1 , A2 , B1 ;
wire	C1 , D1 , csi_opt_300 ;

`ifdef functional
`else
reg csi_notifier;

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

  or ( csi_opt_300 , A2 , A1 ) ;
  and  ( UDP_IN_X , B1 , C1 , csi_opt_300 , D1 ) ;
  U_VPWR_VGND (UDP_OUT_X, UDP_IN_X, vpwr, vgnd) ;
  buf  (X, UDP_OUT_X) ;
endmodule
`endcelldefine
`disable_portfaults
`nosuppress_faults

