数字逻辑_组合逻辑

组合逻辑

组合逻辑分析

首先给出组合逻辑的定义:
是指电路在任何时刻产生的稳定输出信号,仅取决于该时刻电路的输入信号。

可以理解为一个不随上次状态影响的,能实现一定功能的电路

那问题来了,我们怎么分析一个给定电路的功能呢?
一般有下面这些步骤。

  • 阅读组合逻辑电路图
  • 列写逻辑表达式
  • 列出真值表
  • 指出电路的逻辑功能
  • 做出对逻辑电路图的评价和改进
    下面对其进行介绍:

分析的一般步骤

举几个例子

半加器

分析下图电路的功能
在这里插入图片描述
按步骤来,先得到他的逻辑表达式:
在这里插入图片描述
在这里插入图片描述
然后我们给出真值表:
在这里插入图片描述
可以看出,这个电路实现了这样一个功能,A,B是加数,c表示是否有进位(真值表中只有1+1出现进位,c为1,其余c为0),s表示运算结果(表示的是结果的最后一位,溢出的无法统计在内,1+0=1,1+1=10(溢出,只保留最后一位))
这个东西叫半加器记为:
在这里插入图片描述
为什么他叫半加器呢,这个半体现在哪里。首先这个电路图只能实现一位二进制数的加运算,而像11+10这样的两位二进制数他就无法计算了,因为低位相加会产生进位,而这个电路只能输入两个加数,低位运算产生的进位无法与其相加。

全加器

分析下面电路图功能:
在这里插入图片描述
图中的i指的是第i次运算的数,比如,ci-1是上次运算的ci(这个i比当前的i小1)即上次运算的余数,而Ai,Bi是当前的运算的加数。
给出逻辑表达式:
在这里插入图片描述在这里插入图片描述
得到真值表:
在这里插入图片描述
可以看出功能是实现三个数的相加(两个加数,一个余数)
这个就是全加器,记为
在这里插入图片描述
那为什么他能实现全加呢?
si很容易能看出可以实现三数相加的值,那ci的进位
在这里插入图片描述
我们知道两个数相加最多只能进一位,那么,这个ci要么来自两个加数相加产生要么来自两个加数结果与上一次的进位相加产生,不可能两个过程都有进位产生。
最后实现两个数相加的过程是这样的。
以8位的数为例:

  1. 两数最低位输入电路Ai,Bi,同时ci-1初始化为0
  2. 得到si和ci,记录si写在结果的最低位,ci作为下一次的ci-1输入
  3. 继续进行7次,每次都把si往前写一位,ci作为下一次的ci-1输入

译码器

分析下面电路图的功能:
在这里插入图片描述

在这里插入图片描述
这个很简单不用写真值表也能看出来。
第一张,每个与门都对应一个最小项,所以每次都只有一个输出为1,其余都为0.第二张就是在第一张的基础上在最后输出上添加了非,所以每次都只有一个输出为0,其余为1
这个叫译码器,记作
在这里插入图片描述

数据选择器(MUX)

在这里插入图片描述
直接看,这个在四个与门上加了一个数据输入线,那么当A,B确定时只有一个与门为1,其余为0,由于与上1不改变值,所以这就相当于只有一路的与门是不被绝对置0的,就是只有那路的数据能输出到Y上,这就达到了·数据选择的作用。
可以简记为
在这里插入图片描述

多路适配器(DMUX)

在这里插入图片描述
这个功能也很好分析,只有一条数据线,译码器决定在那个与门上输出数据。

考虑特殊问题的逻辑设计

我们怎么设计一个电路实现特定功能。
一般遵循一下步骤:

  1. 根据功能描述列出真值表
  2. 根据真值表化简逻辑函数为最简的“与-或”表达式(借助卡诺图)
  3. 根据选用的门电路的类型及其实际问题的要求,将函数转化成所要的表达式
  4. 画出逻辑图
    看下面的例题理解一下

