```
module AndOr ( X, Y, A, B, C );
input A, B, C;
output X, Y;
AND2X6 U1 ( .A(B), .B(A), .Y(X) );
OR2X8 U2 ( .A(B), .B(C), .Y(Y) );
endmodule
module SR ( Q, Qn, S, R );
input S, R;
output Q, Qn;
wire n2;
CLKNAND2X8 U2 ( .A(Q), .B(R), .Y(n2) );
BUFX14 U1 ( .A(n2), .Y(Qn) );
CLKNAND2X12 U3 ( .A(S), .B(n2), .Y(Q) );
endmodule
module XorNor ( X, Y, A, B, C );
input A, B, C;
output X, Y;
wire n2, n3, n4;
INVX5 U1 ( .A(C), .Y(n4) );
XNOR2X4 U2 ( .A(B), .B(n3), .Y(X) );
CLKINVX12 U3 ( .A(A), .Y(n3) );
XOR2X8 U4 ( .A(B), .B(n3), .Y(n2) );
AND2X8 U5 ( .A(n2), .B(n4), .Y(Y) );
endmodule
module Intro\_Top ( X, Y, Z, A, B, C, D );
input A, B, C, D;
output X, Y, Z;
wire n6, n7, qn, ab, bc, q, n2, n5;
AndOr InputCombo01 ( .X(ab), .Y(bc), .A(A), .B(n5), .C(C) );
SR SRLatch01 ( .Q(q), .Qn(qn), .S(bc), .R(n2) );
XorNor OutputCombo01 ( .X(n6), .Y(n7), .A(ab), .B(q), .C(qn) );
BUFX8 U2 ( .A(D), .Y(n2) );
CLKINVX40 U3 ( .A(qn), .Y(Z) );
CLKBUFX40 U4 ( .A(n7), .Y(Y) );
BUFX8 U5 ( .A(B), .Y(n5) );
CLKBUFX40 U6 ( .A(n6), .Y(X) );
endmodule
```