WaterNorth's Blog

数字逻辑

23 分钟WaterNorth

重点 #

  • 三种基本逻辑关系:与、或、非及其运算规则、真值表和图形符号;
  • 常用复合逻辑运算:与非、或非、与或非、异或、同或及其运算规则、真值表和图形符号;
  • 逻辑功能的描述及其相互之间的转换,真值表、逻辑式、逻辑图、波形图、卡诺图;
  • 逻辑代数的公式及函数化简;
  • 卡诺图法化简逻辑函数。

一、逻辑代数运算 #

1、与运算(AND) #

运算规则:只有当两个输入都为 1 时,输出才为 1;只要有一个输入为 0,输出即为 0

逻辑表达式Y = A · B

图形符号286

真值表

ABY = A · B
000
010
100
111

2、或运算(OR) #

运算规则:只要两个输入中至少有一个为 1,输出就为 1;只有两个输入都为 0 时,输出才为 0

逻辑表达式Y = A + B

图形符号或门(OR)|307

真值表

ABY = A + B
00    0    
01    1    
10    1    
11    1    

3、非运算(NOT) #

运算规则:输出始终与输入相反:输入为 0 时输出为 1;输入为 1 时输出为 0

逻辑表达式Y = ¬A

图形符号非门(NOT)|283

真值表

AY = ¬A
0  1    
1  0    

4、与非运算(NAND) #

运算规则:先进行与运算,再将结果取反。只有当两个输入都为 1 时,输出为 0;其余情况输出均为 1

逻辑表达式Y = ¬(A · B)

图形符号与非门(NAND)|282

真值表

ABY = ¬(A · B)
00     1      
01     1      
10     1      
11     0      

5、或非运算(NOR) #

运算规则:先进行或运算,再将结果取反。只有当两个输入都为 0 时,输出为 1;只要有一个输入为 1,输出即为 0

逻辑表达式Y = ¬(A + B)

图形符号或非门(NOR)|331

真值表

ABY = ¬(A + B)
00     1      
010
10     0      
11     0      

6、异或运算(XOR) #

运算规则:当两个输入不相同时,输出为 1;当两个输入相同时,输出为 0

逻辑表达式Y = A ⊕ B = (¬A · B) + (A · ¬B)

图形符号异或门(XOR)|329

真值表

ABY = A ⊕ B
00    0    
01    1    
10    1    
11    0    

7、同或运算(XNOR) #

运算规则:当两个输入相同时,输出为 1;当两个输入不同时,输出为 0。同或运算等价于对异或运算结果取反。

逻辑表达式Y = ¬(A ⊕ B) = (A · B) + (¬A · ¬B)

图形符号同或门(XNOR)|304

真值表

ABY = ¬(A ⊕ B)
00     1      
01     0      
10     0      
11     1      

8、与或非运算(AOI,AND-OR-INVERT) #

运算规则:与或非门是复合逻辑门。以常见的 AOI21 为例:先计算 A · B,再将该结果与 C 进行或运算,最后对总结果取反。

逻辑表达式Y = ¬((A · B) + C)

图形符号

与或非门(AOI21)|301

真值表

ABCA · B(A · B) + CY = ¬((A · B) + C)
000  0       0              1          
001  0       1              0          
010  0       0              1          
011  0       1              0          
100  0       0              1          
101  0       1              0          
110  1       1              0          
111  1       1              0          

二、逻辑代数的基本定理 #

1、代入定理 #

代入定理说明:在一个恒等成立的逻辑等式中,若把等式两边同一个变量的所有出现位置,都用同一个逻辑表达式替换,那么替换后的等式仍然成立。它的本质是:逻辑等式对变量的具体表示形式不敏感。原来把某个变量看作一个整体,后来也可以把一个更复杂的逻辑式看作这个整体来参与运算。

若逻辑恒等式为:F(A,B,)=G(A,B,)F(A,B,\ldots)=G(A,B,\ldots) 则对任意逻辑表达式 PP,将 AA 全部替换为 PP 后,仍有:F(P,B,)=G(P,B,)F(P,B,\ldots)=G(P,B,\ldots) 更一般地,若同时进行多个代换,例如 APA\leftarrow PBQB\leftarrow Q,则:F(A,B,)=G(A,B,)F(P,Q,)=G(P,Q,)F(A,B,\ldots)=G(A,B,\ldots)\Rightarrow F(P,Q,\ldots)=G(P,Q,\ldots)

