基本的逻辑门

前言

本篇文章介绍基本的逻辑门,然后给出C语言描述
逻辑门是在集成电路上的基本组件。简单的逻辑门可由晶体管组成。这些晶体管的组合可以使代表两种信号的高低电平在通过它们之后产生高电平或者低电平的信号。高、低电平可以分别代表逻辑上的“真”与“假”或二进制当中的1和0,从而实现逻辑运算。
本文介绍的内容列表如下:

  • CMOS晶体管
  • 非门
  • 与门
  • 或门
  • 与非门
  • 或非门
  • 异或门

CMOS晶体管

N型增强型晶体管

N型增强型晶体管是由P型半导体衬底,制作两个高摻杂浓度的N型区, 形成CMOS管的源极S(Source)和漏极D(Drain),然后在源极S和漏极D之间添加一个栅极G,通常用多晶硅制作,栅极和衬底之间添加一层二氧化硅绝缘层,绝缘层一般非常薄,在0.1微米之内
在这里插入图片描述

  • 如果栅极G不导通,由于P型衬底和N型区域之间有PN结,整个电路不导通
  • 如果栅极G导通,并且连接到正极,这时栅极G与P型衬底之间形成了电场,P型衬底连接的是源极S,也就是负极,栅极为正极,这样,P型衬底中的电子会向栅极靠近,在两个N型半导体之间形成通路,电路导通。

总结:通过栅极的导通能够控制源极S和漏极D的导通,这样,CMOS管就可以作为开关使用了。

P型增强型晶体管

P型增强型晶体管与N型增强型晶体管结构正好相反,是由N型半导体作为衬底,导电沟道为P型半导体,这种晶体管的特点是

  • 栅极接入的是负极
  • 为了形成电场,N型衬底为正极,也就是源极S为正极

N型耗尽型晶体管

这种类型的晶体管结构与N型增强型晶体管一样,不过在栅极下的二氧化硅绝缘层添加了正离子。也就是自带电场,这样,栅极不导通或者连接正极的时候晶体管都是导通的,栅极连接负极并且达到一定值以后,晶体管断开。这个值叫做夹断电压

P型耗尽型晶体管

结构与P型增强型晶体管一致,特点与N型耗尽型晶体管相似,栅极不导通或者连接负极的时候晶体管都是导通的,栅极连接正极并且达到一定值以后,晶体管断开。

下图是四种晶体管的比较
在这里插入图片描述

其中,
v D S v_{DS} vDS为漏极到原极的电压
v G S v_{GS} vGS为栅极到原极的电压
D:漏极
S:原极
G:栅极

不同类型的晶体管的自由组合就可以形成各种门

非门

非门又叫反相器,是指输入的信号状态与输出的信号状态相反
非门用下面的符号表示
在这里插入图片描述

非门可以通过一个N型增强型晶体管和一个P型增强型晶体管连接实现
非门的输入输出逻辑关系如下:
输入 输出 0 1 1 0 \begin{array}{|c|c|} \hline 输入&输出\\ \hline 0&1\\ \hline 1&0\\ \hline \end{array} 输入01输出10

与门

与门是指当输入的两个信号都为高电平时输出的信号才为高电平
与门用下面的符号表示
在这里插入图片描述

与门可以用两个CMPOS晶体管来实现

与门的输入输出逻辑关系如下:
输入 A 输入 B 输出 0 0 0 0 1 0 1 0 0 1 1 1 \begin{array}{|c|c|c|} \hline 输入A&输入B&输出\\ \hline 0&0&0\\ \hline 0&1&0\\ \hline 1&0&0\\ \hline 1&1&1\\ \hline \end{array} 输入A0011输入B0101输出0001

或门

或门是指当输入的两个信号任意一个为高电平时输出的信号为高电平
或门用下面的符号表示
在这里插入图片描述

或门可以用两个CMOS晶体管来实现

或门的输入输出逻辑关系如下:
输入 A 输入 B 输出 0 0 0 0 1 1 1 0 1 1 1 1 \begin{array}{|c|c|c|} \hline 输入A&输入B&输出\\ \hline 0&0&0\\ \hline 0&1&1\\ \hline 1&0&1\\ \hline 1&1&1\\ \hline \end{array} 输入A0011输入B0101输出0111

与非门

与非门用下面的符号表示
在这里插入图片描述

与非门可以使用两个并联的P沟道增强型MOS管 T 1 T_1 T1 T 3 T_3 T3和两个串联的N沟道增强型MOS管 T 2 T_2 T2 T 4 T_4 T4组成,总共需要4个晶体管
在这里插入图片描述

与非门的输入输出逻辑关系如下:
输入 A 输入 B 输出 0 0 1 0 1 1 1 0 1 1 1 0 \begin{array}{|c|c|c|} \hline 输入A&输入B&输出\\ \hline 0&0&1\\ \hline 0&1&1\\ \hline 1&0&1\\ \hline 1&1&0\\ \hline \end{array} 输入A0011输入B0101输出1110

或非门

或非门用下面的符号表示
在这里插入图片描述

或非门可以使用两个串联的P沟道增强型MOS管 T 1 T_1 T1 T 3 T_3 T3和两个并联的N沟道增强型MOS管 T 2 T_2 T2 T 4 T_4 T4组成,总共需要4个晶体管
在这里插入图片描述

或非门的输入输出逻辑关系如下:
输入 A 输入 B 输出 0 0 1 0 1 0 1 0 0 1 1 0 \begin{array}{|c|c|c|} \hline 输入A&输入B&输出\\ \hline 0&0&1\\ \hline 0&1&0\\ \hline 1&0&0\\ \hline 1&1&0\\ \hline \end{array} 输入A0011输入B0101输出1000

