记录第一次写博客,只为记录一些自己学习计算机的点点滴滴(不是教程,用到的知识跨度比较大,没有循序渐进的过程),有错误的地方欢迎指出,欢迎大家讨论

首先先简单描述一下最基础的几个逻辑门

  1. 与门:当2个输入都为1时,输出为1,否则为0
  2. 或门:当2个输入有一个或以上为1时,输出为1,否则为0
  3. 非门:输入为0则输出为1,输入为1则输出为0

异或门

输入:2个

输出:1个

说明:当2个输入位的值相同时,输出为0,否则为1

真值表
输入A 输入B 输出
0 0 0
0 1 1
1 0 1
1 1 0

假如没有逻辑代数

在我第一次接触数字电路时,看到从与或非门组成一个个功能强大的电路时,就被迷上了,我了解到了异或门,了解到了半加器,全加器,用全加器组成加法器

但是那时候并不知道什么是逻辑代数,所以我用纯推理推出了一个异或门,虽然只有几个逻辑门,但过程其实并不容易

根据异或门,我推出了两条特性:

  1. 两个输入至少有一个1
  2. 两个输入不能都为1

只有两个输入满足上面两个条件,输出才能为1,按照上面两个条件,反映在具体电路中就是:

  1. 让两个输入进行与操作
  2. 第2个条件并没法直接靠一个逻辑门来实现,仔细阅读这句话"两个输入不能都为1",得出"不能"、"都为1","都为1"其实就是与操作,"不能"其实就是取反操作,最终就是相与之后进行取反

最后再进行与操作(两个条件是都要满足的,所以是与操作)就可以得出异或门了

我用的是Logisim这个软件(我也不知道还有什么软件)

对于这种简单的电路,纯推理其实也是可以推出来的,但是现在只是2个输入一个输出,当输入输出都很多时,靠这样子的推理其实就有点困难了

下一篇文章或者下下篇文章,我尝试一下靠这种逻辑,推出复杂一点的电路会不会很难


当我了解到数字电路后,满怀兴趣地找了一本【数字电子技术基础】

一翻开后看到了"逻辑代数"!!!!看来还是逃不过数学的摧残

文章从此开始需要一点逻辑代数基础,不会很难!!!

关于逻辑代数中的非运算,这里采用单引号'代替,如A'=A取反,(A+B)'=A或B后取反

结合逻辑代数的知识画出异或门

由于比较简单,我就不画出卡诺图,直接根据真值表写出最小项表达式

得出A'B+AB',仔细看了一下,好像也没法怎么简化了,直接根据表达式画出电路图

终于完成了,总共用了2个非门,2个与门,一个或门,总共5个器件,结合了逻辑代数后就是如此简单

本以为大功告成了,结果当我看到上面第一个异或门时,发现好像这两个好像有点不一样!!!

第一个异或门的竟然只有4个器件!!!

仔细想一下,肯定是代数化简的时候,A'B+AB'还能再化简

因为第一个异或门的电路转成代数是:(A+B)(AB)',所以我花了20分钟,从A'B+AB'推导成(A+B)(AB)'

简化过程:

A'B + AB'

= A'B + A'A + AB' + BB'

= (A + B)A' + (A + B)B'

= (A + B)(A' + B')

= (A + B)(AB)'

化简结束,根据化简后的表达式就可以画出4个器件的异或门了

本以为一个异或门嘛,简简单单,写出最小项表达式后分分钟搞定,后面发现自己在逻辑代数上还是不够灵活

也是没想到,通过这样子增加冗余项,也能起到简化的效果


下一篇-自制简单CUP第二篇(半加器)

