逻辑代数
逻辑变量,逻辑函数与逻辑运算
- 在逻辑代数中,逻辑变量作为变量时只有两种可能的取值,真或假,通常用\(1\)表示真,\(0\)表示假.
- 逻辑函数\(Y=f(A_1,A_2,...,A_n)\),接受\(n\)个逻辑变量作为输入变量,输出变量为\(Y\),值只有0,1两种可能。
- 反函数与一般代数不同,对于输入变量\(x_1,x_2,...,x_n\),两个函数的输出\(F(x_1,x_2,...x_n),G(x_1,x_2,...,x_n)\)总相反,则这两函数互为反函数。
- 逻辑函数的表示方法:真值表,逻辑函数表达式,逻辑图,卡诺图,硬件描述语言(HDL)
- 基本逻辑运算:
- 逻辑与(AND):只有两个变量都为1时,输出1。\(AB\)
- 逻辑或(OR): 两个变量至少有一个是1时,输出1。\(A+B\)
- 逻辑非(NOT): 输出输入变量的相反值。\(\overline{A}\)
- 复合逻辑运算
- 与非(NAND):\(Y = \overline{AB}\)
- 或非(NOR):\(Y = \overline{A+B}\)
- 异或(XOR):\(Y=A \oplus B = A\overline B + \overline A B\)
- 同或(XNOR):\(Y= A \odot B = \overline{A\overline B + \overline A B}\)
基本定理
基本公式
- 01律:\(A\cdot 0 =0\),\(A \cdot 1 = A\),\(A+0=A\),\(A+1=1\)
- 等幂律:\(A\cdot A = A\),\(A+A=A\)
- 互补律:\(A+\overline A = 1\),\(A\overline A = 0\)
- 自反律:\(\overline {\overline A} = A\)
- 交换律:\(A+B = B+A\),\(AB=BA\)
- 结合律:\(A(BC)=(AB)C\),\((A+B)+C = A+(B+C)\)
- 分配律:\(A(B+C) = AB+AC\),\(A+BC = (A+B)(A+C)\)
- 反演律:\(\overline{AB} =\overline A + \overline B\),\(\overline{A+B} = \overline{A} \overline{B}\)
吸收律
- \(A+AB=A,\quad A(A+B)=A\)
- \(A+\overline{A}B=A+B,\quad A(\overline{A}+B)=AB\)
- \(A\cdot\overline{AB}=A\overline{B},\quad A+\overline{A+B}=A+\overline{B}\)
- \(AB+\overline{A}B=B,\quad(A+B)(\overline{A}+B)=B\)
冗余律
- \(AB+\overline{A}C+BC=AB+\overline{A}C\)
- \((A+B)(\overline{A}+C)(B+C)=(A+B)(\overline{A}+C)\)
- \(AB+\overline{A}C+BCD=AB+\overline{A}C\)
- \((A+B)(\overline{A}+C)(B+C+D)=(A+B)(\overline{A}+C)\)
- 不难发现第三,四个公式是对一,二的补充扩展。
- 第二个公式是第一个公式的或与形式(和之积)
代入定理
- 在任何一个逻辑等式中,若将其中一个逻辑变量全部用另一个逻辑函数代替,等式仍然成立。
- 如:\(Y=AC+BC = A(P+Q)+B(P+Q)\)
反演定理
- 对于任何一个逻辑函数式,将其中的所有逻辑符号"+","·"交换;所有逻辑常量"1""0"交换;所有逻辑变量取反;不改变原来的运算顺序。得到的逻辑函数是原来逻辑函数的反函数。
- 如:\(Y=A\overline{B}+\overline{C}D+0\),\(\overline{Y}=(\overline{A}+B)(C+\overline{D})\cdot1\)
对偶定理
- 对偶式:所有逻辑符号"+","·"交换;所有逻辑常量"1""0"交换。(逻辑变量不变)
- 若两个函数相等,则由他们的对偶式形成的两个函数也相等
- 如:\((A+D)\overline{C}=A\overline{C}+\overline{C}D+0\),\(AD+\overline{C}=(A+\overline{C})(\overline{C}+D)\cdot1\),二者等价。
- 证明:已知\(F=G\),可以根据反演定理写出\(\overline{F}=\overline{G}\),再使用代入定理将逻辑变量的反代入得到\(F^* = G^*\)即证。
逻辑函数的标准形式
最小项
- 在\(n\)个逻辑变量的逻辑函数中,若\(m\)为包含\(n\)个因子的乘积项(逻辑与),且其中每个逻辑变量都以原变量或反变量的形式出现一次并仅仅出现一次,则称\(m\)为这\(n\)个变量的最小项。
- 对于\(n\)个输入变量,共有\(2^n\)个最小项。
- 将能使这个最小项取到1的逻辑变量的取值看作一个二进制数\(i\),这个最小项则记为\(m_i\)
- 如:\(f(abc)=\bar{a}b\bar c+a\bar{b}c+abc = m_2 + m_5+m_7\)
最大项
- 在\(n\)个逻辑变量的逻辑函数中,若\(M\)为包含\(n\)个因子的和项(逻辑或),且其中每个逻辑变量都以原变量或反变量的形式出现一次并仅仅出现一次,则称\(M\)为这\(n\)个变量的最大项。
- 对于\(n\)个输入变量,共有\(2^n\)个最大项。
- 将能使这个最大项取到0的逻辑变量的取值看作一个二进制数\(i\),这个最大项则记为\(M_i\)
- 如:\(f(abc)=(a+\bar{b}+c)(\bar{a}+\bar{b}+\bar{c})(\bar{a}+\bar{b}+\bar{c})=M_2 M_5 M_7\)
最小项与最大项的性质
- 任意2个不同的最小项之积为0;任意两个不同的最大项之和为1。
- 全体最小项之和为1;全体最大项之积为0。
\[\sum_{i=0}^{2^n-1}m_i=1,\quad\prod_{i=0}^{2^n-1}M_i=0
\]
- 下标相同的最大项和最小项互补。
\[\overline{m_i}=M_i
\]
标准SOP形式
- 最小项之和形式,简称为积之和(SOP)形式。
\[f\left(x_1,x_2,...,x_n\right)=\sum_{i=0}^{2^n-1}\alpha_im_i,\quad\alpha_i=0\mathrm{~or~1}
\]
标准POS形式
- 最大项之积形式,简称为和之积(POS)形式
\[f\left(x_1,x_2,...,x_n\right)=\prod_{i=0}^{2^n-1}\left(\alpha_i+M_i\right),\quad\alpha_i=0\:or1
\]
标准表达式的关系
- 互相转换
\[\text{若 }F=\sum m_{i}\text{ , 则 }F=\prod M_{j},j\neq i
\]
- 反函数
\[\text{若}\quad F=\sum m_i\space\text{, 则}\quad\overline{F}=\prod M_i
\]
将逻辑函数化成标准形式
- SOP形式
- 可以将非最小项的积项乘以形如\(A+\bar A\)的项,其中\(A\)是那个非最小项的积项中缺少的输入变量,然后展开,最后合并相同的最小项。
\[\begin{aligned}
&Y(abc)\:=\:a\:+\:\overline{b}c\:+\:ac\\
&\:=\:a(b\:+\:\bar{b})\:(c\:+\:\bar{c})\:+\:\bar{b}c(a\:+\:\bar{a})\:+\:\bar{a}c(b\:+\:\bar{b})\\&=\:abc\:+\:\bar{abc}\:+ab\bar{c}\:+a\bar b\bar c+\:\bar{a}\bar bc\\&=\:\sum m(1,4,5,6,7)\end{aligned}\]
- POS形式
- 可以将非最大项的和项加上形如\(A·\bar A\)的项,其中\(A\)是那个非最大项的和项中缺少的输入变量,然后展开,最后合并相同的最大项。
\[\begin{aligned}Y(X_{1}X_{0})
&\:=\:(X_{1}\:+\:\overline{X}_{0})\overline{X}_{1}\\
&=(X_{1}\:+\:\overline{X}_{0})(\overline{X}_{1}\:+\:X_{0}\:\overline{X}_{0})\\&=(X_{1}\:+\:\overline{X}_{0})(\overline{X}_{1}\:+\:X_{0})(\overline{X}_{1}\:+\:X_{0})\\&=\prod M(1,2,3)\end{aligned}\]
卡诺图
- 卡诺图每个方格代表一个最小项或者最大项。
- 变量排列按照相邻规则进行,即在卡诺图中相邻的方格在逻辑上也相邻。(逻辑相邻的意义:两个最小项或最大项之间只有一个变量发生变化,如:\(01\)与\(11,00\)相邻)
- 最小项填1,最大项填0

