今年的华为IC笔试有一个这样的题:
用2选1MUX搭出异或门最少用几个?
假设输入为A,B,输出为Y,那么我们知道,如果A、B相同时,Y=1;A、B不同时,Y=0,真值表如下:
由真值表画出卡诺图,
A | B | Y |
0 | 0 | 0 |
1 | 1 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
从卡诺图可以看出,当A = 1时,Y= B';当A = 0时,Y= B,即:Y = A'B + A'B。
很自然的,可以通过Verilog把逻辑表达式写出来,
Y = A ?~B : B;
用2选1MUX电路表示如下:
现在我们只要用2选1MUX实现B'(非门)即可,
当B = 0时,取1
当B = 1时,取0,
即:
输出 = B ? 0: 1;用2选1MUX表达出来,如下,把输出和B'连接起来,即为异或门的2选1MUX实现
也就是,实现异或门至少需要2个2选1MUX实现
同理,如果这里我们要实现同或门,
Y = A‘B’ + AB,
即:当 A = 0时,Y = B'
当A = 1时, Y = B
电路如下:
全部评论
(0) 回帖