将设计一种组合电路,其对4位输入中1位的出现次数进行计数。然而,输入1111对于电路来说是无效输入,并且在这种情况下输出将是00。
这种电路的一个有效输入可以是具有输出11的1110;另一个有效输入可以是具有输出10的1010。
画出电路的真值表。使用卡诺图设计电路,并使用AND、OR和NOT门绘制电路。
发布于 2017-05-18 00:22:16
因为4位输入最多只能有4个1,所以我们可以将输出编码成3位长的二进制数。
真值表将如下所示:
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_1和y_0,但我认为卡诺图适用于此。
使用索引(表中从零开始索引的行数)或比较变量的组合,将每个输出函数的真值表中的行转移到单独的K图中。
对于输出函数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

对于输出的最高有效位,我选择查找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)

但可以将其最小化到K-map中的以下输出函数:
y_1 = (w + x + y) · (w + y + z) · (w + x + z)
· (¬w + ¬x + ¬y + ¬z) · (x + y + z)

在此之后,您可以只使用正确的门或使用Rott的网格将其转换为更合适的门组合。
https://stackoverflow.com/questions/40259014
复制相似问题