【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镜像源的状态和最新的镜像地址。由于网络环境和服务更新,镜像源的具体地址可能会发生变化,因此,我将基于当前可获取的信息,提供一个通用的切换步…...

全国历年高考真题2008-2024
目录 分享链接: ⬇️⬇️⬇️ 点击下载...

【vue-media-upload】一个好用的上传图片的组件,注意事项
一、问题 media 的saved 数组中的图片使用的是location 相对路径,但是我的业务需要直接根据图片链接展示图片,而且用的也不是location 相关源代码 <div v-for"(image, index) in savedMedia" :key"index" class"mu-image-…...

linux第一课(操作系统核心)
一.关于linux (1)linux是一款开源的操作系统(是多用户,多任务,多线程)。 (2)一般所说的linux指的是linux核心,即对计算机硬件资源负责调度管理,主要职责是进程管理,内存管理文件系统,设备驱动,…...

【期末复习】软件项目管理
前言: 关于软件项目管理这一科目的重要期末考点,希望对你有帮助。 目录 质量管理可能遇到的问题 软件项目质量管理 软件项目风险管理 进度 题1 题2 题3 成本 题1 题2 题3 质量管理可能遇到的问题 (1)没有制定质量管理计划: (2)…...

C# List定义和常用方法
栏目总目录 List的定义 列表(List)是一种常用的集合类型,它属于System.Collections.Generic命名空间。列表是一个有序集合,可以包含重复的元素,并且可以根据索引访问元素。 List< T > List<T> 是一个泛…...

如何在实际应用中更好地利用字典功能提高开发效率?
在当今数字化浪潮汹涌澎湃、技术迭代日新月异的时代,企业和开发者们犹如在信息的海洋中航行,迫切需要高效便捷的开发工具来指引方向、加速前行。开发工具的优劣直接关系到项目的进度、质量以及最终的商业价值实现。在众多开发工具的功能模块中࿰…...

Windows 环境下 vscode 配置 C/C++ 环境
vscode Visual Studio Code(简称 VSCode)是一个由微软开发的免费、开源的代码编辑器。它支持多种编程语言,并提供了代码高亮、智能代码补全、代码重构、调试等功能,非常适合开发者使用。VSCode 通过安装扩展(Extension…...

[通信原理]绪论2:信息量 × 信息熵
我们知道信息是一个抽象的概念,它既不是物质也不是能量。那么我们要如何对一个抽象的概念进行一个定量的研究呢? 信息量 1、信息的度量 通信的本质是传递信息,为了定量表征信息的度量,引入信息量的概念。消息中所含信息量与其不…...

TCP套接字【网络】
文章目录 代码 创建套接字:(TCP/UDP) int socket(int domain, int type, int protocol);inet_aton,将字符串IP转换成整数IP int inet_aton(const char *cp, struct in_addr *inp);监听套接字:(TCP,服务器…...

【devops】devops-git之github使用
本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...