module fulladder4(sum,c_out,a,b,c_in);

    

    output [3:0]sum;

    output c_out;

    input [3:0]a;

    input [3:0]b;

    input c_in;

    

    wire c1,c2,c3;

    

    fulladder fa0(sum[0],c1,a[0],b[0],c_in);

    fulladder fa1(sum[1],c2,a[1],b[1],c1);

    fulladder fa2(sum[2],c3,a[2],b[2],c2);

    fulladder fa3(sum[3],c_out,a[3],b[3],c3);

 

 endmodule    


module tb_fulladder4();

    

    wire [3:0] SUM;

    wire C_OUT;

    reg [3:0] A;

    reg [3:0] B;

    reg C_IN;

    

    fulladder4 m(.sum(SUM),

                 .c_out(C_OUT),

                 .a(A),

                 .b(B),

                 .c_in(C_IN));

                 

                 initial

                 begin

                     A=4'd0; B=4'd0; C_IN=1'b0;

                  #5 A=4'd3; B=4'd4;

                  #5 A=4'd2; B=4'd5;

                  #5 A=4'd9; B=4'd9;

                  #5 A=4'd10; B=4'd15;

                  #5 A=4'd10; B=4'd5; C_IN=1'b1;

              end                    

      endmodule

'verilog' 카테고리의 다른 글

74163 카운터 & Test Bench  (0) 2012.11.11
4비트 Shift 레지스터 & Test Bench  (0) 2012.11.11
Synchronous Reset D플립플롭 & Test Bench  (0) 2012.11.11
8비트 Full Adder & Test Bench  (0) 2012.11.11
1비트 Full Adder & Test Bench  (0) 2012.11.11
AND