前言:这个一周多都在看数电,因为过的会比较快,进行整理,到时候好回顾
只记录到时序电路为止,后面的就没看了,因为考试没要求,总体感受时序电路那边感觉有点不好理解,关于级联的知识点可能也需要花点时间理解,其他的都还好
视频看的是西电的任爱锋老师的,课程地址:https://www.bilibili.com/video/BV1NE411r7dr
基础门电路
基础逻辑代数
式(8 )、( 8′ )称为同一律;
式( 9 )、( 9 ′ )称为交换律;
式( 10 )、( 10 ′ )称为结合律;
式(11 )、( 11 ′ )称为分配律;
式( 12 )、( 12 ′ )称为德·摩根( De.Morgan )定律;
式( 13 )称为还原律。
这里的话德·摩根( De.Morgan )定律会比较有用,但是后面学了三个规则中的“反演规则”,可以直接根据这个规则可以写出来
三个规则
代入规则
这个如何理解?其实就是A + B,这里的话就设置B = C + D,那么原式就是 A + (C+D) 这样即可
反演规则
反演规则一般都是相当于求反函数的时候
注意:如果是多个代数整体上面求非的时候,这时候这个非不在反演规则的范围之内,举个例子如下,如下红线圈出来的部分,在反演规则中就不需要进行取反操作
只要是两个代数以上的,整体帽子就不存在“反演规则”以内
对偶规则
这个跟“反演规则”不同,不同之处在于,取反的范围缩小的,只有如下几个点,也就是不需要对“原变量变反变量”
注意:如果两个函数相等,则它们的对偶函数亦相等。
这里来讲下异或与同或,这两个既是对偶函数,又是互补函数
关于合并律/吸收律
合并律推导
吸收律推导
吸收律1的逻辑代数推导
吸收律2的逻辑代数推导
这里的话其实不用下面这样也可以,通过上面的吸收律1 A=A+AB
,将下面的A进行替换,同样也可以化出来
吸收律3的逻辑代数推导
推导方法都是一样的,这里就把图放上去方便做个记录,以后想看的话就直接看
逻辑运算符的完备性
自己的理解,比如“与 或 非”这三种运算符,在逻辑代数中可以通过这三种来组成任意想要的逻辑函数,所以这里将“与、或、非”称作为“完备集”
这里理解了运算符的完备集之后,再来思考下,这里通过这三个“与 或 非”来实现电路中的需求的话,在实际中就需要用到这三个电路门,难免会很麻烦
但是如果通过一个运算符(也就是一个电路门),同样可以实现所需要的电路中的需求的话,那么我们只需要单一的采集这个电路门即可!
与非 / 或非 实现完备集
这里就来学习下,如何通过 与非门 / 或非门 来实现这三种基本运算,使其成为完备集。
或非实现或,如下图所示
以下的表达式都是等价的,了解即可
上面相关的五种形式的电路门如下:
最小项、最小项标准式
最小项
n个变量的最小项是n个变量的“与项”,其中每个变量都以原变量或反变量的形式出现一次。
比如AB这两个变量,那么最小项就有四个,a\'b a\'b\' ab\' ab
比如ABC这三个变量,那么最小项就有八个
总结下那么变量的最小项共有2^n
个。
最小项的性质
1、n变量的全部最小项的逻辑和恒为1,如何理解?直接来看下面这个图,可以看到这个图的话,每条红色横线的和恒为1,那么也就是这个性质
2、任意两个不同的最小项的逻辑乘恒为0,如何理解?看下面的图,可以看到任意两个相乘都为0,也就是这个性质
3、n个变量的每一个最小项有n个相邻项,如下图所示,对于三个变量来说,a\'bc的最小项如果想要就只改变一个变量,那么只能改变成如下a\'bc\' a\'b\'c abc 这三种,也就是如下,那么也就是3个相邻项
老师画的图,就只改变其中的一个变量所得出的三个结果,为如下,那么就只有三个相邻项。
最小项表达式————标准与或式
如何理解?这里给一张图即可,个人理解标准与或式需要满足两个条件:
1、是与或表达式
2、该与或表达式中的"与项"均为最小项
最大项、最大项标准式
最大项(标准或项)
n个变量的最大项是n个变量的"或项",其中每一个变量都以原变量或反变量的形式出现一次。
比如AB这两个变量,那么最大项就有四个,a\'b a\'b\' ab\' ab
比如ABC这三个变量,那么最大项就有八个
总结下那么变量的最小项共有2^n个。
最大项的性质
1、n变量的全部最大项的逻辑乘恒为0
2、n变量的任意两个不同的最大项的逻辑和必等于1,即
3、n变量的每个最大项有n个相邻项,跟最小项的相邻项的定义是一样的
小知识点:最小项mi和最大项Mi互为反函数,这个在后面用最小项标准式来求最大项标准式非常有用。
真值表写标准式
真值表写最小项标准式
学习完关于什么是最小/大项,什么是最小/大项标准式,这里继续来学习通过真值表来写出最小/大项标准式
根据真值表中的最小项的函数值为1的进行相或即可写出相关最小项标准式,可能会有疑惑,为什么一定需要相或呢?你想一下,真值表其实也就是F表达式表达的一种形式,如果真值表F为1的话,那么表达式F的结果肯定也为1,表达式F中存在由多个最小项组成,因为表达式是与或表达式,所以只要满足最小项其中的一个为1,那么这个表达式的结果就为1,所以这里相或!
真值表写最大项标准式
真值表写出最大项标准式可以通过两种方法:
第一种:通过mi和Mi的互补的关系,先求出最小项标准式,然后再去求最大项标准式
通过真值表写出最大项标准式分为如下两步操作:
1、先写出最小项标准式F的反函数标准式
2、然后对该反函数的最小项标准式子F非,再求一次反,得出的结果就是其最大项的标准式
上面说一下肯定不好理解,这里举例子来进行学习
这里其实还有一种方法,就是直接用最大项来写出与或表达式真值表中为"0"的部分,写出来的结果同样是最大项的标准式
卡诺图
上面了解了如果通过真值表写出最小/大项表达式,这里还有一种是通过卡诺图来写出相关的表达式
需要知道的一点:卡诺图其实也是跟真值表类似,其实就是表达式F的一种表达形式,卡诺图其实是真值表另外的一种表示形式
在逻辑函数的真值表中, 输入变量的每一种组合都和一个最小项相对应,这种真值表也称最小项真值表。
卡诺图就是根据最小项真值表按逻辑相邻规则排列(格雷码的顺序)的方格图。
这里的逻辑相邻规则排列是什么意思?就是从最小项真值表中取两个最小项,这两个最小项只有一位不同,如下图所示,其实就是跟格雷码的顺序一样
真值表写卡诺图
这里继续举个例子,A和B,有四种取值的情况A\'B A\'B\' AB AB\',如果要写出卡诺图的话,先写出真值表的情况,然后再写出相邻顺序排列的情况
在相邻顺序排列写好了之后,接着继续画卡诺图,下面图中右边的三种画卡诺图的方法都是可以的
又或者如下
那么这里继续来看下三个变量ABC的卡诺图,个人理解如果了解了格雷码之后,其实就不需要再尝试去排序,根据格雷码的特性就可以直接画出对应的卡诺图即可
四个变量ABCD的卡诺图为如下(2*2的画法)
五个变量ABCDE的卡诺图为如下(3*2的画法)
卡诺图的位置关系
在卡诺图中位置关系分为几何相邻(在图中体现),还有一种是逻辑相邻
对于几何相邻有三种位置关系:
小知识点:
1、下面这个图的理解其实就是 如果你要画四个变量的卡诺图的画,那么该图中任何一个最小项则有四个相邻项
2、自己需要注意的,就是如果是五个变量ABCDE的卡诺图,直接看就是有四个相邻项,但是根据知识点1可以知道,五个变量的卡诺图应该是有5个相邻项的,所以这里还需要加上一个相重的相邻项,如下图所示
对于逻辑相邻,其实就是一个位数的不同,最上面的时候有提到过,其实就是格雷码的排序
这个如何理解?其实就是ABC\',ABC,这两个其实就是对于逻辑相邻的两个“与项”
卡诺图的特点/优点/缺点
关于卡诺图的缺点
卡诺图的主要缺点是随着输入变量的增加图形迅速复杂,相邻项不那么直观,因此它只适于用来表示6个以下变量的逻辑函数。
表达式写卡诺图
与或表达式中,真值表和表达式的关系,在与或表达式中结果为1的情况下,此时真值表的结果为1,如果与或表达式其中的结果为0的时候,那么此时真值表的结果则为0,其实理解卡诺图其实就是真值表的另外一种表达形式。
这里来看个或与表达式,此时表达式为F=AB\'+A\'B,那么也就是包含的最小项为AB\'+A\'B,那么在真值表中就需要满足该AB\'和A\'B这两个最小项的对应的值则为1,然后根据这个图画出对应的卡诺图,在卡诺图中对应的坐标位中填为1即可
这种的话就跟正常真值表画卡诺图一样即可,然后将其0/1代入进行计算
比如下面这张图,当给了表达式,我们直接根据卡诺图的对应的位代入即可,000 010 110 100 001 011 111 101 代入到表达式,然后在对应的位中写出对应的值即可
000 代入到 AB+A\'C+BC 所得到的值为0,填入到000的位置中即可,同样的其他的也根据对应的计算填入即可
其实这种方法太麻烦,还需要一个一个代入,会浪费很多时间,这里再来讲一种快捷的方法——"覆盖法"
比如下面这道题,要求通过 一般与或式->卡诺图
分析上面的与或表达式 F=AB\'C+A\'B\'C+D+AD 可以知道,如果想要表达式F的值为1的话,那么可以将其分成AB\'C 和 A\'B\'C 和 D 和 AD 这四个部分,其中满足任何一个表达式都可以使得结果为1,这里的话就单独分开讨论即可,比如AB\'C,如果想让AB\'C这个表达式为1的话,那么此时的ABC的值需要为101,然后A\'BC则为111,接着还需要考虑下D,此时D没有在A\'BC中,所以D的情况任意 0/1都可以,所以1011 1010 都可以,也就是右下角的两格
与或表达式(最小项表达式)写卡诺图
第一种方法可以通过先写出该最小项表达式的真值表,然后再通过真值表再去画出对应的卡诺图即可,但是对于存在需要多个变量的表达式的时候来说就会比较麻烦了
这里有一句话"任何一个逻辑函数都等于其卡诺图上填1的那些最小项之和",这里的"和"其实也就是"或"的意思
上图中画出的卡诺图为如下图所示
或与表达式(最大项表达式)写卡诺图
先来讲关于最大项表达式->卡诺图
接着继续来讲一般或与表达式->卡诺图
第一种方法:遇到或与表达式,可以将其先转换为与或表达式,然后通过上面的方法来继续运算
第二种方法:同样还是用到上面说的"覆盖法",不过因为是或与表达式,所以正常的A非则为1,B非则为1
卡诺图写表达式
到这里已经会了通过表达式去画对应的卡诺图,最后还需要学会如何读图
这里先学习第一个知识点:最小项合并规律
其实这个之前学过,就比如AB+AB\',那么就是A(B+B\')则值为A
第二个知识点:K-圈
最简表达式准则如下图所示
下面这句话如何理解?在卡诺图化简逻辑函数部分的时候,所圈出的不同的k-图,可能都是最简化的表达式,但是可能表达式就不是一样的
举个如下例题来进行说明,下面这是第一种的k-圈,如下图所示,同样的可以写出其表达式为如下 YZ + W\'X\'Y\' + WXY\' + WY\'Z\'
第二种的k-圈,如下图所示,同样的可以写出其最简表达式 YZ + W\'X\'Y\' + WXY\' + X\'Y\'Z\' , 可以看出这两个表达式不一样,但是都是同一个卡诺图的最简逻辑函数
小知识点:与或表达式和与非与非表达式的转换之间的关系,与或表达式 转为 与非与非表达式,只需要将其电路门都转换为与非门 即可
这里来个相关例题来说明,将F=BC\'+A\'B\'D+AB\'C
先画出相关的与或门
那么如何将其通过与非门来进行实现呢?求两次反即可,转换过程如下
逻辑电路图为如下所示
卡诺图写或与表达式
1、第一种方法(间接)
先对这个与或卡诺图中的值取反,将其为0的写为1,1的写为0,然后写出对应的与或表达式
再对这个与或表达式整体取反,得到的表达式就是或与表达式
组合逻辑电路分析与设计
数字电路分为两种,一种是组合逻辑,一种是时序逻辑
组合逻辑:输入什么就按照自己的运算输出
时序逻辑:当前的产生与之前的变化有对应的关系,后面讲到触发器的时候会涉及
组合逻辑电路的分析步骤
总结下一般给的题目都是一个要求,让你画出对应的逻辑电路图,解题步骤如下
1、分析,首先需要的就是画出对应的真值表(这里就需要自己先了解题目给的需求,提前知道它的输入和输出的内容)
2、列出真值表之后,画出对应的卡诺图的表达形式,因为在卡诺图中通过画k圈
3、通过画k-圈,最后写出最简表达式
4、通过最简表达式画出对应的逻辑电路即可,又或者让你通过指定的门电路来实现对应逻辑电路
第二种题型则是给你一个对应的门电路,然后让你说出该电路所实现的逻辑功能是如何,解题步骤一般为如下
实现一个三变量多数表决器
所谓的三变量多数表决器,其实就是输入三个,如果有两个为1,那么就是表示“通过”,否则就是“不通过”
那么画出的真值表为如下所示
接着画出对应的卡诺图,K-圈即可写出最简与或表达式
加法器
这里学习了两种加法器,一个是一位二进制的半加器,一个是一位二进制的全加器,还有扩展知识 多位二进制的全加器
实现一位二进制半加器(不考虑低位的进位的情况)
半加器不考虑低位进位来的进位值,那么就不需要低位的输入端了,这样的话只有两个本位输入(加数和被加数),两个输出(本位的进位数值和本位自身数值),电路由一个与门和异或门构成。
Ci+1 为本位的进位,Si表示本位的位,输入端A,B,那么真值表为如下所示,通过真值表就可以写出对应的F表达式,那么通过与门和异或门就可以画出对应的二进制半加器的逻辑电路图。
Ci+1 = Ai & Bi
Si = Ai ^ Bi
实现一位二进制全加器(考虑低位的进位的情况)
对于一个二进制全加器,跟二进制半加器不同的是,我们还需要考虑到低位是否存在进位的情况,所以这里还多出了一个输入端Ci,其他的话跟二进制半加器是一样的
首先还是得自己先了解,对于一个二进制全加器的内部运算的过程
首先写出上面的逻辑电路的表达式,上面有两个输出,所以这里的Si和Ci+1两个表达式
对应的真值表为如下
实现多位二进制全加器
假如要去实现两位的二进制全加器,二位的二进制全加器和一位的二进制全加器的区别是什么,可以想象下两位的二进制全加器肯定是从低位往前的,那么其中的一个二进制全加器就是去表现低位,另一个去表现高位。
首先来看低位的二进制全加器,其实需要展示的就是本位,最重要的需要把自己本位是否存在进位的情况传送给高位的二进制全加器,所以这里的Ci+1肯定要传输给高位的二进制全加器的,那么也就是低位的Ci+1传送给高位全加器的Ci,那么这样就可以去计算高位二进制全加器的本位情况,最后实现多位二进制全加器!
任爱锋老师说过二进制全加器并不是最好的加法器,自己在书本上也看到过相关的超前加法器,因为是计算机专业,所以没要求学习这个
实现一位二进制全减器
既然是减法,那么至少有两个输入端A,B,其中一个作为被减数,一个作为减数,至少有一个输出端D,用来展示A-B的差
然后还需要考虑低位的借位情况,如果低位需要向本位借位的情况,那么本位就需要向高位借位,所以这里有引出了两个变量,一个低位的情况Cn,一个高位的情况Cn+1
得到的真值表为如下,通过真值表则可以写出对应的表达式,从而画出对应的逻辑电路
下图中的左图是通过与或非门来进行实现,下图中的右图是通过异或门来进行实现
推导过程,一位二进制的全加器和全减器的结果都是A异或B异或C
编码器
实现8421BCD码转余3码器
思路:正常的一个0000,则输出就是0000+0011,也就是0+3即可,画出的真值表如下图所示
实现一个两个十进制数(8421BCD码)加法转换十进制数(8421BCD码)
思路:
1、用到8421来代表二进制数,那么两个就需要用到八个输入端,分别是8421 8421
2、输出的话,同样两个十进制数需要8个输出端,8421 8421,然后因为每位数相加还需要进位,所以还需要加上一个输出端cout进位标志
3、如果相加结果是大于9的话,还需要加上0110(6),也就是对应的输出端 8421 8421 + 0110(二进制)
74LS138译码器与扩展
3-8译码器实现地址译码电路,译码范围A0H-A7H
A0 A1 A2为 000 - 111的范围,这个范围不变
然后利用使能端来进行调整译码范围,使能端E1 E2A E2B的输入端控制为10100即可实现A0H-A7H的译码范围
3-8译码器实现地址译码电路,译码范围2E0H-2E7H
A0 A1 A2为 000 - 111的范围,这个范围不变
然后利用使能端来进行调整译码范围,使能端E1 E2A E2B的输入端控制为1011100即可实现2E0H-2E7H的译码范围,真值表如下
电路图如下
两个3-8译码器实现4-16译码电路,译码范围2E0H-2EFH
A0 A1 A2为 000 - 111的范围,这个范围不变
这里最重要的就是通过使能端来控制两个3-8译码器的乒乓式工作,所以两个3-8译码器的使能端输入肯定是相反的
这是一种设计方法
还有一种设计方法,直接将两个E1使能端连接起来,其中一个其中放置一个非门,同样也可以实现4-16译码
3-8译码器实现一位二进制全加器
A/a,B/b,C/ci为全加器和译码器的输入,OUT为译码器的输出(0-7),S为加法器的和,Cout为加法器的进位输出
PS:假定译码器的输出为高电平有效。
A/a B/b C/ci OUT S Cout
0 0 0 0 0 0
0 0 1 1 1 0
0 1 0 2 1 0
0 1 1 3 0 1
1 0 0 4 1 0
1 0 1 5 0 1
1 1 0 6 0 1
1 1 1 7 1 1
根据上面的真值表
将3-8译码器的输出S(1、2、4、7)作为一个4输入的或门的输入,或门的输出作为加法器的和。
将3-8译码器的输出OUT(3、5、6、7)作为一个4输入的或门的输入,或门的输出作为加法器的进位输出。
关于译码器实现组合逻辑函数
下面划出红色的部分是自己之前看的时候的问题,就是实现组合逻辑函数的时候为什么还需要在后面再去添加上少量的门电路,想了下3-8译码器可能不能完全实现我们的组合逻辑函数,所以有时候可能我们自己还需要添加上基本的门电路上去。
2-4译码器实现4-16译码器
前言:2-4译码器是存在使能端的,要不然无法进行拓展
思路:
1、因为是4-16,所以输出端是16个输出端
2、因为是4-16,所以输入端的话也是4个输入端
3、要通过2-4实现4-16的话,那么电路中肯定需要4个2-4译码器,这样的话输出端的话,才能满足16个输出端
4、如果要控制 4个2-4译码器的话,所以还需要一个2-4译码器来接入这四个2-4译码器的使能端
5、剩下的两个输入端就用来对2-4译码器的输入端来进行控制
数据选择器与扩展
数据选择器(data selector) 根据给定的输入地址代码,从一组输入信号中选出指定的一个送至输出端的组合逻辑电路。有时也把它叫做多路选择器或多路调制器(multiplexer)。
特点:n位地址输入,2^n位数据输入、1位输出
对应数据选择器的通用表达式为如下,这里的mi是由函数的输入变量A、B、C、…组成的最小项
那么就可以知道了对于数据选择器,我们可以写出该数据选择器的逻辑函数的表达式
关于数据选择器实现组合逻辑函数
参考视频地址:https://www.bilibili.com/video/BV1NE411r7dr?p=23
当所求的F表达式中最小项的变量的个数等于输入端的个数的时候
详细操作如下图所示,自己来讲述下是如何写的,一般都是先写出关于数据选择器的最小项表达式,也就是图中的“Y=”相关的表达式(其中的d0对应的就是最小项),然后再写出对应的最小项标准式(根据F表达式来写出,有的话系数为1,没有则系数为0),最后根据系数来写出对应的数据输入端的0/1
第一道题:
第二道题:
注意点:当F给的不是最小项标准式的时候,可以先将其换成最小项标准式然后再进行对比即可。
当所求的F表达式中最小项的变量的个数小于输入端的个数的时候
将MUX的高位地址输入端不用(接0或1),其余同上。
解决方法:这时候可以将输入端高位地址设置为0,也就是不使用输入端高位地址(接0或者1,区别就是前四个m1234 或者m5678的最小项),这样子的作用可以将其高位的计算省去,因为基于计算的其实是F表达式中的变量个数来进行决定的,而不是输入端的个数来进行决定。
当所求的F表达式中的最小项的变量的个数大于输入端的个数的时候
下面的图中AB*C
应该是AB*0
,倒数第二行的+
应该是=
8-1数据选择器实现16-1扩展
重点还是在于对使能端的操作
4-1数据选择器实现16-1扩展
数据分配器与扩展
XXXX
奇偶校验电路应用设计
关于奇偶校验
奇偶校验(Parity Check)是一种校验代码传输正确性的方法。
根据被传输的一组二进制代码的数位中"1"的个数是奇数或偶数来进行校验。
采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先自己来规定好的。
通常专门设置一个奇偶校验位,用它使这组代码中"1"的个数为奇数或偶数。
若用奇校验,则当接收端收到这组代码时,校验"1"的个数是否为奇数,从而确定传输代码的正确性。
这里的奇偶校验并不是根据奇数或者偶数来判断所理解的,而是奇偶校验是两种选择
如果你采用的是奇偶校验中的的"奇校验"模式的话,那么就是根据一段二进制位中的"1"的个数是否是奇数来进行判断,如果给定一组数据位中 1 的个数是偶数,那么奇校验位就置为 1
同理可得,如果是"偶校验"模式的话,那么就是根据一段二进制中的"1"的个数是否是偶数来进行判断, 如果给定一组数据位中 1 的个数是奇数,那么偶校验位就置为 1
电路设计
XXXX
基本RS触发器
用途:在后面写时序逻辑电路中,时序逻辑电路的重要组成部分就是由相关触发器所组成的,所以触发器是基础,同样也是时序逻辑电路的重点部分。
基本RS触发器是构成各种功能触发器的基本单元,所以称为基本触发器。它可以用两个与非门或两个或非门交叉耦合构成。
这里的话则以或非门为例子,如下图所示
基本RS触发器具有置0、置1和保持的逻辑功能,通常SD称为置1端或置位(SET)端,RD称为置0或复位(RESET)端,因此该触发器又称为置位—复位(Set-Reset)触发器或RDSD触发器
关于RS触发器的特点?
第一印象最大的特点就是,电路中一端的输出值作为另外一端的输入值
其中规定两个输入端不能同时为0。
关于RS触发器的状态?
对于Rd与Sd不同的输出都会有不同的含义,如下图所示
关于什么是现态和次态?
一般写法都是 Q^n 和 Qn+1,Qn 的含义则是现态,Q^n+1的含义是次态
基本RS触发器关系表达式
对于触发器来讲,关系表达式又被称作为特征方程,也就是在触发器中F关系表达式一般都称作为特征方程。
到这里,自己还可以发现下 组合电路 和 触发器的相关表达式还不同,组合电路输入的内容和输出的内容已经是固定了的,但是对于触发器来说,它的输出是根据当前输入和当前状态总共所决定的。
这里写相关的特征方程通过画卡诺图来进行表述,卡诺图为如下所示
通过卡诺图写出的特征方程(函数表达式)如下,这里需要填上相关约束条件(因为基本RS触发器中规定了Sd+Rd只能为1,也就是Sd和Rd不能同时为0)
什么是状态转移真值表?
将触发器的次态Qn+1与现态Qn、输入信号之间的逻辑关系用表格形式表示出来,这种表格就称为状态转移真值表,简称状态表。
怎么理解这个状态表,个人理解就是一张表中存在现态和次态,现态为输入,相关的输入信号为输入,次态为输出,然后类似真值表的方式写出,这种表就是状态表。
对于RS触发器的逻辑电路,两个输入和两个输出,如下图所示,你会发现为什么输出就只有一个,原因就是你分析过你会发现,这两个输出实则是互斥的,所以简话下就可以写成下面第一张图的左侧的形式。
知识点:说是说状态表,其实也可以作为真值表,它们最大的不同其实就是在真值表中加入了现态和次态的关系,所以通过下面的状态表,我们其实也就是画出对应的卡诺图,从而写出对应的函数表达式。
什么是状态转移图?
为什么Rd=0和Sd=0情况是不允许的?
上面的图中写到Rd=0 Sd=0的情况是不允许的,原因其实就是门的延迟时间是不一致的,这就会导致触发器的次态不确定,具体是什么意思?
基本RS触发器的波形图(时序波形)
工作波形图又称时序图,它反映了触发器的输出状态随时间和输入信号变化的规律,是实验中可观察到的波形。
下面的图是基本RS触发的波形图,其中红框的地方需要注意,也就是如果两个输入端Rd和Sd为0和0的话(RS触发器规定所不允许的值),此时从波形图中可以看到,Q和Q非都来到了1的情况,然后后面又给了一个Rd和Sd为1的情况,按照默认情况来讲的话两个输入为1应该是保持当前状态,但是这里的情况显示的是“不定”,具体的原因是什么呢?
前置知识点:只要是电子元件,那么这些元件都存在延时的情况,因为并不是百分之白的无延迟
这种情况其实只会发生在前面00 后面11,保持的时候因为延时的原因就可能会导致不同的结果,所以写上“不定的情况”
这里举个例题,如果Rd的延时比Sd的延时长的话,那么一开始为00,此时的Rd就会迟一点来到高电平,而Sd的话则是快一点来到高电平,然后接着就是11的输入,那么此时就会保持Reset的状态
在学习钟控RS触发器之前,先来看下基本RS触发器和钟控RS触发器的不同点,如下图所示为钟控RS触发器的逻辑电路
可以看到,它比起基本RS触发器多了两个与非门,和一个输入端CP。
这个CP输入端有什么作用的?可以看到如果CP输入端为1的话,那么这个与非门的只受到R或者S输入端控制,如果CP输入端为0的话,那么当R或者S不管输入什么,最终经过与非门出来的值都是为1,Rd和Sd都为1,最终的结果就是让该触发器保持之前的状态运行。
所以这里可以知道,这里的CP输入端的作用其实就是让电路当CP=0时候让其一直保持工作,或者CP=1的时候正常工作
钟控RS触发器
钟控RS触发器是在基本RS触发器基础上加两个与非门构成的,R为置0端,S为置1端,CP为时钟输入端。
当CP=1时,RD=R, SD=S,触发器状态将发生转移。
钟控RS触发器的特征方程
将RD、SD代入基本RS触发器的特征方程中可得出钟控RS触发器的特征方程为如下图所示
这里为了引出下面的钟控D触发器,这里来讲下关于约束条件,有什么办法可以将约束条件进行去除,如果不去除那么就有时候可能误操作导致相关问题的产生,就比如这里钟控RS触发器的约束条件是R*S=0才可以进行运行,那么有什么办法可以将这个约束条件进行去除,让我们不管输入什么都是可以正常运行的,这样的话也可以使得误操作产生的问题所去除,那么这里就需要用到钟控D触发器,实际上钟控RS触发器和钟控D触发器的区别就是在于该约束条件。
解决方法就是让RS=0恒成立的话,那么该约束条件也就不存在了,钟控D触发器就实现了这个RS=0为恒成立!
钟控D触发器
为了解决R、S之间有约束条件问题,可以将钟控RS触发器的R端接至D门的输出端,并将S改为D,便构成了如下图所示的钟控D触发器
此时有两种情况:
如果CP=1的时候,那么此时Rd的值就是Sd非,那么带会约束条件中就是 S非*S = 0,此时这个钟控D触发器中的电路约束条件则恒成立。
如果CP=0的时候,那么R为1,S为1,此时不符合约束条件,所以就是保持之前的状态即可。
钟控D触发器的特征方程
此时的Sd和Rd的输入值为如下
然后将其代入到基本钟控RS触发器的特征方程中
钟控D触发器在时钟作用下,其次态Qn+1始终和D输入一致,因此常把它称为数据锁存器或延迟 (Delay)触发器。由于D触发器的功能和结构都很简单,因此目前得到普遍应用。
钟控D触发器的状态表和激励表
钟控T触发器
钟控T触发器又是从钟控JK触发器上面变动而来的。
其实就是在钟控JK触发器上,当J=K=T的时候,此时的触发器就为钟控T触发器。
钟控T触发器的特征方程
同样将钟控T触发器中的输入端的表达式Sd和Rd带回到基本RS触发器中,当CP=1,得出如下特征方程表达式
钟控T触发器的状态表和激励表
钟控JK触发器
JK触发器具有保持、置位1/0、翻转的功能。
钟控D触发器,钟控JK触发器也可以消除约束条件。
钟控JK触发器的特征方程
如下的表达式带到基本RS触发器中的特征方程即可
JK触发器的拓展
1、如何通过JK触发器实现T触发器?
当J=K=T的时候(这里的T代表的是D触发器中的“T”变量),都作为T带进去化简就可以得到T触发器的特征方程。
2、如果通过JK触发器实现D触发器?
当J=D,k=D非,导入化简就可以得到D触发器的特征方程。
3、如果通过JK触发器RS触发器的功能?
当J=R,K=S,替换字母即可得到RS触发器的特征方程。
上面三个问题对应的逻辑电路如下所示
关于触发器的总结图
关于这四种钟控触发器的表达式都需要牢记,因为在后面时序电路中都遇到!
下面的图中RS触发器的R=1 S=1的时候应该是维持,而R=0 S=0的时候应该是不允许
边沿触发器
其实所有的边沿触发器,实际上也就是在上面的四种触发器中修改了一点东西,一般考点都会考关于边沿触发器的时序图!
同时具备以下条件的触发器称为边沿触发方式触发器 (简称边沿触发器):
1、触发器仅在CP某一约定跳变到来时,才接收输入信号;
2、在CP=0或CP=1期间,输入信号变化不会引起触发器输出状态变化。
因此,边沿触发器不仅克服了空翻现象,而且大大提高了抗干扰能力,工作更为可靠。
边沿触发方式的触发器有两种类型:
一种是维持—阻塞式触发器,它是利用直流反馈来维持翻转后的新状态,阻塞触发器在同一时钟内再次产生翻转
任爱锋老师教的是下面这种,通过时钟跳变来接收输入信号
另一种是边沿触发器,它是利用触发器内部逻辑门之间延迟时间的不同,使触发器只在约定时钟跳变时才接收输入信号。
时序图
这里的考点一般都是给你一个由触发器所构成的电路,然后给你CP的输入值,然后让你画出对应的时序图
作题步骤如下,作题的步骤,每次都最好先以时钟CP的作用沿画好线,然后再根据对应的触发器方程来画图即可
还有注意的就是异步操作的时候是不受到时钟CP的控制的,这种属于强行操作,在画图的时候需要注意。
第一种就是给你简单的一个边沿触发器,不存在相关的,让你画,比如下面这道题画对应D触发器的时序图
这里需要注意的就是起始状态,题目中没有说明,所以这里可以任意
第二种就是一个边沿触发器存在异步操作的时候,这时候在画图的时候还需要注意是否进行了异步操作,异步操作的优先级大于输入端。
第三种就是两个边沿触发器级联的情况,这种让你画时序图,如下图所示
问题:在触发器级联的时候,如上面这道题,因为q=x,r=x,那么可以说q=x吗?
答案是不能的,只有当q=x r=x q=x的情况是出现在边沿钟控触发的时候才成立。
如果是逻辑电路的情况下,这种说法是成立的。
时序电路的分析和设计
什么是时序电路
逻辑电路分为两类:一类是组合逻辑电路,另一类是时序逻辑电路。
在组合逻辑电路中,任一时刻的输出仅与该时刻输入变量的取值有关,而与输入变量的历史情况无关;
在时序逻辑电路中,任一时刻的输出不仅与该时刻输入变量的取值有关,而且与电路的原状态,即与过去的输入情况有关。
与组合逻辑电路相比,时序逻辑电路有两个特点:
1、时序逻辑电路包含组合逻辑电路和存储电路两部分,存储电路具有记忆功能,通常由触发器组成;
2、存储电路的状态反馈到组合逻辑电路的输入端,与外部输入信号共同决定组合逻辑电路的输出。
组合逻辑电路的输出除包含外部输出外,还包含连接到存储电路的内部输出,它将控制存储电路状态的转移。
时序电路的描述
一个时序电路都会有三个方程组,第一个方程组称为输出方程,第二个方程组称为驱动方程(或激励方程), 第三个方程组称为状态方程。
这里直接拿一个时序电路(存储电路由D触发器组成)来进行描述这三个方程组,如下图所示
时序电路的分类
同步与异步分类
时序电路也分为同步时序电路和异步时序电路。
同步时序电路:时钟端来源于同一个时钟源
异步时序电路:时钟端来源于不同的时钟源
输出信号分类
时序电路按输出信号的特点又可以分为两种时序电路,分别为米里型和摩尔型
米里型(Mealy)时序电路:输出方程可以看出内部状态和外部输入有关,即输出方程为Z=F(X,Q)
特点:可以直接看到外部的输入
摩尔型(Moore)时序电路:输出方程看出只与内部状态有关的话,即输出方程为Z=F(Q)
特点:看不到外部的输入
这里继续提出一个问题,如何能够将米里型的电路和摩尔型的电路进行切换?
任爱锋老师说可以在输出的后面再加上一个D触发器,这样就可以实现隐藏外部输入的情况,从而只能看到关于Q内部状态的情况。
时序电路的分析
1、根据逻辑图求出时序电路的输出方程和各触发器的激励方程
2、根据已求出的激励方程和所用触发器的特征方程,获得时序电路的状态方程
3、根据时序电路的状态方程和输出方程, 建立状态转移表, 进而画出状态图和波形图
4、分析电路的逻辑功能
例题一:
1、根据逻辑图求出时序电路的输出方程和各触发器的激励方程
2、根据已求出的激励方程和所用触发器的特征方程,获得时序电路的状态方程
3、根据时序电路的状态方程和输出方程, 建立状态转移表, 进而画出状态图和波形图
状态转移表:
状态图:
波形图:
4、分析电路的逻辑功能
知识点:
1、其实状态转移表是有两种的,同样分别为米里型和摩尔型的状态转移表,比如上面的状态转移表,这种的话是一般都是米里型时序电路
类似这种输出Z一般都是写在外面的,那么这种一般都是米里型的
其状态转移图也会有点不一样,可以看到图中米里型的状态转移图输出是写在外面的
下面这种一般是摩尔型的,但也不是一定的,可以看到输出Z是写在里面的
其状态转移图也会有点不一样,可以看到图中米里型的状态转移图输出Z是写在里面的
如果一个时序电路没有外部的输入和输出的话,那么状态转移表一般都是如下这种样子来画的,感觉其实咋画都可以,没有外部的输入那么就是摩尔型的
但是自己的书本上的话,尽管是摩尔型的,但是输出也同样是写在外面的,就比如"000"->"001"
但是书本上是标了图例的,有表注进行说明
小技巧:环中一般有X个圈(有效状态),就可以说是模X计数器,因为环是闭合的,并且是递进的,所以是循环的
注意:我这里说并不是说只要是环,其中的圈都是,这里还分为"有效状态","无效状态","自启动"这几个概念
什么是有效状态?什么是无效状态?什么是自启动?
下面这种就是不能自启动的电路
寄存器
寄存器用于寄存一组二进制代码,它被广泛用于各类数字系统和数字计算机中。因为一个触发器能存储一位二进制代码, 所以用n个触发器组成的寄存器能存储一组n位二进制代码。对寄存器中使用的触发器只要求具有置1、置0的功能
即可, 因而无论是用基本RS结构的触发器,还是用数据锁存器、主从结构或边沿触发结构的触发器,都能组成寄存器。
一般常用的就是D触发器(锁存器)
双拍接收四位存储寄存器
由基本RS触发器构成的二拍接收四位数据寄存器。当清0端为逻辑1,接收端为逻辑0时,寄存器保持原状态。
当需将四位二进制数据存入数据寄存器时,需二拍完成:第一拍,发清0信号(一个负向脉冲),使寄存器状态为 0 (Q3Q2Q1Q0=0000);第二拍,将要保存的数据D3/D2/D1/D0送数据输入端(如D3/D2/D1/D0 =1101),再送接收信号(一个正向脉冲),要保存的数据将被保存在数据寄存器中(Q3/Q2/Q1/Q0 =1101)。从该数据寄存器的输出端Q3/Q2/Q1/Q0可获得被保存的数据。
下面的图,对应的就是双拍接收四位存储寄存器
自己的理解过程如下:
单接收四位存储寄存器
由D触发器(数据锁存器)构成的单拍接收四位数据寄存器。当接收端为逻辑0时,寄存器保持原状态;当需将四位二进制数据存入数据寄存器时,单拍即能完成——将要保存的数据D3/D2/D1/D0送数据输入端(如D3/D2/D1/D0=1101),再送接收信号(一个正向脉冲),要保存的数据将被保存在数据寄存器中(Q3/Q2/Q1/Q0=1101)。同样从数据寄存器的输出端Q3/Q2/Q1/Q0可获得被保存的数据。
移位寄存器
当存在串行数据的时候,就需要通过移位寄存器来进行保存了
这里的串行就是多个数据连续单条发送。
按照移动位置的方向,还分为,单向移位寄存器(左移,右移),双向移位寄存器(两个方向的移动都满足)
第一个就是左移或者右移的单向移位寄存器
第二个就是双向移位寄存器
计数器
计数器的主要功能是累计输入脉冲的个数。
计数器有许多不同的类型。按时钟控制方式来分,有异步、同步两大类; 按计数过程中数值的增减来分,有加法、减法、可逆计数器三类;按模值来分,有二进制、十进值和任意进制计数器。