Как мне объявить список фиксированной длины в specman?

В E (specman) я хочу объявить переменные, которые являются списками, и я хочу зафиксировать их длину.

Это легко сделать для члена структуры:

thread[2] : list of thread_t;

в то время как для «обычной» переменной в функции вышеупомянутое не работает, и я должен сделать что-то вроде:

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

Есть ли лучший способ объявить список фиксированного размера?

21.08.2008 18:13:01
2 ОТВЕТА
РЕШЕНИЕ

Тяжелое сохранение, как у вас, будет только фиксировать размер при инициализации, но элементы все еще могут быть добавлены или удалены позже, вы пытаетесь защититься от этого условия? Единственный способ, который я могу придумать, чтобы гарантировать, что элементы не будут добавлены или удалены позже, - это генерировать событие, синхронизированное по размеру! = Заданное количество:

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

Единственное, что я могу предложить, это немного синтаксического сахара для крепкого хранения:

var warned : list of bool;
keep warned.size() == 5;
4
1.09.2008 04:05:48

Я ничего не знаю о specman, но список фиксированного размера - это массив, так что он может куда-то вас указать.

-1
26.08.2008 18:28:56