在练习HDLBits时碰到与卡诺图、真值表、逻辑函数相关的知识,重新整理和复习一下数电学过的基础知识。(参考数电课的课件)
1 概述
逻辑:事物的因果关系
逻辑运算的数学基础:逻辑代数
在二值逻辑中的变量取值: 0/1
2 逻辑代数中的三种基本运算
与、或、非
常用的复合逻辑运算:与非、或非、与或非、异或、同或
3 逻辑代数的基本公式和常用公式
3.1 基本公式
根据与、或、非等的定义,得如下表的布尔恒等式(公式演绎或真值表可证明)
3.2 若干常用公式
4 逻辑代数的基本定理
4.1 代入定理
在任何一个包含A的逻辑等式中,若以另外一个逻辑式代入式中A的位置,则等式依然成立。
例:
A + BC = (A + B)(A + C),以CD代入C中,得:
A + B(CD) = (A + B)(A + CD) = (A + B)(A + C)(A + D)
4.2 反演定理
对于任意一个逻辑式Y,若将其中所有的“与”换成“或”,“或”换成“与”,0换成1,1换成0,原变量变成反变量,反变量变成原变量,则得到一个新的逻辑式即为逻辑式Y的非,这个规律称为反演定理。
即 Y => Y’,有: · => + 、 + => · 、 0 => 1 、 1 => 0 、 原变量 => 反变量 、 反变量 => 原变量。
例:
Y = A(B + C) + CD
Y’ = (A’ + B’C’)(C’ + D’) = A’C’ + B’C’ + A’D’ + B’C’D’ = A’C’ + B’C’ + A’D’
4.3 对偶定理
若两逻辑式相等,则它们的对偶式也相等。
5 逻辑函数及其表示方法
5.1 逻辑函数
Y = F(A, B, C, ······)
若以逻辑变量为输入,运算结果为输出,则输入变量值确定以后,输出的取值也随之而定。输入/输出之间是一种函数关系。
注:在二值逻辑中,输入/输出都只有两种取值 0/1。
5.2 逻辑函数的表示方法
下述各方法之间可以相互转换。
真值表
输入变量 A B C …… | 输出 Y1 Y2 …… |
---|---|
遍历所有可能的输入变量的取值组合 | 输出对应的取值 |
逻辑式
将输入/输出之间的逻辑关系用与/或/非的运算式表示就得到逻辑式
逻辑图
用逻辑图形符号表示逻辑运算关系,与逻辑电路的实现相对应。
波形图
将输入变量所有取值可能与对应输出按时间顺序排列起来画成时间波形。
卡诺图
计算机软件中的描述方式
HDL (Hardware Description Language):VHDL、Verilog HDL
EDIF
DTIF
各种表现形式的相互转换
真值表 => 逻辑式
1.找出真值表中使 Y=1 的输入变量取值组合。
2.每组输入变量取值对应一个乘积项,其中取值为1的写原变量,取值为0的写反变量。
3.将这些变量相加即得 Y。
逻辑式 => 真值表
把输入变量取值的所有组合逐个代入逻辑式中求出Y,列表。
逻辑式 => 逻辑图
用图形符号代替逻辑式中的逻辑运算符。
逻辑图 => 逻辑式
从输入到输出逐级写出每个图形符号对应的逻辑运算式。
5.3 逻辑函数的两种标准形式
最小项之和
最小项:m是乘积项、包含n个因子、n个变量均以原变量和反变量的形式在m中出现一次(对于n变量函数有 2 n 2^n 2n个最小项)
例:
两变量A、B的最小项:A’B’、A’B、AB’、AB( 2 2 2^2 22 = 4个)
三变量A、B、C的最小项:A’B’C’、A’B’C、A’BC’、A’BC、AB’C’、AB’C、ABC’、ABC( 2 3 2^3 23 = 8个)
最小项的编号:
最小项 | 取值 | 对应 | 编号 |
---|---|---|---|
ABC | 十进制数 | ||
A’B’C’ | 000 | 0 | m0 |
A’B’C | 001 | 1 | m1 |
A’BC’ | 010 | 2 | m2 |
A’BC | 011 | 3 | m3 |
AB’C’ | 100 | 4 | m4 |
AB’C | 101 | 5 | m5 |
ABC’ | 110 | 6 | m6 |
ABC | 111 | 7 | m7 |
最小项的性质:
在输入变量任一取值下,有且仅有一个最小项的值为1。
全体最小项之和为1 。
任何两个最小项之积为0 。
两个相邻的最小项之和可以合并,消去一对因子,只留下公共因子。
相邻:仅一个变量不同的最小项
例
A’BC’与A’BC:A’BC’+A’BC = A’B(C’ + C) = A’B
逻辑函数最小项之和的形式:
例
Y(A, B, C) = ABC’ + BC = ABC’ + BC(A + A’) = ABC’ + ABC + A’BC = ∑ \sum ∑m(3, 6, 7)
最大项之积
最大项:M是相加项、包含n个因子、n个变量均以原变量和反变量的形式在M中出现一次(对于n变量函数有 2 n 2^n 2n个)
例:
两变量A、B的最大项:A’ + B’、A’ + B、A + B’、A + B( 2 2 2^2 22 = 4个)
最大项的编号:
最小项 | 取值 | 对应 | 编号 |
---|---|---|---|
ABC | 十进制数 | ||
A’ + B’ + C’ | 111 | 7 | M7 |
A’ + B’ + C | 110 | 6 | M6 |
A’ + B + C’ | 101 | 5 | M5 |
A’ + B + C | 100 | 4 | M4 |
A + B’ + C’ | 011 | 3 | M3 |
A + B’ + C | 010 | 2 | M2 |
A + B + C’ | 001 | 1 | M1 |
A + B + C | 000 | 0 | M0 |
最大项的性质:
在输入变量任一取值下,有且仅有一个最大项的值为0;
全体最大项之积为0;
任何两个最大项之和为1;
只有一个变量不同的最大项的乘积等于各相同变量之和。
6 逻辑函数的化简法
逻辑函数的最简形式:最简与或(包含的乘积项已经最少,每个乘积项的因
子也最少,称为最简的与-或逻辑式)
例
Y1 = ABC + B’C + ACD
Y2 = AC + B’C
6.1 公式化简法
反复应用基本公式和常用公式,消去多余的乘积项和多余的因子。
例
Y = AC + B’C + BD’ + CD’ + A(B + C’) + A’BCD’ + AB’DE
[ A + AB = A => CD’ + A’BCD’ = CD’ ]
= AC + B’C + BD’ + CD’ + A(B + C’) + AB’DE
[ A(B + C’) => A(B’C)’ ]
= AC + B’C + BD’ + CD’ + A(B’C)’ + AB’DE
[ A + A’B = A + B => B’C + A(B’C)’ = B’C + A ]
= AC + B’C + BD’ + CD’ + A + AB’DE
= A + B’C + BD’ + CD’
= A + B’C + BD’
6.2 卡诺图化简法
逻辑函数的卡诺图表示法:以
2
n
2^n
2n个小方块分别代表n变量的所有最小项,并将它们排列成矩阵,而且使几何位置相邻的两个最小项在逻辑上也是相邻的(只有一个变量不同),就得到表示n变量全部最小项的卡诺图。
表示最小项的卡诺图:
二变量卡诺图
三变量卡诺图
四变量卡诺图
五变量卡诺图
用卡诺图表示逻辑函数
将函数表示为最小项之和的形式 ∑ \sum ∑mi,在卡诺图上与这些最小项对应的位置上添入1,其余地方添0。
例
Y(A, B, C, D) = A’B’C’D + A’BD’ + AB’
= A’B’C’D + (C + C’)A’BD’ + AB’[C’D’ + C’D + CD’ + CD]
= ∑ \sum ∑m(1, 4, 6, 8, 9, 10, 11)
用卡诺图化简函数
在卡诺图中,最小项的相邻性可以从图形中直观地反映出来。具有相邻性的最小项可合并,消去不同因子。
合并最小项的原则:
两个相邻最小项可合并为一项,消去一对因子
四个排成矩形的相邻最小项可合并为一项,消去两对因子
八个相邻最小项可合并为一项,消去三对因子
化简步骤:
用卡诺图表示逻辑函数
找出可合并的最小项
化简后的乘积项相加(项数最少,每项因子最少)
化简原则:
化简后的乘积项应包含函数式的所有最小项,即覆盖图中所有的1。
乘积项的数目最少,即圈成的矩形最少。
每个乘积项因子最少,即圈成的矩形最大。
例
Y(A, B, C) = AC’ + A’C + B’C + BC’
化简结果不唯一
例
Y = ABC + ABD + AC’D + C’D’ + AB’C + A’CD’
7 具有无关项的逻辑函数及其化简
7.1 约束项、任意项和逻辑函数式中的无关项
约束项:在逻辑函数中,对输入变量取值的限制
任意项:在输入变量某些取值下,函数值为1或为0不影响逻辑电路的功能,在这些取值下为1的最小项称为任意项
逻辑函数式中的无关项:约束项和任意项可以写入函数式,也可不包含在函数式中,因此统称为无关项
7.2 无关项在化简逻辑函数中的应用
合理地利用无关项,可得更简单的化简结果。
加入(或去掉)无关项,应使化简后的项数最少,每项因子最少。
从卡诺图上直观地看,加入无关项的目的是为矩形圈最大,矩形组合数最少。
例
Y = A’B’C’D + A’BCD + AB’C’D’,
给定约束条件为:A’B’CD + A’BC’D + ABC’D’ + AB’C’D + ABCD + ABCD’ + AB’CD’ = 0