【问题标题】:Making K-maps with S2, S1, S0 (seven states), one button input, and four outputs制作具有 S2、S1、S0(七种状态)、一键输入和四输出的 K-map
【发布时间】:2015-09-13 01:01:19
【问题描述】:

所以我的状态图有七个状态(000 到 110),一个输入 B 按钮和四个输出 P、Q、R 和 S。

我制作了真值表,它有 16 行(其中两行有 X)。我应该从中制作 7 个 K-Map,S2' S1' S0' P Q R 和 S。我知道输入 B (0, 1) 将位于列侧(或行),但我行有问题。 S2 是最高有效位,S0 是最低位。

我从未见过一侧有 3 位 (S2/S1/S0) 的 K-Map,但我不知道如何以任何其他方式表示它。如果是三位,这些数字的顺序是什么?对于两个,我知道现在是 00/01/11/10。

如果是两个,这似乎是正确的想法,那么您如何在三个中的两个(S2/S1/S0)之间做出选择?输入 B 侧旁边是否有一个额外的变量(所以它会是列上的 S2/S1 和行上的 B/S0?)。您如何决定将 S2/S1/S0 中的哪一个放在另一侧,这是否重要?

对我来说,一个很大的帮助是查看 S2/S1/S0 状态图的真值表/k-map 示例。我只见过 S1/S0 的例子,所以不超过 4 个状态 (00/01/10/11)。

感谢您提供的任何帮助。如果我的问题令人困惑,我很抱歉。如果我能更清楚地了解我的问题,请告诉我。

