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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 753|回复: 9

[讨论] 非阻塞赋值的问题

[复制链接]
发表于 2023-8-14 15:55:53 | 显示全部楼层 |阅读模式

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

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

x




  1. always @(posedge clk) begin
  2.         a <= 1'b0;
  3.    if(en) begin
  4.         a <= 1'b1;
  5.     end
  6. end


复制代码
今天看代码看到了一个这样的代码,这种赋值会产生冲突吗?
 楼主| 发表于 2023-8-14 15:57:05 | 显示全部楼层
阻塞赋值可以这样赋,因为是顺序执行,非阻塞的是并行执行的,这样不会冲突吗?
发表于 2023-8-14 16:05:16 | 显示全部楼层
一般不带复位的reg不会给初值吧,就默认是x应该就没啥问题,去掉第二行。图里的代码也没有看到阻塞赋值啊
发表于 2023-8-14 16:50:15 | 显示全部楼层
按照较新的语法规定 应该不会有问题
发表于 2023-8-15 07:21:52 | 显示全部楼层
en = 1, a = x
我的理解
发表于 2023-8-16 14:23:21 | 显示全部楼层
en = 1的时候,应该会冲突吧。非阻塞也就是并行,a既等于0又等于1吗
发表于 2023-8-18 13:58:01 | 显示全部楼层
根据IEEE-1364语法标准,无论是阻塞赋值,还是非阻塞赋值,同一语法块中,后面的赋值均会覆盖前面的赋值。所以这种写法不会有问题。
 楼主| 发表于 2023-8-18 19:09:18 | 显示全部楼层


liuliqiang 发表于 2023-8-18 13:58
根据IEEE-1364语法标准,无论是阻塞赋值,还是非阻塞赋值,同一语法块中,后面的赋值均会覆盖前面的赋值。 ...


好的,谢谢
发表于 2023-8-29 11:52:43 | 显示全部楼层
别这样写不就行了。。这种写法很不规范
发表于 2023-9-11 12:35:59 | 显示全部楼层
没冲突,只有en为1的时候,a输出1,其它都为0。
在某种场合,这样写代码很简洁。只是1个if倒没必要这样写。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-7 18:59 , Processed in 0.025763 second(s), 6 queries , Gzip On, Redis On.

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