在数字逻辑电路中,用1位二进制数码的“0”和“1”表示一个事物的两种不同逻辑状态。例:一件事情的是和非、真和伪、有和无、好和坏,或者电路的通和断、电灯的亮和暗、门的开和关等等。这种只有两种对立逻辑状态的逻辑关系成为二值逻辑。当使用两个数码表示逻辑状态时,它们之间可以按照指定的某种因果关系进行推理计算,将这种运算称为逻辑运算。

1849年英国数学家乔治·布尔提出了逻辑运算的数学方法——布尔代数。在实际电路中就是按照二进制进行工作的,所以布尔代数在电路中的应用非常普遍。

逻辑代数中有与(AND)、或(OR)、非(NOT)三种。

对于(a)电路来说,只有开关A和开关B都闭合,灯Y才可以点亮。

决定事物结果的全部条件同时成立时,结果才发生。这种因果关系成为逻辑与,也称为逻辑相乘。

对于(b)电路来说,开关A和开关B有一个闭合,灯Y就可以点亮。

决定事物结果的诸多条件中任何一个满足,结果就会发生。这种因果关系成为逻辑或,也成为逻辑相加。

对于(c)电路来说,只要条件具备了,结果就不发生了;条件不具备时,结果一定发生。这种因果关系称为逻辑非,也称为逻辑求反。

如果以A、B表示开关的状态,并以1表示开关闭合,以0表示开关断开;以Y表示指示灯的状态,并以1表示灯亮,以0表示不亮,则可以列出以0、1表示的与、或、非逻辑关系的图表。这种图表称为真值表。

在逻辑代数中,将与、或、非看作时逻辑变量A、B间的三种最基本的逻辑运算,并且以“· ”表示与运算(可以省略不写),以“+”表示或运算,以变量右上角的“‘”表示非运算。所以与、或、非可以写成如下表达式:

与 :Y = A · B; 或 :Y = A + B; 非 :Y = A’;

在图1中只是利用电路模型说明外部条件和结果的逻辑关系,在我们设计时,我们需要施加电压,经过某种单元,可以产生结果的电压。

实现与逻辑运算的单元电路称为与门,实现或逻辑运算的单元电路称为或门,实现非逻辑运算的单元电路称为非门(也称为反相器)。

与、或、非逻辑运算单元的常用图形符号如下:

当A、B不同时,输出Y为1;当A、B相同时,输出Y为0,这种逻辑称为异或逻辑。

Y = A + B = A · B‘ + A’ · B;

当A、B相同时,Y等于1,A、B不同时,Y等于0,这种逻辑称为同或逻辑。

Y = A · B = A · B + A’·B’

异或和同或互为反运算。

在对于给定的布尔代数时,可能不是最简化的,我们需要化简

以逻辑变量作为输入,以运算结果作为输出,那么输入变量的取值确定之后,输出的取值便随之而定。因此,输出与输入之间是一种函数关系。这种函数关系称为逻辑函数。

下面利用一个三人表决器的电路设计来说明一些问题。此电路有三个输入(A、B、C),一个输出(Y),只有当两个及两个以上输入赞成时,Y输出赞成。

设赞成为1,不赞成为0。图6 :三人表决器真值表

根据真值表中Y为1的项列出来,对应的A、B、C为1,则留下变量,为0,则留下反变量。

Y = A'BC + AB’C + ABC’ + ABC;

根据上述布尔表达式,我们得出逻辑电路图:

如果所有的逻辑都按照这种写法的话,那么很多的逻辑就会变的很复杂,并且会浪费很多的资源。我们考虑一下,电路既然是按照布尔表达式做出来的,那么布尔表达式能不能化简一下呢(利用图1-29中的公式)?

Y = A'BC + AB’C + ABC’ + ABC;

= A'BC + ABC +  AB’C + ABC  + ABC’+ABC;= BC(A' + A) + AC(B+B') + AB(C+C')= BC+AC+AB

上述布尔表达式所对应的逻辑电路图如下:

