首先祝大家新年快乐!在纷扰世界中,清醒坚定,万事顺成。
逻辑函数的表示形式包括逻辑式、真值表、波形图、卡诺图、逻辑(电路)图等多种形式,其中真值表具有唯一性,逻辑式是基本形式,概念上往往与逻辑函数混用。逻辑式与真值表的转换是一个比较简单的问题,但是这里又涉及到方法与效率问题。
1.真值表
⑴理解真值表
根据逻辑运算一文中提过的概念,逻辑函数的真值表是一个列出输入变量所有可能取值和对应的输出变量值的表格,通过这张表,我们可以了解每个逻辑函数的输入、输出关系。对于 n n n个输入变量的逻辑函数,其真值表有 2 n 2^n 2n行。
真值表的每一行对应一个输入组合及其相应的函数值(即输出值),函数值为真(1)代表该输入组合对函数成立,因此,所有输出为1的行间是或的关系。而这些输出为1的每一行,其输入组合最直观的表达是与运算,即变量取值为1用原变量,取值为0用反变量,之间相与。例如表1所示真值表,对输出变量
Y
Y
Y,有效的输入组合是第二、三、四行,它们之间是或的关系,每一行则是原变量或反变量的与运算,例如第二行是
A
ˉ
B
\bar{A}B
AˉB,第三行是
A
B
ˉ
A\bar{B}
ABˉ。
⑵由真值表写出逻辑式
①如果真值表比较简单,逻辑关系明确,可以直接写出来,例如表1就是逻辑或
Y
=
A
+
B
Y=A+B
Y=A+B
②一般情况下,可根据上一小节的分析,将输出为1的各行的与运算求或,写出与或表达式。还以表1为例,由第二、三、四行:
Y
=
A
ˉ
B
+
A
B
ˉ
+
A
B
Y=\bar{A}B+A\bar{B}+AB
Y=AˉB+ABˉ+AB
③以上两个表达式,反应同一张真值表,很明显,第一个更简洁,大多数情况下,我们希望逻辑函数的表达式最简。但有时候,我们也需要第二种表达式,它的每一个乘积项(与项)都包含所有输入变量(以原变量或反变量形式出现一次),这样的乘积项就是所谓的最小项,这种与或表达式被视为标准与或式,也称最小项之和式,以后会专门讲解。
④对一个真值表,也可以针对输出为0的那些行写出
Y
ˉ
\bar{Y}
Yˉ。因为
Y
+
Y
ˉ
=
1
Y+\bar{Y}=1
Y+Yˉ=1,我们将所有输出为1的项相加得
Y
Y
Y,那么,剩下的所有输出为0的项相加就得
Y
ˉ
\bar{Y}
Yˉ,例如由表1所示真值表可得
Y
Y
Y的反函数
Y
ˉ
=
A
ˉ
⋅
B
ˉ
⇔
Y
=
A
+
B
\bar{Y}=\bar{A}\cdot \bar{B}\Leftrightarrow Y=A+B
Yˉ=Aˉ⋅Bˉ⇔Y=A+B
⑶逻辑函数的化简问题
进行逻辑电路设计,(对应于真值表或状态转换表的)初次逻辑式的化简是必要的。
化简逻辑函数,首先要有一个最简的标准,以与或表达式为例,最简与或式的是指:表达式中乘积项最少,每个乘积项中变量个数也最少。
化简方法包括代数化简法和卡诺图化简法,后者另文讲述。灵活运用逻辑函数的规律规则,是代数化简法的关键,教材里面一般会归纳出并项法、配项法、吸收法、消因子法等等,其实这些方法名称无关紧要,靠的是熟悉度、观察力和反应力。仅举一例:
题1 化简逻辑函数为最简与或式
Y
=
A
+
B
‾
+
C
D
‾
‾
+
A
D
‾
⋅
B
‾
‾
Y=A+\overline{\overline{B}+\overline{CD}}+\overline{\overline{AD}\cdot \overline{B}}
Y=A+B+CD+AD⋅B
解析:用代数法化简如下,用到反演律(摩根定理)和吸收率
Y
=
A
+
B
⋅
C
D
+
(
A
D
+
B
)
=
(
A
+
A
D
)
+
(
B
+
B
C
D
)
=
A
+
B
\begin{aligned} Y&=A+B\cdot CD+(AD+B)\\ &=(A+AD)+(B+BCD)\\ &=A+B \end{aligned}
Y=A+B⋅CD+(AD+B)=(A+AD)+(B+BCD)=A+B
2.根据逻辑式写出真值表
⑴意义何在
由真值表写逻辑式,很好理解,但是从逻辑式写真值表,有同学会问这有什么用?
简单说,真值表是一个非常好的过渡工具。
例如,要写出一个逻辑函数的标准与或式,一般需要补全因子并扩项,代数法过程比较繁杂,但是只要你列出它的真值表(或卡诺图),就可以很快写出标准与或式,出错概率很低。
第二个例子,为了直观体现某组合逻辑电路的输入输出关系,有时候需要画出它的波形图,而画图之前,应当先列出真值表。
⑵常规方法
把输入变量取值的所有组合逐个代入逻辑式中求出对应的输出变量值。这种做法比较耗时。
⑶快速写法
首先,如果逻辑函数不是与或式,应转换为与或式。
然后,基于或运算的各项独立性,将每一个乘积项对应的行的输出值取为1。具体方法是:乘积项中原变量看作1,反变量看作0,找到真值表中对应组合(可能不止一行),令这些行输出值为1。处理完所有乘积项后,真值表中剩余行的输出填写0。
题2 已知函数 F ( A , B , C , D ) = B + A C + A ‾ D F(A,B,C,D)=B+AC+\overline{A}D F(A,B,C,D)=B+AC+AD,列真值表。
解析:①在真值表中,找到所有 B = 1 B=1 B=1的行,输出值填写1,如下表。
②找到所有 A A A和 C C C同时为1的行,输出值填写1,如下表。
③找到所有 A = 0 A=0 A=0且 D = 1 D=1 D=1的行,输出值填写1,如下表。
④其余行的函数值填写0,得真值表如下。
预计明后天会在下方公众号发布一个基础知识题库(其他平台有条件发布),有复习需要的同学可前往查阅,欢迎关注!