我认为这并不太复杂,假设您已经正确计算出想要的方程式(我会假设您已经做好了。)首先查看2英寸MUX的方程式:
M2(A,B,S)=A⋅S¯+B⋅S
从中可以得出一些有用的结果:
M2(0,x,y)M2(x,0,y)M2(x,y,0)M2(1,x,y)M2(x,1,y)M2(x,y,1)M2(x,y,x)M2(x,y,y)M2(0,0,x)M2(0,1,x)M2(1,0,x)M2(1,1,x)=x⋅y=x⋅y¯=x=x+y¯=x+y=y=x⋅y=x+y=0=x=x¯=1
因此可以得出以下结论:
Fxyz∴FF=AB+BC+CD=AB=M2(A,B,A)=BC=M2(B,C,B)=CD=M2(C,D,C)=x+y+z=M2(M2(x,y,y),z,z)
简而言之,您将需要(5)2英寸多路复用器:
模拟此电路 –使用CircuitLab创建的原理图
那里也有很好的对称性。注意到了吗?
添加:您询问仅能使用0、1或D作为多路复用器数据输入源。我假设您的意思是所有A,B,C和D都可以用作复用器选择器。(否则,我认为不会达到结果。)因此,这仅意味着您需要使用我之前提到的其他一些有用的结果。最简单的想法是仅添加三个更多的2英寸多路复用器:
模拟该电路
我不确定是否有进一步优化它的方法。我还没有研究所有可能性。
再次编辑:是的!使用OP的新添加的解决方案,下面的两个流程就可以解决了。左边的回答他问题的第一部分,右边的回答他问题的第二部分。
模拟该电路
再次编辑:排序并不复杂。它只是分配字母所属的位置。作者将(A)作为三位二进制值的高阶位,因此它表示或;将(B)设为三位二进制值的中间位,因此它表示或;并将(C)设为三位二进制值的低位,因此它表示或。各种不同的观点将同样有效。但这就是他们似乎选择的那个。0⋅22=01⋅22=40⋅21=01⋅21=20⋅20=01⋅20=1
因此,他们现在从第一层(左)开始,布置了由(A)控制的(4)个多路复用器,并通过将这些多路复用器编号为ABC =“ x00”,ABC =“ x01”,ABC =“ x10”在精神上保持方便,最后一个ABC =“ x11”。
现在,由于对于前一个ABC =“ x00”,这意味着它接受“ 000” = 0或“ 100” = 4。因此,对于该多路复用器(mux1)的“ 0”输入,他们调查了表中ABC =“ 000” = 0的情况并将表项放入其“ 0”侧输入中。对于该多路复用器的“ 1”输入,他们查看了表中ABC =“ 100” = 4并将该表条目放入其“ 1”侧输入中。(该表在这里看起来是错误的,因为它们应该在该框中为0,并通过查看前面的扩展列进行确认。)
下一个mux down(mux2)用于ABC =“ x10”,因此使用了ABC =“ 010” = 2和ABC =“ 110” = 6;下一个mux down(mux3)用于ABC =“ x01”,因此使用了ABC =“ 001” = 1和ABC =“ 101” = 5;最后最后一个向下的Mux(mux4)用于ABC =“ x11”,因此使用ABC =“ 011” = 3和ABC =“ 111” = 7。
mux1(ABC =“ x00”)和mux2(ABC =“ x10”)共同馈入mux5。您可以在此处看到B是0或1之间的变化,因此这就是它们如何将它们连接到此处的方式。mux5的输出将为ABC =“ xy0”,其中前两位已被解码,剩下的只是解码C = 0的情况。因此,mux5的输出将进入mux7的“ 0”输入。同样,将mux3(ABC =“ x01”)和mux4(ABC =“ x11”)联合提供给mux6。B还是mux6选择的变体。mux6的输出始终与C = 1情况相关,并被馈送到mux7的“ 1”输入中。
剩下的全部是供mux7在C = 0和C = 1之间选择。