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

    Source: geocities.com/uxormania/galant

               ( geocities.com/uxormania)