逻辑函数的化简与形式转换
逻辑函数的不同形式
- 以异或为例:
- 与或形式:\(\overline{A}B+A\overline{B}\)
- 或与形式:\((\overline{A}+\overline{B})(A+B)\)
- 与非一与非形式:\(\overline{\overline{\overline{A}B}\overline{A\overline{B}}}\)
- 或非一或非:\(\overline {\overline{\overline A +\overline B}+\overline{A+B}}\)
- 与或非形式:\(\overline{AB+{\overline{A} \overline{B}}}\)
- 混合形式:\(\overline{AB}(A+B)\)
代数法化简逻辑函数
- 代数法化简可以适用于任何场合,但是通常没有一定的规律可循,需要敏锐的观察力和一定的技巧。
- 最常用的化简手段是吸收律、冗余律和反演律。
- 此处例子略
逻辑函数形式转化
与或形式 \(\rightarrow\) 或与形式
- 两种方法:对偶定理,展开,再次对偶定理,或取反,德摩根律展开,再取反。
- 例子:\(Y=AB+CD\)
- 方法一
\[Y^* = (A+B)(C+D) = AC+AD+BC+BD
\]
\[(Y^*)^*=(A+C)(A+D)(B+C)(B+D)=Y
\]
- 方法二
\[\overline Y = \overline{AB+CD}=\overline{AB}\cdot\overline{CD}=(\overline{A}+\overline{B})\cdot(\overline{C}+\overline{D})=\overline{A}\cdot\overline{C}+\overline{A}\cdot\overline{D}+\overline{B}\cdot\overline{C}+\overline{B}\cdot\overline{D}
\]
\[Y = \overline{\overline{Y}} =\overline{\overline{A}\cdot\overline{C}+\overline{A}\cdot\overline{D}+\overline{B}\cdot\overline{C}+\overline{B}\cdot\overline{D}}=(A+C)(A+D)(B+C)(B+D)
\]
与或形式 \(\rightarrow\) 与非形式
- 将原式两次求反,应用一次德摩根律即可。
- 例子:\(Y=AB+CD\)
\[Y = \overline{\overline{AB+CD}}=\overline{\overline{AB}\cdot \overline{CD}}
\]
与或形式 \(\rightarrow\) 或非形式
- 将原式转化为或与形式,再两次求反,一次德摩根即可。
- 例子:\(Y=AB+CD\)
\[Y=(A+C)(A+D)(B+C)(B+D)=\overline{\overline{(A+C)(A+D)(B+C)(B+D)}}
\]
\[Y=\overline{\overline{A+C}+\overline{A+D}+\overline{B+C}+\overline{B+D}}
\]
与或形式 \(\rightarrow\) 或与非形式
- 将原式两次求反,一直应用德摩根律到最底即可。
- 例子:\(Y=AB+CD\)
\[Y = \overline{\overline{AB+CD}}=\overline{\overline{AB}\cdot \overline{CD}}=\overline{(\overline{A}+\overline{B})(\overline{C}+\overline{D})} =\overline{\overline{A}\:\overline{C}+\overline{B}\:\overline{C}+\overline{A}\:\overline{D}+\overline{B}\:\overline{D}}
\]
卡诺图化简逻辑函数
-
画出卡诺图,圈出卡诺圈,化简。
-
卡诺圈:根据相邻的方格在逻辑上也相邻的原理,只要相邻的方格满足以下条件:逻辑值相同,小方格数为 \(2^n\) 个(数量一定是2的幂!)。就可以将相邻的方格合并为一个卡诺圈。
-
卡诺圈越大,可以消去的变量越多,最后得到的逻辑函数越简单。
-
若卡诺圈包含了\(2^n\)个方格,逻辑函数有\(m\)个变量,对应卡诺圈化简后的项变量个数为\(m-n\)个
-
使用卡诺图化简POS形式(积之和,与或)时,圈1,化简得到的各项相加。(或与形式,圈0,各项相乘),且要求卡诺圈尽可能大,不遗漏1,在保证不遗漏1的情况下不重复圈(卡诺圈集合为所有1的最小分割)。
-
例子:

