Я знаю, что можно создать подтип определенного диапазона, например:
subtype ADDRESS is UNSIGNED range (32 downto 0);
Можно ли создать параметризуемый тип/подтип? По сути, значение «32» определяется пользователем при создании переменной типа ADDRESS. Например:
subtype ADDRESS is UNSIGNED range ( f(x) ) downto 0;
где f() — функция, предварительно определенная в другом пакете, а X — натуральное целое число, предоставленное пользователем при создании экземпляра ADDRESS.
В общем хочу сократить...
y : UNSIGNED(f(X) downto 0);
to
y : ADDRESS(X);
где X — натуральное число.