微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于sv和verilog assign语法的一处兼容性的问题

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

时间:10-02 整理:3721RD 点击:
我在平台的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的,不应该跟其冲突吧!
很奇怪,求一个说法!谢谢!

因为是tb,待测模块的输入信号都是reg型

2L大神说的对啊!



    “因为是tb,待测模块的输入信号都是reg型”? 神马意思,这个信号不属于tb_top的input,只是一个内部信号而已。

这个仅仅是Verilog的问题,听2L的吧。

【问题已解决】总结如下:
wire类型的 assign不能放到initial和task里面的,只能放到initial task外面
assgin可以对reg赋值,但是对wire赋值就要放到外面,把assign去掉,效果应该一样,因为本身就是一个task,可以直接赋值。
试了reg+always,直接在mon里面进行always语句的话,是会报错的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top