微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > a=!(b)与a=!(|b) 有什么区别, verilog

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);这样讲明白了吧。

受教了

做以下仿真

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top