Specman宏使用int_range_list对象设置减法
时间:2020-03-06 14:33:44 来源:igfitidea点击:
我使用一堆集合来生成受限的随机流量,但是我希望能够调用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对象。而且我还在运行时而不是编译时进行了很多这样的集合计算。
解决方案
我们可以尝试以下方法:
var domain: list of int = {0..10, 24..30}; var complementing_set: list of int = {2..3, 27..30}; var complement: list of int = domain.all(it in complementing set);
all伪方法生成父列表中所有元素的父列表的子列表,括号中的条件适用于该子列表。