设计题一

在这里插入图片描述
根据要求画出真值表:
在这里插入图片描述
画出对应的卡诺图
在这里插入图片描述
在这里插入图片描述
这里偷懒画卡诺图,大括号括的地方该值为1,应该可以理解吧。
给出逻辑表达式
在这里插入图片描述
画出电路图
在这里插入图片描述
在这里插入图片描述

设计题二

在这里插入图片描述
这里提一下x1x2指的是X这个数的第一位和第二位而不是x1*x2
给出真值表(由于这里情况比较多,这里只画输出为1的就行了,反正画卡诺图只标定1)
在这里插入图片描述
画出卡诺图
在这里插入图片描述
给出表达式
在这里插入图片描述
电路图就不画了

设计题三

在这里插入图片描述
在这里插入图片描述
画真值表
在这里插入图片描述
得到卡诺图
在这里插入图片描述
逻辑表达式
在这里插入图片描述

设计题四

在这里插入图片描述
这题直接写逻辑表达式
在这里插入图片描述
S:发动机接通
A:飞行员就位
B:飞行员腰带已系上
M1:第一个位置的乘客就坐
N1:第一个位置的乘客已系上安全带
电路图
在这里插入图片描述

组合电路的等价变化

只要满足能表示非、与两种运算或者是非、或两种运算就能表示所有逻辑运算。
与非输入为同一个得到非运算,与非加非得到与
在这里插入图片描述
或非同理

变成只有与非

做法:原函数二次反演,一次展开
在这里插入图片描述
就是把+变成·,然后转化为电路就是,B先非一下(非可以用与非表示),在AB非 与非一下,再AB非非、BC非非、CD非非……与非一下。
得到下面的电路图
在这里插入图片描述
这里B非什么的没画,就是两个B输入与非

变成只有或非

这个稍微复杂一点
比如要把下面这个表示成只有或非的表达式
在这里插入图片描述
试一下上面与非的思路,不行,有运算顺序,搞不动。
注意到如果我们把一个化成只有与非表达式的式子取对偶,那不就是只有或非的式子了吗,然后我再整一个对偶运算,两次对偶抵消
于是我们就有了以下的方法:
在这里插入图片描述
第一步:去对偶并化简成最小项和的形式
在这里插入图片描述
第二步:用上面与非的方法求该对偶式的与非实现
在这里插入图片描述
第三步:求该式的对偶式就可以得到最终的结果
在这里插入图片描述
其实还有另一种方法,不过没这个方便,简单看一下
在这里插入图片描述
不解释

单变量无反的逻辑设计

定义

这个东西网上找不到定义,那我就自己找规律了,简单说就是一种特殊的多项式表达式,每项都满足只有一个变量既有正又有非但又不会消掉,其余要么只有非,要么只有正(视频里是单个变量上没有非,大概是说要几个变量一起非)。比如下面这两个式子:
在这里插入图片描述
在这里插入图片描述
那么如何把一个式子变化成单变量无反的形式呢?
先看几个定理再谈这个的问题。

K图重心理论

这个理论描述的是对于包含某个特别的卡诺圈化简结果的性质。看下下面的例子就懂了。
以四变量的卡诺图为例,如果一个卡诺圈包含m15(即ABCD),那么这个卡诺圈的化简结果必然只有正变量,没有某个变量的非。原因很简单,我们在化简卡诺圈时找的是他里面的最小项的相同变量,那么化简结果必然是ABCD的一部分。同理包含m0即A非B非C非D非的卡诺圈化简后就必然只有非的项。
我们称ABCD为1重心,A非B非C非D非为0重心,然后有以下结论:

  • 凡包含1重心m15的K圈组合后的化简函数必然是全原码标注
  • 凡包含0重心m0的K圈组合后的化简函数必然是全反码标注

逻辑禁止法

定理一:

