1

我必须制作一个具有 5 个输入和 3 个输出的真值表,如下所示:

A B C D E red green blue
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 1
0 0 0 1 0 0 0 1 . . . . 1 1 0 1 0 0 1 1
. . . 1 1 1 1 1 1 0 1

等(总共32行,rgb表中的数字表示二进制中每行1的数量,即第1行1 0 1 0有三个1,所以二进制中的三个是0 1 1)。

我想在 Atanua ( http://sol.gfxile.net/atanua/index.html ) 工具中展示它的结果(例如,当我按下按钮 E 时,蓝光会发光,当按下 ABD 时绿色和蓝色的光会发光等等)。但是有一个要求,我只能使用 AND、OR、NOT 操作数,并且每个操作数只能有两个输入。尽管我使用卡诺图将其最小化,但对于这么多记录,每个输出的结果仍然很长(尤其是最后一个)。

我试图通过将所有三个输出布尔函数合而为一来进一步简化它,最小化过程结束得很好:

A + B + C + D

它似乎工作正常(但由于只有一个输出光,它只能分别在红绿蓝列中工作)。我担心的是我想要三个输出(三个灯,而不是一个),并且在这种最小化之后甚至可能吗?在阿塔努阿有一个好的解决方案吗?还是我必须制作 3 个单独的布尔函数,无论它们有多长(即使在最小化之后也有很多)?

编辑:整个真值表:)

A B C D E R G B

0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 1
0 0 0 1 0 0 0 1
0 0 0 1 1 0 1 0
0 0 1 0 0 0 0 1
0 0 1 0 1 0 1 0
0 0 1 1 0 0 1 0
0 0 1 1 1 0 1 1
0 1 0 0 0 0 0 1
0 1 0 0 1 0 1 0
0 1 0 1 0 0 1 0
0 1 0 1 1 0 1 1
0 1 1 0 0 0 1 0
0 1 1 0 1 0 1 1
0 1 1 1 0 0 1 1
0 1 1 1 1 1 0 0
1 0 0 0 0 0 0 1
1 0 0 0 1 0 1 0
1 0 0 1 0 0 1 0
1 0 0 1 1 0 1 1
1 0 1 0 0 0 1 0
1 0 1 0 1 0 1 1
1 0 1 1 0 0 1 1
1 0 1 1 1 1 0 0
1 1 0 0 0 0 1 0
1 1 0 0 1 0 1 1
1 1 0 1 0 0 1 1
1 1 0 1 1 1 0 0
1 1 1 0 0 0 1 1
1 1 1 0 1 1 0 0
1 1 1 1 0 1 0 0
1 1 1 1 1 1 0 1
每种颜色的卡诺图(~是非门,*是与,+或):
红色:
BCDE+ACDE+ABDE+ABCE+ABCD
绿色:
~A~BDE+~AC~DE+~ACD~E+~BCD~ E+~AB~CE+B~CD~E+BC~D~E+A~B~CE+A~B~CD+A~BC~D+AB~C~D

蓝色:
~A~B~C~DE+~A~B~CD~E+~A~BC~D~E+~A~BCDE+~AB~C~D~E+~AB~CDE+~ABC~DE+~ABCD~E +A~B~C~D~E+A~B~CDE+A~BC~DE+A~BCD~E+AB~C~DE+AB~CD~E+ABC~D~E+ABCDE

4

1 回答 1

0

不得不承认公式有些难看,但是用逻辑门来实现并不太复杂,因为你可以重用部分。

A -----+------+------------- - - -
      NOT     |
       +------|--AND- ~AB
       |      |   |
      AND-----|---|-- ~A~B
       +--AND-+   |
       |   +--|---|-- A~B
      NOT    AND--|-- AB
B -----+------+---+---------- - - -

这里作为一个例子,我创建了 [not]A 和 [not]B 的所有组合。您可以对 C 和 D 执行相同操作。因此,您可以通过将每个“盒子”中的电线与一个和 gatter (例如,对于 ABCD,我们将采用 AB 线和 CD 线)。

于 2017-04-07T21:51:03.560 回答