`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_a21bo_4 ( X ,  A1 , A2 , B1N , vpwr , vgnd );
input vpwr, vgnd;
output  X ;
input  A1 , A2 , B1N ;

wire	X , A1 , A2 , B1N ;
wire	csi_opt_289 ;

`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)) (B1N -=> X) = (0:0:0,0:0:0);
    if ((!A1&A2)) (B1N -=> X) = (0:0:0,0:0:0);
    if ((A1&!A2)) (B1N -=> X) = (0:0:0,0:0:0);
	endspecify
`endif

  nand ( csi_opt_289 , A2 , A1 ) ;
  nand  ( UDP_IN_X , B1N , csi_opt_289 ) ;
  U_VPWR_VGND (UDP_OUT_X, UDP_IN_X, vpwr, vgnd) ;
  buf  (X, UDP_OUT_X) ;
endmodule
`endcelldefine
`disable_portfaults
`nosuppress_faults

