在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2485|回复: 5

[求助] 非阻塞赋值

[复制链接]
发表于 2010-3-13 10:56:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 cgf1981 于 2010-3-13 23:43 编辑

对于DataInVld这个寄存器型值,在同一个always的过程中,被多次非阻塞驱动,难道这样不会产生冲突吗?
[email=always@(posedge]always@(posedge[/email] clk)
begin
DataInVld <= 0;
if(x)
  DataInVld<=1;
else DataInVld <=1;
end
发表于 2010-3-13 12:03:17 | 显示全部楼层
只最后一次的赋值有效,不会冲突
 楼主| 发表于 2010-3-13 12:13:21 | 显示全部楼层
为什么只有最后一处赋值有效啊,这里不是非阻塞赋值吗?

会引起竞争冒险吗?
发表于 2010-3-13 17:04:01 | 显示全部楼层
应该不会产生冲突,因为在Verilog标准定义了在同一个always中,可以对某同一变量进行多次非组赛赋值,但只有最后一次赋值对该变量起作用。因为按照规则要求将非阻塞赋值更新事件按照他们在原文件的顺序加入队列,这便要求按照事件在源文件中的顺序,将事件从队列中取出并执行。
发表于 2010-3-14 01:14:28 | 显示全部楼层
it is the non-block assignment.
发表于 2010-3-14 09:54:44 | 显示全部楼层
到alway块结束后才更新变量的,所以没什么冒险和竞争
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-16 07:55 , Processed in 0.050266 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表