module flipflop(output q,
output q_not,
input p,
input d,
input c,
input r);
wire [1:0] inv_out;
wire [11:0] nand_out;
not(inv_out[0], d);
not(inv_out[1], c);
nand(nand_out[0], d, c);
nand(nand_out[1], c, inv_out[0]);
nand(nand_out[2], p, nand_gate[0]);
nand(nand_out[3], nand_out[2], nand_out[5]);//
nand(nand_out[4], nand_out[3], nand_out[1]);
nand(nand_out[5], nand_out[4], r);
nand(nand_out[6], nand_out[3], inv_out[1]);
nand(nand_out[7], inv_out[1], nand_out[5]);
nand(nand_out[8], p, nand_out[6]);
nand(nand_out[9], nand_out[8], nand_out[11]);
nand(nand_out[10], nand_out[9], nand_out[7]);
nand(nand_out[11], nand_out[10], r);
assign q = nand_out[9];
assign q_not = nand_out[11];