使用规则

  1. 必须在等式两边进行相同的替换。
  2. 同一个变量出现多次时,必须全部替换,不能只替换其中一部分。
  3. 被代入的 PP 可以是单个变量、常量,也可以是包含与、或、非运算的复杂逻辑式。
  4. 代入后要注意括号,避免改变原式的运算结构。

主要用法

  • 将已经掌握的基本恒等式推广到复杂逻辑式。
  • 在逻辑函数化简中,把复杂子式暂时看成一个整体,从而直接套用分配律、吸收律等公式。
  • 在电路设计中,对模块的输入输出关系进行替换和组合。

2、反演定理 #

反演定理用于求一个逻辑表达式的反函数,即求 F\overline{F}。对逻辑表达式 FF 求反时,不需要先逐层展开再计算;只需按照一定规则,把原式中的逻辑变量、逻辑常量和运算符同时反演,即可得到 F\overline{F}

设逻辑函数为:F=F(A,B,;0,1;+,)F=F(A,B,\ldots;0,1;+ ,\cdot) 则其反函数可写为:F=F(A,B,;1,0;,+)\overline{F}=F(\overline{A},\overline{B},\ldots;1,0;\cdot,+) 这表示:求 FF 的反时,需要将变量取反、常量互换、与或运算互换。

对一个逻辑表达式整体取反时,按以下规则同时处理:

原内容反演后
AAA\overline{A}
A\overline{A}AA
0011
1100
++\cdot
\cdot++

注意:原表达式中的括号层次不变,只是在每一层中将与、或互换,并对变量和常量进行反演。

主要用法

  • 快速求逻辑函数的反函数 F\overline{F}
  • 将逻辑表达式转换为只用与非门或只用或非门实现的形式。
  • 分析低电平有效信号,例如带横线的使能端、清零端和片选端。
  • 对含有多层括号的逻辑式进行化简和变形。

3、对偶定理 #

对偶定理说明:任何一个成立的逻辑恒等式,将其中所有的“或”与“与”互换,同时将所有的 0011 互换,得到的新等式仍然成立。由原表达式按上述规则得到的新表达式,称为原表达式的对偶式。

若逻辑恒等式为:F(A,B,;0,1;+,)=G(A,B,;0,1;+,)F(A,B,\ldots;0,1;+ ,\cdot)=G(A,B,\ldots;0,1;+ ,\cdot) 将其中的 ++\cdot 互换,并将 0011 互换,得到对偶式: Fd(A,B,;1,0;,+)=Gd(A,B,;1,0;,+)F^{d}(A,B,\ldots;1,0;\cdot,+)=G^{d}(A,B,\ldots;1,0;\cdot,+)仍然成立。 也可简写为: F=GFd=GdF=G\Rightarrow F^{d}=G^{d} 其中,FdF^{d} 表示 FF 的对偶式。

原内容对偶后
++\cdot
\cdot++
0011
1100
AAAA
A\overline{A}A\overline{A}

注意:构造对偶式时,变量本身和变量的反变量均保持不变;只交换运算符和逻辑常量。括号层次也保持不变。

主要用法:

  • 已知一个逻辑恒等式时,可迅速写出另一个同样成立的对偶恒等式。
  • 减少公式记忆量。例如记住一条分配律,就能通过对偶关系得到另一条。
  • 检查逻辑代数公式是否遗漏对应的对偶形式。
  • 在逻辑函数化简和电路推导中,快速得到对称的变换结果。

三、逻辑函数的化简 #

把一个逻辑函数写成最小项标准表达式。它又称为标准与或式最小项之和形式。与或式最简的标准,两个最少原则:

  • 与项个数最少;
  • 每个与项中变量个数最少。 这样,电路简单,实现容易,故障率低。

注意:最小项标准表达式是一种规范、完整的表达形式,不一定是项数最少的“最简表达式”。

1、最小项 #

