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