逻辑函数规范范式——SOP/POS表达式

注:文章内容基于 Thomas L. Floyd-Digital Fundamentals-Prentice Hall (2014)

一. SOP/POS介绍

1. The Sum-of-Products(SOP)Form

SOP表达式:

  1. 书中给出定义:
    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).
  1. 普遍理解为:(变量的)乘积之和组成表达式
    Sum有求和之意,Product有乘积之意

例如如下表达式:

  1. A B C + A ‾ B + A C ‾ ABC+\overline{A}B+A\overline{C} ABC+AB+AC
  2. A B + A ‾ B + A B C ‾ + B C AB+\overline{A}B+AB\overline{C} +BC AB+AB+ABC+BC
  3. 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

  1. 书中给出定义:
    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).
  1. 普遍理解为:(变量之)和的乘积组成的表达式
    Sum有求和之意,Product有乘积之意

例如如下表达式:

  1. ( A + B ) ( A + B ‾ + C ) ( B + C ‾ ) (A+B)(A+\overline{B}+C)(B+\overline{C}) (A+B)(A+B+C)(B+C)
  2. ( 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)
  3. ( 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=A7. A ⋅ A = A A\cdot A=A AA=A
2. A + 1 = 1 A+1=1 A+1=18. A ⋅ A ‾ = 0 A\cdot \overline{A}=0 AA=0
3. A ⋅ 0 = 0 A\cdot 0=0 A0=09. A ‾ ‾ = A \overline{\overline{A}}=A A=A
4. A ⋅ 1 = A A\cdot 1=A A1=A10. A + A B = A A+AB=A A+AB=A
5. A + A = A A+A=A A+A=A11. 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=112. ( 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 AA=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+CC)
③ 依 ( 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+CC)=(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+CC)=(A+B+C)(A+B+C)

即得到标准形式下的SOP/POS表达式

3. SOP对应真值表

以标准化后的SOP标准式为例

  1. 对于如下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 ABC三个输入执行与操作,只要其中任意一个输入为 0 0 0,则输出为 0 0 0,反过来,当输出为 1 1 1时, A 、 B 、 C A、B、C ABC输入唯一确定且全为 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 ABC,反求结果为 A = 0 , B = 1 , C = 1 A=0,B=1,C=1 A=0B=1C=1,并将结果写入下表中
上式求得输出为 1 1 1的几种情况分别为 111 、 110 、 101 、 011 111、110、101、011 111110101011

ABCOutput X1Product Term
000
001
010
0111 A ‾ B C \overline{A}BC ABC
100
1011 A B ‾ C A\overline{B}C ABC
1101 A B C ‾ AB\overline{C} ABC
1111 A B C ABC ABC

除了输出为 1 1 1的所有状态,剩下状态即为输出为 0 0 0的所有状态
原理上述已给出,输入值满足输出为 1 1 1的条件,不满足即输出为 0 0 0

补全上述真值表

ABCOutput XProduct Term
0000
0010
0100
0111 A ‾ B C \overline{A}BC ABC
1000
1011 A B ‾ C A\overline{B}C ABC
1101 A B C ‾ AB\overline{C} ABC
1111 A B C ABC ABC

4. POS对应真值表

以标准化后的SOP标准式为例

  1. 对于如下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 ABC三个输入执行或操作,只要其中任意一个输入为 1 1 1,则输出为 1 1 1,反过来,当输出为 0 0 0时, A 、 B 、 C A、B、C ABC输入唯一确定且全为 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 ABC,反求结果为 A = 0 , B = 0 , C = 1 A=0,B=0,C=1 A=0B=0C=1,并将结果写入下表中
上式求得输出为 0 0 0的几种情况分别为 000 、 001 000、001 000001

ABCOutput XProduct Term
0000 ( A + B + C ) (A+B+C) (A+B+C)
0010 ( A + B + C ‾ ) (A+B+\overline{C}) (A+B+C)
0100 ( A + B ‾ + C ) (A+\overline{B}+C) (A+B+C)
011
1000 ( A ‾ + B + C ) (\overline{A}+B+C) (A+B+C)
101
110
111

除了输出为 0 0 0的所有状态,剩下状态即为输出为 1 1 1的所有状态
原理上述已给出,输入值满足输出为 0 0 0的条件,不满足即输出为 1 1 1

补全上述真值表

ABCOutput XProduct Term
0000 ( A + B + C ) (A+B+C) (A+B+C)
0010 ( A + B + C ‾ ) (A+B+\overline{C}) (A+B+C)
0100 ( A + B ‾ + C ) (A+\overline{B}+C) (A+B+C)
0111
1000 ( A ‾ + B + C ) (\overline{A}+B+C) (A+B+C)
1011
1101
1111

三. SOP/POS的相互转换

在给出真值表后,根据下述两种真值表

表1
ABCOutput XProduct Term
0000
0010
0100
0111 A ‾ B C \overline{A}BC ABC
1000
1011 A B ‾ C A\overline{B}C ABC
1101 A B C ‾ AB\overline{C} ABC
1111 A B C ABC ABC
表2
ABCOutput XProduct Term
0000 ( A + B + C ) (A+B+C) (A+B+C)
0010 ( A + B + C ‾ ) (A+B+\overline{C}) (A+B+C)
0100 ( A + B ‾ + C ) (A+\overline{B}+C) (A+B+C)
0111
1000 ( A ‾ + B + C ) (\overline{A}+B+C) (A+B+C)
1011
1101
1111

可由SOP/POS求得POS/SOP
转换方法:
① 根据给定的表达式类型列全真值表
② 根据需要求取的类型逐一列每一项的表达式
例如需要由SOP求POS,则依据真值表中Output X为 0 0 0的部分,写出其对应每一项的表达式(如由从表一转换为表二)
③ 将项与项之间依据表达式相整合

最后给出所求表达式类型
据此,通过非标准形式的SOP/POS表达式可以求得标准形式的POS/SOP表达式并给出对应真值表


希望能够帮到迷途之中的你,知识有限,如有学术错误请及时指正,感谢大家的阅读

(^^)/▽ ▽\(^^)

  1. Output X表示表达式输出值 ↩︎

  • 25
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要找到最低成本的SOP(Sum of Products)和POS(Product of Sums)表,需要先了解SOPPOS的定义和求解方法。 SOP是一种用于简化逻辑电路的表达形式,它将每个逻辑功能的输出表示为多个逻辑门的逻辑与(AND)操作的逻辑和(OR)操作。SOP表是由逻辑门的输入组合和输出构成的表格,其中每一行代表一个可能的输入组合,每一列代表相应输入组合的输出。 POS是另一种用于简化逻辑电路的表达形式,它将每个逻辑功能的输出表示为多个逻辑门的逻辑或(OR)操作的逻辑与(AND)操作。POS表也由逻辑门的输入组合和输出构成的表格,其中每一行代表一个可能的输入组合,每一列代表相应输入组合的输出。 要找到最低成本的SOPPOS表,可以采取以下步骤: 1. 根据给定的逻辑功能需求,使用真值表或逻辑表达式的形式确定所有可能的输入组合和对应的输出。 2. 对于SOP表,遍历所有可能的输入组合,找到最简单的逻辑表达式。可以使用卡诺图或专业的逻辑电路设计软件来进行化简和优化。最终得到的逻辑表达式即为SOP表。 3. 对于POS表,同样遍历所有可能的输入组合,找到最简单的逻辑表达式。也可使用卡诺图或专业的逻辑电路设计软件进行化简和优化。最终得到的逻辑表达式即为POS表。 4. 比较SOP表和POS表的复杂程度和所需逻辑门的数量,选择其中一种表达方式,使得成本最低。 需要注意的是,最低成本不仅仅取决于逻辑电路的复杂程度,还取决于实际的实现成本,包括硬件资源的利用情况和生产成本等。因此,在选择SOPPOS表时,还需要综合考虑这些方面,以便找到最低成本的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是你呀星途

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值