2020年3月1日 星期日

EX6-3.3 4 bit Ripple Full Adder circuit

EX6-3.3    4 bit Ripple  Full Adder circuit

//===============================
// ex6-3-3 4 bits Full Adder circuit

module EX10_12( A,B,Cin ,Cout ,Sum);

input  [3:0] A,B; // 4位元輸入
input  Cin;       // 1位元輸入

output  Cout  ; // Output    1位元輸出
output  [3:0]Sum   ; // Output    4位元輸出

wire   w0,w1,w2 ;

FA u1 ( A[0],B[0],Cin,w0,Sum[0] );
FA u2 ( A[1],B[1],w0,w1,Sum[1] );
FA u3 ( A[2],B[2],w1,w2,Sum[2] );
FA u4 ( A[3],B[3],w2,Cout,Sum[3]);

endmodule


//===============================
// ex6-3 Half Adder circuit
module FA( A,B,Cin ,Cout ,Sum);

input  A,B,Cin; // 1位元輸入

output  reg Cout , Sum  ; // Output    1位元輸出

always@ ( A,B) begin

{Cout,Sum}= A+B+Cin;
end


endmodule
//===============================



// 時間單位 100ns, 時間精確度100 ps
`timescale 100ns/100ps     
module Test_bench;
    // Inputs
    reg [3:0]A,B;
    reg Cin;

    // Outputs
    wire  Cout ;
    wire  [3:0]Sum ;

    // Instantiate the Unit Under Test (UUT)
    // ex6-3-3 4 bits Full Adder circuit 
     EX10_12  UUT (
        .A(A), 
        .B(B), 
        .Cin(Cin),
        .Cout(Cout), 
        .Sum(Sum)
    );

    initial begin
        $monitor( A,B,Cin,Cout ,Sum);
        //Apply inputs
A=4'b0; B=4'b0;Cin=1'b1;  
        #100;
A=4'b1111; B=4'b1111;Cin=1'b1; 
        #100;
A=4'b1010; B=4'b1010;Cin=1'b1; 
        #100;
A=4'b0101; B=4'b0101;Cin=1'b1;
        #100;
A=4'b0101; B=4'b1010;Cin=1'b0;
        #100;
   
    end
    initial begin
#600  $stop;
end
endmodule

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...