- 例子2:其中蓝色圈为冗余圈,可忽略。

-
卡诺图化简得到的最终结果不是唯一的(因为最小分割的不唯一性,即可能有不同的圈法)
-
卡诺图运算:两个逻辑函数之间的运算,可以通过其对应卡诺图运算(即对应方格进行运算)得到运算后结果函数的卡诺图。因此可以使用阻塞技巧来化简表达式较复杂的卡诺图,例子如下


-
一些术语:
- 蕴涵:逻辑函数的“与或”表达式中的各项
- 质蕴涵:不能再与其他蕴涵合并的蕴涵
- 必要质蕴涵:包含至少一个不能被其它质蕴涵包含的最小项的质蕴涵
- 覆盖:包含了逻辑函数中所有最小项的一些蕴涵之“或”
- 非余覆盖:其中每一个蕴涵都是必不可少的覆盖
- 最小覆盖:包含蕴涵个数最少的非冗余覆盖
- 0重心:\(0\)号方格(即全部变量为0的方格)
- 1重心:\(2^n\)号方格(即全部变量为1的方格)
-
一些小性质(了解即可):
- 包含0重心但不包含1重心的质蕴涵,其表达式全部用反变量标注
- 包含1重心但不包含0重心的质蕴涵,其表达式全部用原变量标注
- 既不包含0重心也不包含1重心的质蕴涵,其表达式中一定既有原变量又有反变量
- 目标函数是与非形式并要求全部用原变量表达时,围绕1重心进行。其中卡诺圈圈1,阻塞圈圈0
- 目标函数是或非形式并要求全部用原变量表达时,围绕0重心进行,其中卡诺圈圈0,阻塞圈圈1
带任意项的卡诺图化简:
- 逻辑函数中不可避免的会出现无效的状态,无意义的状态,这些状态称为无关项,任意项。
- 任意项的值在卡诺图一般用 \(d\) 填入,既可为1也可为0,在化简时**既可以将任意项圈入卡诺圈,也可以不圈入卡诺圈.
异或函数的卡诺图化简
- 异或/同或函数卡诺图的重要特征:棋盘格
- 异或函数的棋盘格特征:0号方格等于0
- 同或函数的棋盘格特征:0号方格等于1

