数字集成电路设计-1-用一个mux和一个inv实现异或

本文介绍了一种使用Verilog语言实现异或门的方法,并给出了相应的电路图。通过该方法,仅需使用2个与门、2个非门及1个或门即可完成异或逻辑功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言 

今天遇到一个问题,如题,想了十来分钟都没有想出来,现在想出来了,觉得挺有意思。


1.1 verilog实现

module xor_rill
(
input a,
input b,

output z
);

assign z = a?(~b):b;

endmodule

1.2 电路图



1.3小结

如果要用基本的与或非门,要用2个与门,2个非门,1个或门。

稍微有点意思吧,呵呵。

要使用一个8-to-1复用择器(MUX,如74151),以及基本门电路来设计一个全减器,首先需要了解全减器的基本功能。全减器是一个可以执行两个有符号进制数相减,并能处理借位的电路。它通常由三个输入A、B Borrow(Borrow表示从低位借位的结果)以及两个输出SubtractDifference组成。 下面是设计步骤: 1. **设置Mux择信号**: - 对于全加器,你需要将A、B作为数据输入,而Borrow作为一个控制输入。mux的输入端口将AB连接到输入A输入B位置,因为任何时候你只需要其中的一个作为当前操作数。 2. **构建 borrow 输入**: - 你可以通过简单的逻辑门(比如ANDNOT)来生成 Borrow信号。如果A比B大(即A>B),则需要从低位借位,此时Borrow应为1;反之,Borrow为0。 ```plaintext Borrow = (A > B) ? NOT(B) : B ``` 3. **配置MUX**: - 将Borrow信号作为择信号,当Borrow=0时,MUX择A作为输出(Subtract),当Borrow=1时,MUX择B作为输出(Subtract)。剩下的B保持不变。 ```plaintext Subtract = MUX(A, B, B) ``` 4. **计算差值**: - 差值(Difference)等于A-B,这可以通过另一个8-to-1 MUX实现,其中一个输入是A,另一个是Subtract,第三个输入是B。 ```plaintext Difference = MUX(A, Subtract, B) ``` 5. **连接外部负载**: - 连接两个输出(SubtractDifference)到实际的应用电路,如显示器或进步的逻辑处理。 请注意,实际的设计可能会更复杂,因为现代数字逻辑芯片往往集成了这样的功能。但这是般概念的简化描述。对于实际应用,你还需要考虑CMOS或TTL逻辑标准,电源管理,其他必要组件。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值