全加器(Full Adder)

module full_adder (
a,b,c,g,p,s
);
input a,b,c;
output g,p,s;
assign g=a&b;
assign p=a^b;
assign s=a^b^c;
endmodule
4位超前进位P、G判定模块:
module CLU (
input [3:0]p,
input [3:0]g,
input cin,
output PG,
output GG,
output [3:0]C_4
);
wire [4:0]c;
assign c[0]= cin;
assign c[1]= g[0]|(p[0]&cin);
assign c[2]= g[1]|((g[0]|(p[0]&cin))&p[1]);
assign c[3]= g[2]|((g[1]|((g[0]|(p[0]&cin))&p[1]))&p[2]);
assign c[4]= g[3]|((g[2]|((g[1]|((g[0]|(p[0]&cin))&p[1]))&p[2]))&p[3]);
assign C_4 = c[4:1];
assign PG=&p;
assign GG=g[3]|(g[2]&p[3])|(g[1]&p[2]&p[3])|(g[0]&p[1]&p[2]&p[3]);
endmodule


6484

被折叠的 条评论
为什么被折叠?