定义: 对于含有 nn 个变量的逻辑函数,若一个与项中:

  1. nn 个变量都出现;
  2. 每个变量只出现一次;
  3. 每个变量以原变量或反变量的形式出现; 则这个与项称为一个最小项

例如,对于变量 A,B,CA,B,CABCA\overline{B}C 是最小项,因为 A,B,CA,B,C 都出现且各出现一次。 ABAB 不是三变量函数 A,B,CA,B,C 的最小项,因为它缺少变量 CCAABA\overline{A}B 不是最小项,因为变量 AA 重复出现,并且该项恒为 00

最小项的构造规则

先固定变量顺序。例如规定变量顺序为 A,B,CA,B,C

将某一输入组合写成二进制数时:

  • 位值为 00 的变量写成反变量;
  • 位值为 11 的变量写成原变量。

例如,输入组合 A=1,B=0,C=1A=1,B=0,C=1 对应二进制数 1012101_2,十进制编号为 55,其最小项为:

m5=ABCm_5=A\overline{B}C

三变量函数的全部最小项如下:

编号ABCABC 的二进制值最小项
m0m_0000000ABC\overline{ABC}
m1m_1001001ABC\overline{AB}C
m2m_2010010ABC\overline{A}B\overline{C}
m3m_3011011ABC\overline{A}BC
m4m_4100100ABCA\overline{BC}
m5m_5101101ABCA\overline{B}C
m6m_6110110ABCAB\overline{C}
m7m_7111111ABCABC

2、最小项的性质 #

设函数有 nn 个变量,则共有 2n2^n 个最小项,分别记为:m0,m1,,m2n1m_0,m_1,\ldots,m_{2^n-1}

  • 每个最小项只在唯一的一组输入下取 11
  • 任意两个不同最小项互斥
  • 全部最小项之和恒为 11
  • 任意逻辑函数都能唯一表示为若干最小项之和
  • 最小项编号取决于变量顺序

3、最小项标准表达式 #

若一个逻辑函数表示为若干个最小项的逻辑或,即:F=mi1+mi2++mikF=m_{i_1}+m_{i_2}+\cdots+m_{i_k},则该表达式称为函数的最小项标准表达式

4、公式法化简 #

公式法是利用逻辑代数的基本公式、基本定理和恒等变形,将原表达式逐步化简为最简与或式的方法。适用于变量较少、表达式结构较清晰,或者需要在推导过程中展示化简依据的题目。

核心思路: 公式法的目标不是机械地展开,而是不断寻找能够合并、吸收或删除冗余项的结构。化简时应优先寻找:

  • 仅有一个变量互补的相邻项;
  • 某一项被另一项包含的情形;
  • 可以由冗余项删除的共识项;
  • 可以通过因式分解后使用互补律或分配律的结构。

并项法: 当两个乘积项只有一个变量互补,而其他部分完全相同时,可以合并并消去这一对互补变量:AB+ABˉ=AAB+A\bar{B}=A

吸收法: 若一个项已经包含了另一个项所表示的全部情况,则较复杂的一项可以被吸收:A+AB=AA+AB=A 对偶形式为:A(A+B)=AA(A+B)=A

消因子法: 利用公式:A+AˉB=A+BA+\bar{A}B=A+B,将带有互补因子的项化为更简单的或项。

消项法(冗余定理): 若表达式中存在下列结构:AB+AˉC+BC=AB+AˉCAB+\bar{A}C+BC=AB+\bar{A}C,其中的 BCBC 称为冗余项,可以删除。

配项与补项: 配项的本质是通过等价变形构造可使用并项法、吸收法或冗余定理的结构。常用依据包括: X+Xˉ=1X+\bar{X}=1 XXˉ=0X\bar{X}=0 X=X+XYX=X+XY X=X(X+Y)X=X(X+Y) 使用时必须保证加入或拆分后的表达式与原函数等价,不能随意增加非冗余项。

对偶式辅助化简: 对不易展开的逻辑式,可先化简其对偶式,然后根据化简后的对偶式再写出原逻辑式。

5、卡诺图法 #

卡诺图法是利用变量取值之间的相邻关系,将函数值为 11 的最小项在卡诺图中按 22 的整数次幂进行分组,从而直接得到最简与或式的方法。它尤其适合由真值表、最小项编号或最小项标准表达式求最简与或式的问题。

