【问题标题】:Is the implementation of `Don't care condition ( X ) in k- map is rightk-map中`Don't care condition (X)的实现是否正确
【发布时间】:2019-05-23 18:12:29
【问题描述】:

我对卡诺图中的“无关”条件有些困惑。众所周知,卡诺图是用来实现的

  1. 完成
  2. 准确/精确
  3. 最佳

16 位或有时 32 位二进制解的输出方程,直到一切正常,但当我们在其中插入无关条件时,问题就出现了。 我的问题是, 由于甚至不关心条件是从真值表的 o 或 1 解生成的,并且在卡诺图中,我们有时会得出结论或有时忽略卡诺图组中的不关心条件。 所以我们忽略卡诺图中的不关心条件是否是卡诺图中的歧义因为我们不知道不关心条件背后的原因是 1 还是 0。所以之后我们怎么能自信用来说我们的解决方案是完整或准确的,而我们忽略了其中的不关心条件。可能是我们忽略的 dont care 在 sop 中包含 1,在 pos 中包含 0,因此根据它可能包含错误。

【问题讨论】:

    标签: precision boolean-expression karnaugh-map


    【解决方案1】:

    “不在乎”就是这样。我们不在乎的东西。它为我们提供了额外优化的机会,因为该值不受限制。我们可以为所欲为,以实现最佳解决方案。

    因为我们不关心它,所以价值是什么并不重要。我们将使用最适合我们的方式(最低成本、最快等......“最佳”)。如果在一个实现中作为1 更好,在另一种实现中作为0 更好,那就这样吧,没关系。

    是的,总是有另一种情况与不关心,但我们可以说它是完整/准确的,因为我们不关心另一个。我们会以使我们的实施更好的方式来对待它。

    【讨论】:

    • 如果我们不关心这些条件,那么为什么我们在分组时使用它,所有那些不关心的条件都应该保持未分组。b/c 我们不关心它们对吗??
    • 因为我们可以。我们不在乎它是 1 还是 0,因此如果我们认为它更有用,我们可以选择将其强制为 1。
    【解决方案2】:

    让我们举一个非常简单的例子来理解“无关条件”的确切含义。

    F为用户定义的二元布尔函数,如下:

    A  B    F
    
    0  0    1
    0  1    0
    

    A的值为1时,没有定义这个函数。

    这可能意味着以下两种情况之一:-

    1. 用户不关心FA = 1 时产生的值。
    2. 用户保证A = 1 永远不会作为F 的输入。

    这两种情况统称为“无关条件”。

    现在,实现此功能的人可以通过扩展F 的定义以包括A = 1 时的情况来利用这一事实。

    使用 K-Map,

         B'  B
    A' | 1 | 0 |
    A  | X | X |
    

    如果没有这些无关条件,F 的代数表达式将写作A'B',即F = A'B'

    但是,如果我们如下修改这张地图,

         B'  B
    A' | 1 | 0 |
    A  | 1 | 0 |
    

    那么F可以表示为F = B'

    通过修改这张图,我们基本扩展了F的定义如下:

    A  B    F
    
    0  0    1
    0  1    0
    1  0    1
    1  1    0
    

    这种方法之所以有效,是因为实现该功能的人已经知道,用户要么不会关心A = 1 时会发生什么,要么用户永远不会使用A = 1 作为F 的输入。

    另一个例子是一个四变量布尔函数,其中每个 4 变量表示 BCD 值的一个不同位,如果等效的十进制数是偶数 & 0 如果奇怪的话。在这里,由于保证输入永远不会是10101011110011011110 & 1111 之一,因此实现该函数的人可以扩展通过包含这些案例来发挥他们的优势。

    【讨论】:

      猜你喜欢
      • 2015-01-19
      • 2019-07-30
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多