Параметри

Мова AHDL дозволяє створити параметризований опис модуля - опис, що адаптується до конкретних умов застосування модуля, тобто до конкретних значень параметра.

Значення параметра, на відміну від значення константи, може бути задане поза тим текстовим описом, у якому цей параметр визначений і використовується.

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

 

PARAMETERS (ADD_WIDTH = 8);

SUBDESIGN Parameter_

(

A[ADD_WIDTH..1], B[ADD_WIDTH..1] : INPUT;

SUM[ADD_WIDTH..1], Cout : OUTPUT;

)

BEGIN

(Cout, SUM[ADD_WIDTH..1]) = (GND,A[ADD_WIDTH..1]) + (GND,B[ADD_WIDTH..1]);

END;

 

Описаний суматор забезпечує додавання двох ADD_ WIDTH-розрядних операндів і формування АDD_WIDТН-разрядного результату (SUM[]) і переносу в наступний розряд.

При оголошенні параметру ADD_WIDTH присвоюється вихідне значення - вісім. Тому, якщо поза даним текстовим описом йому не буде задане інше значення, то компілятор синтезує восьмирозрядний суматор.

У мові AHDL визначений параметр Device_Family, значення якого - назва сімейства НВІС, обраного для реалізації модуля (команда Device, меню Assign).

Відзначимо, що максимальний ефект від використання параметрів досягається при створенні бібліотек параметризованих модулів, призначених для повторного використання.