1

将设计一个组合电路来计算 4 位输入中 1 位的出现次数。但是,输入 1111 是电路的无效输入,在这种情况下输出将为 00。

这种电路的一个有效输入可能是 1110 和输出 11;另一个有效输入可能是 1010 和输出 10。

画出电路的真值表。使用卡诺图设计电路并使用 AND、OR 和 NOT 门绘制电路。

4

1 回答 1

0

因为 4bit 输入最多可以有 4 个 1,所以我们可以将输出编码为 3bit 长的二进制数。

真值表如下所示:

 w x y z   y_2 y_1 y_0
---------+-------------   number of positive bits
 0 0 0 0 |  0   0   0   ~ 0
 0 0 0 1 |  0   0   1   ~ 1
 0 0 1 0 |  0   0   1   ~ 1
 0 0 1 1 |  0   1   0   ~ 2
---------+-------------
 0 1 0 0 |  0   0   1   ~ 1
 0 1 0 1 |  0   1   0   ~ 2
 0 1 1 0 |  0   1   0   ~ 2
 0 1 1 1 |  0   1   1   ~ 3
---------+-------------
 1 0 0 0 |  0   0   1   ~ 1
 1 0 0 1 |  0   1   0   ~ 2
 1 0 1 0 |  0   1   0   ~ 2
 1 0 1 1 |  0   1   1   ~ 3
---------+------------- 
 1 1 0 0 |  0   1   0   ~ 2
 1 1 0 1 |  0   1   1   ~ 3
 1 1 1 0 |  0   1   1   ~ 3
 1 1 1 1 |  1   0   0   ~ 4

但!您的情况下的输出只有两位。您的规范还认为 1111 输入与 00 输出无效。因此,您可以简单地删除真值表中最重要的列,不会有其他变化:

 w x y z   y_1 y_0
---------+---------   number of positive bits
 0 0 0 0 |  0   0   ~ 0
 0 0 0 1 |  0   1   ~ 1
 0 0 1 0 |  0   1   ~ 1
 0 0 1 1 |  1   0   ~ 2
---------+-------------
 0 1 0 0 |  0   1   ~ 1
 0 1 0 1 |  1   0   ~ 2
 0 1 1 0 |  1   0   ~ 2
 0 1 1 1 |  1   1   ~ 3
---------+-------------
 1 0 0 0 |  0   1   ~ 1
 1 0 0 1 |  1   0   ~ 2
 1 0 1 0 |  1   0   ~ 2
 1 0 1 1 |  1   1   ~ 3
---------+------------- 
 1 1 0 0 |  1   0   ~ 2
 1 1 0 1 |  1   1   ~ 3
 1 1 1 0 |  1   1   ~ 3
 1 1 1 1 |  0   0   ~ invalid, showing zeros

现在您可以使用不同的样式来最小化输出函数y_1y_0,但我认为卡诺图适合于此。

使用索引(表中从零开始索引的行数)或比较变量的组合,将每个输出函数的真值表的行转移到单独的 K-map 中。

对于输出函数y_0,最终的 K-map 看起来像这样,您可以看到这是最小化的 SOP(DNF;连词的析取)函数,没有找到更大的组(项)。

y_0 = ¬w·¬x·¬y·z + ¬w·x·¬y·¬z + ¬w·¬x·y·¬z + ¬w·x·y·z 
       + w·¬x·y·z + w·x·y·¬z + w·¬x·¬y·¬z + w·x·¬y·z

输出函数 y_0 的 K-map

对于输出的最高有效位,我选择查找 POS(CNF;析取的合取),因为在输出中位的情况0比位少。1

输出功能也可以y_0通过标出所有正确的位来描述。在这种情况下,它将是这个 K-map 和函数:

y_1 = (w + x + y + z) · (w + x + y + ¬z) · (w + ¬x + y + z) 
      · (w + x + ¬y + z) · (¬w + ¬x + ¬y + ¬z) · (¬w + x + y + z)

最小化前输出函数 y_1 的 K-map

但这可以最小化为 K-map 中的这个输出函数:

y_1 = (w + x + y) · (w + y + z) · (w + x + z) 
      · (¬w + ¬x + ¬y + ¬z) · (x + y + z) 

最小化后输出函数 y_1 的 K-map

之后,您可以使用正确的门或使用 Rott 网格将其转换为更合适的门组合。

于 2017-05-17T16:22:16.240 回答