集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2943|回复: 8

看看这条verilog语句是什么意思,

[复制链接]
longt 发表于 2010-6-26 01:09:20 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2010-7-6 06:34 编辑

input    rty_i;
reg  [6:0] retry_cntr;
wire    retry;
assign retry = rty_i | (|retry_cntr);

看上面语句中retry_cntr前面的操作,何意
longtim 发表于 2010-6-26 01:26:52 | 显示全部楼层
是 归约或,好像也叫&ldquo;缩减(?)&rdquo;运算符?<br>
结果等于各位相或。
VVIC 发表于 2010-6-26 02:23:06 | 显示全部楼层
归约操作符<br>
<br>
  归约操作符在单一操作数的所有位上操作,并产生1位结果。归约操作符有:<br>
<br>
* &amp; (归约与)<br>
如果存在位值为0, 那么结果为0;若如果存在位值为x或z,结果为x;否则结果为1。<br>
* ~&amp; (归约与非)<br>
与归约操作符&amp;相反。<br>
* | (归约或)<br>
如果存在位值为1,那么结果为1;如果存在位x或z,结果为x;否则结果为0。<br>
* ~| (归约或非)<br>
与归约操作符|相反。<br>
* ^ (归约异或)<br>
如果存在位值为x或z,那么结果为x;否则如果操作数中有偶数个1, 结果为0;否则结果为1。<br>
* ~^ (归约异或非)<br>
与归约操作符^正好相反。<br>
如下所示。假定,<br>
A = 'b0110;<br>
B = 'b0100;<br>
那么:<br>
|B 结果为1<br>
&amp; B 结果为0<br>
~ A 结果为1<br>
归约异或操作符用于决定向量中是否有位为x。假定,<br>
MyReg = 4'b01x0;<br>
那么:<br>
^MyReg 结果为x<br>
  上述功能使用如下的if语句检测:<br>
<br>
if (^MyReg = = = 1'bx)<br>
$ display ("There is an unknown in the vector MyReg !")<br>
<br>
注意逻辑相等(==)操作符不能用于比较;逻辑相等操作符比较将只会产生结果x。全等操作符期望的结果为值1。
CTT 发表于 2010-6-26 02:38:45 | 显示全部楼层
同意楼上意见
interig 发表于 2010-6-26 03:00:02 | 显示全部楼层
建议再看看verilog语法书!!!!!!!
FFT 发表于 2010-6-26 03:49:10 | 显示全部楼层
是指retry_cntr每一位或起来,得到的是一个1bit的值
ups 发表于 2010-6-26 05:42:11 | 显示全部楼层
3楼的请问,if (^MyReg = = = 1'bx)是否可出现在设计当中,即是否可以综合?===在综合后形成什么?谢谢
UFP 发表于 2010-6-26 06:54:35 | 显示全部楼层
原帖由 microelec 于 2007-3-22 09:40 发表
       
       

<br>
3楼的请问,if (^MyReg = = = 1'bx)是否可出现在设计当中,即是否可以综合?===在综合后形成什么?谢谢 可综合,结果自己综合看下吧
Sunlife 发表于 2015-6-17 11:26:49 | 显示全部楼层

是指retry_cntr每一位或起来,得到的是一个1bit的值
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 16:32 , Processed in 0.066446 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表