异或门

异或门用下面的符号表示
在这里插入图片描述

异或门可以使用一个或门,一个与非门进行与门操作,共需要8个晶体管
在这里插入图片描述

或非门的输入输出逻辑关系如下:
输入 A 输入 B 输出 0 0 0 0 1 1 1 0 1 1 1 0 \begin{array}{|c|c|c|} \hline 输入A&输入B&输出\\ \hline 0&0&0\\ \hline 0&1&1\\ \hline 1&0&1\\ \hline 1&1&0\\ \hline \end{array} 输入A0011输入B0101输出0110

下面,给出基本逻辑门的C语言实现

// 虽然参数采用的是int类型,但是在模拟运行时,只能是0或者1
/*** 与门*/
int and_gate(int in_1,int in_2)
{return in_1 & in_2;
}/*** 或门*/
int or_gate(int in_1,int in_2)
{return in_1 | in_2;
}/*** 非门*/
int not_gate(int in_1)
{return !in_1;
}/**void* 或非门*/
int not_or_gate(int in_1,int in_2)
{return !(in_1 | in_2);
}/*** 与非门*/
int not_and_gate(int in_1,int in_2)
{return !(in_1 & in_2);
}/*** 异或门*/
int xor_gate(int in_1,int in_2)
{int or_val = or_gate(in_1, in_2);int not_and_val = not_and_gate(in_1, in_2);return or_val & not_and_val;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/300656.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP-8.1.0-dev 后门命令执行漏洞复现_zerodiumvar_dump

0x00漏洞描述 PHP 8.1.0-dev 版本在2021年3月28日被植入后门,但是后门很快被发现并清除。当服务器存在该后门时,攻击者可以通过发送User-Agentt头来执行任意代码。 0x01影响范围 PHP 8.1.0-dev 0x02环境搭建 1、本次环境搭建使用vulhub中的docker环…

【开源】基于Vue+SpringBoot的新能源电池回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

【工具】windeployqt 在windows + vscode环境下打包

目录 0.背景简介 ​编辑 1.windeployqt简介 2.打包具体过程 1)用vscode编译,生成Release文件夹(也有Debug文件夹,但是发布版本一般都是用Release) 2)此时可以看下Release文件夹内,一般是.…

【Vue2+3入门到实战】(4)Vue基础之指令修饰符 、v-bind对样式增强的操作、v-model应用于其他表单元素 详细示例

目录 一、今日学习目标1.指令补充 二、指令修饰符1.什么是指令修饰符?2.按键修饰符3.v-model修饰符4.事件修饰符 三、v-bind对样式控制的增强-操作class1.语法:2.对象语法3.数组语法4.代码练习 四、京东秒杀-tab栏切换导航高亮1.需求:2.准备代…

基于MPU6050的跌倒检测项目设计

一、背景 随着人口老龄化的不断加剧,老年人的健康和安全问题备受关注。本设计旨在利用STM32单片机与MPU6050传感器相结合,实现基于角度变化的跌倒检测系统。这一系统不仅能够快速、准确地检测老年人是否发生跌倒,还通过整合通信模块实现了实…

怎么搭建实时渲染云传输服务器

实时渲染云传输技术方案,在数字孪生、虚拟仿真领域使用越来越多,可能很多想使用该技术方案项目还不知道具体该怎么搭建云传输服务器,具体怎么使用实时云渲染平台系统。点量云小芹将对这两个问题做集中分享。 一、实时渲染服务器怎么搭建&…

blender scripting 编写

blender scripting 编写 一、查看ui按钮对应的代码二、查看或修改对象名称三、案例:渲染多张图片并导出对应的相机参数 一、查看ui按钮对应的代码 二、查看或修改对象名称 三、案例:渲染多张图片并导出对应的相机参数 注:通过ui交互都设置好…

算法与数据结构--二叉搜索树与自平衡二叉搜索树

0.字典(即c的map) 注:字典的 "member运算" 指的是检查字典中是否存在某个特定的键的操作,即查询操作。 如果我们使用数组来实现字典/map,虽然使用二分法查询也可以达到logn,但是的话插入和删除太…

【操作系统】探究进程奥秘:显示进程列表的解密与实战

​🌈个人主页:Sarapines Programmer🔥 系列专栏:Linux专栏:《探秘Linux | 操作系统解密》⏰诗赋清音:月悬苍穹泛清辉,梦随星河徜徉辉。情牵天际云千层,志立乘风意自飞。 ​ 目录 &a…

ImageJ图像滤波基础

文章目录 滤波简单滤波器卷积滤波Unsharp MaskTop Hat ImageJ系列:安装与初步💎灰度图像处理 滤波 预设滤波器 ImageJ的Process菜单提供了诸多图像滤波器,其中大部分方法均可定制参数,但也提供了一些已经预设参数的处理方法。 …

Visual Studio2022配置ReSharper C++ 常用设置

如需安装免费的可以在下面留言,看到即回复 文章目录 Visual Studio2022配置ReSharper C 常用设置配置Visual Studio2022,使其能够按回车进行补全配置ReSharper C 设置自动弹出配置ReSharper C 的快捷键ReSharper C 去掉注释拼写使用中文注释 如何关闭新版…

2007年AMC8数学竞赛中英文真题典型考题、考点分析和答案解析

今天,我们来继续研究AMC8竞赛的真题。通过反复研究历年真题,不仅可以掌握AMC8这个竞赛的命题规律和常见考点,通过真题的详细解析可以建立自己的解题思路、举一反三,还可以通过做真题不断发现自己的薄弱点查漏补缺。 今天我们来看看…