verilog语句中“|”和“&”的含义?
最近看到IP核中用到的一些语句不知道什么意思,也不知道该在哪里去查找语法含义,下面语句中用到的“|”和“&”,请用到过的前辈指点哈!谢谢!reg bank_hit;
reg two_t_enable_r;
bank_conflict_r <= (~(|bank_hit));//“|”在这表示什么意思?
assign conflict_detect = (MULTI_BANK_EN) ?
((|(row_conflict_r & bank_hit_r))////“|”在这表示什么意思?
| bank_conflict_r) & af_valid_r2 :
row_conflict_r & af_valid_r2;
if(&two_t_enable_r)//"&"表示什么意思? 亂翻書都有
"|" OR
"&" AND 与 C 语言无异, [ | ] 是 OR, [ & ] 是 AND{:smile:} 还真没见过 还真没见过,翻了些资料,也没有找到这种用法 这个没见过,“I”“or”都不是单目操作符,怎么能这么用 sky5566 发表于 2012-9-8 17:23 static/image/common/back.gif
亂翻書都有
"|" OR
您看到有用到单个变量前面的嘛? 据说是把这个变量的所有位进行与或者或操作,我记不清了。 lcofjp 发表于 2012-9-10 19:48 static/image/common/back.gif
据说是把这个变量的所有位进行与或者或操作,我记不清了。
谢谢!你说的是正确的,我已经查到了,是多位运算并成一位的 一元约简运算符,具体工作过程是:先将操作数的第1位与第2位进行与、或、非运算;然后将运算结果与第3位进行与、或非运算,依次类推,直到最后一位。 按位与、或 &, |如果作为双目操作符表是,按位与,按位或,例如
a=3'b110;
b=3'b010;
那么,按位与的结果为:a&b = 3'b010;,按位或的结果为:a|b=3'b110;
这是最常用的方式,
如果用做单目操作符,就是只有一个操作数,如楼主所示的情况
叫做缩减操作符,分别称为缩减与,缩减或,当然还有缩减异或,缩减同或等
&a=1'b0;//等价于&a)&a,缩减与
|a=1'b1; //等价于(a|a)|a,缩减或 还真没这样用过,学习了
页:
[1]