01-布尔逻辑及HDL的问题
1,a,b,c 分别是一位的二进制数,如何比较三者是否想等?
(1)用异或可以比较出2个数是否相等
f(x,y)= x Xor y = x'y+xy'
描述:
if a=b,out=0 else out=1
修改:用Eql门来比较两个数是否相等比较好
f(x,y) = x Eq y = xy + x'y'
描述: if a=b,out=1 else out=0;
(2)尝试使用 a Xor b ,得结果为c0 然后c0 Xor c
(i)Xor(a,b) if a=b out=0 else out=1
(ii)Xor(c0,c)if c0=c out=0 else out=1
举反例验证:
1,a=b c=0 out=0 //000 110
2,a=b c=1 out=1 //001 111
(3)问题转换成,如何使用000,111 经过某种运算方式,得出同样的结果??
(4)尝试使用Eq门,
c0 = Eq(a,b)
out= Eq(c0+ Eq(a,b)) 依旧不对!
(5)三者比较的原理是:
Eq(a,b,c) = abc+ a'b'c'