【ShuQiHere】从晶体管到逻辑门:数字电路的构建之旅
【ShuQiHere】
现代计算机和电子设备的基础是逻辑电路(Logic Circuits),它们执行信息处理和运算任务。在这些电路的核心,是晶体管(Transistors) 和 逻辑门(Logic Gates)。通过理解这些组件如何与**布尔逻辑(Boolean Logic)**结合,我们可以揭开计算机如何执行复杂运算的奥秘。本文将深入探讨如何从晶体管构建逻辑门,逻辑门又如何通过布尔运算完成计算任务。💡
1. 克劳德·香农(Claude Shannon)与布尔逻辑的结合 💡
1937年,克劳德·香农(Claude Shannon)在他的硕士论文《继电器和开关电路的符号分析》(A Symbolic Analysis of Relay and Switching Circuits)中提出了革命性的想法。他指出,电气开关(Electrical Switches) 可以用来实现布尔逻辑(Boolean Logic)。这个观点开辟了现代数字计算的道路,被认为是现代计算理论的奠基石之一。
电气开关与布尔逻辑的对应关系
- 开关关闭(Switch Closed):表示真值(True),相当于布尔逻辑中的1。
- 开关打开(Switch Open):表示假值(False),相当于布尔逻辑中的0。
香农的贡献在于,他不仅展示了如何将逻辑运算转换为物理电路,还首次将数学和工程结合,使得逻辑运算可以在硬件上执行。这一理论奠定了现代数字电路设计的基础。
2. 从开关到布尔表达式:逻辑电路的第一步 🔄
在香农的理论中,简单的电气开关可以用于执行基本的布尔运算。具体而言,通过使用不同的开关配置,我们可以实现以下常见的布尔操作:
- 与(AND):两个输入都为真,输出才为真。可以通过串联两个开关实现,只有当两个开关都关闭时,电流才能通过,输出为1。
- 或(OR):只要有一个输入为真,输出就为真。可以通过并联两个开关实现,任何一个开关闭合时,电流就可以通过,输出为1。
- 非(NOT):将输入的值取反。如果输入为真(1),输出为假(0);如果输入为假,输出为真。
例子:与(AND)操作的电路实现
假设我们有两个开关 (A) 和 (B),两个开关都需要同时关闭(输入都为1),电流才能通过,输出为1。如果其中任意一个开关是打开的(输入为0),电流就无法通过,输出为0。
通过这种方式,物理电路中的开关可以直接对应布尔逻辑运算。
3. 晶体管(Transistor):现代电路的核心组件 🧩
晶体管(Transistors) 是现代电子电路的基本构件,用于控制电流的流动。它们可以用作开关或放大器。晶体管比早期的真空管(Vacuum Tubes) 更小、更可靠、更便宜,成为了所有现代电子设备的基础。
晶体管的工作原理
- N型晶体管(N-Type Transistor):当栅极电压(VGS)高时,晶体管导通,允许电流通过,代表布尔逻辑中的1;当栅极电压为0时,晶体管阻断电流,代表布尔逻辑中的0。
- P型晶体管(P-Type Transistor):与N型晶体管相反,当栅极电压为0时,晶体管导通;当栅极电压为高时,晶体管阻断电流。
例子:水流类比 💧
可以将晶体管的工作原理类比为控制水流的阀门:
- 当阀门打开时,水流通过,表示布尔值1。
- 当阀门关闭时,水流被阻断,表示布尔值0。
晶体管通过这种方式在电路中控制电流,充当布尔逻辑操作的开关。
4. CMOS晶体管技术(CMOS Transistors)⚡
互补金属氧化物半导体(Complementary Metal-Oxide Semiconductor, CMOS) 是一种常见的晶体管技术,广泛应用于现代集成电路设计中。CMOS使用两种不同类型的晶体管:P型晶体管(P-Type) 和 N型晶体管(N-Type),它们以互补方式工作。
CMOS的优点:
- 低功耗(Low Power Consumption):CMOS电路通过使P型和N型晶体管交替工作,减少了电路的能耗。P型晶体管在高电压下关闭,而N型晶体管在低电压下关闭,这种组合使得CMOS电路非常高效。
- 广泛应用:由于其低功耗和高效的特性,CMOS晶体管被广泛用于计算机处理器、存储设备和其他电子产品中。
5. 从晶体管到逻辑门:构建数字电路的基础 🔧
通过组合晶体管,我们可以构建各种类型的逻辑门(Logic Gates)。每种逻辑门执行一种布尔逻辑运算(Boolean Operation),是所有数字电路的基本构件。
常见的逻辑门:
- NOT门(Inverter Gate):执行非运算(NOT Operation),即将输入值取反。例如,输入为0,输出为1;输入为1,输出为0。
- AND/NAND门:与门(AND Gate) 仅在两个输入都为真时输出为真。NAND门(NAND Gate) 是AND门的反运算,只有当两个输入都为真时输出为假。
- OR/NOR门:或门(OR Gate) 在任一输入为真时输出为真。NOR门(NOR Gate) 是OR门的反运算,仅在所有输入都为假时输出为真。
- XOR门(Exclusive OR Gate):当输入值不同时,输出为真。
例子:NOT门的实现
假设输入电压为0(0V),P型晶体管导通,N型晶体管断开,输出为1(2.9V)。如果输入电压为1(2.9V),P型晶体管断开,N型晶体管导通,输出为0(0V)。
6. 通用逻辑门:NAND 和 NOR 🔄
通用逻辑门(Universal Logic Gates) 是可以通过一种类型的逻辑门实现所有布尔运算的门。NAND门(NAND Gate) 和 NOR门(NOR Gate) 都是通用逻辑门。
为什么 NAND 和 NOR 是通用门?
- NAND门(NAND Gate) 通过适当的组合可以实现与(AND)、或(OR) 和 非(NOT) 运算。这种灵活性使得NAND门在实际电路设计中具有极大的应用价值,成为许多集成电路的核心。
- NOR门(NOR Gate) 同样可以实现所有的布尔运算,特别是通过逻辑反转来构建复杂的电路。
例子:用NAND门实现与门(AND Gate)
通过两个NAND门的组合,可以构建一个与门(AND Gate)。这展示了NAND门作为通用门的强大功能。
7. 总结 💡
通过这篇博客,我们回顾了从晶体管(Transistors) 到逻辑门(Logic Gates) 的整个过程。你学会了如何将布尔逻辑应用于物理电路,并理解了逻辑门如何通过简单的布尔运算来处理复杂的计算任务。
关键要点包括:
-
信息可以用比特(Bits) 表示,并通过布尔逻辑(Boolean Logic) 处理。
-
电气开关(Switches) 和 晶体管(Transistors) 是实现布尔逻辑的基础。
-
CMOS技术(CMOS Technology) 提供了一种高效、低功耗的电路设计方式。
-
逻辑门(Logic Gates) 是构建数字电路的基本单元。通过组合这些逻辑门,我们可以构建更加复杂和功能强大的电路。
-
NAND门 和 NOR门 是通用逻辑门,能够通过组合实现所有的布尔运算。
通过对这些知识点的掌握,你将对现代数字电路的设计有更深的理解。如果你对布尔逻辑或电路设计感兴趣,建议你自己动手尝试设计一些简单的逻辑门电路,亲身体验它们是如何实现复杂逻辑的!🎉
相关文章:
【ShuQiHere】从晶体管到逻辑门:数字电路的构建之旅
【ShuQiHere】 现代计算机和电子设备的基础是逻辑电路(Logic Circuits),它们执行信息处理和运算任务。在这些电路的核心,是晶体管(Transistors) 和 逻辑门(Logic Gates)。通过理解这…...
PDF扫描版文字识别OCR
PDF扫描版文字识别OCR 最近需要有对PDF扫描版进行文字可识别的需求,这里介绍一款工具挺好用的 这是一款开源的OCR工具 github地址 https://github.com/hiroi-sora/Umi-OCR 主要功能及特点 免费:本项目所有代码开源,完全免费。方便&#…...
Synchronized由什么样的缺陷? Java Lock是怎么弥补这些缺陷的?
synchronized 的缺陷 Synchronized 在 Java 中是最基础的线程同步机制,尽管简单易用,但也存在一些缺陷和局限性: 性能开销: synchronized 内部实现的监视器锁可能导致不必要的线程上下文切换和频繁竞争,从而引起性能下…...
联合仿真(FMI,FMU)资料收集
本文地址:https://blog.csdn.net/t163361/article/details/142262888 最近在研究使用Unity导入FMU模块进行仿真的功能。做功能前先尽可能收集下资料。 FMI标准 官方网站 github标准库 FMI标准由Modelica协会主导,具体介绍 FMI目前有三个标准 FMI1:20…...
Android Radio2.0——动态列表回调(七)
上一篇文章我们主要介绍了电台动态列表的获取流程,这里我们主要处理对应的回调流程以及扫描流程。 1)通过 getDynamicProgramList() 方法获取动态列表。 2)按照动态列表的内容,循环调用 scan() 方法执行向上调台,直到列表中的内容搜索完成。 3)根据 RadioManager.Program…...
在conda虚拟环境中安装cv2(试错多次总结)
首先保证你创建好了虚拟环境,并在anaconda命令窗口激活虚拟环境 依次输入下列命令: pip install opencv-python3.4.1.15 pip install opencv-contrib-python3.4.1.15 pip install dlib19.6.1 然后测试cv2是否可以使用,输入python 运行pyth…...
【EI稳定,马来亚大学主办】2024年计算机与信息安全国际会议(WCCIS 2024,9月27-29)
2024年计算机与信息安全国际会议 (WCCIS 2024) 将于2024年9月27-29日召开。 会议旨在为从事计算机与信息安全的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术,了解学术发展趋势,拓宽研究思路,加强学术研究和探讨&…...
免费AI播客生成:notebooklm可以生成播客的两个发言人谈论的内容,从各种来源如研究论文、文章
参考: https://notebooklm.google.com/ 可以上传文章链接,ai自动生成播客两人对话: 另外notebooklm他本身也是个rag知识库对话,可以直接聊天框对话...
“MIME 媒体类型“用来标识网络传输内容的格式标准
MIME 类型(Multipurpose Internet Mail Extensions 类型),也称为媒体类型,是用来标识网络传输内容的格式的标准。这些类型帮助 Web 服务器和浏览器理解如何处理和显示数据。MIME 类型在 Web 开发和网络通信中起着关键作用…...
MySql的基础讲解
一、初识MySql 数据库:按照数据结构来组织、存储和管理数据的仓库;是一个长期存储在计算机内的、有组织的、可共享 的、统一管理的大量数据的集合; OLTP:联机事务处理,主要是对数据库的增删改查。 OLTP 主要用来记录…...
类型转换等 面试真题
题目1 请问哪个结果为NaN A. 123null B. 123‘1’ C. 123/0 D. 123undefined 在这四个表达式中,只有D. 123 undefined 的结果是 NaN,原因如下: A. 123 null 结果是:123原因:null 在数值运算中会被自动转换为 0&a…...
MySQL下载安装
MySQL下载安装 MySQL :: MySQL Community Downloads MySQL :: Download MySQL Installer 安装步骤1 一路向前即可。 我只安装Server,不清楚的建议选择Full 安装步骤2 如果是正式运行的服务器,可以选择Server Computer...
golang实现正向代理http_proxy和https_proxy
package mainimport ("bytes""fmt""io""log""net""net/url""strings" )func main() {// tcp 连接,监听 8080 端口l, err := net.Listen("tcp", ":8080")if err != nil {log.Panic…...
数字IC设计\FPGA 职位经典笔试面试--整理
注: 资料都是基于网上一些博客分享和自己学习整理而成的 1:什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。 同步时序 逻辑电路的特点:各触发器的时钟端全部连接在一…...
Golang协程泄漏定位和排查
Golang协程泄漏定位和排查 1 场景:无缓冲channel写阻塞2 排查和定位思路2.1 Golang pprof2.2 协程数监控2.3 操作系统内存泄漏 参考 1 场景:无缓冲channel写阻塞 package mainimport ("log""net/http"_ "net/http/pprof"…...
【我的 PWN 学习手札】Unlink Attack
目录 前言 一、Unlink介绍 二、保护和限制 (1)FD->bk P AND BK->fd P (2)chunksize(P) prev_size(next_chunk(P)) (3)largebin chunk 三、适用场景 四、利用与绕过 (1&#…...
算法笔试-编程练习-好题-04
题目:堆盒子 礼盒大小不同,我们玩堆盒子的游戏,怎么堆盒子使得堆出的高度最高,每个礼盒的大小由长、宽、高表示,堆盒子的时候要求下面的盒子长、宽、高都必须大于上面的盒子,不包含等于。高度为堆出的礼盒的所有高度的…...
使用Rustup快速无缝升级Rust
rust update 升级 Rustup 是 Rust 官方的跨平台 Rust 安装工具。我们可以使用rustup升级rust版本 rustup updaterustup is not installed at ‘E:\cargo’ 意思是说’E:\argo’未安装rustup 将原来C:\Users\用户名\.cargo\bin下的文件复制到新的E:\cargo\bin $ rustup upda…...
pytorch qwen2-vl自定义数据全量微调
参考:https://github.com/zhangfaen/finetune-Qwen2-VL/tree/main 测试情况: 2B显存训练也很高,4090卡训练的 下载代码: git clone https://github.com/zhangfaen/finetune-Qwen2-VLtransformers包: 安装特定包,对qwen2vl支持 pip install git+https://github.com/hugg…...
切换淘宝最新npm镜像源是
切换淘宝最新npm镜像源是一个相对简单的过程,但首先需要明确当前淘宝npm镜像源的状态和最新的镜像地址。由于网络环境和服务更新,镜像源的具体地址可能会发生变化,因此,我将基于当前可获取的信息,提供一个通用的切换步…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