自制简单CUP第一篇(异或门)相关推荐

  1. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    最新Finchley版本请访问: https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 或者 http://blog.csd ...

  2. Android四大组件之Activity(第一篇-简单使用)

    Android四大组件之Activity(第一篇-简单使用) 前言 一.Activity是什么? 二.如何使用 1.继承 2.重写onCreate() 总结 文章目录 前言 一.Activity是什么 ...

  3. 第一篇博客——C语言实现简单的学生成绩管理系统

    C语言简单实现学生成绩管理系统 一.前言 首先,要写一个管理系统必须要先搭出一个框架来,即明确自己要实现哪些功能,将每个功能都写陈一个函数,然后再去编写实现各个功能的函数,最后再思考各个函数之间的相互 ...

  4. 如何介绍世界上第一台计算机,[世界第一台计算机]计算机简单的自我介绍第一篇...

    无论是找工作还是申请学校,面试都是大家必经的一个过程.而每一场面试几乎都是以"自我介绍"开始的.那么面试计算机应该怎么自我介绍?以下是答.案.网 ZqNf.Com小编为您整理的计算 ...

  5. LoadRunner的简单使用《第一篇》

    LoadRunner的简单使用<第一篇> LoadRunner是一个用压力测试的软件.这东西比较难上手,光安装就非常麻烦.好不容易一步步跟着安装说明安装好之后,还是用不了. 记录一个问题如 ...

  6. linux的自定义input,Linux Input子系统之第一篇(input_dev/input_handle/input_handler)

    Input子系统是linux kernel中与部分外围器件驱动联系比较紧密的模块,常用于Sensor,TP(touch panel),power key等器件的驱动.这类模块有个共同特点:字符设备,且 ...

  7. 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇

    本节书摘来自华章出版社<Ansible权威指南 >一书中的第1章,第1.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一篇 ...

  8. 研究生第一篇科研论文常犯问题总结

    ↑ 点击蓝字 关注视学算法 作者丨喻海良,中南大学教授,博士生导师 来源|http://blog.sciencenet.cn/blog-117889-1018759.html 极市导读 本文作者为中南 ...

  9. Webpack系列-第一篇基础杂记

    系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然 ...

  10. 985博导给学生改论文,第一篇心态就崩了!

    在过去几个月里面,我帮助不少研究生修改过学术论文.其中有一些人的论文的研究内容和结果非常好,但是,在他们论文撰写过程中存在不少问题. 现在回国了,我想应该是时候把这些问题总结一下,希望将来研究生们能够 ...

最新文章

  1. 怎样冷静地看待“小米智能新品”?
  2. mybatis 3.2.2_环境搭建
  3. php进程守护进程,php 多进程实现守护进程的实例代码
  4. PHP 怎样理解go指针,关于Go指针的介绍
  5. mysql binlog redo_mysql的binlog与redo log
  6. vue项目中的“Invalid Host header”
  7. 【Clickhouse】Clickhouse 表引擎之 Log系列
  8. 渲染百万网页,终于找到影响性能的原因了
  9. C#中upd分包与发送,已经实现全部代码
  10. MATLAB深度学习 2019
  11. 一二线城市知名IT互联网公司名单!
  12. md5算法大作战推html5版本,MD5大作战
  13. box-sizing失效的原因
  14. windows 进程通信(使用DDE)
  15. 3.0_Linux如何连接网络
  16. 用 ABAP 调用 OCR 接口实现出租车发票扫描
  17. 一个优秀的网站首页是如何设计的?
  18. 曲奇的ndnSIM API教程翻译 命名数据网络 NDN ndn simulator
  19. Egret:一个简单的打砖块游戏
  20. 微信小程序 · 页面分享

热门文章

  1. meta http-equiv 是什么
  2. 解决mac更新系统后git无法使用
  3. 【英语】考研英语红宝书单词——必考词
  4. 【数据结构】(六)树与二叉树
  5. 椭圆曲线算法和国密SM2算法介绍
  6. c++程序设计基础-类与对象:继承
  7. 卷积神经网络表情识别,神经网络动作识别
  8. 算法竞赛宝典 递归算法 地盘划分
  9. 使用python的requests模块实现百思不得其姐抓取(多线程版)
  10. MySQLIntegrityConstraintViolationException异常处理