首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用卡诺图技术的电路

使用卡诺图技术的电路
EN

Stack Overflow用户
提问于 2016-10-26 17:50:44
回答 1查看 216关注 0票数 1

将设计一种组合电路,其对4位输入中1位的出现次数进行计数。然而,输入1111对于电路来说是无效输入,并且在这种情况下输出将是00。

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

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

EN

回答 1

Stack Overflow用户

发布于 2017-05-18 00:22:16

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

真值表将如下所示:

代码语言:javascript
运行
复制
 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输出。因此,您可以简单地删除真值表中最重要的列,并且不会有其他更改:

代码语言:javascript
运行
复制
 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图中。

对于输出函数y_0,最终的K-map如下所示,如您所见,这是最小化的SOP (DNF;合取析取)函数,没有找到更大的组(项)。

代码语言:javascript
运行
复制
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和函数:

代码语言:javascript
运行
复制
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中的以下输出函数:

代码语言:javascript
运行
复制
y_1 = (w + x + y) · (w + y + z) · (w + x + z) 
      · (¬w + ¬x + ¬y + ¬z) · (x + y + z) 

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40259014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档