Моя структура содержит параметры, которые варьируются в зависимости от модуля.Я хотел бы использовать эту структуру для передачи ввода / вывода в эти модули.Я использую это для дизайна, поэтому он должен быть синтезируемым, и мой набор инструментов, к сожалению, не поддерживает интерфейсы.
Например:
`ifdef MY_STRUCTS
`define MY_STRUCTS
typedef struct packed {
logic [PARAMETER_VAL-1:0] field1;
logic [PARAMETER1_VAL-1:0] field2;
} myStruct_t;
`endif
module top #(
parameter PARAMETER_VAL = 8;
parameter PARAMETER1_VAL = 16;
) (
input myStruct_t in_packet,
output myStruct_t out_packet,
);
К сожалению, это кажетсяпроблема с яйцом.Определение структуры не может быть скомпилировано, поскольку для его определения используются параметры модуля.Тем не менее, объявления ввода / вывода не могут быть объявлены, потому что он полагается на структуру, чтобы знать, что объявлять.
У кого-нибудь есть решение для этого?Буду признателен за предложения.