Pregunta

En E (specman) quiero declarar variables que son listas y quiero fijar sus longitudes.

Es fácil de hacer para un miembro de una estructura:

thread[2] : list of thread_t;

mientras que para una variable "normal" en una función lo anterior no funciona y tengo que hacer algo como:

var warned : list of bool;
gen warned keeping {
    it.size() == 5;
};

¿Existe una mejor manera de declarar una lista de tamaño fijo?

¿Fue útil?

Solución

Un mantenimiento estricto como el que tiene solo arreglará el tamaño en la inicialización, pero aún así se podrían agregar o eliminar elementos más adelante, ¿está tratando de protegerse contra esta condición?La única forma que se me ocurre para garantizar que los elementos no se agreguen ni eliminen más tarde es emitiendo un evento sincronizado en el tamaño! = la cantidad predeterminada:

event list_size_changed is true (wanted.size() != 5) @clk;

La única otra cosa que puedo ofrecer es un poco de azúcar sintáctico para el mantenimiento difícil:

var warned : list of bool;
keep warned.size() == 5;

Otros consejos

No sé nada de Specman, pero una lista de tamaño fijo es una matriz, por lo que podría indicarle alguna parte.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top