в) у необов’язковій частині WHEN OTHERS (коли інше) після стрілки – значення функцій за інших значень виразу (не перелічених у п. б);
г) виконати так само компіляцію, функціональне моделювання та автоматичне порівняння утворених часових діаграм;
Приклад: 500case.tdf, .vwf.
TITLE "Мультиплексор 3:1 (оператор вибору)";
SUBDESIGN 500case
(
a[1..0], d[2..0] : INPUT;
y : OUTPUT;
)
BEGIN
CASE a[] IS
WHEN 0 => y=d[0];
WHEN 1 => y=d[1];
WHEN 2 => y=d[2];
WHEN OTHERS => y=X;
END CASE;
END;
2. Засвоїти запровадження макрофункцій, символів та мегафункцій до проекту за його текстового введення.
2.1 Засвоїти включення до проекту макрофункції (на прикладі виконання завдання 5.5): створити новий проект 5XXmacro і однойменний текстовий файл (.tdf) із включенням його до проекту, відтак виконати такі дії (для наочності див. графічний файл 3ХХ_7seg.bdf, схема 1 з лаб. роботи №3).
а) ввести заголовок Title Statement (нижче подається приклад).
TITLE "Спец. дешифратор 7-сегментного коду на макрофункції";
б) до шаблону секції Function Prototype Statement вставити прототип макрофункції двійкового дешифратора (описати використовувані входи і виходи згідно із синтаксисом мови безпосередньо за графічним символом або повністю скопіювати з довідки Help пакета MAX+PLUS II).
FUNCTION 74139о (g1n, b1, a1)
RETURNS (y10n, y11n, y12n, y13n);
в) у секції Subdesign Section повторити ім’я проекту 5XXmacro та оголосити вхідні і вихідні порти.
SUBDESIGN 500macro
(
a1, a0 : INPUT;
a, b, c, d, e, f, g, dp : OUTPUT;
)
г) ввести секцію змінних Variable Section.
VARIABLE
д) вставити підсекцію оголошення зразка Instance Declaration і надати ім’я зразку (для наочності у прикладі 300_7seg.bdf позначено: dc – ім’я зразка дешифратора) та через двокрапку ввести ім’я макрофункції (74139о).
dc : 74139о;
е) ввести логічний блок Logic Section, між ключовими словами (BEGIN та END;) розташувати курсор (з відступом Tab), вставити підсекцію Boolean Equation та з'єднати рівняннями зразок функції з оголошеними портами INPUT і OUTPUT.
BEGIN
dc.a1 = a0; dc.b1 = a1; a=!dc.y11n; b=!dc.y11n # !dc.y12n;
c=!dc.y12n; d=!dc.y10n; e=GND; f=GND; g=!dc.y12n; dp=VCC;
END;
FПримітки:
1. Логічні зв’язки між виходами та входами макрофункції містяться в її прототипі (п. 2.1.2), тому в булевих рівняннях достатньо лише з'єднати входи і виходи зразка, що репрезентує макрофункцію в проектованому пристрої, з вхідними і вихідними портами пристрою. Входи і виходи зразка мають такі самі назви, як у макрофункції, але позначаються через крапку після імені зразка. У лівій частині рівнянь ставляться невідомі величини, а в правій – відомі, задані вхідними портами INPUT або визначені у прототипі (у нас – yі). У разі потреби, додаткові з'єднання виконуються через зовнішні відносно макрофункції логічні операції, наприклад, інвертор на виході: a = !dc.y11n.
2. Імена макрофункції та її параметрів мають строго відповідати формату: FUNCTION <ім’я функції> (вхідні порти через кому) RETURNS (вихідні порти через кому) <крапка з комою>, про який можна дізнатися з прототипу функції в довідці пакета MAX+PLUS II (Help > Old-Style Macrofunctions > Категорія > Iм'я макрофункції > AHDL Function Prototype) або з графічного файлу в тому ж пакеті (натиснути кнопку В2 по символу > Edit Ports/Parameters > Help on “Iм'я макрофункції” > AHDL Function Prototype).
ж) виконати компіляцію, функціональне моделювання і переконатися в правильності проектування.
Приклад: файли 500macro.tdf, .vwf.
2.2 Засвоїти включення до проекту символа (на прикладі виконання завдання 5.6): створити новий проект 5XXsymb і однойменний текстовий файл (.tdf), включити до проекту цей файл і текстовий файл символа 5ХХtab.tdf та виконати такі самі дії, як і в п. 2.1 (для наочності див. графічний файл 3ХХ_7seg.bdf, схема 2 з лаб. роботи №3) із такими відмінностями:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.