逻辑函数规范范式——SOP/POS表达式
SOP/POS基础及相互转换一. SOP/POS介绍1. The Sum-of-Products(SOP)Form2.The Product-of-Sums(POS)Form二. SOP/POS标准式1. SOP标准化2. POS标准化3. SOP对应真值表4. POS对应真值表三. SOP/POS的相互转换注:文章内容基于 Thomas L. Floyd-Digital Fundamentals
SOP/POS基础及相互转换
注:文章内容基于 Thomas L. Floyd-Digital Fundamentals-Prentice Hall (2014)
一. SOP/POS介绍
1. The Sum-of-Products(SOP)Form
SOP表达式:
- 书中给出定义:
A product term was defined as a term consisting of the product (Boolean multiplication) of literals (variables or their complements). When two or more product terms are summed by Boolean addition, the resulting expression is a sum-of-products (SOP).
- 普遍理解为:(变量的)乘积之和组成表达式
Sum有求和之意,Product有乘积之意
例如如下表达式:
- A B C + A ‾ B + A C ‾ ABC+\overline{A}B+A\overline{C} ABC+AB+AC
- A B + A ‾ B + A B C ‾ + B C AB+\overline{A}B+AB\overline{C} +BC AB+AB+ABC+BC
- A B D + A ‾ B D + B C ‾ D + B ABD+\overline{A}BD+B\overline{C}D +B ABD+ABD+BCD+B
- …
要注意在SOP表达式中
A
‾
B
C
‾
\overline{A}B\overline{C}
ABC可以作为一个求和项,但是
A
B
C
‾
\overline{ABC}
ABC不可以表示一个求和项;
写成SOP表达式的时候需满足单个上划线下只存在一个变量
2.The Product-of-Sums(POS)Form
- 书中给出定义:
A sum term was defined as a term consisting of the sum (Boolean addition) of literals (variables or their complements). When two or more sum terms are multiplied, the resulting expression is a product-of-sums (POS).
- 普遍理解为:(变量之)和的乘积组成的表达式
Sum有求和之意,Product有乘积之意
例如如下表达式:
- ( A + B ) ( A + B ‾ + C ) ( B + C ‾ ) (A+B)(A+\overline{B}+C)(B+\overline{C}) (A+B)(A+B+C)(B+C)
- ( A + B + C ‾ ) ( A + B ‾ + C ) ( B + C ‾ ) ( B ‾ + C ) (A+B+\overline{C})(A+\overline{B}+C)(B+\overline{C})(\overline{B}+C) (A+B+C)(A+B+C)(B+C)(B+C)
- ( A + B + D ) ( A + C ‾ + D ) ( B + C + D ‾ ) (A+B+D)(A+\overline{C}+D)(B+C+\overline{D}) (A+B+D)(A+C+D)(B+C+D)
- …
要注意在POS表达式中
(
A
+
B
+
C
)
(A+B+C)
(A+B+C)可以作为一个乘积项,但是
(
A
+
B
+
C
)
‾
\overline{(A+B+C)}
(A+B+C)不可以表示一个乘积项;
写成POS表达式的时候需满足单个上划线下只存在一个变量
二. SOP/POS标准式
无论标准或非标准式,在写SOP/POS表达式时都必须满足上划线下只包含一个变量
标准形式的SOP/POS表示SOP/POS中的每个求和项或乘积项(求和项表示用于求和的项元;乘积项表示用于乘积的项元)包含全部的变量
① 实际上将SOP/POS化成标准形式是“化简为繁”
② 对应于“化繁为简”代指将SOP/POS式化至最简以简化设计门电路(化简方法有多种:公式化简法、卡诺图最小化布尔函数法、Quine-McCluskey法等)
在这里将SOP/POS化至最简实现的功能:方便写出SOP/POS真值表,并通过真值表实现简单的相互转换。
在进行标准化之前,先掌握如下基本公式(布尔代数基本公式):
1. | A + 0 = A A+0=A A+0=A | 7. | A ⋅ A = A A\cdot A=A A⋅A=A |
2. | A + 1 = 1 A+1=1 A+1=1 | 8. | A ⋅ A ‾ = 0 A\cdot \overline{A}=0 A⋅A=0 |
3. | A ⋅ 0 = 0 A\cdot 0=0 A⋅0=0 | 9. | A ‾ ‾ = A \overline{\overline{A}}=A A=A |
4. | A ⋅ 1 = A A\cdot 1=A A⋅1=A | 10. | A + A B = A A+AB=A A+AB=A |
5. | A + A = A A+A=A A+A=A | 11. | A + A ‾ B = A + B A+\overline{A}B=A+B A+AB=A+B |
6. | A + A ‾ = 1 A+\overline{A}=1 A+A=1 | 12. | ( A + B ) ( A + C ) = A + B C (A+B)(A+C)=A+BC (A+B)(A+C)=A+BC |
证明过程略
1. SOP标准化
给出如下SOP表达式:
A
B
+
A
C
+
B
C
AB+AC+BC
AB+AC+BC
标准化方法:
① 确定表达式总变量数(此式为3)
② 依 A + A ‾ = 1 A+\overline{A}=1 A+A=1,对于第一项 A B AB AB,添加缺失的变量 C C C,有 A B = A B ( C + C ‾ ) AB=AB(C+\overline{C}) AB=AB(C+C)
③ 展开表达式、整理
得到
A
B
(
C
+
C
‾
)
+
A
C
(
B
+
B
‾
)
+
B
C
(
A
+
A
‾
)
AB(C+\overline{C})+AC(B+\overline{B})+BC(A+\overline{A})
AB(C+C)+AC(B+B)+BC(A+A)
展开整理得
A
B
C
+
A
B
C
+
A
B
C
+
A
B
C
‾
+
A
B
‾
C
+
A
‾
B
C
ABC+ABC+ABC+AB\overline{C}+A\overline{B}C+\overline{A}BC
ABC+ABC+ABC+ABC+ABC+ABC
2. POS标准化
给出如下POS表达式:
(
A
+
B
)
(
A
+
C
)
(
B
+
C
)
(A+B)(A+C)(B+C)
(A+B)(A+C)(B+C)
标准化方法:
① 确定表达式总变量数(此式为3)
② 依 A ⋅ A ‾ = 0 A\cdot \overline{A}=0 A⋅A=0,对于第一项 ( A + B ) (A+B) (A+B),添加缺失的变量 C C C,有 ( A + B ) = ( A + B + C ⋅ C ‾ ) (A+B)=(A+B+C\cdot \overline{C}) (A+B)=(A+B+C⋅C)
③ 依 ( A + B ) ( A + C ) = A + B C (A+B)(A+C)=A+BC (A+B)(A+C)=A+BC将表达式展开
有 ( A + B ) = ( A + B + C ⋅ C ‾ ) = ( A + B + C ) ( A + B + C ‾ ) (A+B)=(A+B+C\cdot \overline{C})=(A+B+C)(A+B+\overline{C}) (A+B)=(A+B+C⋅C)=(A+B+C)(A+B+C)
④ 整理
得到 ( A + B ) = ( A + B + C ⋅ C ‾ ) = ( A + B + C ) ( A + B + C ‾ ) (A+B)=(A+B+C\cdot \overline{C})=(A+B+C)(A+B+\overline{C}) (A+B)=(A+B+C⋅C)=(A+B+C)(A+B+C)
即得到标准形式下的SOP/POS表达式
3. SOP对应真值表
以标准化后的SOP标准式为例
- 对于如下SOP标准式:
A B C + A B C ‾ + A B ‾ C + A ‾ B C ABC+AB\overline{C}+A\overline{B}C+\overline{A}BC ABC+ABC+ABC+ABC
(1). 含有三个变量,对应
A
B
C
ABC
ABC所有可能情况为
2
3
2^{3}
23种,则需要确定该表达式对应于这
8
8
8种情况中的哪种情况。
(2). 以
A
B
C
ABC
ABC为例,对
A
、
B
、
C
A、B、C
A、B、C三个输入执行与操作,只要其中任意一个输入为
0
0
0,则输出为
0
0
0,反过来,当输出为
1
1
1时,
A
、
B
、
C
A、B、C
A、B、C输入唯一确定且全为
1
1
1。这就意味着,可以通过输出为
1
1
1的状态唯一确定输入值
(3). 现通过给定输出值来写出SOP表达式对应真值表
将输出定为
1
1
1,对于每一项例如
A
‾
B
C
\overline{A}BC
ABC,此项其中每一项输入给
1
1
1,反求
A
、
B
、
C
A、B、C
A、B、C,反求结果为
A
=
0
,
B
=
1
,
C
=
1
A=0,B=1,C=1
A=0,B=1,C=1,并将结果写入下表中
上式求得输出为
1
1
1的几种情况分别为
111
、
110
、
101
、
011
111、110、101、011
111、110、101、011
A | B | C | Output X1 | Product Term |
---|---|---|---|---|
0 | 0 | 0 | ||
0 | 0 | 1 | ||
0 | 1 | 0 | ||
0 | 1 | 1 | 1 | A ‾ B C \overline{A}BC ABC |
1 | 0 | 0 | ||
1 | 0 | 1 | 1 | A B ‾ C A\overline{B}C ABC |
1 | 1 | 0 | 1 | A B C ‾ AB\overline{C} ABC |
1 | 1 | 1 | 1 | A B C ABC ABC |
除了输出为
1
1
1的所有状态,剩下状态即为输出为
0
0
0的所有状态
原理上述已给出,输入值满足输出为
1
1
1的条件,不满足即输出为
0
0
0
补全上述真值表
A | B | C | Output X | Product Term |
---|---|---|---|---|
0 | 0 | 0 | 0 | |
0 | 0 | 1 | 0 | |
0 | 1 | 0 | 0 | |
0 | 1 | 1 | 1 | A ‾ B C \overline{A}BC ABC |
1 | 0 | 0 | 0 | |
1 | 0 | 1 | 1 | A B ‾ C A\overline{B}C ABC |
1 | 1 | 0 | 1 | A B C ‾ AB\overline{C} ABC |
1 | 1 | 1 | 1 | A B C ABC ABC |
4. POS对应真值表
以标准化后的SOP标准式为例
- 对于如下POS表达式:
( A + B + C ) ( A + B + C ‾ ) ( A ‾ + B + C ) ( A + B ‾ + C ) (A+B+C)(A+B+\overline{C})(\overline{A}+B+C)(A+\overline{B}+C) (A+B+C)(A+B+C)(A+B+C)(A+B+C)
(1). 含有三个变量,对应
A
B
C
ABC
ABC所有可能情况为
2
3
2^{3}
23种,则需要确定该表达式对应于这
8
8
8种情况中的哪种情况。
(2). 以
(
A
+
B
+
C
)
(A+B+C)
(A+B+C)为例,对
A
、
B
、
C
A、B、C
A、B、C三个输入执行或操作,只要其中任意一个输入为
1
1
1,则输出为
1
1
1,反过来,当输出为
0
0
0时,
A
、
B
、
C
A、B、C
A、B、C输入唯一确定且全为
0
0
0。这就意味着,可以通过输出为
0
0
0的状态唯一确定输入值
(3). 现通过给定输出值来写出POS表达式对应真值表
将输出定为
0
0
0,对于每一项例如
(
A
+
B
+
C
‾
)
(A+B+\overline{C})
(A+B+C),此项其中每一项输入给
0
0
0,反求
A
、
B
、
C
A、B、C
A、B、C,反求结果为
A
=
0
,
B
=
0
,
C
=
1
A=0,B=0,C=1
A=0,B=0,C=1,并将结果写入下表中
上式求得输出为
0
0
0的几种情况分别为
000
、
001
000、001
000、001
A | B | C | Output X | Product Term |
---|---|---|---|---|
0 | 0 | 0 | 0 | ( A + B + C ) (A+B+C) (A+B+C) |
0 | 0 | 1 | 0 | ( A + B + C ‾ ) (A+B+\overline{C}) (A+B+C) |
0 | 1 | 0 | 0 | ( A + B ‾ + C ) (A+\overline{B}+C) (A+B+C) |
0 | 1 | 1 | ||
1 | 0 | 0 | 0 | ( A ‾ + B + C ) (\overline{A}+B+C) (A+B+C) |
1 | 0 | 1 | ||
1 | 1 | 0 | ||
1 | 1 | 1 |
除了输出为
0
0
0的所有状态,剩下状态即为输出为
1
1
1的所有状态
原理上述已给出,输入值满足输出为
0
0
0的条件,不满足即输出为
1
1
1
补全上述真值表
A | B | C | Output X | Product Term |
---|---|---|---|---|
0 | 0 | 0 | 0 | ( A + B + C ) (A+B+C) (A+B+C) |
0 | 0 | 1 | 0 | ( A + B + C ‾ ) (A+B+\overline{C}) (A+B+C) |
0 | 1 | 0 | 0 | ( A + B ‾ + C ) (A+\overline{B}+C) (A+B+C) |
0 | 1 | 1 | 1 | |
1 | 0 | 0 | 0 | ( A ‾ + B + C ) (\overline{A}+B+C) (A+B+C) |
1 | 0 | 1 | 1 | |
1 | 1 | 0 | 1 | |
1 | 1 | 1 | 1 |
三. SOP/POS的相互转换
在给出真值表后,根据下述两种真值表
A | B | C | Output X | Product Term |
---|---|---|---|---|
0 | 0 | 0 | 0 | |
0 | 0 | 1 | 0 | |
0 | 1 | 0 | 0 | |
0 | 1 | 1 | 1 | A ‾ B C \overline{A}BC ABC |
1 | 0 | 0 | 0 | |
1 | 0 | 1 | 1 | A B ‾ C A\overline{B}C ABC |
1 | 1 | 0 | 1 | A B C ‾ AB\overline{C} ABC |
1 | 1 | 1 | 1 | A B C ABC ABC |
A | B | C | Output X | Product Term |
---|---|---|---|---|
0 | 0 | 0 | 0 | ( A + B + C ) (A+B+C) (A+B+C) |
0 | 0 | 1 | 0 | ( A + B + C ‾ ) (A+B+\overline{C}) (A+B+C) |
0 | 1 | 0 | 0 | ( A + B ‾ + C ) (A+\overline{B}+C) (A+B+C) |
0 | 1 | 1 | 1 | |
1 | 0 | 0 | 0 | ( A ‾ + B + C ) (\overline{A}+B+C) (A+B+C) |
1 | 0 | 1 | 1 | |
1 | 1 | 0 | 1 | |
1 | 1 | 1 | 1 |
可由SOP/POS求得POS/SOP
转换方法:
① 根据给定的表达式类型列全真值表
② 根据需要求取的类型逐一列每一项的表达式
例如需要由SOP求POS,则依据真值表中Output X为 0 0 0的部分,写出其对应每一项的表达式(如由从表一转换为表二)
③ 将项与项之间依据表达式相整合
最后给出所求表达式类型
据此,通过非标准形式的SOP/POS表达式可以求得标准形式的POS/SOP表达式并给出对应真值表
希望能够帮到迷途之中的你,知识有限,如有学术错误请及时指正,感谢大家的阅读
(^^)/▽ ▽\(^^)
Output X表示表达式输出值 ↩︎
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)