我从学校得到一个问题 - 使用卡诺图获取以下布尔表达式的最小形式。 F(U,V,W,Z)=Σ(0,1,2,3,6,7,8,9,10,13,15)
我解决了这个问题
有四对和一个四边形减少,如下所示:
对-1(m7 + m6)减少到U'VW
对-2(m8 + m9)减少到UV'W'
对-3(m13 + m15)减少到UVZ
对-4(m8 + m10)减少到UV'Z'
四(m0 + m1 + m2 + m3)减少到U'V'
给定K-map的简化布尔表达式为F(U,V,W,Z)= U'VW + A'C'O + UVZ + UV'Z'+ U'V'
但我的老师说
答案与boolean规则不匹配..因为它需要第一个四边形和 然后配对,但答案显示差异。
我很困惑
答案 0 :(得分:0)
答案 1 :(得分:0)
对于给定输出,定义为四个变量u,v,w和z的函数 f :
f(u,v,w,z) = ∑(0,1,2,3,6,7,8,9,10,13,15)
可以由下面的真值表表示(其中 s 是当前状态的索引,卡诺图中的匹配单元格和 o 是输出值):
s | u v w z | o
----|---------|---
0 | 0 0 0 0 | 1
1 | 0 0 0 1 | 1
2 | 0 0 1 0 | 1
3 | 0 0 1 1 | 1
4 | 0 1 0 0 | 0
5 | 0 1 0 1 | 0
6 | 0 1 1 0 | 1
7 | 0 1 1 1 | 1
8 | 1 0 0 0 | 1
9 | 1 0 0 1 | 1
10 | 1 0 1 0 | 1
11 | 1 0 1 1 | 0
12 | 1 1 0 0 | 0
13 | 1 1 0 1 | 1
14 | 1 1 1 0 | 0
15 | 1 1 1 1 | 1
是您的回答:
f(u,v,w,z) = ¬u⋅v⋅w + u⋅¬v⋅¬w + u⋅v⋅z + u⋅¬v⋅¬z + ¬u⋅¬v
一个完全有效的布尔表达式等效于原始函数,但是
如果必须在逻辑电路设计中实现,您可能会考虑实际使用多少变量作为逻辑门的输入,每个变量有多少输入或所选类型的成本和从时间点(以及可能的延迟和危险),金钱或表面采取的逻辑门的数量。某些给定变量甚至可能不是设计中使用的某些逻辑门的输入。
出于这个原因,您通常尝试将表达式最小化到最小可能的变量集群,而不会影响所需的输出值。
最小化 - 要么在最小CNF 或最小DNF 中获得表达式,要么在K-map中找到最大的可能组< /强>
您不关心找到的组的轻微(不完全)重叠,因为组越大,您实际可能需要包含在设计中的变量就越少。您只需要小心包含仅包含所需的最小值并覆盖所需的输出值,这样如果您必须删除其中一个组,它将更改输出的值为one / some /所有的州。
用简单的语言我认为配方是:圈出所有 1 ,但不是一个零( zeros < / em>,但不是一个 one 分别具有最大的 bubbles 可以找到并且每个气泡必须扣入某些东西,其他任何一个都不能有并且还没有更好。
所以我认为,老师的意思是“第一个四边形然后配对”,就是这样。
在下面的图片中(使用latex生成),您的解决方案旁边的等效最小DNF (〜圈出的)。
您还可以检查,将您的解决方案插入在线工具Wolfram Alpha并检查其DNF和CNF,以确保下一个等式有效。
¬u⋅v⋅w + u⋅¬v⋅¬w + u⋅v⋅z + u⋅¬v⋅¬z + ¬u⋅¬v = ¬u⋅w + ¬v⋅¬w + ¬v⋅¬z + u⋅v⋅z