微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > systemverilog约束

systemverilog约束

时间:10-02 整理:3721RD 点击:

初学SV。想请教一下,如果我现在想产生一个采用随机约束的位宽8bit的包激励。这个包的前几BYTE是固定的。我的约束应该怎么写比较好?
我采用下面的代码会报错


  1. rand bit [7:0] payload [] ;
  2. constraint p_size {payload.size()==94;}
  3. constraint p_cont {payload=='{8‘h55,8'h55};}

复制代码


如果我改为


  1. rand bit [7:0] payload [] ;
  2. constraint p_size {payload.size()==94;}
  3. constraint p_cont {payload[0]==8‘h55;payload[1]==8‘h55;}

复制代码


可以成功。但是如果前面要约束的byte比较多,一个byte一个byte的给值很不方便,没有什么好的办法?

在post_randomize里面直接赋值。

constraint data_c{
foreach (payload[i])
if(i>50) payload[i] == 8'h55;
}

非常感谢!又学了一招!

你直接约payloadinside这两个值里面不就可以了吗

二楼正解,使用I,控制

动态数组没有初始化范围,可以直接foreach吗?没有尝试过;;;;;

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

网站地图

Top