systemverilog约束
时间:10-02
整理:3721RD
点击:
初学SV。想请教一下,如果我现在想产生一个采用随机约束的位宽8bit的包激励。这个包的前几BYTE是固定的。我的约束应该怎么写比较好?
我采用下面的代码会报错
-
- rand bit [7:0] payload [] ;
- constraint p_size {payload.size()==94;}
- constraint p_cont {payload=='{8‘h55,8'h55};}
如果我改为
-
- rand bit [7:0] payload [] ;
- constraint p_size {payload.size()==94;}
- 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吗?没有尝试过;;;;;