一,内容介绍
加法器是数字电路中的最基础电路之一,也是CPU的核心功能之一。
在这个专栏,我会把所有我知道的数字电路的加法器相关模型都实现一遍并解释其原理。
编程使用的语言为Verilog,代码风格为强迫症系列风格。
加法器系列链接:
上一篇 数字电路基础知识
目前:半加器和全加器
下一篇 四位行波加法器设计
二,半加器
根据第一篇知识我们可以知道,数字电路中的异或和二进制加法的计算结果完全一致,因此,我们可以设计最简单的加法器结构:半加器。
所谓半加器,即不产生进位的加法器,是数字电路中的最基础计算单元。
module HALF_ADDER (
input a_i, b_i,
output wire c_o
);
assign c_o = a_i ^ b_i;
endmodule
三,全加器
全加器即产生进位的加法器,输出有两位。加法器什么时候会有进位呢?显然,当加法器的三个输入有两个为1的时候,加法产生进位,由此,我们可以进一步将半加器完善为全加器。
module FULL_ADDER (
input a_i, b_i, c_i,
output wire [1:0] c_o
);
assign c_o[0] = a_i ^ b_i ^ c_i;
assign c_o[1] = (a_i && b_i) || (a_i &&a