news 2026/4/17 10:56:16

手把手教你认识逻辑门:从与或非开始

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手教你认识逻辑门:从与或非开始

从零开始搞懂逻辑门:与、或、非的硬核实战解析

你有没有想过,手机里每一条消息、电脑中每一次点击,背后其实都是一群“0”和“1”在疯狂打架?而这场战斗的最小作战单位,就是——逻辑门

别被这个名字吓到。它听起来高深,其实就像电路里的“开关裁判”,专门判断条件是否成立,然后决定信号能不能通过。今天我们就抛开教科书式的刻板讲解,用工程师的视角,带你真正看懂、用懂、写懂最基础的三个逻辑门:与门(AND)、或门(OR)、非门(NOT)


先问一个问题:为什么所有数字系统都从这三个门开始?

答案很直接:因为它们足够简单,又足够强大。

  • 简单到可以用两个晶体管搭出一个非门;
  • 强大到全世界最复杂的CPU,本质上也不过是这三种门的超级组合体。

香农早在1937年就证明了:任何布尔函数,都可以仅用与、或、非来实现。换句话说,只要你能把问题翻译成“是/否”判断,这三个门就能帮你用电压实现出来。

所以,学逻辑门不是背概念,而是掌握一种用硬件思考问题的方式


一、与门(AND Gate):全票通过才放行

它像什么?

想象公司报销流程:必须同时满足“领导签字 ✅” + “发票齐全 ✅”,才能打款。只要缺一个,就不行。

这就是与门的核心逻辑:全为1,输出才是1

数学表达

$$
Y = A \cdot B \quad \text{或} \quad Y = A\ \&\ B
$$

这个“·”不是乘号,是逻辑乘。但有意思的是,它的运算规则恰好和二进制乘法一致:
- 1 × 1 = 1
- 其他情况都是 0

真值表(2输入)

ABY
000
010
100
111

关键洞察:与门的本质是“协同控制”。在数字系统中,它常被用作“使能信号(Enable)”。

比如某个模块只有在clk_en == 1 && reset_n == 1时才工作,否则静默待机。

怎么实现?CMOS结构简析

典型的CMOS与门其实是“与非+非”的组合:
1. 先用NMOS网络实现 NAND(A 和 B 都导通才拉低)
2. 再加一级反相器(Inverter)得到 AND

虽然多了一级延迟,但保证了强驱动能力和低静态功耗。

Verilog 实现(可综合)

module and_gate ( input wire A, input wire B, output wire Y ); assign Y = A & B; endmodule

💡 提示:这段代码会被综合工具自动映射为标准单元库中的AND2X1单元。如果是FPGA开发,还会考虑查找表(LUT)如何配置。


二、或门(OR Gate):一人举手就行动

它像什么?

火灾报警系统:烟雾传感器响了 ❗ 或者 温度超标 ❗,警报立刻拉响。

这就是或门的哲学:一真即真

数学表达

$$
Y = A + B
$$

注意!这里的“+”不是算术加法。比如 $1 + 1 = 1$,而不是2。这是逻辑加

真值表(2输入)

ABY
000
011
101
111

工程妙用:中断请求合并。

多个外设(UART、SPI、Timer)都能发起中断。我们把它们的中断信号接到一个或门,只要有一个置位,CPU就知道该处理中断了。

实现方式

CMOS或门同样采用复合结构:
- PMOS并联实现“任一导通即上拉”
- NMOS串联确保“全断开才下拉”

但由于PMOS载流子迁移率低,或门通常比与门慢一点,在高速设计中需要特别注意路径延迟。

Verilog 实现

module or_gate ( input wire A, input wire B, output wire Y ); assign Y = A | B; endmodule

⚠️ 注意操作符:|是按位或,||是逻辑或(用于条件判断),别混用!


三、非门(NOT Gate):唯一的单兵战士

它是什么?

反相器(Inverter),也叫 NOT 门。它是唯一只有一个输入的逻辑门。

功能极其纯粹:输入是什么,输出就不是什么

数学表达

$$
Y = \overline{A} \quad \text{或} \quad Y = !A
$$

真值表