在这里插入图片描述
比如对于函数在这里插入图片描述
乘上不属于他的最小项ABC非的非,结果不变
在这里插入图片描述
为什么说不变呢,当输入为F中的某个最小项时F为1,乘上的那一项也为1,结果不变,当输入的不是F中的最小项时,F为0,乘上的那项为1,结果为0,不变。所以乘上这项不改变结果。

定理二

在这里插入图片描述
这个其实就是上面定理的加强版
在这里插入图片描述
图里面说明了情况,把那两项变为相乘就回到了定理一的情况

定理三

在这里插入图片描述
比如对于函数在这里插入图片描述
乘上它包含的项的和的非
在这里插入图片描述
结果就相当于扣除了原本的那几项

把一个式子化成单变量无反的形式

给出步骤:

  1. 画出当前表达式的卡诺图
  2. 合理添加为0的项便于化简
  3. 扣除添加的项
  4. 整理
    这个方法的原理我不太懂,就不说了
    举几个例子理解一下
例一

在这里插入图片描述
画出卡诺图
在这里插入图片描述
添加可用的原本为0的项
在这里插入图片描述
得到结果:A
扣除添加项得到结果:
在这里插入图片描述

例二

在这里插入图片描述
画出卡诺图并添加合适的0项:
在这里插入图片描述
得到结果:
在这里插入图片描述
扣除添加项在这里插入图片描述
整理得到结果:
在这里插入图片描述

例题三

这两题当练习吧
在这里插入图片描述
结果如下
在这里插入图片描述
这个大概还要再化简一下吧,感觉后面的非只能有一项,这样的话可以利用定理二将后面的化成一个的非。
另一题:
在这里插入图片描述
结果:在这里插入图片描述

组合逻辑中的竞争冒险

什么是竞争冒险

我的理解是由于输入改变后,门的输出不是瞬时改变的还会保持原装,这个时间差导致输出结果与预期不符。
比如下面这个电路
在这里插入图片描述
按道理说无论A怎么变F都为1
但是由于存在门的延迟,所以当A从1变到0时:
在这里插入图片描述
B延后了一段时间变化导致F出现了毛刺(这里F也延迟了变化,所以在B恢复后才出现毛刺)
给出名词的解释:
在这里插入图片描述
在这里插入图片描述
要注意的是有冒险一定存在竞争,有竞争不一定存在冒险!
比如上面的电路,当A从0变到1时就不会出现冒险
在这里插入图片描述

如何判断是否会出现竞争冒险

在输入变量每次只有一个改变状态的简单情况下,只要输出端的逻辑函数在一定条件下能简化成:
在这里插入图片描述
即可判定存在竞争-冒险。

就是我给其他变量复制后式子变成这两个中的其中一个就存在竞争-冒险
当然这样的话还是不太方便,对于复杂的式子会很麻烦。
这里给出一种直观的方法:

若卡诺图中存在相切的卡诺圈,即两个卡诺圈之间存在不被同一卡诺圈包含的相邻最小项,则此电路存在竞争冒险

比如在这里插入图片描述
画出卡诺图
在这里插入图片描述
这个其实跟上面的A加A非的判断方法是一致的,存在相切就说明我可以通过给其他变量复值使式子变成只有这相切的两项相加,即A+A非(当然对于这个式子来说使C+C非,这里只想说明那个意思)
在这里插入图片描述

如何避免竞争冒险

选通脉冲法

这个就是等变化完以后才让你输出
比如对于下面的电路图
在这里插入图片描述
加入选通脉冲CP,平时为0,等变化完后变为1,允许其输出
在这里插入图片描述
在这里插入图片描述

修改逻辑设计法

之前出现卡诺图的相切,那我们想办法把相切搞掉就行了
在这里插入图片描述
方法很简单,只要添加一个卡诺圈把相切部分包括进去就行了
在这里插入图片描述
这样虽然多了一项,但是竞争冒险的问题也没了

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值