Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Оператор IF GENERATE



Оператор IF GENERATE дозволяє оцінити значення арифметичного виразу і за результатами оцінки сформувати той або інший опис проектованого модуля.

Оператор може використовуватися в повній або спрощеній формі.

Повна форма: Спрощена форма:

IF __expression GENERATE IF _expression GENERATE

__statement; __statement;

__statement; __statement;

ELSE GENERATE END GENERATE;

__statement;

__statement;

END GENERATE;

Оператор задається в такий спосіб:

■ За ключовим словом IF вказується оцінюваний арифметичний вираз.

■ За ключовим словом GENERATE слідують оператори мови AHDL, які будуть використані в текстовому описі при істинності оцінюваного арифметичного виразу.

■ При наявності ключових слів ELSE GENERATE за ними вказуються оператори, які будуть використані в текстовому описі в тому випадку, якщо оцінюваний арифметичний вираз хибний.

■ Оператор закінчується ключовими словами END GENERATE, за якими слідує крапка з комою (;).

Застосування оператора проілюструємо на прикладі текстового опису, що залежно від значення параметра Module_Type буде задавати або суматор, або віднімальщик розрядністю WIDTH.

PARAMETERS

(

WIDTH = 8,

MODULE_TYPE = "ADD"

);

SUBDESIGN IF_GEN

(

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

RESULT[WIDTH..1], Cout: OUTPUT;

)

BEGIN

IF Module_Type == "ADD" GENERATE

(Cout,Result[]) = (GND,A[]) + (GND,B[]);

ELSE GENERATE

(Cout,Result[]) = (GND,A[]) - (GND,B[]);

END GENERATE;

END;

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

Рис. 16.

Якщо поза текстовим описом (наприклад, командою Global Project Parameters меню Assign) параметру Module_Type присвоїти відмінне від ADD значення, то компілятор синтезує віднімальщик, результати моделювання якого наведені на рис. 17.

Рис. 17.

Нагадаємо, що підстановка значень параметрів і формування відповідного текстового опису здійснюється компілятором на етапі перевірки синтаксису. Тому застосування оператора IF GENERATE не приводить до використання додаткових логічних ресурсів НВІС ПЛ.





Дата публикования: 2014-11-29; Прочитано: 170 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...