|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
class dmx512_trans;
typedef enum {normal_full,normal_one,error_case1,error_case2} kind;
rand bit[10:0] strobe[];
rand bit[7:0] data;
rand kind transaction;
const bit start=1'b0;
const bit [1:0] stop=2'b11;
constraint c {
if(transaction==normal_full)
{
foreach (strobe[i])
strobe[i]=={start,data,stop};
strobe.size()==512;
}
else if (transaction==normal_one)
{
foreach (strobe[i])
strobe[i]=={start,data,stop};
strobe.size()==1;
}
else if (transaction==error_case1)
{
foreach (strobe[i])
strobe[i]=={start,data,stop};
strobe.size()==2;
}
else
{
foreach (strobe[i])
strobe[i]=={start,data,stop};
strobe.size()==2;
}
}
endclass
我想把每次得到的strobe数组里面的数值不一样,但是我用DVE仿真,得到的是每一种case里面的strobe数组数值是一样的,我特别希望每一组数组里面的中间8位data不一样,程序应该怎么改啊,谢谢了,各位大神! |
|