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