多输出逻辑函数化简
- 考虑公共蕴涵的使用
- 公共蕴涵也是越大越好
- 有时在寻找公共蕴涵过程中会有多种可能的方案出现,这时要根据实际情况作一定的取舍,部分地要依赖于人为的经验
- 公共蕴涵寻找:在两个输出对应的卡诺图内寻找相同最小项的位置,优先圈出,然后再分别圈两个图。
- 例子:

- 化简是先找公共部分(即绿圈部分),先圈出绿圈部分(\(abc\)项)。
- 然后再在两个图中,圈其他部分(正常化简卡诺图,包含绿圈的红圈可以忽略),即可得到包含公共蕴含的表达式。
变量数大于4的卡诺图化简
- 5变量时,可以根据第一个变量为0/1时,画出剩余4个变量的卡诺图,共2张。
- 合并时相同的卡诺图内先圈卡诺圈,然后不同卡诺图之间相同位置可合并。
- 或者使用影射变量卡诺图化简
影射变量卡诺图
- 根据代入定理,逻辑函数中的逻辑变量可以用一个函数代替。如果卡诺图的一个方格代表一个函数,则可大大扩展卡诺图包含的变量个数。
- 在影射变量卡诺图中,每个方格可以是0,1,任意项,也可以是变量或函数。
- 影射变量的选择:低位变量或出现最少的变量。
- 例子:\(f(u,v,w,x,y) = \sum m(0,2,8,10,16,18,24,26)\)
\[\begin{array}{cccc|c|c}
u & v & w & x & y & f \\
\hline
0 & 0 & 0 & 0 & 0 & 1 \\
& & & & 1 & 0 \\
\hline
0 & 0 & 0 & 1 & 0 & 1 \\
& & & & 1 & 0 \\
\hline
0 & 0 & 1 & 0 & 0 & 0 \\
& & & & 1 & 0 \\
\hline
0 & 0 & 1 & 1 & 0 & 0 \\
& & & & 1 & 0 \\
\hline
0 & 1 & 0 & 0 & 0 & 1 \\
& & & & 1 & 0 \\
\hline
0 & 1 & 0 & 1 & 0 & 1 \\
& & & & 1 & 0 \\
\hline
0 & 1 & 1 & 0 & 0 & 0 \\
& & & & 1 & 0 \\
\hline
0 & 1 & 1 & 1 & 0 & 0 \\
& & & & 1 & 0 \\
\hline
1 & 0 & 0 & 0 & 0 & 1 \\
& & & & 1 & 0 \\
\hline
1 & 0 & 0 & 1 & 0 & 1 \\
& & & & 1 & 0 \\
\hline
1 & 0 & 1 & 0 & 0 & 0 \\
& & & & 1 & 0 \\
\hline
1 & 0 & 1 & 1 & 0 & 0 \\
& & & & 1 & 0 \\
\hline
1 & 1 & 0 & 0 & 0 & 1 \\
& & & & 1 & 0 \\
\hline
1 & 1 & 0 & 1 & 0 & 1 \\
& & & & 1 & 0 \\
\hline
1 & 1 & 1 & 0 & 0 & 0 \\
& & & & 1 & 0 \\
\hline
1 & 1 & 1 & 1 & 0 & 0 \\
& & & & 1 & 0 \\
\end{array}
\]
- 观察上述真值表不难发现,有时\(f = \overline y\),此时可以将 \(\overline y\) 作为代替填入真值表。有时\(f=0\)不随 \(y\) 的值改变而改变,可以将0作为常量填入真值表,做出的卡诺图及化简如下:


浙公网安备 33010602011771号