randomize失败
时间:10-02
整理:3721RD
点击:
编译仿真都没问题,但是run的时候会遇到如下致命错误。 求大家帮助
** Fatal: d:/xxx/test.sv(13): Unable to check out verification license for randomize() feature.
#Time: 0 psIteration: 0Process: /test/#INITIAL#11 File: d:/xxx/test.sv
错误指向的是该行代码 if (pkt1.randomize()) begin
该代码上下文是
packet pkt1 = new("pkt1");
packet pkt2 = new("pkt2");
byte unsigned pkdbytes[];
initial
repeat(10)
if (pkt1.randomize()) begin
$display("Randomization successfull.");
pkt1.print();
。 。
packet的定义如下
class packet extends uvm_transaction;
rand fcs_kind_t fcs_kind;
rand bit[7:0] length;
rand bit[7:0] da;
rand bit[7:0] sa;
rand bit[7:0] data[];
rand byte fcs;
constraint payload_size_c {data.size inside {[1:6]};}
constraint length_c {length == data.size;}
function new(string name = "");
super.new(name);
endfunction
function void post_randmomize();
if (fcs_kind == GOOD_FCS)
fcs = 8'b0;
else
fcs = 8'b1;
fcs = cal_fcs();
endfunction
。 。
补充: 工具是 modelsim用的是uvm1.2 lib
代码貌似没有问题,与uvm也应该没有问题
可能是你modelsim破解存在问题,你可以试下sv编写该段代码,试着泡泡,license不支持randomsize吧
谢谢。 我现在手头没有环境去跑一个简单的systemverilog, 估计是MODELSIM lincense。
但不知道如何具体解决, 其实这个其实已经是破解安装的。 网上好像没有搜到类似的问题。
谁遇到过吗?
这个真不好说