微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > vcs class对象new

vcs class对象new

时间:10-02 整理:3721RD 点击:
class rgb_pixel extends uvm_sequence_item;
`uvm_object_utils(rgb_pixel)
rand bit [7:0] red;
rand bit [7:0] green;
rand bit [7:0] blue;
function new(string name="rgb_pixel");
super.new(name);
endfunction
endclass
class rgb_seq_item extends uvm_sequence_item;
`uvm_object_utils(rgb_seq_item)
rand bit [8:0] res_width;
rand bit [8:0] res_height;
rgb_pixelm_rgb_pixel[];
...
endclass
...
rgb_sequence_item rgb_pkt;
rgb_pkt.m_rgb_pixel = new[rgb_pkt.res_width * rgb_pkt.res_height];
这个new[]好像没成功,单步调试查看value是empty,类型是class[]
同样的代码在NC里仿真正常,但VCS里不通过。求助

写个小例子:
当res_width和res_height数值较小时,比如40,5时,仿真没问题。
当res_width和res_height数值较大时,比如100,100时,仿真出错,new[]不会起作用,rgb_pkt.m_rgb_pixel的值为empty
不知道是不是VCS的bug,还是VCS有什么限制?






应该没什么问题,不放心的话可以把rgb_pkt.m_rgb_pixel[n]每次赋值前new一下试试

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

网站地图

Top