Константи

Використання в текстовому описі символічних імен замість фіксованих числових значень (тобто використання констант) дозволяє:

■ зробити текстовий опис більше наочним;

■ спростити внесення змін, пов'язаних зі зміною фіксованих числових значень.

Нижче представлений опис адресного декодера, у якому базові значення адрес задаються константами.

 

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.