[an error occurred while processing this directive]
|
Но, к сожалению, не все симуляторы понимают строку:
input `BusType BD;
которая, впринципе, эквивалентна:
input [F_BUS_LENGTH(CODE_LENGTH)-1:0] BD;
то есть смысла в дефайнах здесь не нахожу, эктив HDL ругается аналогично в обоих ситуациях:
# Error: VCP5116 : Expected a constant as index: F_BUS_LENGTH(CODE_LENGTH)-1
В стандарте (2001) нашел вот это:
dimension ::= [ dimension_constant_expression : dimension_constant_expression ]
range ::= [ msb_constant_expression : lsb_constant_expression ]
,где constant_expression не позволяет вызовов функций.
Кроме того, вынос функции в пакет дает возможность ее использования в разных модулях, что также является необходимым.
Прошу прощения, если надоел с придирками, просто давно мучаюсь с этим, хочу найти нормальное решение.
E-mail: info@telesys.ru