如何处理函数,以实现用尽量少的单元电路、尽量简单的电路类型来达到目的。即,逻辑函数要化简。
代数法化简逻辑函数的实质是反复运用逻辑代数的公式和规则,消去表达式中的多余项和多余变量。在用代数法化简逻辑函数时, 往往要依靠经验和技巧 ,带有一定的试凑性。
方法:
函数表达式一般化简成 与-或式 ,其最简应满足的两个条件:
1)表达式中“与”项的个数最少;
2)在满足1)的前提下,每个“与”项中的变量个数最少。
e . g . e.g. e.g. 化简 F = A C ‾ + A B C + A C D ‾ + C D F = A\overline C + ABC + AC\overline D + CD F=AC+ABC+ACD+CD。
F = A C ‾ + A B C + A C D ‾ + C D = A ( C ‾ + B C ) + C ( A D ‾ + D ) = A ( C ‾ + B ) + C ( A + D ) = A C ‾ + A B + A C + C D = A ( C ‾ + C ) + A B + C D = A ( 1 + B ) + C D = A + C D \begin{aligned} F &= A\overline C + ABC + AC\overline D + CD \\ &= A(\overline C + BC) + C(A\overline D + D)\\ &= A(\overline C + B) + C(A+D)\\ &= A\overline C + AB + AC + CD\\ &= A(\overline C + C) + AB + CD\\ &= A(1 + B) + CD = A +CD \end{aligned} F=AC+ABC+ACD+CD=A(C+BC)+C(AD+D)=A(C+B)+C(A+D)=AC+AB+AC+CD=A(C+C)+AB+CD=A(1+B)+CD=A+CD
实际上,我们最经常使用的是卡诺圈法,代数法化简常常作为结果的印证,我也就不麻烦的输入公式了,直接截图吧。
卡诺图:是真值表的图形表示:
卡诺图有什么用?为什么要用循环码?
用卡诺图法对逻辑函数进行化简时,首先要确定函数与卡诺图的关系,将函数用卡诺图的形式表现出来。真值表、表达式、卡诺图都可以表达一个逻辑函数。
对于 F = A ‾ B C ‾ + A B D + A C F = \overline AB\overline C + ABD + AC F=ABC+ABD+AC 来说, 可以如下化简:
F = A ‾ B C ‾ D + A ‾ B C ‾ D ‾ + A B C D + A B C ‾ D + A B ‾ C D ‾ + A B ‾ C D + A B C D ‾ + A B C D = m 5 + m 4 + m 15 + m 13 + m 10 + m 11 + m 14 + m 15 = ∑ m ( 4 , 5 , 10 , 11 , 13 , 14 , 15 ) \begin{aligned} F &= \overline AB\overline CD + \overline A B\overline C\ \overline D + ABCD + AB\overline CD + A\overline BC\overline D + A\overline BCD + ABC\overline D + ABCD\\ &= m_5 + m_4 + m_{15} + m_{13} + m_{10} + m_{11} + m_{14} + m_{15}\\ &= \sum m(4,5,10,11,13,14,15) \end{aligned} F=ABCD+ABC D+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD=m5+m4+m15+m13+m10+m11+m14+m15=∑m(4,5,10,11,13,14,15)
由一般与-或式填卡诺图示例1:三变量 F = A B + A ‾ C F = AB + \overline AC F=AB+AC
1.将所有满足 A = 1 且 B = 1 A=1且B=1 A=1且B=1的方格内填“1”
2.将所有满足 A = 0 且 C = 1 A=0且C=1 A=0且C=1 的方格内填“1”
由一般与或式填卡诺图示例2:四变量 F = B D + B ‾ D ‾ + A B ‾ C D + B ‾ C D ‾ F = BD + \overline B\ \overline D + A\overline B CD+ \overline B C \overline D F=BD+B D+ABCD+BCD
1.在所有满足 B = 1 且 D = 1 B=1且D=1 B=1且D=1 的方格内填“1”
2.将所有满足 B = 0 且 D = 0 B=0且D=0 B=0且D=0 的方格内填“1”
3.在所有满足 A = 1 且 B = 0 且 C = 1 且 D = 1 A=1且B=0且C=1且D=1 A=1且B=0且C=1且D=1 的方格内填“1”
4.在所有满足 B = 0 且 C = 1 且 D = 0 B=0且C=1且D=0 B=0且C=1且D=0 的方格内填“1”
化简依据:相邻最小项 → \rightarrow → 提出公因子 → \rightarrow → 消去互补变量
e . g . A B + A B ‾ = A ( B + B ‾ ) = A e.g.\ \ AB + A\overline B = A(B +\overline B) = A e.g. AB+AB=A(B+B)=A
e . g . A B C + A B ‾ C = A C ( B + B ‾ ) = A C e.g.\ \ ABC + A\overline BC = AC(B + \overline B) = AC e.g. ABC+ABC=AC(B+B)=AC
方法:
1)填写函数卡诺图
2)对邻项方格画卡诺圈
3)消去互补变量,直接写出最简与-或式
e . g . e.g. e.g. 二变量卡诺图的典型卡诺圈
e . g . e.g. e.g. 三变量卡诺图的典型卡诺圈
e . g . e.g. e.g. 四变量卡诺图的典型卡诺圈
写出每个卡诺圈的最小项表达式:保留卡诺圈内值不变的变量。 F = A B + B C F = AB + BC F=AB+BC:
F 1 : F ( A , B , C , D ) = ∑ m ( 0 , 2 , 3 , 5 , 6 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ) F_1:F(A,B,C,D)= \sum m(0,2,3,5,6,8,9,10,11,12,13,14,15) F1:F(A,B,C,D)=∑m(0,2,3,5,6,8,9,10,11,12,13,14,15)
一个逻辑函数,如果它的某些输入取值组合因受特殊原因制约而不会再现,或者虽然每种输入取值组合都可能出现,但此时函数取值为1还是为0无关紧要,那么这些输入取值组合对应的最小项称为无关项或者任意项 。 任意项用 “d”或者 “ × ” 表示 。
任意项可以加到函数表达式中,也可以不加到函数表达式中,并不影响函数的实际逻辑功能。其值可以取1,也可以取0。
例1:十字路口红绿灯,设控制信号 G = 1 → G=1 \rightarrow G=1→ 绿灯亮;控制信号 R = 1 → R=1 \rightarrow R=1→ 红灯亮;则 G R GR GR 可以为 G R = 00 , 01 , 10 GR=00, 01,10 GR=00,01,10 ,但 G R ≠ 11 GR ≠ 11 GR=11 。
例2:电动机正反转控制,设控制信号 F = 1 → F=1 \rightarrow F=1→ 正传;控制信号 R = 1 → R=1 → R=1→ 反转;则 F R FR FR 可以为 F R = 00 , 01 , 10 FR=00, 01, 10 FR=00,01,10 ,但 F R ≠ 11 FR ≠ 11 FR=11 。
例3: 8421 B C D 8421BCD 8421BCD 码中,从 1010 ~ 1111 1010 ~ 1111 1010~1111 的六种编码不允许出现,可视为无关最小项。
例1: 给定某电路的逻辑函数真值表如右图,求 F F F 的最简"与或"式:
1.用代数法化简逻辑函数
F = A C + B ‾ C + B D ‾ + A ( B + C ‾ ) + A ‾ C D ‾ + A B ‾ D E = A ( C + C ‾ ) + B ‾ C + B D ‾ + A B + A ‾ C D ‾ + A B ‾ D E = A + B ‾ C + B D ‾ + A ‾ C D ‾ = A + ( A ‾ B ‾ C D ‾ + A ‾ B ‾ C D + A B ‾ C D ‾ + A B ‾ C D ) + ( A ‾ B C ‾ D ‾ + A ‾ B C D ‾ + A B C ‾ D ‾ + A B C D ‾ ) + ( A ‾ B C D ‾ + A ‾ B ‾ C D ‾ ) = A + B ‾ C + B D ‾ \begin{aligned} F &= AC + \overline BC + B\overline D + A(B + \overline C) + \overline AC\overline D + A\overline BDE\\ &= A(C + \overline C) + \overline BC + B\overline D + AB + \overline AC\overline D + A\overline BDE\\ &= A + \overline BC + B\overline D + \overline AC\overline D\\ &= A + (\overline A\ \overline BC\overline D + \overline A\ \overline BCD + A\overline BC\overline D + A\overline BCD) + (\overline AB\overline C\ \overline D + \overline ABC\overline D+AB\overline C\ \overline D+ABC\overline D) + (\overline ABC\overline D + \overline A\ \overline BC\overline D)\\ &= A + \overline BC + B\overline D \end{aligned} F=AC+BC+BD+A(B+C)+ACD+ABDE=A(C+C)+BC+BD+AB+ACD+ABDE=A+BC+BD+ACD=A+(A BCD+A BCD+ABCD+ABCD)+(ABC D+ABCD+ABC D+ABCD)+(ABCD+A BCD)=A+BC+BD
2.用卡诺图化简一下函数:
(1) F = B D + A ‾ B C ‾ + A C ‾ D + A ‾ C D + A ‾ B ‾ F = BD + \overline AB\overline C + A\overline CD+ \overline ACD + \overline A\ \overline B F=BD+ABC+ACD+ACD+A B
答:根据下面的卡诺图,化简函数为 F = A ‾ B ‾ + A ‾ C ‾ + B D + C ‾ D F=\overline A\ \overline B + \overline A\ \overline C +B D + \overline CD F=A B+A C+BD+CD
(2) F ( A , B , C , D ) = ∑ m ( 0 , 1 , 2 , 4 , 5 , 8 , 9 , 10 , 12 , 13 ) F(A,B,C,D) = \sum m(0,1,2,4,5,8,9,10,12,13) F(A,B,C,D)=∑m(0,1,2,4,5,8,9,10,12,13)
答:根据卡诺图,化简函数为: F = C ‾ + B ‾ D ‾ F = \overline C +\overline B\ \overline D F=C+B D
(3) F ( A , B , C , D ) = ∑ m ( 0 , 1 , 2 , 9 , 12 ) + ∑ d ( 4 , 6 , 10 , 11 ) F(A,B,C,D) = \sum m(0,1,2,9,12) + \sum d(4,6,10,11) F(A,B,C,D)=∑m(0,1,2,9,12)+∑d(4,6,10,11)
答:根据下面的卡诺图,化简函数为: F = A ‾ D ‾ + B C ‾ D ‾ + B ‾ C ‾ D F=\overline A\ \overline D +B \overline C\ \overline D +\overline B\ \overline CD F=A D+BC D+B CD
3.将以下的函数分别化简为最简与或式和最简或与式。
F ( A , B , C , D ) = ∑ m ( 2 , 3 , 5 , 6 , 7 , 10 , 11 , 13 , 14 , 15 ) F(A,B,C,D) = \sum m(2,3,5,6,7,10,11,13,14,15) F(A,B,C,D)=∑m(2,3,5,6,7,10,11,13,14,15)
答:根据下图,可得最简与或式为: F = C + B D F=C+BD F=C+BD;
根据下面的卡诺图,圈0得最简或与式为: F = ( C + D ) ( B + C ) F=(C+D)(B+C) F=(C+D)(B+C)