全加器:三个输入
把进位传到下一位
全加器把两个位(二进制数字 0 或 1)和 Cin(Carry input,来自前一位的输入进位)相加。它产生当前位置的和位,并把输出进位送到下一位。
实验台
改变电路设置,预测读数,再检查挑战结果。这些是教学模型,每课都会说明模型的假设。
登录以保存学习进度. 访客进度保存在此设备上.
工作原理
理想二进制逻辑:0 表示低,1 表示高,不是测得的电压。不模拟电源、电流、输出负载或响应延迟;图示表示功能,不表示芯片引脚。
A、B 是数据位;Cin 表示 Carry input,即输入进位;S 是和位,Cout 是输出进位。T = A + B + Cin;T = S + 2Cout。XOR 全称 Exclusive OR,即异或:输入位不同才给出 1。⊕ 和 =1 表示此功能。进位是其所在位的一个单位,不是额外电压。
难度
搭建 · 搭建电路
接通电源,设置 A = 0、B = 0、Cin = 1。得到 S = 1、Cout = 0。
需要提示?
A = 0; B = 0; Cin = 1 → S = 1; Cout = 0
探索 · 改变输入
设置 A = 1、B = 1、Cin = 0。得到 S = 0、Cout = 1。
需要提示?
A = 1; B = 1; Cin = 0 → S = 0; Cout = 1
独立解题 · 完成挑战
设置 A = 1、B = 1、Cin = 1。得到 S = 1、Cout = 1。
需要提示?
A = 1; B = 1; Cin = 1 → S = 1; Cout = 1
延伸阅读与电路配方
把进位传到下一位
计算器在很多位上重复这个模块。每个模块处理一小次加法,把进位传向更高位。
T = A + B + Cin; T = S + 2Cout; S = A ⊕ B ⊕ Cin
和位说明总和是否为奇数。输出进位说明总和是否至少为二;两者一起覆盖零到三。
有用的规律
三个输入全高,总和为三,即二进制 11。单独一个和位不够表示它。
模型之外
两个半加器加“或”可组成全加器。“或”在至少一个输入为 1 时输出 1;“与”要求两个输入均为 1。图中记作 ≥1 和 &。真实进位传播需要时间;本模型立即计算。
值得避开的误区
输入进位和输出进位是不同信号。Cin 不是反馈记忆,Cout 也不总是复制 Cin。
A = 0、B = 0,Cin 从 0 变为 1。结果是…
- S = 1, Cout = 0
- S = 0, Cout = 1
- S = 1, Cout = 1
延伸阅读
总和从零变为一,只需要个位的和位。
搭建电路
设置 A = 0、B = 0、Cin = 1。只有输入进位,也得到总和 1。
T = 1; S = 1; Cout = 0
改变输入
设置 A = 1、B = 1、Cin = 1。总和 3 分为和位 1、进位 1。
T = 3; S = 1; Cout = 1
试试另一条路径
保持 Cin,交换 A、B。再保持 A、B 都高,翻转 Cin,比较和位与进位的变化。