Tuesday, May 9, 2017

Verilog Program for 16-bit Carry look Ahead Adder

module cla_16bit(a,b,cin,sum,cout);
    input [15:0]a,b;
    input cin;
    output [15:0]sum;
    output cout;
    //assign cin=1'b0;
    wire p0,p1,g0,w0;
    and (g0,a[0],b[0]);
    xor (p0,a[0],b[0]);
    and (w0,p0,cin);
    or (cout,g0,w0);
    xor (p1,a[1],b[1]);
    xor (p2,a[2],b[2]);
    xor (p3,a[3],b[3]);
    xor (p4,a[4],b[4]);
    xor (p5,a[5],b[5]);
    xor (p6,a[6],b[6]);
    xor (p7,a[7],b[7]);
    xor (p8,a[8],b[8]);
    xor (p9,a[9],b[9]);
    xor (p10,a[10],b[10]);
    xor (p11,a[11],b[11]);
    xor (p12,a[12],b[12]);
    xor (p13,a[13],b[13]);
    xor (p14,a[14],b[14]);
    xor (p15,a[15],b[15]);
    xor (sum[0],p0,cin);
    xor (sum[1],p1,c1);
    xor (sum[2],p2,c2);
    xor (sum[3],p3,c3);
    xor (sum[4],p4,c4);
    xor (sum[5],p5,c5);
    xor (sum[6],p6,c6);
    xor (sum[7],p7,c7);
    xor (sum[8],p8,c8);
    xor (sum[9],p9,c9);
    xor (sum[10],p10,c10);
    xor (sum[11],p11,c11);
    xor (sum[12],p12,c12);
    xor (sum[13],p13,c13);
    xor (sum[14],p14,c14);
    xor (sum[15],p15,cout);
endmodule;
       
   

No comments:

Post a Comment