在 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一无所知,但固定大小的列表是一个数组,所以这可能会指向你的某个地方。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top