半加器和全加器
半加器(half adder, HA)
不考虑低位进位输入,接口定义为
half_adder HA(
input i_a,
input i_b,
output o_s,
output o_c
);
于是一位半加器实现如下:
assign o_s = i_a ^ i_b;
assign o_c = i_a & i_b;
//assign {o_c, o_s} = i_a + i_b;
全加器(full adder, FA)
若考虑低位进位输入,接口定义为
full_adder FA(
input i_a,
input i_b,
input i_c,
output o_s,
output o_c
);
于是一位全加器实现如下:
assign o_s = i_a ^ i_b ^ i_c;
//assign o_c = (i_a & i_b) | (i_c & (i_a | i_b));
assign o_c = (i_a & i_b) | (i_c & (i_a ^ i_b));
//assign {o_c, o_s} = i_a + i_b + i_c;
如下为FA和HA2FA的逻辑图
