1

如果我有一个 5 变量函数(如下)并且我想使用多路复用器来实现它,我将如何做到这一点(使用尽可能小的多路复用器):

f(A,B,C,D,E) = A + C'D + BD' + B'D + B'CE

这是作业,所以不要提供解决方案,只是提供如何工作的指导。

谢谢!

4

3 回答 3

0

既然你明确提到

使用尽可能少的多路复用器

还有另一种方法,您只需要一个 2^(n-1) 输入多路复用器来实现输入功能(因此,在您的情况下,具有 2^4 个输入和 4 个选择输入的 MUX 就足够了)。这个想法是使用真值表的前 n-1 个输入作为 MUX 的选择输入,而其余的则根据需要连接到数据输入以提供所需的结果。

由于我还不能发布图片,请参阅以下具体示例:https ://www.dropbox.com/s/v8osbd8gtwhtfor/n-1inputmux.png

或者如何使用 MUX 实现简单的逻辑门:https ://www.dropbox.com/s/7cqbodha7lcoi9y/n-1inputmuxbasics.png


资料来源:

http://sifaka.uwaterloo.ca/~akenning/courses/ece124/

http://6004.mit.edu/

(我不能发布两个以上的真实链接......)

于 2014-01-13T00:09:51.253 回答
0

5 个变量表示 2**5 (32) 输入多路复用器,输入 0 到 31。将这些项转换为二进制数并将相应的输入保持为高电平。因为B'CE我们有:

A B C D E
X 0 1 X 1

这给了我们 4 个数字,因为我们有 2 个不关心。这四个数字是:

00101 = 5
00111 = 7
10101 = 21
10111 = 23

保持输入 5、7、21 和 23 为高电平。

重复其余条款。

于 2010-01-24T22:59:49.613 回答
0

Fanhoso 和 Ignacio Vazquez-Abrams 通过的答案已经过时或完全无用。

  1. 计算变量的频率:

f(A,B,C,D,E) = A + C'D + BD' + B'D + B'CE

A: 1x;
B: 3x;
C: 2x;
D: 3x;
E: 1x;

出现最多的变量将成为选择器输入,因为这样它们以最有效的方式使用(否则,必要的门数量会增加)。所以在这种情况下,它将是 AE|BCD(其中 BCD 形成 SELECTOR INPUTS)。

  1. 对于此步骤和后续步骤,我们需要知道包含哪些最小项,因此您应该传递最小项的规范总和。我发现您的函数如下所示:

f(A,B,C,D,E) = Σ{ 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22 , 23, 24, 25, 26, 27, 28, 29, 30, 31 }

按新变量顺序对最小项(二进制形式)进行排序:

         ABCDE -> AE|BCD|
    (2)  00010 -> 00|001|
    (3)  00011 -> 01|001|
    (5)  00101 -> 01|010|
      .
      .
      .
  1. 尽管如此,我们仍不知道所需信号将出现在哪些组中,因此我们需要根据选择器输入线中的相同信号再次对它们进行分组。

例如,选择器输入线上的 001 转移到数据输入线上的输入 1。从 00|001 (2) 可以得到其他数字,即 01|001 (3)。

             ABCDE -> AE|BCD|
input data no 1:
        (2)  00010 -> 00|001|
        (3)  00011 -> 01|001|
         .
         .
input data no 2:
        (5)  00101 -> 01|010|
          .
          .
          .
  1. 开始绘制方案之前的最后一件事是定义如何将信号 AE 与数据输入线连接,这意味着我们需要知道哪些门是获得所需输出所必需的。在此示例中,输入行 1 包括:

     (2)  00010 -> 00|001|
     (3)  00011 -> 01|001|
    

因此,有必要将 A'(E 是“不关心”)与数据输入行号 1 连接起来。当然,一旦您正确分组所有最小项,您的情况的组合将完全不同。

于 2021-11-24T12:57:58.937 回答