用逻辑门搭控制器
约 10 分钟
有了真值表,就可以选择逻辑门。自动夜灯只有在 D=1 且 P=1 时亮,所以一个与门正好完成核心判断:两个输入都为 1,输出才为 1。
从表到门
先看输出为 1 的行,再把这一行的条件用「与」连接。这里只有 D 与 P。如果要求「天黑并且没有人时亮一盏微弱指示灯」,「没有人」要先把 P 经过非门变成 非 P,再与 D 相连。或门负责「满足任一条件」,非门负责「把真假翻转」。复杂判断就是这些简单积木的组合。
相同功能可以有不同搭法
例如「不是白天或不是没人」看起来拗口,化简后可能与另一种门电路相同。芯片工程师会比较不同方案使用多少逻辑门、信号要经过几层、耗电多少。门越多不一定越聪明,往往只是更慢、更贵、更耗电。
信号传播不是瞬间完成
输入变化后,电流要经过晶体管,输出才稳定。单个门可能只慢十亿分之一秒,但几十层门叠起来,延迟会累积。如果输出还没稳定就被下一部分读取,可能得到短暂错误。设计时既要关心「逻辑对不对」,也要关心「什么时候才对」。
先用纸和仿真器验证
真正制造芯片非常昂贵,不能每改一根线就造一次。工程师先画逻辑图,再用软件仿真所有输入组合,确认输出与真值表一致。仿真像数字世界的彩排:不能保证舞台上绝无问题,却能提前抓住大量低级错误。
练一练:设计一个安全提示灯:门没关好「或者」安全带没系时亮。写出逻辑表达式,并说应该用与门还是或门。
小纸条
自动夜灯的核心判断为什么用与门,而不是或门?