第 3 次课 · 数字电子硬件实操:从逻辑门到多位加法器(9.29/9.30)
本课是模块 1 的第二次课,上一次课在 PPT 上讲的逻辑门,这次课在实验板上动手实操。课上按小组分工,用可磁吸拼接的实验板搭电路:了解基础的与门、或门、异或门,用两种方式搭建半加器,再接上数码管,最后把两个全加器合起来算 2 位二进制加法。课后交作业 2 的实验报告。
📺 课程视频
课堂录像可在 Bilibili 观看。
📄 课件
这节课的课件是数字电路实验指南,做成了可交互的网页:左边讲知识点,右边放电路板实物照片、原理图和可以点的模拟器。每页看完,点右下角「下一步 ▶」继续。
📱 手机上请横屏查看;电脑上建议用浏览器全屏(按
F键)观看。
课堂任务
课上 2–3 人一组,跟着老师做前 4 个任务;任务 5 由两个小组一起完成。每做完一个,轮流举手找助教验收,同时每人拍一张照片,留着写实验报告。
| 任务 | 内容 |
|---|---|
| 任务 1 | 用与门 + 异或门搭半加器,验证 1 位加法 |
| 任务 2 | 用半加器芯片再算一遍,与任务 1 对比 |
| 任务 3 | 用七段数码管显示 1 位加法的结果 |
| 任务 4 | 用全加器芯片验证带进位的三位相加 |
| 任务 5 | 两个小组一起,级联两块全加器,算 2 位加法并显示 |
加分机会
能上台搭出 3 位二进制加法器或者用两个半加器和一个或门搭建全加器的同学,可以额外加分。
📝 作业 2 · 实验报告
作业 2 共 10 分,提交 PDF,文件名格式为 硬件实验_学号.pdf。报告按下面四个部分来写。
一、基本任务
把完成前四个任务时拍的照片放进来,每张旁边写清输入、输出和对应的算式。
- 任务 1:用与门 + 异或门搭半加器,验证 1 位加法;
- 任务 2:用半加器芯片再算一遍,与任务 1 对比;
- 任务 3:用七段数码管显示 1 位加法的结果;
- 任务 4:用全加器芯片验证带进位的三位相加。
二、个人认知反思
选一个最触动你的环节,写写动手前后的认知变化。
三、思辨(独立作答)
- 加法器思辨:串行进位加法器有什么特点?有没有更快的实现方式?
- 硬件加减机制思辨:计算机为什么把加法电路当作核心,不单独做一套减法硬件?这样对硬件标准化和模块复用有什么好处?怎么靠编码让同一套电路既做加法又做减法?
四、开放题(独立作答,不计分数)
- 这次实验里,你最想不通的一个问题是什么?
- 如果让你给下一届同学改进这个实验,你想改哪里?
关于报告书写
报告里要有实拍图、真值表和个人思考,问卷单独填。AI 只能用来查背景资料,不能用它直接写正文、反思和思考题答案。每人独立交一份 PDF。
作业要求与报告模板(PDF)
下面这份 PDF 里有作业目标、任务、评分和报告模板,可以预览或下载。
成绩构成
- 课堂现场小组实操(4 分):操作规范、按流程完成任务(2 分);小组分工清楚、全员参与(2 分)。
- 课后实验报告 + 学情思辨问卷(6 分):填写学情问卷(1 分);写个人认知反思,挑一个最触动的环节,写动手前后的变化(3 分);加法器思辨(1 分);硬件加减机制思辨(1 分)。
🎬 课堂回放
完整课堂实录,可选择任意课堂观看。
3-1 课堂(周三 第一大节 · 自强楼 5312):
若在线播放卡顿,可点此直接下载录像。
3-3 课堂(周三 第三大节 · 自强楼 5310):
若在线播放卡顿,可点此直接下载录像。
🗂️ 课程内容摘要
这节课先复习二进制,再认三种逻辑门,然后用它们拼半加器、接数码管,最后把全加器串起来做多位加法。计算机算数靠的不是公式,而是一堆开关按固定方式连成的电路。
第 0 部分 · 课前准备:器材、供电与安全
器材是一套可磁吸拼接的电路实验板,一共 6 块:红色板既是与门板又是供电板,绿色是或门板,蓝色是异或门板,白色是半加器板,黑色板上同时有半加器芯片和全加器芯片,另有一块数码管板;还有一根带开关的 Type-C 电源线、电源适配器和若干导线。
供电靠红色板。背面 Type-C 口接电源线,再经电源适配器连到桌下插线板;也可以插电脑 USB,但更推荐插线板。红色板右上角指示灯亮,说明供电正常;其他板子靠侧面的磁吸接口吸上去取电,全部吸上后各板指示灯都会亮。导线两端是尖头,插进板上的圆孔;导线本身还有孔,可以再插一根线,把同一个信号分到多个地方,或者当延长线用。
开关往下拨是闭合,往上拨是断开;旁边的绿色小灯亮表示这一路输入为 1。安全上有几点要注意:实验电压很低,远低于安全电压,不用担心触电;但不要短路、不要用手摸插线板,插拔前先断电,别让裸露的导线互相碰到,手上保持干燥,等指示灯亮了再动手。
第 1 部分 · 基础逻辑门:与、或、异或
与门相当于串联开关:只有 A 和 B 同时为 1,输出才是 1,即 C = A ∧ B,口诀「全一为一,有零为零」。生活中的总闸和厨房、厕所、客厅分闸就是串联关系,只有全部分闸都合上,对应回路才通电。
或门相当于并联开关:A 或 B 有一个为 1,输出就是 1,即 C = A ∨ B,口诀「有一为一,全零为零」。
异或门是相同为 0、不同为 1,即 C = A ⊕ B。它用与门、或门、非门就能拼出来,也是加法器里最关键的一块。把输入的所有组合和输出列成真值表,就能一眼看出这几种逻辑关系;现场也借二进制换算做了热身:\(5=101_2\),\(110_2=6\),\(1011_2=11\),二进制里 \(1+1=10\) 而不是 2。
第 2 部分 · 半加器:第一次让电路算加法
1 位二进制加法有两个输出,正好各对应一种逻辑:低位和 S = A ⊕ B 走异或门,进位 C = A ∧ B 走与门。
一个异或门加一个与门,就是半加器,能算 0+0=0、0+1=1、1+0=1、1+1=10。任务 1 要把半加器的两个输入同时送到异或门和与门,白色板背面印了接线提示:A→a1、A→a2、B→b1、B→b2,可以用带孔的导线叠接,把 A、B 各分两路。再用半加器芯片算一遍,看看芯片和分立元件差在哪:黑色板上的半加器芯片功能完全一样,但面积小得多,这就是「集成」,把复杂电路封装进芯片,只留下输入输出引脚。
第 3 部分 · 数码管:把结果显示出来
七段数码管靠点亮 a–g 里的几段拼出数字,接收 4 位二进制,能显示 0 到 15。其中 0–9 正常显示,10–15 不亮。三只数码管分别显示加数 A、加数 B、和,每只下面四个输入孔从低到高权重是 1、2、4、8。把半加器的输入和输出接到数码管的 A/B/C 三组输入上,就能直接看到「1+1=2」;注意算 1+1=2 时必须把进位接到结果数码管的 C1,否则只会显示 0。到这里,一台能算 1 位加法的计算器就搭出来了。
第 4 部分 · 全加器:补上进位输入
半加器没有低位来的进位,所以算不了多位二进制加法。全加器多了一个进位输入 Cin,做的是 Cin + A + B = Cout×2 + S,三个输入可以算 1+1+1=3(输出 11)。黑色板上半加器和全加器芯片外观几乎一样,但全加器里面塞进了更多逻辑,这正说明芯片制程进步的意义:同样大小塞下更多晶体管。它由两个半加器和一个或门组成:
半加器1:S1 = A ⊕ B,C1 = A ∧ B
半加器2:S = S1 ⊕ Cin,C2 = S1 ∧ Cin
或 门 :Cout = C1 ∨ C2
因为 C1 和 C2 不会同时为 1,最后的进位用或门合并就够了。列真值表也能看出:需要进位的四种情况 0+1+1、1+0+1、1+1+0、1+1+1 中,C1 和 C2 总有一个为 1,而且不会同时为 1,所以直接用或门合并即可。
第 5 部分 · 多位加法器:级联与进位
把几个全加器串起来,就能算更多位:最低位的 Cin 接 0,每一位的 Cout 接到高一位的 Cin。进位要一位一位往上走,所以叫串行进位加法器。任务 5 由两个小组各提供一块加法器板,约定左边算低位、右边算高位。以 3+2 为例,先写成 11+10:低位算 1+0,高位算 1+1;低位产生的进位接到右边全加器的 Cin。结果的最低位来自左全加器的 S,十位来自右全加器的 S,百位来自右全加器的 Cout,所以 3+2 的三个结果灯分别是 1、4,加起来是 5;再试 1+3=4,就是 01+11,低位 1+1 产生进位,高位 0+1+1=2。
现场容易出错的地方有几处:改输入时忘了同步改另一块板,导致上下两个加法器输入不一致;忘记把低位的进位接到高位的 Cin,结果少 2;结果线顺序接反,C0 接最低位和、C1 接十位和、C2 接最高位进位;以及数码管超过 9 就不亮,算 5+4=9、5+5=10 时要分清是「显示不了」还是「算错了」。两个加分挑战分别是把两位加法器扩展到三位并做可视化,以及只用两个半加器加一个或门现场搭出全加器。下课前记得两件事:第一次作业临近截止;实验箱按原样收好,6 块小板、充电头、Type-C 线都装回盒子,交到教室前面。
核心公式
| 组件 | 逻辑表达式 |
|---|---|
| 与门 | C = A ∧ B |
| 或门 | C = A ∨ B |
| 异或门 | C = A ⊕ B |
| 半加器 | S = A ⊕ B,C = A ∧ B |
| 全加器 | S = A ⊕ B ⊕ Cin,Cout = (A∧B) ∨ ((A⊕B)∧Cin) |
✅ 课堂思考与判断
下面几道题可以自测,点开看答案。
1. 与门对应串联开关,或门对应并联开关。(√ / ×)
√。串联要两个都闭合灯才亮,即「全一为一」;并联只要一个闭合灯就亮,即「有一为一」。
2. 半加器可以直接计算 1+1+1,因为它有异或门。(√ / ×)
×。半加器只有两个输入 A、B,没有低位进位输入,处理不了三个数相加;能算 1+1+1 的是全加器。
3. 半加器的进位 C 和和 S 分别由与门、异或门得到。(√ / ×)
√。S = A ⊕ B 由异或门得到,C = A ∧ B 由与门得到。
4. 全加器 = 两个半加器 + 一个或门,最后的进位可以用或门代替加法器。(√ / ×)
√。两个半加器产生的进位 C1、C2 不可能同时为一,所以用或门合并即可。
5. 多位加法器里,最高位的 Cout 没有用处,可以不接。(√ / ×)
×。最高位的 Cout 是结果的最高位,正是「溢出」的那一位,接上它才能表示更大的和。
6. 数码管的 4 位输入 A3–A0 中,哪一位权重最大?最小?
A3 是最高位,权重为 8;A0 是最低位,权重为 1。表示的数等于 A3×8 + A2×4 + A1×2 + A0×1。
7. 从最低位到最高位,进位要一级一级传上去,这带来什么问题?
进位传播有延迟,位数越多、路径越长,加法越慢。实际芯片会用超前进位之类的办法提前算出进位,少等一会儿。
8. 用一句话说明:计算机的加法是怎么实现的?
把「加法」这件事拆成与、或、非等布尔逻辑,再用大量开关连成固定网络。给一组 0/1,网络就按连线规则吐出一组 0/1,硬件层面直接完成 y=f(x)。