如何用2x1多路复用器(Mux)实现1位幅度比较器?
用2x1多路复用器实现1位幅度比较器
先明确1位幅度比较器的真值表,这是设计的核心依据:
| A | B | A>B | A=B | A<B |
|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 |
我们需要用三个独立的2x1多路复用器分别实现三个输出,每个Mux的设计逻辑如下:
1. 实现A>B输出
将A作为2x1 Mux的选择端(S):
- 当A=0时,无论B取何值,A>B的结果都是0,因此Mux的I0端口接0
- 当A=1时,A>B的结果等于
~B(B=0时输出1,B=1时输出0),因此Mux的I1端口接~B - Mux的输出即为A>B的结果
2. 实现A<B输出
同样将A作为选择端:
- 当A=0时,A<B的结果等于B(B=1时输出1,B=0时输出0),因此Mux的I0端口接B
- 当A=1时,无论B取何值,A<B的结果都是0,因此Mux的I1端口接0
- Mux的输出即为A<B的结果
3. 实现A=B输出
A=B的本质是A、B取值相同(异或非逻辑),仍将A作为选择端:
- 当A=0时,结果等于
~B(B=0时输出1,B=1时输出0),因此Mux的I0端口接~B - 当A=1时,结果等于B(B=1时输出1,B=0时输出0),因此Mux的I1端口接B
- Mux的输出即为A=B的结果
补充说明
如果你的电路中没有现成的~B信号,需要额外加一个非门生成该信号,其余部分直接按上述接线即可完成设计。
内容的提问来源于stack exchange,提问作者Meet Bhatt
相关产品推荐
相关产品推荐

