在 E (specman) 中,我想声明作为列表的变量,并且我想修复它们的长度。
对于结构的成员来说很容易做到:
thread[2] : list of thread_t;
而对于函数中的“常规”变量,上述方法不起作用,我必须执行以下操作:
var warned : list of bool;
gen warned keeping {
it.size() == 5;
};
有没有更好的方法来声明固定大小的列表?
在 E (specman) 中,我想声明作为列表的变量,并且我想修复它们的长度。
对于结构的成员来说很容易做到:
thread[2] : list of thread_t;
而对于函数中的“常规”变量,上述方法不起作用,我必须执行以下操作:
var warned : list of bool;
gen warned keeping {
it.size() == 5;
};
有没有更好的方法来声明固定大小的列表?
像你这样的硬保持只会在初始化时修复大小,但以后仍然可以添加或删除元素,你是否试图防止这种情况?我能想到的保证以后不会添加或删除元素的唯一方法是发出一个在大小上同步的事件!=预定数量:
event list_size_changed is true (wanted.size() != 5) @clk;
我能提供的唯一另一件事是为硬保留提供一些语法糖:
var warned : list of bool;
keep warned.size() == 5;
我对specman一无所知,但是一个固定大小的列表是一个数组,所以这可能会指向你某个地方。