若我们不考虑中间的过程,只是考虑A、B、C与Y之间的关系,上述哪一种电路结构都是可以实现功能的。我们将上述两种电路称为等效电路。

我们可以将输入与输出之间的关系绘制出一副图,来表示它的逻辑关系。

除了上述几种方式表示逻辑关系外,我们还可以用卡诺图来表示逻辑关系

在n变量逻辑函数中,若m为包含n个因子的乘积项,而且这n个变量均以原变量或反变量的形式在m中出现一次,则称m为该组变量的最小项。

n个变量有2^n个最小项,比如当n = 3时,此逻辑函数应有2^3 = 8个最小项。比如一个3变量的逻辑函数,它有8个最小项,分别是:A'B'C'(000), A'B'C(001), A'BC'(010), A'BC(011), AB'C'(100), AB'C(101), ABC'(110), ABC(111)。他们分别可以用m0---m7表示。

根据定义可以得出:

  1. 输入变量的任何取值下有且仅有一个最小项为‘1’,其他为‘0’。
  2. 任意两个最小项之积为‘0’。
  3. 所有最小项之和为‘1’。
  4. 如果两个最小项之间只有一个因子不相同,则认为它们相邻。相邻的两个最小项之和就是把不相同的因子去掉。例如:ABC + ABC' = AB(C+C') = AB。

在上述的三人表决器中,用最小项表示:Y=m3+m5+m6+m7。

卡诺图是逻辑函数的一种图形表示。一个逻辑函数的卡诺图就是将此函数的最小项表达式中的各最小项相应地填入一个方格图内,此方格图称为卡诺图。卡诺图的构造特点使卡诺图具有一个重要性质:可以从图形上直观地找出相邻最小项。两个相邻最小项可以合并为一个与项并消去一个变量。

我们可以用圆圈圈出相邻的值为‘1’的最小项,注意只能是矩阵画(2,4,8·····)。左侧红色的圈为:AB'C和ABC,所以可以化简成AC。其他两个圈可以化简称为AB和BC。化简的时候也没有必要要写出来,直接看就好了,把对应位置中有变化的哪一项直接去掉就好了。例如:红色的圈圈出的两个就只有B发生了变化,所以直接去掉,就变成了AC。

注意卡诺图的数码表示,如有两位应该是 00、01、11、10。因为卡诺图能够销项的原因是利用公式:ABC + ABC' = AB(C+C') = AB。不能是00、01、10、11,01和10是两个变量不同。

另外卡诺图在画圈时,可以认为是一个左右、上下都连接的表格,可以最左侧一个,最右侧一个,构成两个。因为它们同样满足相邻(只有一个变量不同)。

卡诺图化简的话,更直观,更简单一些。不用考虑那么多的公式。

在逻辑化简中,任何一个布尔表达式,我们都可以将其化简为与非的形式。那么就可以全部使用与非门来构成逻辑电路。此时做出的电路也是一种等效电路。

思考:如何证明与非逻辑可以实现所有的逻辑?

上述所有的分析都是基于门电路符号进行分析,那么基本的门电路是如何利用晶体管等来构成的呢?大家好,我是【FPGA功夫熊猫】精益求精,不断推荐好文章。