格雷码排列

卡诺图的行、列标签必须按照格雷码排列,使相邻格只相差一个变量。[格雷码](格雷码 - 维基百科,自由的百科全书)是一个数列集合,相邻两数间只有一个位元改变,为无权数码,且格雷码的顺序不是唯一的。

例如,两位变量的排列顺序为:

00,01,11,1000,01,11,10

不能写成普通二进制顺序 00,01,10,1100,01,10,11

标记函数值

对于最简与或式,应在函数值为 11 的格子中填入 11。 若题目给出无关项,可以填入 XX。无关项可参与分组,也可以不参与分组,具体以能否使结果更简为准。

分组大小

每一个分组中包含的格数必须为 22 的整数次幂:

1,2,4,8,16,1,2,4,8,16,\cdots

分组越大,得到的乘积项中保留下来的变量越少。

相邻关系

卡诺图中以下格子视为相邻:

  • 水平相邻的格子;
  • 垂直相邻的格子;
  • 最左列与最右列对应的格子;
  • 最上行与最下行对应的格子;
  • 四个角上的格子彼此可以构成环绕相邻关系。

对角线方向的格子不相邻。

允许重叠

不同分组之间可以重叠。重叠的目的通常是覆盖某些只能由特定组覆盖的 11,或获得更大的分组以减少文字数。

卡诺图化简为最简与或式的步骤

  1. 根据题目写出函数为 11 的最小项编号,或由真值表确定所有值为 11 的格子。
  2. 按格雷码顺序填写卡诺图。
  3. 优先圈出包含格子数最多的组,即优先圈 88 格、44 格、22 格,最后才考虑单格。
  4. 保证每一个 11 至少被一个分组覆盖。
  5. 先选择覆盖“孤立的 11”或“只能由一个组覆盖的 11”的必要分组。
  6. 对每个分组,找出在组内始终不变的变量:
    • 不变且取值为 11 的变量写原变量;
    • 不变且取值为 00 的变量写反变量;
    • 在组内发生变化的变量消去。
  7. 将各分组对应的乘积项相加,得到最简与或式。

由分组写出乘积项的规则

只有在整个分组内取值保持不变的变量才保留。设某个分组内:

  • AA 始终为 11,保留 AA
  • BB 始终为 00,保留 Bˉ\bar{B}
  • CCDD 在组内发生变化,删除 CCDD

则该组对应的乘积项为:

ABˉA\bar{B}

四变量卡诺图示例

已知:

F(A,B,C,D)=Σm(0,1,2,3,8,9,10,11,12,13,14,15)F(A,B,C,D)=\Sigma m(0,1,2,3,8,9,10,11,12,13,14,15)

ABAB 为行变量、CDCD 为列变量,卡诺图如下:

AB\CDAB\backslash CD0000010111111010
000011111111
010100000000
111111111111
101011111111

分组一:

AB=00AB=00AB=10AB=10 两行的全部 11 作为一个 88 格组。由于卡诺图首尾相邻,这两行可以环绕相邻。

在该组中:

  • B=0B=0 始终不变;
  • AACCDD 都发生变化。

因此,该组对应的乘积项为:

Bˉ\bar{B}

分组二:

AB=11AB=11AB=10AB=10 两行的全部 11 作为另一个 88 格组。

在该组中:

  • A=1A=1 始终不变;
  • BBCCDD 都发生变化。

因此,该组对应的乘积项为:

AA

将两个分组对应的乘积项相或,得到:

F=A+BˉF=A+\bar{B}

这就是该函数的最简与或式。

卡诺图法的选组原则

为了使得到的表达式最简,应遵守以下优先级:

  1. 优先选择最大的组。
  2. 在能够覆盖所有 11 的前提下,分组个数尽量少。
  3. 分组时允许重叠,但重叠必须有助于减少项数或文字数。
  4. 不要遗漏边界相邻和角相邻的环绕关系。
  5. 最终每个 11 都必须至少被覆盖一次。
  6. 不要为了“看起来整齐”而使用比必要数量更多的小组。

评论

0

评论功能待配置数据库后启用。