Доброго времени, уважаемые.
В процессе написания кода возникла необходимость сделать user-френдли компонент с упрощенным редактированием. В чём основная суть: создаётся в начале файла несколько структур, в которые "пользователь" (человек, далее работающий с кодом) может добавлять одномерные векторы (рандомной длинны), нужное количество. В упрощённом варианте первая структура несёт все елементы, во второй указано только то, что подлежит сбросу по определённому ивенту.
module component_1(...);
typedef struct packed{
logic [1:0] first;
logic [0:0] second;
logic [2:0] third;
} t_elements;
t_elements common_elements;
typedef struct packed{
logic [0:0] second;
} t_reset;
t_reset reset_elements;
always_ff @(posedge clk)
if (reset == 1)
for(int i=0; i < $size(t_elements); i++) // тут пошла отсебятина ибо не представляю как реализовать
if (reset_elements.i == common_elements.i)
common_elements.i <= '0;
Как сделать референс/перечисление/другой вариант, чтобы автоматизировать задачу и не заставлять юзера лезть в дебри кода, для правки сбрасываемых компонентов? Возможно есть вариант с одной структурой и какими-то указателями. Я уже и через enum пробовал вытащить имена и думал за union. Всё какое-то громоздкое и неработающее.