module logic_gates(a,b,c,d,e,f,g,h);
    input a,b;
    output c,d,e,f,g,h;
    assign c=a&b;
    assign d=a|b;
    assign e=a~&b;
    assign f=a~|b;
    assign g=a^b;
    assign h=~a;
endmodule

module test_bench;
    reg a,b;
    wire c,d,e,f,g,h;
    logic_gates t(a,b,c,d,e,f,g,h);
    initial begin
    $dumpfile("vcd/DataFlow.vcd");
    $dumpvars(0,test_bench);
    $monitor("a=%b,b=%b,and=%b,or=%b,nand=%b,nor=%b,xor=%b,not=%b",a,b,c,d,e,f,g,h);
        a=0;
        b=0;
        #10
        a=1;
        b=0;
        #10
        a=0;
        b=1;
        #10
        a=1;
        b=1;
        #10
    $finish;
    end
endmodule