我使用一堆集合来生成受约束的随机流量,但我希望能够调用一个 Specman 宏来计算集合的补码,其语法如下:
COMPLEMENT begin
domain=[0..10,24..30],
complementing_set=[2..3,27..30]
end
并让它生成:
[0..1,4..10,24..26]
每次我需要一个集合的补集时,我都会使用完全填充的列表(例如 {0;1;2;3....} ),然后删除元素,而不是使用 Specman 的内置 int_range_list 对象。而且我还在运行时而不是编译时进行了很多这样的集合计算。