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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] 关于sv和verilog assign语法的一处兼容性的问题

[复制链接]
发表于 2015-12-3 15:25:59 | 显示全部楼层 |阅读模式

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

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

x
我在平台的mon里需要对一个信号赋值,代码是:
assign tb_top.signal_a = 0;
其中signal_a是定义在tb_top中的,要是定义的时候定义为wire signal_a的话,就会报错了:
Non reg type is not valid on the left hand side of this assignment.

定义为reg signal_a的话就一切OK,奇怪的是我记得在verilog语法中,assign只能对wire信号赋值,不能对reg的操作,按理说sv兼容verilog的,不应该跟其冲突吧!

很奇怪,求一个说法!谢谢!
发表于 2015-12-3 15:40:26 | 显示全部楼层
因为是tb,待测模块的输入信号都是reg型
发表于 2015-12-3 21:03:45 | 显示全部楼层
2L大神说的对啊!!!
 楼主| 发表于 2015-12-4 08:43:24 | 显示全部楼层
回复 2# haimo


    “因为是tb,待测模块的输入信号都是reg型”? 神马意思,这个信号不属于tb_top的input,只是一个内部信号而已。
发表于 2015-12-4 14:36:50 | 显示全部楼层
这个仅仅是Verilog的问题,听2L的吧。
 楼主| 发表于 2015-12-10 14:57:00 | 显示全部楼层
【问题已解决】总结如下:
wire类型的 assign不能放到initial和task里面的,只能放到initial task外面
assgin可以对reg赋值,但是对wire赋值就要放到外面,把assign去掉,效果应该一样,因为本身就是一个task,可以直接赋值。

试了reg+always,直接在mon里面进行always语句的话,是会报错的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-8 23:42 , Processed in 0.022296 second(s), 9 queries , Gzip On, Redis On.

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