AY
01
10

为什么它最重要?

  • 延迟最小(通常只有1个单位门延迟)
  • 使用频率最高(几乎每个信号都要取反)
  • 是构建其他复用门的基础(比如NAND = AND + NOT)

CMOS结构揭秘

最经典的互补结构:
- 上面一个PMOS(P型),接VDD
- 下面一个NMOS(N型),接地
- 输入A同时控制两个管子的栅极

当 A=0 → PMOS导通、NMOS截止 → 输出接VDD → Y=1
当 A=1 → PMOS截止、NMOS导通 → 输出接地 → Y=0

完美实现反转,且静态时没有直流通路,功耗趋近于零。

Verilog 实现

module not_gate ( input wire A, output wire Y ); assign Y = ~A; endmodule

🔧 综合提示:综合后会映射为INVX1INVX2等不同驱动强度的反相器单元。大扇出场景下可以选择 INVX4 来增强驱动能力。


实战案例:用基础门搭建一个“等值比较器”

我们现在来玩点真的:只用与、或、非门,做一个判断两个比特是否相等的电路

需求分析

什么时候 A == B?
- 要么 A=1 且 B=1
- 要么 A=0 且 B=0

也就是:
$$
Y = (A \cdot B) + (\overline{A} \cdot \overline{B})
$$

这个表达式你可能眼熟——它正是XNOR(同或)门的定义!

但我们不调用现成的XNOR,而是亲手组装。

构建步骤

  1. 生成反相信号
    - 用非门得到 $\overline{A}$ 和 $\overline{B}$

  2. 计算两种“相等”情况
    - 用与门计算 $A \cdot B$
    - 用另一个与门计算 $\overline{A} \cdot \overline{B}$

  3. 汇总结果
    - 用或门将两个支路合并,输出最终结果 Y

电路结构示意(文字版)

┌─────┐ A ──┤ NOT ├───┬───────────────┐ └─────┘ │ │ ▼ ▼ ┌─────┐ ┌─────┐ ┌───┤ AND ├────┐ │ AND ├─┐ │ └─────┘ │ └─────┘ │ │ │ │ │ └─────┬──────┘ │ ▼ │ ┌─────┐ │ │ OR │──→ Y │ └─────┘ │ ▲ B ──────┼────────────────────┘ │ ┌───┴───┐ │ │ └───────┘ NOT?

抱歉,图有点乱……但重点是理解逻辑拆解过程。

Verilog 实现(模块化设计)

module eq_comparator_1bit ( input wire A, input wire B, output wire Y ); wire not_A, not_B; wire ab_high, ab_low; // 步骤1:取反 not_gate u_inv1 (.A(A), .Y(not_A)); not_gate u_inv2 (.B(B), .Y(not_B)); // 步骤2:两组“相等”条件 and_gate u_and1 (.A(A), .B(B), .Y(ab_high)); and_gate u_and2 (.A(not_A), .B(not_B), .Y(ab_low)); // 步骤3:合并 or_gate u_or (.A(ab_high), .B(ab_low), .Y(Y)); endmodule

✅ 这种写法清晰展示了“自底向上”的设计思想:先有基本门,再搭功能块。

当然,你也可以直接写:

assign Y = (A & B) | (~A & ~B);

效果一样,但前者更适合教学和调试。


工程实践中那些没人告诉你的坑

你以为知道真值表就能上岗了吗?现实远比课本复杂。以下是老工程师踩过的雷:

🛑 坑点1:未使用输入引脚悬空

常见芯片如 74HC32(四或门),如果你只用了其中一个门,剩下三个门的输入绝不能悬空!

后果:引入噪声干扰,可能导致误触发甚至烧毁芯片。

✅ 正确做法:
- 接地(GND)—— 如果希望默认为0
- 接电源(VCC)—— 如果希望默认为1
- 或与其他已用输入并联(谨慎使用)

🛑 坑点2:扇出超限(Fan-out Exceeded)

一个逻辑门能驱动多少个下级门是有上限的。例如 TTL 逻辑门典型扇出为 10。

超过限制 → 输出电平无法稳定 → 后级误判。

