约束 Specman 列表,使其连续元素中不具有相同的值

问题描述 投票:0回答:1

我想在 Specman 中从有限范围生成列表,并确保列表中没有两个连续条目具有相同的值,这样就可以了

[1,0,1,0,1,0,1]
[2,1,3,1,3,2,1]
[100, 22, 50, 62, 100]

但这些不会

[1,0,1,1,1,0,1]
[2,3,3,1,3,2,1]
[100, 22, 50, 50, 100]

我尝试像这样使用 unique()

mylist[mylist_len] : list of uint;
keep mylist.unique(it).size() == mylist.size()

我也不能只使用标量来保留它

keep mylist.unique(it).size() == mylist_len

我也尝试像这样在条目上使用 keep

keep for each (i) in mylist {
  if (i > 0) {
    keep mylist[i] != mylist[i+1];
  };
};

重要的是我像这样限制列表中的条目:

keep for each (i) in mylist {
    i < mylist_limit;
  };
constraints specman e
1个回答
0
投票

您可以在“foreach”中使用“prev”。

keep for each (i) in mylist {
    i < mylist_limit;
    i != prev;
};
© www.soinside.com 2019 - 2024. All rights reserved.