数字电路中的逻辑代数基础相关推荐

  1. FPGA零基础学习:数字电路中的逻辑代数基础

    FPGA零基础学习:数字电路中的逻辑代数基础 大侠好,欢迎来到FPGA技术江湖.本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的"傻瓜 ...

  2. 【梳理】数字设计基础与应用 第1章 数字逻辑基础 1.3 逻辑代数基础 1.4 逻辑函数的表述方式

    教材:数字设计基础与应用 第二版 邓元庆 关宇 贾鹏 石会 编著 清华大学出版社 源文档高清截图在后 1.3逻辑代数基础 1.逻辑代数(logic algebra)又称布尔代数(Boolean alg ...

  3. vivado中的rtl中电路图无发生成_FPGA零基础学习:数字电路中的组合逻辑

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  4. 数字电路逻辑设计笔记(2):逻辑代数基础

    数字电路逻辑设计笔记(2):逻辑代数基础 参考教材:<数字电路逻辑设计>欧阳星明 人民邮电出版社 参考教程: 中国大学MOOC 西安工业大学<数字电子技术基础> 文章目录 数字 ...

  5. 数字电路-逻辑代数基础

    摘要:本节介绍用于分析数字电路逻辑功能的数学方法--逻辑代数.首先将介绍逻辑代数的基本公式.常用公式和几个重要的定理,然后讲授逻辑代数的各种描述方法以及这些描述方法之间的相互转换.最后.介绍逻辑代数的 ...

  6. FPGA零基础学习:数字电路中的时序逻辑

    FPGA零基础学习:数字电路中的时序逻辑 大侠好,欢迎来到FPGA技术江湖.本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的"傻瓜式& ...

  7. c语言逻辑代数常用公式证明,《数据结构C语言版》严蔚敏第二章逻辑代数基础...

    第二章逻辑代数基础,数字电路,1.2.1逻辑代数与基本逻辑关系,在数字电路中,我们要研究的是电路的输入输出之间的逻辑关系,所以数字电路又称逻辑电路,相应的研究工具是逻辑代数(布尔代数).,在逻辑代数中 ...

  8. 数字电路中的竞争与冒险

    竞争冒险在<数字电子技术基础>中有详细的阐述,由于学过很久了,现在再翻开复习复习,总结总结. 在组合电路中,当输入信号改变状态时,输出端可能出现虚假信号(过渡干扰脉冲),这对电路来说是不利 ...

  9. 数字电路与C语言基础

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.电平特性 二.二进制与十六进制 2.1 进制转换 2.1.1 二进制 2.1.2 十六进制 2.2 与运算 2.3 ...

最新文章

  1. 火热的激情、严密的计划成就双冠梦想——我的项管经验(转载)
  2. 设计模式研究(二)-Singleton
  3. poj 3468 Splay 树
  4. Silverlight实用窍门系列:28.Silverlight制作随机分布雷达扫描点,模拟雷达扫描图之被扫描设备【附带源码实例】...
  5. 第15届创新英语大赛范文
  6. html5新增的一个input属性
  7. C++编程语言类对象的赋值与复制介绍(二)
  8. linux运维必学python吗_Python学习资源整理
  9. 新浪微博技术分享:微博短视频服务的优化实践之路
  10. 极化SAR几种成像模式
  11. [C语言]指针之数组逆序函数:编写函数invert,将数组中的n个整数按相反顺序存放,要求用指针变量作为函数形参,并用指针的方法遍历该数组。在main函数中输入n个整数,存入数组a中;然后调用上述函
  12. ILog项目开发流程【一】
  13. 71个外贸工具集合!2023年外贸业务员开发客户必备!
  14. VScode 插件中 package.json 文件 activationEvents 字段详解
  15. 华南x79主板u盘装系统教程_华南x79主板怎么装win7系统|华南x79主板装win7及BIOS设置...
  16. Servlet-千锋-学习笔记
  17. linux设置网卡接受组播,linux下双网卡接收组播需要修改的参数
  18. 求助帖~~~~好心人看过来
  19. c语言如何实现人民币转换编程,如何实现人民币的大写转换?
  20. html5怎么画坐标图,新手如何5分钟学会用canvas在HTML5上画简单图形

热门文章

  1. 嵌入式:LVGL移植到STM32F407ZE的实现
  2. 2010年IT行业从业者掌握哪六种技能将大受欢迎?
  3. Squid第13章 日志文件
  4. NVIDIA announces weaker Q2 gaming GPU sales, now working with channel partners to adjust prices
  5. tomcat的webapps 和 ROOT目录区别
  6. 【C#开发宝典】.匡松等(奋斗的小鸟)_PDF 电子书
  7. LabVIEW操作者框架(Actor Framework)范例集锦之六:VIPM
  8. jmeter性能监控插件安装
  9. matlab 韩明距离_汉明距离(差异位点有用的到)
  10. vector 力扣 682 棒球比赛