module DFF(Q, D, CLK, ClrN);
output Q;
input D, CLK, ClrN;
reg Q;
always @(posedge CLK or negedge ClrN)
if (~ClrN) Q=1'b0;
else Q=D;
endmodule
module ConvBDX3(Z, X, CLK, ClrN);
output Z;
input X, CLK, ClrN;
wire A1, A2, A3, D3, Q1, Q2, Q3, A5, A6;
nand(A1, Q1, Q2, Q3);
nand(A2, ~X, Q1, ~Q3);
nand(A3, X, ~Q1, ~Q2);
nand(D3, A1, A2, A3);
DFF FF1(Q1, ~Q2, CLK, ClrN);
DFF FF2(Q2, Q1, CLK, ClrN);
DFF FF3(Q3, D3, CLK, ClrN);
nand(A5, X, Q3);
nand(A6, ~X, ~Q3);
nand(Z, A5, A6);
endmodule
               (
geocities.com/uxormania)