多路复用器(Mux)门电路简化求助:如何用4个门实现?
多路复用器(Mux)的最简4逻辑门实现方案
最简实现代码(2选1 Mux)
Not(in= sel, out= not_sel); And(a= not_sel, b= a, out= path_a); And(a= sel, b= b, out= path_b); Or(a= path_a, b= path_b, out= out);
逻辑原理
2选1 Mux的核心功能是:当选择信号sel为true时输出b,为false时输出a,对应的布尔表达式为:out = (¬sel ∧ a) ∨ (sel ∧ b)
这个表达式直接映射为4个逻辑门的实现:
- 用
Not门生成选择信号的反相信号not_sel,用于激活输入a的路径; - 第一个
And门:仅当sel为false(即not_sel为true)时,传递a的信号; - 第二个
And门:仅当sel为true时,传递b的信号; - 最后用
Or门将两条路径的有效信号合并,得到最终输出。
关于你现有代码的问题
你之前的实现引入了多余的逻辑门(比如额外的Or、Nand),本质上绕开了Mux的核心布尔表达式,导致门电路数量冗余。直接基于上述布尔表达式实现,就能严格控制在4个逻辑门以内,同时完全符合Mux的功能需求。
内容的提问来源于stack exchange,提问作者Ashok Kimmel
相关产品推荐
相关产品推荐

