
一、集成电路
在引入“集成电路”后,电路设计实现了从原子到分子的质变。集成电路,最重要的当然是“集成”二字了……总体来说,我们希望设计出的集成电路具有:
- 可复用
- 可扩展
- 高封装度
- 健壮(泛指其可靠性、安全性、一致性等)
等特点。从定义上说,每一个在此之前提到的电路都可以被做成一个集成电路;但这些只能叫做专用集成电路,被用在特定的设备中,不具有可复用性,所以不在本文讨论范围中。同时,由于文章目前进展到组合逻辑电路,因此涉及的几项电路也都是以组合逻辑为基础的,不会牵涉到时序逻辑等内容。
与之前设计的朴素的电路不同,现实中的组合逻辑器件为了便于功能扩展,往往还有一些功能端口,可以控制是否输出,检测是否有输入等,实现与其他逻辑电路的配合。
为探究几种常见的组合逻辑电路,我们从一个实际的例子入手:计算器。简单一点,我们的计算器先实现加法和减法。(不保证最终的成果和现实中的设计一致)这也是我在前言中展示的Minecraft电路所做的。大概的思路如下:

这个东西只能做一位数的加法,但将它稍微扩展,就可以计算更多位数。我们还要忽略一些小细节,比如涉及存储的部分,以及二进制计算和十进制的转换(详见第二章关于“余三码”的介绍)。
二、编码器
编码器能够将单一的输入信号编码。比如,计算机键盘按下一个键,就会被编码成一个八位的ASCII码。
在计算器项目中,首先需要的,是把单一的“按钮输入”事件映射成一个二进制数。按钮板共有十个键,所以有十条输出,每条对应一个按钮。通过编码,可以将其变成易于逻辑理解的输入。由于目标是做计算,映射成二进制码(其实是BCD码)当然最为合理。(同样参见第二章:数制与编码)
我们假设每次只输入一个信号,不会两路同时产生输入。那么真值表如下:
