1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
module NOT(A, Y); input A; output Y = ~A; endmodule module NAND(A, B, Y); input A, B; output Y = ~(A & B); endmodule module NOR(A, B, Y); input A, B; output Y = ~(A | B); endmodule module DFF(C, D, Q); input C, D; output reg Q; always @(posedge C) Q <= D; endmodule