4.1 数字逻辑基础:从开关到逻辑门


4.1 数字逻辑基础:从开关到逻辑门

本节摘要:数字世界的全部复杂性建立在"开与关、是与非、一与零"这对最朴素的区分之上。本节打通三个层次的语言:数制与编码(数字怎么记)、逻辑代数(条件怎么算)、组合电路设计流程(想法怎么变成一块具体的门电路)。收尾的三人表决器案例完整走一遍从文字需求到接线图的标准路径,这套四步法适用于所有纯组合逻辑项目。

舍弃中间值的收益账

模拟电路为一伏和一点零一伏的区别较劲,数字电路对此耸耸肩——只问高于还是低于阈值,两点之间的一切皆可丢弃。这笔交易看着鲁莽,收益却惊人:只要噪声不越过阈值线,信号可以无限次中继再生而永不劣化;元件参数漂移三成,系统行为分毫不变;判据只有两个状态,存储、运算、传输的可靠性都变了质。用精度换确定,这是整个信息时代最划算的一笔买卖。

当然门槛不是免费的。前面第 3 章的比较器已经展示了如何把连续电平压扁成高低两态;本节关心的是压扁之后的世界怎么运转。先立语言。

数制与码制:机器的记账方式

二进制只用零和一计位,逢二进一。它赢在实现而非优雅:两种稳态最容易用器件保证。工程里真正的常客是十六进制,因为每四位二进制恰好对应一位十六进制——八位总线写成两位十六进制,报错日志可读性立刻上一个台阶。换算口诀:二转十六按四位一组分段查表;十转二用除二取余倒着读。补一段练习演算:

# 十进制 173 转 二进制:不断除 2 记余数 173 = 86 余 1 86 = 43 余 0 43 = 21 余 1 21 = 10 余 1 10 = 5 余 0 5 = 2 余 1 2 = 1 余 0 1 = 0 余 1 # 倒序读出 10101101 即 十六进制 AD # 验证反方向 一乘128 加 0 加 32 加 8 加 4 加 1 等于 173 成立

负数的表达是第一道思考题。原码直觉好但做硬件加减麻烦;补码方案统一了加法与减法:负数等于对应正数按位取反再加一,减一个数等价于加它的补码,符号位自动参与运算无需特判。这套约定让加法器一身兼两职,是嵌入式编程里解释溢出、移位行为的理论基础。

还有一个容易踩的概念分离:"数制"回答数值怎么表示,"码制"回答非数值信息怎么映射。BCD 码用四位二进制记一位十进制数码管看得舒服但费位数;ASCII 给字符编身份证号;格雷码让相邻数字每次只变一位——它在旋转编码器上就是为防止多位同变瞬间产生的毛刺误差而生。选错编码不会让结果错误,却会埋下时序隐患,这类问题排查起来极耗时间。

三种基本运算与化简术

与、或、非三种运算构成完备集:任何逻辑功能理论上都能由它们拼出。真值表是这个世界的宪法条文——列出输入的所有组合及期望输出,不含糊、无遗漏。布尔代数则提供化简的法条,最常用的三条是:A 与 A 的非恒为零、A 或一恒为一、以及分配律在逻辑世界里的独特形态(A 或 B 与 C 展开后等于 A 与 B 加 A 与 C 的对偶形式)。摩根定律值得单独念一遍咒语:非加变乘、非乘变加、长杠变短杠。

化简的目标是把门数压到最少,工具叫卡诺图——把真值表排成相邻两格只差一位的棋盘,然后画圈吞并相邻的一格,每圈消去一个变量。圈的规矩有三条:只能圈矩形、圈内必须全是一、圈要尽可能大且每个一至少被盖一次。熟练之后两分钟可以出一版手工最优解。

案例:三人表决器从零到成品

背景是一个实训项目:三名评委各持一只自锁按钮,任何两名及以上同意则指示灯亮;要求不使用微控制器、纯门电路实现。

操作走标准四步。第一步列真值表:三个输入 A、B、C,输出 Y 在八种组合中的取值一一写明,Y 为一的行恰好是五条中的多数行(任意两票通过的全部四种加上全票一种,共四行)。第二步卡诺图化简:把八格棋盘铺开,四个一圈盖住 B 与 C 全一对的行,再补两只双格圈分别吃掉其余的边界项,得到最简表达式 Y 等于 AB 加 BC 加 AC——三组两输入与运算再汇入一只或门,精简得漂亮。第三步选择器件实现:可以用一片内含四个两输入与非门的经典芯片,利用摩根定律把或的形式改写成与非两层结构(AB 或 BC 或 AC 恰等于三路与非后再与非),一片十四脚封装装下全案,这正是老工程师偏爱与非门家族的原因——它自己就是完备集。第四步上板验证:搭限流电阻点亮 LED,逐一拨动八种开关组合对照真值表打勾。

结果是一次通过。解读环节有个细节值得放大:输入端每只按钮都配了上拉或下拉电阻,防止断线瞬间引脚悬空拾取环境噪声——这段属于第 3 章的比较器阈值知识,新手十有八九在这里翻车,现象是"有时没人碰它也亮"。变式训练可以把需求演进三档:改为四人表决过半数(引出变量数增加后卡诺图膨胀的问题,体验公式法代数化简的价值);加入主持人否决权(体会"禁止项"在化简中被当作无关项处理带来的进一步精简);最后用同一电路驱动蜂鸣器代替指示灯(发现灌电流能力不足,需要一级三极管缓冲——工程就这样自然通向下一课)。

真实器件的三条脾气

纸面逻辑成立不等于板子省心,通用逻辑芯片还有三条容易被忽略的物理脾气。第一条关于悬空输入:老式 TTL 家族引脚悬空近似读一,新品 CMOS 系列却完全相反——悬空即高阻浮空,干扰一来读数随机,功耗还会莫名升高;所以纪律是任何未用的输入脚都必须接地或接电源,这是评审会上出现频率最高的扣分项。第二条是驱动能力的账:每个门输出的拉灌电流以毫安计,想用一片门电路直推继电器或数码管段码多半不行,得学会查扇出系数并安排三极管作为苦力。第三条是竞争与冒险:同一信号经两条不同延时的路径汇合,边沿交错瞬间会顶出宽度只有几纳秒的假毛刺——示波器带宽不够都看不见它,但足以让后续的计数器误翻一次。对付它有两个成熟手筋:在目的地寄存器统一打一拍让毛刺来不及生效(时钟化处理),或在关键路径上故意加两级门平衡延时(硬件补偿)。看到这里你应该察觉到一件事:数字工程师与模拟思维的和解从这三条脾气开始——真实数字系统仍是建立在 PN 结上的物理装置,只是被阈值墙保护得比较好而已。

💡 组合设计的灵魂检查只有一句:每一种输入组合都唯一对应确定的输出吗?出现不确定即存在悬空路径或竞争,这在含反馈的组合环里尤为致命。

带走这张清单:

  • 两态换来再生与稳定:确定性是数字系统的核心资产。
  • 补码统一了加减法:负数取反加一,符号位照常参与。
  • 数制管数值、码制管映射:BCD 与格雷码各有地盘。
  • 卡诺图圈大圈少:化简是在合法前提下尽可能消灭变量。
  • 四步法走到哪都不慌:真值表、化简、器件映射、上板勾验。

组合逻辑没有记忆、输出只看当下。下一节先把连续量请进门——模数转换器如何在台阶与世界之间精确往返。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U