2014-12-04 63 views
0

我想为可以处理A == B的ALU进行门级分析,到目前为止,如果a-b = 0,那么a == b。使用逻辑门测试在比特级别相等

在二进制(我们使用2位)我有1-1,这是01-01

由于这是门级,我需要做A xor Binverse xor Cin(which is 01 for 2's complement)

这相当于01 xor 10 xor 01 = 11 xor 01= 10,但我不应该在寻找01-01=00

关于如何在门级测试相等的任何提示?

+0

如果处理A == B,C如何进入它? – Andras 2014-12-04 05:25:35

+0

@Andras我正在测试A == B通过使用加法器/减法器,其中A和B是输入,Cin是进位术语,因为AB只是A + Binverse + 1,我将Cin设置为1 – tom 2014-12-04 05:31:58

+0

啊,谢谢。我可能误解了 – Andras 2014-12-04 05:34:04

回答

0

二进制异或将在其两个输入相同时产生0。 a == b时XOR b将为0。要测试0,或者一起测试比特,并且如果结果为0,则这些比特全为0.由于或者等于0的结果,非零意味着不等于 - 所以反转结果。

使用加法器/减法器,A + Binverse + Cin=1将产生0,如果一个== B(和执行)的同时进行说

A xor Binverse xor Cin看起来至少显著位的行为;你需要相同的门也是最重要的位,再加上从LSB到MSB的携带生成