超前进位加法器

时间:2022-04-28
本文章向大家介绍超前进位加法器,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
module adder_demo(

a,b,cin,co,so
    );
 input [3:0]a;
 input [3:0]b;
 input cin;
 output co;
 output [3:0]so;
 wire [3:0]G,P;
 wire [3:0]C;
 assign G[0]=a[0]&b[0];
 assign P[0]=a[0]|b[0];
 assign C[0]=cin;
 assign so[0]=G[0]^P[0]^C[0];
 assign G[1] = a[1] & b[1];
 assign P[1] = a[1] | b[1];
 assign C[1] = G[0] |(P[0] & cin);
 assign so[1] = G[1] ^ P[1] ^ C[1];
 assign G[2] = a[2] & b[2];
 assign P[2] = a[2] | b[2];
 assign C[2] = G[1] |(P[1] & C[1]);
 assign so[2] = G[2] ^ P[2] ^ C[2];
 assign G[3] = a[3] & b[3];
 assign P[3] = a[3] | b[3];
 assign C[3] = G[2] |(P[2] & C[2]);
 assign so[3] = G[3] ^ P[3] ^ C[3];
 assign co = G[3] |(P[3] & C[3]);
Endmodule