Використання в текстовому описі символічних імен замість фіксованих числових значень (тобто використання констант) дозволяє:
■ зробити текстовий опис більше наочним;
■ спростити внесення змін, пов'язаних зі зміною фіксованих числових значень.
Нижче представлений опис адресного декодера, у якому базові значення адрес задаються константами.
CONSTANT ADR_WIDTH =8;
CONSTANT NUMBER_IO =16;
CONSTANT IO_ADR =2^ADR_WIDTH-NUMBER_IO;
CONSTANT COMMAND =IO_ADR;
CONSTANT DAC =IO_ADR+1;
CONSTANT ADC =IO_ADR+2;
SUBDESIGN CONSTANT_
(
ADR[ADR_WIDTH..0], READ, WRITE : INPUT;
WR_COMMAND, RD_COMMAND, RD_ADC, WR_DAC : OUTPUT;
)
BEGIN
IF ADR[]==COMMAND
THEN
IF READ==1
THEN RD_COMMAND=VCC;
ELSIF WRITE==1
THEN WR_COMMAND=VCC;
END IF;
ELSIF ADR[]==ADC
THEN
IF READ==1
THEN RD_ADC=VCC;
END IF;
ELSIF ADR[]==DAC
THEN
IF WRITE==1
THEN WR_DAC=VCC;
END IF;
END IF;
END;
У наведеному прикладі базове значення адреси вводу/виводу (IO_ADR) визначено через розрядність шини адреси (ADR_WIDTH) і число адрес, зарезервованих під ввід/вивід (Number_IO). Адреси регістрів: команд (Command), АЦП (ADC), ЦАП (DAC) задані зсувами від базової адреси (IO_ADR).
Результати моделювання адресного декодера наведені на рис. 14.
Рис. 14.
Відмітимо, що для адаптації адресного декодера під іншу ширину адресної шини в текстовому описі досить змінити значення тільки однієї константи - ADR_WIDTH.