a=!(b)与a=!(|b) 有什么区别, verilog
时间:10-02
整理:3721RD
点击:
如题啊
!(b)是b的逐位取反,结果位宽与b相同,
!(|b)是b 先按位或后再去反,结果是1比特,
如b=1010,
a= !(b) = 0101,
a=!(|b) = !(1) =0
本人认为:
如果b=1010,
a= !(b)=0000,因为b是一个非零数,作!(b) 后a=0
逐位取反是~b
两个运算的结果是一样的!
a=!(b) 是对b取非!
a=!(|b) “|”是缩减符号,按b从低位到高位或,后再取非
谢谢啊
对!结果是一样!但是综合后就不一定了!
要看工具把前者综合成比较器还是按照后者的逻辑!
学习了.
恩,结果应该是一样的
~b才是按位取反
受教了哈
‘|’ 在verilog里面是reduce operation 就是缩减运算。|b=b(1)|b(2)|b(3)|……|b(n);这样讲明白了吧。
受教了
做以下仿真
