记录在vcs编译sv变量遇到的一个问题。
vcs version: 2018.09-SP2-4_Full64
1 | program sv(); |
这段代码打印出来居然是x
把结构体换成类,也是同样的问题。
如果把代码换成这样,就不会有问题。
1 | program sv(); |
或者把function放到类里面,也不会有问题
1 | program sv(); |
奇怪的现象,不知道是不是因为vcs的原因。
———- 20200727 update ————–
应该是因为在program里面,所有成员都是static的,导致x_t y = q.pop_front()
在很早就调用了,是在push_back
之前调用的,所以结果是x。
在program后面加automatic
之后结果就是正确的了。
1 | program automatic sv(); |