
module Intro_Top ( X, Y, Z, A, B, C, D, ScanOut, ScanMode, ScanIn, ScanClr, 
        ScanClk );
  input A, B, C, D, ScanMode, ScanIn, ScanClr, ScanClk;
  output X, Y, Z, ScanOut;
  wire   n27, qn, ab, bc, FFA_to_A, FFB_to_B, FFC_to_C, q, FFD_to_D, X_to_FFX,
         Y_to_FFY, toD_FFX, fromQ_FFY, toD_FFY, fromQ_FFZ, toD_FFZ, fromQ_FFA,
         toD_FFA, fromQ_FFB, toD_FFB, fromQ_FFC, toD_FFC, fromQ_FFD, toD_FFD,
         n3, n5, n7, n12, n13, n14, n15, n16, n17, n19, n20, n21, n23, n24,
         n25, n26, \FF_Y_s06/Qn , \FF_B_s03/Qn , \FF_C_s02/Qn , \FF_D_s01/Qn ,
         n28, n29;

  CKBD0 U17 ( .CLK(n29), .C(n3) );
  CKND16 U18 ( .CLK(n3), .CN(Z) );
  CKBD0 U19 ( .CLK(n25), .C(n5) );
  CKND16 U20 ( .CLK(n5), .CN(X) );
  CKBD0 U21 ( .CLK(n26), .C(n7) );
  CKND16 U22 ( .CLK(n7), .CN(Y) );
  MUX2ND0 U26 ( .I0(Y_to_FFY), .I1(fromQ_FFY), .S(n24), .ZN(n12) );
  MUX2ND0 U27 ( .I0(X_to_FFX), .I1(n27), .S(n24), .ZN(n13) );
  CKBD0 U28 ( .CLK(n14), .C(n17) );
  CKND16 U29 ( .CLK(n17), .CN(ScanOut) );
  INVD0 U30 ( .I(ScanClk), .ZN(n19) );
  INVD0 U31 ( .I(n19), .ZN(n20) );
  INVD0 U32 ( .I(ScanClr), .ZN(n21) );
  INVD0 U34 ( .I(ScanMode), .ZN(n23) );
  INVD0 U35 ( .I(n23), .ZN(n24) );
  CKBD0 U36 ( .CLK(n13), .C(n25) );
  CKBD0 U37 ( .CLK(n12), .C(n26) );
  MUX2ND0 U38 ( .I0(qn), .I1(n16), .S(n24), .ZN(toD_FFZ) );
  MUX2D0 U39 ( .I0(Y_to_FFY), .I1(fromQ_FFZ), .S(n24), .Z(toD_FFY) );
  MUX2D0 U40 ( .I0(X_to_FFX), .I1(fromQ_FFY), .S(n24), .Z(toD_FFX) );
  MUX2D0 U41 ( .I0(D), .I1(ScanIn), .S(n24), .Z(toD_FFD) );
  MUX2D0 U42 ( .I0(C), .I1(fromQ_FFD), .S(ScanMode), .Z(toD_FFC) );
  MUX2D0 U43 ( .I0(B), .I1(fromQ_FFC), .S(n24), .Z(toD_FFB) );
  MUX2D0 U44 ( .I0(A), .I1(fromQ_FFB), .S(ScanMode), .Z(toD_FFA) );
  MUX2D0 U45 ( .I0(D), .I1(fromQ_FFD), .S(n24), .Z(FFD_to_D) );
  MUX2D0 U46 ( .I0(C), .I1(fromQ_FFC), .S(ScanMode), .Z(FFC_to_C) );
  MUX2D0 U47 ( .I0(B), .I1(fromQ_FFB), .S(n24), .Z(FFB_to_B) );
  MUX2D0 U48 ( .I0(A), .I1(fromQ_FFA), .S(ScanMode), .Z(FFA_to_A) );
  AN2D0 \InputCombo/U2  ( .A1(FFB_to_B), .A2(FFA_to_A), .Z(ab) );
  OR2D0 \InputCombo/U1  ( .A1(FFC_to_C), .A2(FFB_to_B), .Z(bc) );
  CKND2D0 \SRLatch/U1  ( .A1(bc), .A2(qn), .ZN(q) );
  CKND2D2 \SRLatch/U2  ( .A1(q), .A2(FFD_to_D), .ZN(qn) );
  CKXOR2D0 \OutputCombo/U2  ( .A1(q), .A2(ab), .Z(X_to_FFX) );
  NR2D0 \OutputCombo/U1  ( .A1(qn), .A2(X_to_FFX), .ZN(Y_to_FFY) );
  DFCND1 \FF_X_s07/QReg_reg  ( .D(toD_FFX), .CP(n20), .CDN(n21), .Q(n27), .QN(
        n14) );
  DFCND1 \FF_Y_s06/QReg_reg  ( .D(toD_FFY), .CP(n20), .CDN(n21), .Q(fromQ_FFY), 
        .QN(\FF_Y_s06/Qn ) );
  DFCND1 \FF_Z_s05/QReg_reg  ( .D(toD_FFZ), .CP(n20), .CDN(n21), .Q(fromQ_FFZ), 
        .QN(n15) );
  DFCND1 \FF_A_s04/QReg_reg  ( .D(toD_FFA), .CP(n20), .CDN(n21), .Q(fromQ_FFA), 
        .QN(n16) );
  DFCND1 \FF_B_s03/QReg_reg  ( .D(toD_FFB), .CP(n20), .CDN(n21), .Q(fromQ_FFB), 
        .QN(\FF_B_s03/Qn ) );
  DFCND1 \FF_C_s02/QReg_reg  ( .D(toD_FFC), .CP(n20), .CDN(n21), .Q(fromQ_FFC), 
        .QN(\FF_C_s02/Qn ) );
  DFCND1 \FF_D_s01/QReg_reg  ( .D(toD_FFD), .CP(n20), .CDN(n21), .Q(fromQ_FFD), 
        .QN(\FF_D_s01/Qn ) );
  MUX2ND0 U23 ( .I0(qn), .I1(n15), .S(n24), .ZN(n28) );
  INVD1 U24 ( .I(n28), .ZN(n29) );
endmodule

