3.2.5 Засвоїти запровадження макрофункцій і символів у текстовий редактор на прикладі реалізації ЦКП виконанням завдання п. 2
3.2.5.1 Засвоїти включення макрофункції: у новому проекті 3XX_7macro створити текстовий файл (.tdf), відтак виконати такі дії (для наочності див. файл 3ХХ_7seg.gdf).
1) Ввести заголовок Title Statement (нижче пунктів подається приклад).
TITLE "7-сегментний індикатор на макрофункції дешифратора";
2) У секції Function Prototype Statement ввести прототип макрофункції дешифратора (можна скопіювати з довідки Help).
FUNCTION 74139 (g1n, b1, a1, g2n, b2, a2)
RETURNS (y10n, y11n, y12n, y13n, y20n, y21n, y22n, y23n);
3) У секції Subdesign Section повторити ім’я проекту 3XX_7macro та оголосити вхідні і вихідні порти.
SUBDESIGN 300_7macro
(
a1, a0 : INPUT;
a, b, c, d, e, f, g : OUTPUT;
)
4) Ввести секцію змінних Variable Section.
VARIABLE
5) Вставити підсекцію оголошення зразка Instance Declaration і надати ім’я зразку (для наочності у прикладі d:\max2work\tutorial\3lab\300_7seg.gdf позначено: dc – ім’я зразка дешифратора) та через двокрапку ввести ім’я макрофункції (74139).
dc : 74139;
6) Ввести логічний блок Logic Section, між ключовими словами (BEGIN та END;) розташувати курсор (краще з відступом Tab), вставити підсекцію Boolean Equation та з'єднати рівняннями зразок функції з оголошеними портами INPUT і OUTPUT.
BEGIN
dc.a1 = a0; dc.b1 = a1;
a = dc.y11n; b = !dc.y10n; c = dc.y12n; d = dc.y10n;
e = VCC; f = VCC; g = dc.y12n;
END;
F Примітки:
1. Логічні зв’язки між виходами та входами макрофункції містяться в її прототипі (п. 2.1.4), тому в булевих рівняннях достатньо лише з'єднати входи і виходи зразка, що репрезентує макрофункцію в проектованому пристрої, з вхідними і вихідними портами пристрою. Входи і виходи зразка мають такі самі назви, як у макрофункції, але позначаються через крапку після імені зразка. У лівій частині рівнянь ставляться невідомі величини, а в правій – відомі, задані вхідними портами INPUT або визначені у прототипі (у нас – yі). У разі потреби, додаткові з'єднання виконуються через зовнішні відносно макрофункції логічні операції.
2. Імена макрофункції та її параметрів мають суворо відповідати формату, про який можна дізнатися з прототипу функції у довідці (Help > Old-Style Macrofunctions > Decoders > Iм'я макрофункції > AHDL Function Prototype) або з графічного файла (В2 по символу > Edit Ports/Parameters > Help on “Iм'я макрофункції” > AHDL Function Prototype).
7) Виконати компіляцію, функціональне моделювання і переконатися в правильності проектування.
< Приклад: файли d:\max2work\tutorial\3lab\300_7macro.tdf, .scf.
3.2.5.2 Засвоїти включення символу: у новому проекті 3XX_7symbol створити текстовий файл (.tdf), відтак виконати такі самі дії, як і в п. 3.2.3.2 (для наочності див. файл d:\max2work\tutorial\3lab\ 3ХХ_7seg1.gdf) із такими відмінностями:
а) у п. 3.2.5.1 до шаблону секції Function Prototype Statement ввести із заздалегідь створеного текстового файла символу 3ХХcase.tdf (п. 3.2.4.3) назву і параметри із секції підпроекту; наприклад, із файла d:\max2work\tutorial\3lab\300case.tdf
SUBDESIGN 300case
(
a[1..0] : INPUT;
yN[2..0] : OUTPUT;
)
вводимо до нашого файла, дотримуючись шаблона, дані:
FUNCTION 300case(a[1..0])
RETURNS (yN[2..0]);
б) у секції змінних так само оголошуємо зразок з іменем символу, наприклад:
VARIABLE
dc : 300case;
в) до логічної секції вставляємо рівняння, дотримуючись імен входів і виходів символу, наприклад:
BEGIN
dc.a[1..0]=a[1..0];
a=dc.yN1; b=!dc.yN0; c=dc.yN2; d=dc.yN0; e=VCC; f=VCC; g=dc.yN2;
END;
< Приклад: файли d:\max2work\tutorial\3lab\300_7symbol.tdf, .scf.
F Примітка. У SCF-файлі дані зручно вводити у вигляді групи (шини): як звичайно виділити ділянку курсором, на палітрі натиснути кнопку групи G і в діалоговому віконці ввести значення коду в шістнадцятковій системі числення.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.