verilog实现4bit超前进位加法器

电路的结构图如图

module adder4bit_loodahead_carry(
input    [3:0]    a,
input    [3:0]    b,
input             c_in,
output    [3:0]   y,
output            cout    

output     [3:0]  Pm,
output     [3:0]  Gm
);

wire [4:1] c_wire;
wire [3:0] P,G;

adder1bit a1(a[0],b[0],c_cin,y[0],P[0],G[0]);
adder1bit a2(a[1],b[1],c_wire[1],y[1],P[1],G[1]);
adder1bit a3(a[2],b[2],c_wire[2],y[2],P[2],G[2]);
adder1bit a4(a[3],b[3],c_wire[3],y[3],P[3],G[4]);

adder4bit_cla(P,G,c_in,c_wire,Pm,Gm);

assign cout = c_wire[4];
endmodule

module adder1bit(
input       a,
input       b,
input       c_in,
output      y,
output      g,
output      p   
);


assign y = a ^ b ^ c_in;
assign g = a & b;
assign p = a | b;

endmodule



module 4_cla(
input    [3:0]    p,
input    [3:0]    g,
input             c_in,
output    [4:1]   C_IN;
output            Pm;
o
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值