很久以来,这一直困扰着我。
假设我有一个布尔函数F定义如下:
现在,它可以以其SOP形式表示为:
F = bar(X)Ybar(Z)+ XYZ
但是我不明白为什么我们总是对0进行补充以将它们表示为1。是否假设输入X,Y和Z始终为1?
那有什么实际应用?我在此主题上观看的所有youtube视频如何以SOP形式或作为最小项的总和表示,但其中没有解释了为什么我们需要这个东西吗?为什么我们首先需要minterms?
到目前为止,我相信我们设计的电路只能屈服并只取1,这是最小项派上用场的地方。但是我在任何地方都无法获得对此事的任何确认,因此我不确定自己是对的。
Maxterms更令人困惑。我们是否设计仅产生0且仅消耗0的电路?这是maxterms的目的吗?
答案 0 :(得分:1)
为什么我们首先需要minterms?
我们不需要最小项,我们需要一种解决逻辑设计问题的方法,即给定真值表,找到能够复制该真值表的逻辑电路。
显然,这需要一种方法。最小项和乘积和就是要意识到这一点。 Maxterms和求和乘积是另一种。无论哪种情况,您都可以得到真值表的代数表示形式,或者可以直接实现它,也可以尝试应用布尔代数的标准定理来找到等效但更简单的表示形式。
但这不是唯一的工具。例如,使用卡诺图,您可以使用一些规则重写真值表,并且可以同时找到代数表示形式并降低其复杂性,并且不考虑最小项。其主要缺点是,如果输入数量增加,它将变得不可行,并且不能被视为解决逻辑设计问题的通用方法。
碰巧,最小项(或最大项)没有这个缺点,可以用来解决任何问题。我们得到一个trut表,我们可以将其直接转换为带有ands,ors和nots的方程式。实际上,对于人类而言,最小术语比最大术语要简单一些,但这只是一个品味问题或括号数量减少的问题,实际上它们是等效的。
但是我不明白为什么我们总是对0进行补充以将它们表示为1。是否假设输入X,Y和Z始终为1?
假设我们有一个真值表,只有给定的输出为1。例如,作为表的第3行。这意味着当x = 0,y = 1和z = 0时,输出将为零。那么,我可以用布尔逻辑表示吗?使用SOP方法论,我们说我们想要解决这个问题的解决方案,它是条目或它们的补语的“与” 。显然,解决方案是“ x必须为假,y必须为真,z必须为假”或“(非x)必须为真,y必须为真,并且(非z)必须为真”,因此最小项/ xy / z。因此,当我们有一个0时进行补码,而当我们有一个1时保持不变是找到等式,当xyz = 010时将为真
如果我有另一个表,只有一个输出为1(例如表的第8行),我们可以类似地发现可以使用x.y.z来实现此TT。
现在,如果我有一条2行1的TT,则可以使用“或”门的属性并执行先前电路的“或”。当第一个的输出为1时,它将强制此行为,第二个将强制同上。我们直接为您的表/ xy / z + xyz
提供了解决方案在TT中可以扩展为任意数量,并提供一种系统的方法来找到与真值表等效的方程。
因此,只需将minterms和maxterms视为将TT转换为方程式的 tool 。重要的是真值表(描述您想要做的行为)和方程式(为您提供实现它们的方法)。