✅ 解决方案:
- 加缓冲器(Buffer),本质是一串非门
- 改用高驱动能力型号(如 74HC244)

🛑 坑点3:传播延迟不匹配引发竞争冒险

假设两条信号路径分别经过2级门和4级门到达同一个或门,就会出现毛刺(Glitch)

举个例子:在状态机跳转时,短暂出现非法状态,导致误动作。

✅ 缓解方法:
- 插入冗余门平衡延迟
- 使用同步设计(寄存器采样)
- 关键路径添加去毛刺滤波(如RC + 施密特触发器)

🛑 坑点4:忽略电源去耦

即使是最简单的门电路,高频切换也会引起电源波动。

✅ 必做动作:
- 每个IC附近加 0.1μF 陶瓷电容(就近连接 VCC-GND)
- 电源入口加 10μF 钽电容


写在最后:逻辑门不止是知识,更是一种思维方式

当你真正理解了与、或、非,你会发现:
- 编程中的if (a && b)就是一个软件层面的“与门”
- 数据库查询WHERE status=1 OR priority=high就是“或门”的应用
- Git 分支合并策略也能抽象成逻辑运算

数字世界的底层语法,其实就是这些简单门的排列组合。

掌握它们,不只是为了画电路图或者写Verilog,更是为了培养一种“可计算化”的思维习惯——把复杂问题拆解成一系列是非判断,然后交给硬件去执行。

下一步,你可以尝试:
- 用与或非实现半加器(Half Adder)
- 把多个比较器级联做成多位数值比较
- 在FPGA上烧录一个LED控制逻辑,体验真实信号流动

记住:每一个伟大的系统,都始于最微小的“0”和“1”。

如果你正在学习嵌入式、准备转行IC设计,或是单纯对硬件着迷,欢迎留言交流。我们一起把数字世界看得更透彻一点。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:49:57

红外遥控解码:基于Arduino Uno的入门级实验

从遥控器到代码:用Arduino解码红外信号的完整实践 你有没有想过,当你按下电视遥控器的“电源”键时,那一道看不见的红外光是如何被识别并执行命令的?这看似简单的操作背后,其实是一套精密设计的通信协议在默默工作。今…

作者头像 李华
网站建设 2026/4/18 6:58:24

跨平台模组下载神器WorkshopDL:免Steam账号畅享创意工坊

跨平台模组下载神器WorkshopDL:免Steam账号畅享创意工坊 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为Epic平台游戏无法使用Steam创意工坊模组而烦恼吗&…

作者头像 李华
网站建设 2026/3/31 8:48:40

川渝低空“跨省通”来了!“协同机制+三大通道”正式发布

当千年石刻文化遇见低空经济,巴蜀文旅融合揭开新篇章。 同时,巴蜀低空文旅走廊第二站——“川渝石窟寺国家遗址公园试飞”成功举行,完成了川渝首条跨省(直辖市)域低空文旅航线试飞,为川渝共建低空文化走廊、…

作者头像 李华
网站建设 2026/4/16 12:17:52

完整鸣潮自动化工具:简单智能的游戏助手

完整鸣潮自动化工具:简单智能的游戏助手 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 还在为鸣潮中繁琐的重…

作者头像 李华
网站建设 2026/4/17 17:54:58

HbaseGUI:重塑HBase可视化管理新体验

HbaseGUI:重塑HBase可视化管理新体验 【免费下载链接】HbaseGUI HbaseGUI 项目地址: https://gitcode.com/gh_mirrors/hb/HbaseGUI 在大数据技术生态中,HBase作为分布式列存储数据库的核心组件,其强大的存储能力往往伴随着复杂的管理挑…

作者头像 李华
网站建设 2026/4/18 8:44:14

2025 中国 GEO 服务商十强榜:基于三维评估模型的权威解读

在生成式 AI 重构信息分发规则的今天,GEO(生成式引擎优化)已成为企业抢占 AI 流量入口、实现精准触达的核心抓手。据中国人工智能产业发展联盟最新数据,2025 年国内 GEO 服务市场规模突破 52 亿元,年复合增长率达 43%&…

作者头像 李华