我正在尝试对可以处理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 :(得分:0)
二进制xor在两个输入相同时将产生0。 a == b时,XOR b为0。要测试0,或者一起测试这些位,如果结果是0,那么这些位都是0.一个0或者相等的结果,非零意味着不相等 - 所以反转结果。
使用加法器/减法器,如果a == b(和执行),A + Binverse + Cin=1
将产生0
A xor Binverse xor Cin
看起来像最不重要的位的行为;对于最重要的位,你需要相同的门,加上从lsb到msb的进位生成