使用设备建模语言 (DML) 1.4 版。
我创建了一个列表参数,例如
param X = [ [0, 0, 0], [0, 0, 1].......];
我想在使用变量的方法中访问它们,例如
method get_var(uint32 idx) -> (uint32) {
return X[idx][0];
}
但是当我尝试编译时,它说我不能在常量列表中使用变量索引。
除了 param 之外,我是否应该使用其他数据类型来允许此操作?或者有没有办法将“idx”定义为 const 以便可以使用它?
我当前的解决方法是创建一个会话变量并在期间复制参数列表post_init()
从那时起,我就可以使用变量索引访问该会话变量。我不知道这是否是处理该问题的最佳方法。
另一种可能性是使用会话变量。会话变量会占用一些额外的空间,并且在对象初始化期间会消耗等于其大小的堆栈空间,因此它们不适合非常大的数组。但对于合理的数组大小
session int my_array[3][3] = {{0, 1, 2}, {4, 1, 2}, {1, 2, 3}};
method get_int(int idx) -> (int) {
return my_array[idx][0];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)