当前位置:   article > 正文

超前进位加法器(Verilog&数字IC)

超前进位加法器

在说到超前加法器之前,先要了解普通全加器。
首先画出全加器真值表
全加器真值表
在这里插入图片描述
则此时可以写出Verilog代码:

module advance_adder(
   input [3:0] a,
	input [3:0] b,
	input c_in,
	output [3:0] sum_out,
	output c_out
);
   wire [4:0] g,p,c;
   assign g=a&b;
   assign p=a|b;
   assign c0=c_in;
   assign c1=g[0]|(p[0]&c[0]);
	assign c2=g[1]|(p[1]&(g[0]|(p[0]&c[0])));
	assign c3=g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))));
	assign c4=g[3]|(p[3]&(g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))))));
	assign sum_out = p^g^c[3:0];
	assign c_out = c[4];
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

普通加法器需要等进位完成才计算下一位,这样在计算大大增加了运算的时间,而超前进位加法器可以直接计算出所有全加器的进位输入信号,无需像普通加法器一样从最低位开始像最高位逐位传递信号。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/986444
推荐阅读
相关标签
  

闽ICP备14008679号