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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2911|回复: 6

[讨论] 一个compile error引起的思考,还未解决,大家讨论一下~

[复制链接]
发表于 2015-1-30 09:41:21 | 显示全部楼层 |阅读模式

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

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

x
ERROR: dynamic type(automatic varaible in this case) cannot be used on the left-hand side of non blocking assignments.

对于这个问题,我的理解是:

动态变量如果使用非阻塞赋值(NBA),那这个赋值的update event就要放在此刻 time slot 的 Re-NBA region 来执行,而程序段中需要在同一时刻运行(判定?)的其它语句所代表的 event 可能会在前面的 Reactive region 或者 Re-Inactive region 中进行。

而如果使用阻塞赋值的话,阻塞赋值的 update event 会在 Reactive region 执行。

所以,使用 NBA 和 BA 会导致程序运行结果不同,可能会违背编程者的意愿,为了规避这种可能,compiler 拒绝使用 NBA 给 Dynamic 类型赋值。

只是我的猜想,请大家讨论。
 楼主| 发表于 2015-1-30 10:12:14 | 显示全部楼层
这个问题发生编译testbench时,语言是SystemVerilog,环境是 VCS 1306 in Linux.
 楼主| 发表于 2015-1-30 10:12:31 | 显示全部楼层
这个问题发生编译testbench时,语言是SystemVerilog,环境是 VCS 1306 in Linux.
 楼主| 发表于 2015-1-30 10:13:17 | 显示全部楼层
回复 1# sunmaoduo

这个问题发生编译testbench时,语言是SystemVerilog,环境是 VCS 1306 in Linux.
 楼主| 发表于 2015-1-30 10:24:31 | 显示全部楼层
更正一下,根据SV standard 2012,主题中的对应段落更正为:
“而如果使用阻塞赋值的话,阻塞赋值会被 scheduled in Re-inactive region。”
 楼主| 发表于 2015-1-30 10:25:12 | 显示全部楼层
强调一下,语言是SV,环境是VCS1306 in Linux。
发表于 2015-1-30 12:29:46 | 显示全部楼层
因为这么做没什么意义
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-23 09:47 , Processed in 0.025315 second(s), 8 queries , Gzip On, Redis On.

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