以此记录Verilog的学习之旅。
常用组合逻辑电路之加法器
常见使用的有加法器有半加器和全加器两种。
1.半加器
简单来说,半加器不考虑低位的进位,输入只考虑两个加数和被加数。而输出需要考虑和、高位进位。
真值表如下:
可以发现sum=a^b;cout=a&b;
Verilog代码如下:
module ADD(a,b,sum,cout);
input a;
input b;
output sum;
output cout;
assign sum=a^b;
assign cout=a&b;
endmodule
RTL视图如下:
图1
2.全加器
全加器需要考虑来自低位的进位,因此存在三个输入,而输出仍然为两个。
真值表如下
可以发现sum=a^ b^ c; cout=(a^ b)&c+(a& b);
module ADD(a,b,c,sum,cout);
input a;
input b;
input c;
output sum;
output cout;
assign {cout,sum}=a+b+c;
endmodule
RTL视图如下:
特别当需要多位加法器时,只需要对应扩大对应的输入和输出的相应位宽即可。