门电路

常见的门电路有:与门,或门,非门,异或门,与非门,或非门。
今天,我们就来说说这些门电路是如何实现的,并用它来实现一个加法器。

非门(NOT)

  • 逻辑符号 & 布尔表达式 & 真值表

    请务必记住其逻辑框图符合,再后面做加法器时我们要用其来表示!!!
  • 实现
    我们先用继电器实现一下
    `


输入端输入1时,电磁铁会把金属弹簧片吸下来,从而灯泡电路断开,灯泡不发光,即输出0
输入端输入0时,电磁铁会把金属弹簧片维持原来的位置,从而灯泡电路连接,灯泡发光即输出1
这就实现了一个非门:输入1,输出0;输入0,输出1.
我们再用晶体管实现一下

在分析这个电路之前,我们先看看这个晶体管的线路:


在计算机电路中,源极是一个高电压,发射极接地,基极通常做输入端,它决定了是否将源极接地:
当基极为高电压(1)时:晶体管闭合->源极接地->输出端为低电压(0)
当基极为低电压(0)时:晶体管打开->源极不接地->输出端为高电压(1)
经过上面的分析,你应该已经知道晶体管非门电路实现的原理了吧,那么对上面那幅图就不做再多的阐述了。

与门(NOT)

  • 逻辑符号 & 布尔表达式 & 真值表
  • 实现
    我们先用继电器实现一下

    可以看出,只有当两个开关都闭合时,灯泡才亮,很明显,这是一个与门电路。
    两个继电器串联可以组成一个与门

    我们再用晶体管实现一下

    相信这个电路大家都看得懂,不再做过多的阐述

    或门(OR)

  • 逻辑符号 & 布尔表达式 & 真值表
  • 实现
    我们先用继电器实现一下

    可以看出,只有任意一个开关闭合,灯泡就亮,很明显,这是一个或门电路。
    两个继电器并联可以组成一个或门

    我们再用晶体管实现一下
    这里就不画了,等到后面介绍或非门时,你可以在或非门输出端加上一个非门,从而组成或门。

与非门(NAND)

  • 逻辑符号 & 布尔表达式 & 真值表
  • 实现
    我们先用继电器实现一下

    我们可以看到:只要有一个开端断开,则灯泡就亮,这符合与非门:有0则1
    我们再用晶体管实现一下

    V1,V2只要有一个为低电平,那么源极将不会接地,则输出端为高电平

或非门(XOR)

  • 逻辑符号 & 布尔表达式 & 真值表
  • 实现
    我们先用继电器实现一下

    我们可以看到:只要有一个开端闭合,则灯泡将不亮,这符合与或门:有1则0
    我们再用晶体管实现一下

    V1,V2有一个微高电平时,源极将接地,输出端为低电平。

异或门(XOR)

  • 逻辑符号 & 布尔表达式 & 真值表

    注意到:异或门的真值表,刚好符合我们二进制的加法运算,1+1 = 01,0是本位输出位,1则是进位,后面我们将用异或门来做加法器
  • 实现
    由于异或门的实现需要用到或门和与非门和与门,要想用继电器来描述则有点难画,所以我们用逻辑框图符合来描述异或门:

    我们来看看每一步的真值表:

    显然,输入和输出完全符合我们之前的定义的异或门。下面,我们要用其来做加法器。

    经过上面的分析,我们已经掌握了6种逻辑门:
    非门:将唯一的输入值求逆
    与门:属于都为1时,输出才为1
    或门:属于有一个为1时,就为1
    与非门:结果与非门的相反
    或非门:结果与或门的相反
    异或门:两个输入皆相同时,就输出0
    以上几种门电路的特征务必记住,下面我们就要开始真正地做加法器了,让我们看看计算机内部是如何进行加法运算的

加法器

半加器

所谓半加器,就是计算两个位数的和并产生进位的电路,不考虑进位。
我们来分析分析,

第一个数 第二个数 本位输出 进位输出
0 0 0 0
1 0 1 0
0 1 1 0
1 1 0 1
  • 在本位加输出中,若两个输入数相同则是0,不同则是1,所以我们可以用异或门
    来实现
  • 在进位输出中,若输入的两个数都是1,才输出1,所以我们可以用与门来实现。
    那么我们的半加器就做出来了:

    为了简单,我们也可以采用以下表示:

全加器

在实际中,因为涉及到多位数的运算,所以不得不考虑进位,那么半加器就不能满足我们的需求了,所以我们要做一个全加器
所谓全加器,就是对二进制执行加法运算的电路,考虑进位
我们来分析分析,

第一个数 第二个数 进位到本位的数 本位输出 进位输出
0 0 0 0 0
1 0 0 1 0
0 1 0 1 0
0 0 1 1 0
1 1 0 0 1
1 0 1 0 1
0 1 1 0 1
1 1 1 1 1

我们直接给出全加器的电路,请读者根据真值表来分析


我们再组合一下,把表达变得更简单:

八位加法器

要实现八位加法器,当然就要八个全加器,只不过第一个全加器的进位输入值我们设为0就好啦。

这就是八位加法器,进位输入我们设置为0,然后A,B就是我要进行加法运算的8bits的二进制数啦。
按照这种思路,我们也可以设计出16位,32位的加法器。

circuits

下面我们用circuits在线电路设计和仿真工具实现各种电路。请点击这里进入circuits.io

任务一:非门实现

在circuits中,并没有提供“NOT GATE”,我们可以用三极管来实现。

INPUT OUTPUT
OFF ON
ON OFF

当然,我们看到这个在线工具提供了XOR GATE,我们也可以用它来实现非门

INPUT 1 OUTPUT
OFF 1 ON
ON 1 OFF

三极管知识总结:三极管串联是与非门,并联是或非门。

任务二:验证电路等价

在此实验中,我们将设计两个电路:A(B+C),AB+AC,并验证他们等价
这是A(B+C)

这是AB+AC

我们枚举所有可能,结果如下

A B C 01 02
0 0 0 0 0
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
1 1 0 1 1
1 0 1 1 1
0 1 1 0 0
1 1 1 1 1

从中我们可以看出,这两个电路是等价的。

任务三:理解存储电路

在本实验中,我们将搭建一个S-R锁存器,在进行实验之前,我们先来了解一下S-R锁存器的知识。
S-R锁存器是触发器中的一种。它的功能就是保存数据,结构如下:

它的真值表如下:

我们做出一些说明,方便理解该触发器:

  • 我们规定:S和R端不能同时置为1,这是我们禁止的,所以在使用S-R锁存器时,千万别放这种低级错误;
  • Q端的输出即我们想要保留的东西,就是说你想保存1,那Q端就该输出1,想保存0,Q端就该输出0;
  • S端我们用来置位和复位,置为你可以理解为把Q端输出置为1,复位你可以理解为把Q端输出置为0;
  • Q和非Q端的输出肯定是相反的,这也是我们为什么把一端称为Q端,而另一端称为非Q端的原因;
  • 我们对真值表第三行做一些说明,它的意思是:当S,R端皆为0时,它的输出将保持不变。也就是说:
    • 如果上次为SR端分别为:10,Q非Q端输出分别为10,那么将S重新置为0时,R端维持0不变,那么Q非Q端输出仍然为10;
    • 如果上次为SR端分别为:01,Q非Q端输出分别为01,那么将R重新置为0时,S端维持0不变,那么Q非Q端输出仍然为01;

以上四点,其中的原因请读者结合电路具体分析,相信你学了门电路后,可以将它理解透彻。
下面我们就开始做实验啦!!!

任务四:设计加法电路

这网页有毒,巨耗内存。。。。全加器我实在画不下去了,每次画到一半必定卡死。。。所以我建议老师在找不到替代网站,还是手画此题吧。。。
一位全加器,我画了一半,剩下一半用笔补了一下。。原理上面已经分析了。。。相信大家能够理解。。。

至于2位全加器,在我的垃圾电脑上是无法画出来的。。所以我截了别人的图。上面都分析了八位加法器的实现,相信这个二位就不用说了。请看偷来的图。。。

在此声明一点:以上图片中你可以看到很多地方用了电阻。之所以这样子,因为这个网站电路连线不能交叉,所以只能用电阻把它隔开。

数字电路----加法器的实现相关推荐

  1. 按照C++语言程序结构组成数字电路进行计算的计算机

    按照C++语言程序结构组成数字电路进行计算的计算机 按照C++语言程序结构组成数字电路进行计算的计算机是一种可以按照C++语言程序结构来安排加法器,输出显示电路,输入电路,的数字计算机.它由按键,液晶 ...

  2. 用加法器乘法器判断程序的数字计算机

    用加法器乘法器判断程序的数字计算机 该计算机使用关键字判断电路对键盘输入的程序进行判断,得到正确的关键字执行结果.例如输入MOV AX,09H,经过计算机的关键字判断电路以后,计算机将09H数据保存到 ...

  3. 用程序编写计算公式的高次方程数字计算机

    用程序编写计算公式的高次方程数字计算机 用程序编写计算公式的高次方程数字计算机是一种可以计算高次方程的数字计算机,它由按键,液晶显示器,中央处理器组成.按键输入的程序保存在磁带上面,中央处理器在程序的 ...

  4. hnu 数字电路 实验2.4 4位先行进位加法器

    4.用VHDL语言设计一个4位先行进位加法器 ① 理解要求,需要完成一个先行进位加法器,可采取化简后的公式,直接用逻辑门构造一个4位先行进位加法器. ② 公式和原理图: ③ 打开QuartusII,新 ...

  5. 使用ISE创建IP核(以加法器的IP核建立为例)

    IP核介绍: IP(知识产权)核将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器,SDRAM控制器,PCI接口等做成一个"黑盒"或者可修改参数的模块,供设计者使用.IP核包 ...

  6. 数字电路是如何搭建的

    数字电路,用数字信号完成对数字量进行算术运算和逻辑运算的电路,由于它具有逻辑运算和逻辑处理功能,所有又称数字逻辑电路.数字电路内部集成了各种门电路.触发器,故又称为数字集成电路,门电路和触发器构成各种 ...

  7. 《逻辑与计算机设计基础(原书第5版)》——3.9 二进制加法器

    3.9 二进制加法器 一个算术电路就是一个组合电路,它对二进制数或用二进制编码表示的十进制数执行加.减.乘.除运算.我们将采用层次.迭代的设计方法实现算术电路.首先从最底层开始,设计一个电路实现两个一 ...

  8. 4位加法器的设计代码verilog_HDLBits:在线学习Verilog(六 · Problem 25-29)

    本系列文章将和读者一起巡礼数字逻辑在线学习网站 HDLBits 的教程与习题,并附上解答和一些作者个人的理解,相信无论是想 7 分钟精通 Verilog,还是对 Verilog 和数电知识查漏补缺的同 ...

  9. 两个运放制作加法器_集成电路的分类及其制作工艺

    集成电路,英文为 IntegratedCircuit,缩写为 IC:顾名思义,就是把一定数量的常用电子元件,如电阻.电容.晶体管等,以及这些元件之间的连线,通过半导体工艺集成在一起的具有特定功能的电路 ...

最新文章

  1. 网站站内优化新方案,SEO运营人员值得一看
  2. Microsoft Artificial Intelligence Conference(2018.05.21)
  3. libuv 原理_Libuv初理解
  4. 读zepto核心源码学习JS笔记(3)--zepto.init()
  5. 装cv2加速_手动安装OpenCV下的IPP加速库
  6. linux系统软件包依赖关系,Ubuntu解决包依赖关系
  7. 实验十 团队作业6:团队项目系统设计改进与详细设计
  8. linux 截图程序源码,Linux下C语言实现C/S模式编程(附源码,运行截图)
  9. 双重特异性酪氨酸磷酸化调节激酶1A行业调研报告 - 市场现状分析与发展前景预测
  10. Factorization Machine 1
  11. 重载、类型转换与运算符
  12. python的设计具有很强的可读性_Python是什么?具有怎么样的特点呢?
  13. iOS流布局UICollectionView系列四——自定义FlowLayout进行瀑布流布局
  14. [转] 虚拟机VMware3种网络模式(桥接、nat、Host-only)的工作原理
  15. STM32固件库编程入门
  16. fins协议握手信号服务器响应,欧姆龙OMRON PLC之HostLink通讯协议(四)-FINS命令工作模式篇...
  17. 2017 暑期实习校园招聘(Java后台开发方向)面经分享
  18. 学习之旅10-R语言介绍
  19. 【ResNet残差网络解析】
  20. 系统备用服务器连接配置异常,网络配置的DNS服务老是异常网络连接老是异常...._网络编辑_帮考网...

热门文章

  1. 如何从PPA安装软件
  2. outlook打不开一直转圈怎么办
  3. 基于C++实现MFC简单的纸牌小游戏,附纸牌游戏引擎源码!
  4. 国信蓝点杯C语言高职高专组考试题目--记不太清了,大致就这些题目
  5. ARP***原理及解决方法(NBTSCAN扫描工具下载和nbtscan使用方法)
  6. 【归档】档案管理系统(java语言)
  7. rd650服务器安装linux,联想RD650RAIDLinux6.6.pdf
  8. 完成ICP备案后引来的骗子
  9. 云原生周报 | Fluent Bit下载量达到10亿次;对 Istio 1.11的支持已经结束
  10. GitChat新作,如何较为优雅地实现新手引导功能!