# 数字逻辑电路笔记 **Repository Path**: CCCCOOH/logism-notes ## Basic Information - **Project Name**: 数字逻辑电路笔记 - **Description**: 数字逻辑电路相关笔记📒 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-11-16 - **Last Updated**: 2024-11-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数字逻辑电路笔记📒 > ✨***目录*** [TOC] > 作者的废话:关于数字逻辑电路笔记,我决定全部塞在一片文章。✍️ > > 阅读本文注意事项: > > ❌**错误查看方式**:直接在**Gitee**上阅读 > > 🙆**正确查看方式**:复制到**Typora**或者其他支持**Markdown**查看/编辑软件上阅读,如:***VisualStudio***、***SublimeText***等 ## 半加器 输入:两个1位的二进制数 输出:进位+本位 特点:不考虑低位的进位。 规定符号: - 本位和 - `S` - 半加进位 - `C` 因为是`1`位,所以输入只有`1`或`0`两种可能。那么总共就只有三种可能性:`0+0=0`,`0+1=1`,`1+1=2`,其中`1+1=2`产生了进位,本位就是`0`进位是`1`。 ___ 可以列出真值表(A、B为输入,S、C为输出): | A | B | S | C | | ---- | ---- | ---- | ---- | | 0 | 0 | 0 | 0 | | 0 | 1 | 1 | 0 | | 1 | 0 | 1 | 0 | | 1 | 1 | 0 | 1 | 也可以写出逻辑表达式: $S=A \oplus B$ $C=AB$ 对应的逻辑图: img 平常主要是用的是半加器的逻辑符号: 截屏2024-11-16 21.36.47 ## 全加器 全加器与半加器唯一的区别就是考虑了低位的进位,所以输入也增加了一个:低位的进位。 规定的符号: - 低位的进位:$C_{i-1}$ - 向高位的进位:$C_i$ - 本位:$S_i$ --- 对应的真值表如下: 截屏2024-11-16 21.42.16 逻辑表达式: $S_i=A_i\oplus B_i\oplus C_{i-1}$ $C_i=(A_i\oplus B_i)C_{i-1}+A_iB_i$ 全加器对应的逻辑符号: 截屏2024-11-16 21.44.20 ## 集成全加器 集成全加器有两种,TTL的全加器和CMOS的C661全加器 - TTl:74LS183 - CMOS:C661 截屏2024-11-16 21.54.09 > 需要说明的是,这里的两个集成全加器各自都有两个管角是空的,这代表这几个管角**没有任何功能**,不用管它。 > > 至于原因,是为了匹配插座特意设计出来的,常用的管角数量为**14**、**16**,偏偏就是没有**12**管角的,所以如果设计成**12**个管角,很可能找不到对应的插座,于是便多出来了两个管角。 --- 集成全加器的仿真: 可以在Multism中搭建如图所示的电路来仿真全加器,在你拖拽出`74LS183`集成电路的时候,你会发现系统会让你选择`A|B`,这里的A和B就是`74LS183`上的两个全加器,你可以选择其中的一个进行放置。 截屏2024-11-16 21.57.54 ## 乘法器 二进制的所有运算皆基于二进制的加法器,以两位二进制相加为例。 > 形式如:`01*11`、`11*11`这种。 所以就可以写出表达式(这里的$A$就是$10$这种两位二进制数,里面的每一位就是$A_1$和$A_2$: $A=A_1A_0$ $B=B_1B_0$ 我们假设,$A*B=P$ 那么$P=A_1A_0 * B_1B_0$ 类比十进制中两位数的加法可以写出这样的式子: 截屏2024-11-16 22.07.08 $P_0=A_0B_0$ $P_1=A_1B_0+A_0B_1$ 因为$P_1$中可能携带进位,所以$P_2=A_1B_1+C_1$这里的$C_1$就是$P_1=A_1B_0+A_0B_1$中可能的进位。 $P_3=C_2$这里的$C_2$是$P_2=A_1B_1+C_1$中可能的进位。 --- 通过这样的式字,我们可以发现两位二进制的乘法就被转化成了加法和与运算,也就是说使用全加器和与门就可以实现一个乘法器☝️🤓。 这样我们就可以写出对应的逻辑电路图(只用到了与门和加法器)。 截屏2024-11-16 22.14.49 可以在Multism中设计仿真电路图: 截屏2024-11-16 22.15.43 ## 多位二进制的加法器 前面说到的加法器都仅限于一位的二进制之间的加法,然而对于多位二进制的加法有两种。 - 串行进位加法器 - 超前进位加法器(并行进位加法器) 1. 串行进位加法器: 截屏2024-11-16 22.18.47 可以看出这种加法器就是把全加器串在了一起,每个全加器都要等待上一个全加器的高位进位输出作为自己的输入,所以会导致一个结果☝️:不能做到同时执行加法器,运行速度缓慢。 总结一下串行进位加法器的特点: - 电路简单,容易连接 - 速度低 2. 并行进位加法器 截屏2024-11-16 22.22.57 同样的,有下面的特点: - 内部电路复杂 - 运行速度快(同时执行) ## 编码器的概念 **编码的概念**:将二进制转成十进制称之为解码,将十进制转换成二进制称之为编码。 **编码器**:将十进制转换成二进制的电路称之为编码器,简单来说就是将我们熟悉的十进制编译成计算机认识的二进制代码,所以叫做编码。 **编码器的分类**: - 二进制编码器 - 二-十进制编码器 - 优先编码器 我们知道,一位二进制可以表示两种信息,两位二进制可以表示四种信息,三位则可以表示八种信息。也就是说,$n$位二进制可以表示$2^n$种信息。那么我们如果想要表示一个十进制,就需要二进制能表示的信息数量大于等于这个十进制的值。 也就是,$2^n >= N$,这里的$N$表示十进制的值,$n$则是二进制的位数。如果我们的二进制位数刚好用完了,就叫做全编码;反之,没有利用完,就叫做部分编码。 - $2^n = N$ - 全编码 - $2^n > N$ - 部分编码 ## 二进制编码器 例如:设计一个能将$I_0,I_1,I_2,...,I_7$八个输入信号编成二进制代码输出的编码器,用与非门实现。 设计如下真值表: 截屏2024-11-17 23.06.45 然后写出对应的表达式: 例:$Y_2=\overline{I_7}·\overline{I_6} · \overline{I_5} · I_4+\overline{I_7}·\overline{I_6}·I_5+\overline{I_7}·I_6+I_7$,然后利用$A+\overline{A}·B=A+B$进行化简得到全部的逻辑表达式: 截屏2024-11-17 23.14.36 得到逻辑图: 截屏2024-11-17 23.15.09 这里$I_0$被省略不画了,只要除了$I_0$以外的输入都为0,就相当于输入了$I_0$。 ## 优先编码器 功能:输入多个十进制数,根据优先级高低,优先取优先级最高的数字其余不看。 例如:给定优先级规则为数字越大优先级越高,那么输入多个十进制优先取数字大的作为输入,其余不看,也就是输入8、7、3这三个数,直接取8作为输入其余不看。所以下方的真值表中有八叉`X`,代表输入什么都无所谓,因为比他大的树字会被优先取。 真值表: 截屏2024-11-17 23.18.55 可以写出对应的逻辑表达式: > 注意这里也是根据$A+\overline{A}·B=AB$规则来华化简后的结果。 截屏2024-11-17 23.24.10 **8线 - 3线优先编码器 74LS48**: 74LS48 - $\overline{I_0} - \overline{I_7}$:信号输入端 - $\overline{Y_2}、\overline{Y_1}、\overline{Y_0}$:编码输出端 - $\overline{ST}$:选通输入端 - $Y_s$:选通输出端 - $\overline{Y_{ES}}$:优先扩展输出端 这里加了非号,表示将所有输入和输出取非,也就是说输入从之前的1有效变成了 0 才有效。 对应的真值表: 截屏2024-11-17 23.33.40 这里的$\overline{ST}$这个整体是0的时候表示,$ST$的值是1,也就是芯片正常工作,而$\overline{ST}$这个整体为1的时候,也就是$ST$为0,就表示芯片不工作。 - $Y_s$:编码器工作,但是无编码请求为低电平,对应第二行。 - $\overline{Y_{ES}}$编码器工作,并且有编码请求时为低电平,和$Y_s$是互斥的。 - 在上面所有的输入中,$\overline{Y_7}$的优先级最高;$\overline{Y_0}$最低。 Multism仿真电路设计: 截屏2024-11-17 23.28.33 ## 与非门RS触发器 一、电路组成: 截屏2024-11-20 20.10.16 这里的$\overline{S_D}$为置1端,称为Set;$\overline{R_D}$称为置零端,称为Reset。并且需要注意,$\overline{Q}、Q$是两个相反的输出。 > 只要看到输入输出为取非的符号,就需要知道这里是低电平有效。 - $Q=1$,$\overline{Q}=0$时称为触发器的1状态,即为$Q=1$. - $Q=0$,$\overline{Q}=1$时称为触发器的0状态,即为$Q=0$. 二、逻辑功能(不考虑现态和次态) 截屏2024-11-18 14.05.39 这张图告诉我们,Set有效(置0)的时候,将Q设置为有效(置1);Reset有效时将Q设置为无效。当Set和Reset都无效就相当于输入没有更新状态不做改变,当Reset和Set都有效是一种不合理的情况,需要避免并且在逻辑上是不被允许的。 > 对于RS触发器,不需要死记真值表,理解Reset和Set的概念就算学会了。 三、特性表 在上述RS触发器的基础上增加了下一次的状态$Q_{n+1}$的真值表。 - 现态$Q_n$:触发器接收输入信号之前的状态。 - 次态$Q_{n+1}$:触发器接收到输入信号之后的状态。 > 现态和次态是两个相邻时间里触发器输出端的状态。 **真值表**: 截屏2024-11-18 14.18.49 > **注意**⚠️:低电平(置零)有效。 **约束条件**:$\overline{R_D}+\overline{R_S}=1$,因为当两者都是零的时候触发器不允许,满足约束条件意味着有效输入。 四、特性方程 由于上面这张真值表有重复信息($Q_n$和$Q_{n+1}$重复,没必要都写),我们可以将其化简后得到特性方程。 截屏2024-11-18 14.22.57 用**卡诺图**表示出来: 截屏2024-11-18 14.23.53 得到**特性方程**: - $Q^{n+1}=S_D+\overline{R_D}·Q^n$ - **约束条件**:$\overline{R_{D}}+\overline{S_D}=1$ 五、状态转换图 截屏2024-11-18 14.41.08 > `X`表示0或者1两种情况。 六、驱动表 截屏2024-11-18 14.42.11 根据输出来判定输入的情况的真值表叫做驱动表。 [**例1**]:设触发器初始状态为0,试对应输入波形画出$Q$和$\overline{Q}$的波形。 截屏2024-11-18 14.45.20 > 这里$\overline{Q}$省略,将$Q$取反即可。 [**例2**]:信号的分时撤销和同时撤销。 上面提到,当Reset和Set同时有效也就是违反约束条件的情况,这时需要将信号调整成正常的情况,那么就会出现信号的分时撤销和延时撤销。 我们知道0为有效电平,当$\overline{S_D}$和$\overline{R_D}$都为0时同时有效,信号撤销就是:(**0 -> 1**)。 **分时撤销**: 截屏2024-11-18 14.53.00 > 分时撤销取决于后撤销的信号,跟正常状态相同的分析。 例如,上图中$\overline{S_D}$最先变成了1,就是先撤信号,那么$\overline{R_D}$就是后撤信号,由后撤信号决定波形,所以属于正常情况中的Reset有效的情况,结果是$Q=0$;见下图。 截屏2024-11-18 14.58.40 **同时撤销**: 截屏2024-11-18 14.59.48 > 同时撤销根据电路内部的延时状态等复杂情况决定谁先起作用,状态不定(竞态)。 ## 或非门RS触发器 一、电路组成: 截屏2024-11-20 20.48.23 二、逻辑功能 截屏2024-11-20 20.39.33 三、特性表 截屏2024-11-20 20.40.46 > 注意:与与非门RS触发器不同,高电平有效。 **约束条件:**$R_D·S_D=0$ 可以得到简化的特性表: 截屏2024-11-20 20.42.57 画出**卡诺图**如下: 截屏2024-11-20 20.43.43 得到最终的特性方程: 截屏2024-11-20 20.44.43 ## 两种RS触发器的对比 逻辑符号对比: 截屏2024-11-20 20.46.12 可以发现, - **与非门RS触发器**低电平有效,**或非门RS触发器**高电平有效。 - **与非门RS触发器**左边为Set端口,右边为Reset端口;**或非门RS触发器**左边为Reset端口,右边为Set端口。 基本RS触发器的优缺点如下: - 优点:电路简单,是构成各种触发器的基础🎉。 - 缺点:输入有约束条件;抗干扰能力差👎。 ## 同步RS触发器 一、电路组成 截屏2024-11-20 22.03.14 与原来的**与非门RS触发器**相比增加了两个与非门,由**时钟CP**控制的门$G_3,G_4$。并且可以看出,在CP置0️⃣的时候,上方的与非门$RS$触发器一定是两个$1$的输入,此时一定为保持状态。只有当$CP$置1️⃣的时候才会工作。 二、逻辑功能 特性表如图所示: > 高电平为有效信号📶。 截屏2024-11-20 22.07.21 对应的逻辑符号: 截屏2024-11-20 22.08.34 包含**异步端的同步RS触发器**的逻辑符号如下: 截屏2024-11-20 22.10.08 - $R、S$被称为**同步输入端**的原因:$R、S$输入会收到$CP$端的影响,一旦$CP$置$0$,$R、S$端就被封锁了。 - $\overline{S_D}、\overline{R_D}$被称为**异步输入端**的原因:只要有一个起作用,输出就可以起作用不受CP端的影响。 > $S_D、R_D$可以起到预置触发器初始状态的作用,平时不工作时需要将$\overline{R_S}、\overline{S_d}$置为$1$。其实所谓的同步输入端与异步输入端就是看受不受到$CP$端的控制,收到控制就得等到一起作用,不受到控制就异步了。 三、特性表 => 特性方程 截屏2024-11-20 22.18.58 > 这个特性方程有效的前提一定是$CP$等于$1$。 四、状态转换图 容易得到对应的状态转换图: 截屏2024-11-20 22.21.17 五、同步RS触发器的优缺点 - **优点**:有了$CP$之后抗干扰能力增强,因为只要$CP$为$0$的时候能起到封锁作用,这时候无论怎么干扰都是保持的状态。 - **缺点**:仍然存在不定状态,$R、S$之间还是有约束条件。 > 一个需要注意的细节⚠️:如果$R、S$为$1$这时是处于无效状态,如果这个时候$CP$从$1$变成$0$但是$R、S$保持不变就会出现不定状态,具体见下图。 截屏2024-11-20 22.26.04 ## 同步D触发器 一、电路组成 下图中左边为内部的电路组成,右边为逻辑表示: 截屏2024-11-20 22.49.53 > 不难发现,同步D触发器就是把同步RS触发器 S和R用一个非门化简成了D,这样的好处就是完美地规避了约束条件的问题。 - $S=D, R=\overline{D}$ 其他特性和同步RS触发器保持一致,都收到CP端的控制。 二、逻辑功能 功能也很简单,D端是1就置1,D端是0就置0。不存在输入有问题的情况,CP端置零也和原来一样起保持的作用。 截屏2024-11-20 22.53.31 三、卡诺图与特性方程 截屏2024-11-20 22.55.29 四、状态转移图 截屏2024-11-20 23.00.04 五、同步触发器的特点 - **优点**:无需考虑约束条件的问题,优于同步RS触发器。 - **缺点**:仍然存在空翻现象,限制了同步D触发器的应用。 六、集成同步D触发器:**74LS375** 这块芯片拥有13块管脚,可以理解为四个同步D触发器的拼接。 截屏2024-11-20 23.03.09 它的内部结构和上文提到的同步D触发器有所不同,区别在于上方的两个与非门被换成了或非门,下方的两个与非门被换成了与门,我们知道或非门的RS触发器的输入端左边是R右边是S,并且是高电平有效,所以D也在右边,为了和S端保持一致。 截屏2024-11-20 23.06.21 ## 边沿D触发器 **特性**:只在时钟脉冲CP的上升沿或者下降沿接收输入信号,在其他的CP状态触发器不接受数据,并且保持原态。 **上升沿与下降沿**:如下图中的两个红色箭头就分别表示上升沿和下降沿。 截屏2024-11-21 20.44.40 一、电路组成 这是一个下降沿D触发器的电路组成图。 截屏2024-11-21 20.46.53 可以看出,边沿D触发器就是由两个同步D触发器上下拼接在一起,并且经过了一些特殊的改进而组成。不难分析出来,主从触发器是互斥的,主触发器工作,从触发器一定不工作;从触发器工作,主触发器也不会工作。 **下降沿触发器的工作原理图**: 在CP变化的时候,如果CP是从0->1,我们称为**上升沿**;如果CP是从1->0,我们称为**下降沿**。可以类比成下面这个水管图,上升沿CP变成了1,那么主触发器就工作了,左边的阀门打开。并且,这个时候从触发器不工作,所以右边的阀门关闭。这个时候就是保持。 但是如果CP从1->0,也就是下降沿。那么主阀门关闭,从阀门打开,这个时候$Q=D$,更新状态。所以,综上所述,下降沿时$Q=D$,其他时候一直起到保持的作用。 截屏2024-11-21 20.48.57 **逻辑符号**: 截屏2024-11-21 20.57.17 截屏2024-11-21 20.57.53 不难发现,其实他长得和同步D触发器一样,所以为了区分他们两个,给边沿D触发器的$C_1$下面增加了一个**三角形**,表示边沿触发器。这里的小圆圈⭕️表示下降沿有效,如果没有⭕️就表示上升沿有效。 二、特性方程、特性表 截屏2024-11-21 21.00.05 波形图分析: 截屏2024-11-21 21.01.07 可以看出来,边沿触发器有一个区别于同步D触发器的很明显的特点:稳定,不容易“空翻”。 > 空翻现象就是指的是在CP没有变化的时候,$Q=D$,输出跟随D改变的现象。因为对于边沿触发器来说,只要不是位于下降或者上升的边沿情况,都是保持的,也就不容易“空翻”了。 三、集成边沿D触发器:**74LS74** 对应的**芯片管脚图**和**逻辑图**: 截屏2024-11-21 21.05.28 这里的$\overline{S_D}和\overline{R_D}$都是低电平有效的异步输入端,这里的CP没有⭕️,所以需要注意它是**上升沿**🔝边沿D触发器。跟上面的下降沿是相反的,它在**上升沿**才有效,这点不要弄错了。 带有异步端边沿触发器的**特性表**: 截屏2024-11-21 21.09.15 异步端优先级很高,一般起到预输入的作用,如果D和CP需要工作,一般需要将异步端置为零。但也可以利用它优先级高的特性,在工作中利用异步输入端强行置1或置0🤔。 带有**异步输入端上升沿D触发器**波形图分析: 截屏2024-11-21 21.12.44 四、边沿D触发器的特点 **优点**: - CP的上升沿或下降沿触发。 - 抗干扰能力强,解决了同步触发器的“空翻”现象。 **缺点**: - 只有置1或置0功能,功能有限不方便。 ## 边沿JK触发器 一、电路组成 截屏2024-11-21 22.23.23 可以看出,边沿JK触发器是从边沿D触发器进行一些扩展得到的,右边这部分就是我们所学的边沿D触发器。 **逻辑符号**: 截屏2024-11-21 22.25.03 这里的三角形表示边沿,小⭕️代表下降沿触发;如果没有这个小三角形就变成了同步触发器。 二、工作原理 我们知道,右边这部分是边沿D触发器,它的特性方程是这样的: $$ Q^{n+1}=D $$ 我们加上左边新增的逻辑门电路,对他进行化简就能得到新的特性方程: 截屏2024-11-21 22.32.01 $$ S^{n+1}=J \overline{Q^n}+\overline{K}Q^n(CP⬇️) $$ 三、特性表 同样的可以得到它的特性表和简化特性表,通过这个特性表可以看出JK边沿触发器非常的强大,被称之为功能最齐全的一种触发器。拥有保持、置一、置零、翻转、防空翻功能。所以它也是使用最广泛的一种触发器。 截屏2024-11-21 22.33.57 波形图分析: 截屏2024-11-21 22.37.34 > $\overline{Q}$和$Q$完全相反,这里没有写出来。 四、集成边沿JK触发器:**74LS112** 对应的**芯片管脚图**和**逻辑图**如下图所示: 截屏2024-11-21 22.39.47 > 注意⚠️:这里的异步输入端是低电平0️⃣有效,触发器是下降⬇️沿触发的。 **异步边沿JK触发器 74LS112**对应的特性表如下图所示: 截屏2024-11-21 22.41.31 可以看出,和之前的边沿D触发器芯片一样,带有异步输入端后,异步输入端的优先级最高。并且在工作时,异步端置1️⃣,防止干扰JK触发器正常工作。同时,两个异步输入端不能同时为0️⃣,否则无效。 对应**波形图**的分析: 截屏2024-11-21 22.47.41 ## T触发器和T'触发器 T触发器和T'触发器都是由JK触发器或D触发器构成,主要用来简化集成计数器的逻辑电路。 一、T触发器 T触发器拥有**翻转**和**保持**两个功能。并且,又可以分为上升沿和下降沿两种T触发器。 **逻辑符号**: 截屏2024-11-21 23.06.39 **特性表**: T触发器的功能就是,在下降沿到来的时候,T为0就保持,T为1就翻转。 截屏2024-11-21 23.08.30 **特性方程**比较简单: $$ Q^{n+1}=T\oplus Q^n $$ > 很容易看出来是异或。 用一个**波形图**进行分析: 截屏2024-11-21 23.10.48 二、T'触发器 T'触发器比T触发器还要简单,它的功能是在下降或者上升沿是进行一次翻转。 **逻辑符号与特性表**: 截屏2024-11-21 23.13.29 **特性方程**: $$ Q^{n+1}=\overline{Q^n}(CP⬇️) $$ 利用波形图进行分析: 截屏2024-11-21 23.14.39 > 所以,T'触发器实际上就是一个“二分频器“,因为CP**周期**在T'的作用下变成Q被分成了远来的1/2。 ## 主从JK触发器 截屏2024-11-20 19.51.59 - **J端**:是由原来的**Set**变化而来 - **K端**:是由原来的**Reset**变化而来 JK触发器和RS触发器基本一样,唯一的不同是当J和K都置1时由原来的不允许变成了翻转。 真值表与特性方程: 截屏2024-11-20 19.55.42 逻辑符号: 截屏2024-11-20 19.56.56 CP:正脉冲触发,表示在高电平接收信号,在下降沿时刻更新输出状态。 ## 同步时序电路的设计 一、基本步骤 截屏2024-11-23 21.07.24 [例题-1] > 设计一个按自然态序变化的**同步七进制加法计数器**,计数规则为逢七进一,产生一个进位输出。 解: 1. **建立状态转化图** 截屏2024-11-23 21.10.27 这里的`/0`和`/1`为是否进位的表示,也就是进位的输出,只有逢七才进一位。所以在`110`的时候加一才会进位,这时候是`/1`。 2. **求方程** - *时钟方程*:$CP_0=CP_1=CP_2=CP$ - *输出方程*: 截屏2024-11-23 21.15.23 $Y={Q_2}^n {Q_1}^n$作为电路的进位输出 - *状态方程*: > 先画出次态的卡诺图,再拆分开得各触发器的卡诺图。 *次态卡诺图*: 截屏2024-11-23 21.18.14 拆开后*各触发器的卡诺图*: 截屏2024-11-23 21.19.06 3. **求驱动方程** > 变换状态方程,使之形式与选用触发器的特性方程一致,比较后得驱动方程。 - $JK$触发器的特性方程:$Q^{n+1}=J\overline{Q^n}+\overline{K}Q^n$ - 比较并得到**驱动方程**: 截屏2024-11-23 21.24.26 4. **画电路图** 结合**驱动方程**和**输出方程**画出电路图: 截屏2024-11-23 21.26.04 5. **检查电路是否能自启动** > 能从无效的状态自己返回到正常状态称为**自启动**。 - 无效状态:$111$ - 状态方程: 截屏2024-11-23 21.30.00 - 输出方程: $Y={Q_2}^n {Q_1}^n$ 将无效状态带入到状态方程,得到次态为`000`,并且输出是`1`,所以可以自启动。 检验后得到对应的状态转换图: 截屏2024-11-23 21.32.27 6. **Multism 仿真电路图**: 截屏2024-11-23 21.34.14