【问题讨论】:

    标签: logic bits digital-logic truthtable karnaugh-map


    【解决方案1】:

    首先是您问题的答案:

    每个卡诺图中的像元数与所有可能的输入组合数相匹配。地图单元格的索引方式必须与真值表相对应。下图是不同大小的卡诺图示例,其中相邻单元格的可视化仍然非常容易。

    如您所见,关键是,两个相邻单元格仅在一个变量的值上有所不同,四个相邻单元格在两个变量的值上有所不同,依此类推。这就是为什么您应该寻找具有 2^n 大小的组的原因。 Map 的索引可能看起来有点混乱,但这是为了显示真值表中每一行之间的所有关系。

    如果你索引一个 K-map,但不知道哪些行对应哪些变量以及它们应该按什么顺序进入,那么你可以这样检查它:

    • 索引 0 = 不是单个变量为真
    • 索引 1 = 只有 least significant bit 为真(对于按 abcd 排序的真值表,即 d
    • 索引 2 = 只有第二个最低有效位为真(对于将是 c 的同一个真值表)
    • 索引 4 = 只有第三个最低有效位为真(对于将成为 b 的同一个真值表)
    • 索引 8 = 只有第四个最低有效位为真(对于将成为 a 的同一个真值表)

    举个例子:在这里你可以看到一个 01364 序列发生器的状态图,它被实现为一个摩尔机。机器的所有边缘都标有复位按钮的输入值。

    机器的期望行为和匹配状态的输出值可以用这个转换表来描述:

     state || output (decimal) | reset || next state
    -------------------------------------------------
      S_0  ||        0         |   0   ||    S_1
           ||                  |   1   ||    S_0
    -------------------------------------------------
      S_1  ||        1         |   0   ||    S_2
           ||                  |   1   ||    S_0
    -------------------------------------------------
      S_2  ||        3         |   0   ||    S_3
           ||                  |   1   ||    S_0
    -------------------------------------------------
      S_3  ||        6         |   0   ||    S_4
           ||                  |   1   ||    S_0
    -------------------------------------------------
      S_4  ||        4         |   0   ||    S_0
           ||                  |   1   ||    S_0
    

    在对状态的表示进行编码以匹配二进制的十进制输出(q_2q_1q_0d_2 em>、d_1d_0),转换表如下所示:

     state || q_2 | q_1 | q_0 | reset || d_2 | d_1 | d_0 || next state
    -------------------------------------------------------------------
      S_0  ||  0  |  0  |  0  |   0   ||  0  |  0  |  1  ||    S_1
           ||     |     |     |   1   ||  0  |  0  |  0  ||    S_0
    -------------------------------------------------------------------
      S_1  ||  0  |  0  |  1  |   0   ||  0  |  1  |  1  ||    S_2
           ||     |     |     |   1   ||  0  |  0  |  0  ||    S_0
    -------------------------------------------------------------------
      S_2  ||  0  |  1  |  1  |   0   ||  1  |  1  |  0  ||    S_3
           ||     |     |     |   1   ||  0  |  0  |  0  ||    S_0
    -------------------------------------------------------------------
      S_3  ||  1  |  1  |  0  |   0   ||  1  |  0  |  0  ||    S_4
           ||     |     |     |   1   ||  0  |  0  |  0  ||    S_0
    -------------------------------------------------------------------
      S_4  ||  1  |  0  |  0  |   0   ||  0  |  0  |  0  ||    S_0
           ||     |     |     |   1   ||  0  |  0  |  0  ||    S_0
    

    研究每个可能的输入组合的转换表是很有用的,因为有一些“不关心” (x) 输出值(对于状态,不存在于序列),可用于卡诺图的最小化。

     index | state || q_2 | q_1 | q_0 | reset || d_2 | d_1 | d_0 || next state
    ---------------------------------------------------------------------------
       0   |  S_0  ||  0  |  0  |  0  |   0   ||  0  |  0  |  1  ||    S_1
       1   |  S_0  ||  0  |  0  |  0  |   1   ||  0  |  0  |  0  ||    S_0
    ---------------------------------------------------------------------------
       2   |  S_1  ||  0  |  0  |  1  |   0   ||  0  |  1  |  1  ||    S_2
       3   |  S_1  ||  0  |  0  |  1  |   1   ||  0  |  0  |  0  ||    S_0
    ---------------------------------------------------------------------------
       4   |   -   ||  0  |  1  |  0  |   0   ||  x  |  x  |  x  ||     -
       5   |   -   ||  0  |  1  |  0  |   1   ||  0  |  0  |  0  ||    S_0
    ---------------------------------------------------------------------------
       6   |  S_2  ||  0  |  1  |  1  |   0   ||  1  |  1  |  0  ||    S_3
       7   |  S_2  ||  0  |  1  |  1  |   1   ||  0  |  0  |  0  ||    S_0
    ---------------------------------------------------------------------------
       8   |  S_4  ||  1  |  0  |  0  |   0   ||  0  |  0  |  0  ||    S_0
       9   |  S_4  ||  1  |  0  |  0  |   1   ||  0  |  0  |  0  ||    S_0
    ---------------------------------------------------------------------------
      10   |   -   ||  1  |  0  |  1  |   0   ||  x  |  x  |  x  ||     -
      11   |   -   ||  1  |  0  |  1  |   1   ||  0  |  0  |  0  ||    S_0
    ---------------------------------------------------------------------------
      12   |  S_3  ||  1  |  1  |  0  |   0   ||  1  |  0  |  0  ||    S_4
      13   |  S_3  ||  1  |  1  |  0  |   1   ||  0  |  0  |  0  ||    S_0
    ---------------------------------------------------------------------------
      14   |   -   ||  1  |  1  |  1  |   0   ||  x  |  x  |  x  ||     -
      15   |   -   ||  1  |  1  |  1  |   1   ||  0  |  0  |  0  ||    S_0
    

    最后你可以看到,定义 d_2d_1d_0 的函数(即与01364序列中的数字)可以在下面的K-maps中简单地标记出来。

    f(d_2) = q_1 ⋅ ¬(reset)
    f(d_1) = q_0 ⋅ ¬(reset)
    f(d_0) = ¬(q_2) ⋅ ¬(q_1) ⋅ ¬(reset)
    

    (所有图像均使用乳胶生成。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 2011-05-31
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多