题解 | #全加器#
全加器
https://www.nowcoder.com/practice/d04c046febb74e72949baee9aa99d958
`timescale 1ns/1ns module add_half( input A , input B , output wire S , output wire C ); assign S = A ^ B; assign C = A & B; endmodule /***************************************************************/ module add_full( input A , input B , input Ci , output wire S , output wire Co ); wire S1; wire S2; wire C1; wire C2; add_half uut1( .A (A), .B (B), .S (S1), .C (C1) ); add_half uut2( .A (Ci), .B (S1), .S (S), .C (C2) ); assign S = Ci ^ S1; assign Co = C1 | C2; endmodule
1、半加器
在数学系统中,二进制加法器是它的基本部件之一。
半加器(半加就是只求本位的和,暂不管低位送来的进位数)的逻辑状态表
其中,A和B是相加的两个数,S是半加和数,C是进位数。
由逻辑状态表可写出逻辑式:
由逻辑式就可画出逻辑图,如下图(a)和(b)所示,由一个“异或“门和一个”与“门组成。半加器是一种组合逻辑电路,其图形符号如下图(c)所示。
两个半加器和一个或门可以组成全加器
2、全加器
当多位数相加时,半加器可用于最低位求和,并给出进位数。第二位的相加有两个待加数和,还有一个来自前面低位送来的进位数。这三个数相加,得出本位和数(全加和数)和进位数。这种就是“全加“,下表为全加器的逻辑状态表。