Лабораторний практикум з дослідження цифрових пристроїв на основі САПР MAX+PLUS II, страница 29

3.2.4.2 Здійснити синтез дешифратора-демультиплексора (див. додаток А, варіанти завдання 3,б)  з використанням умовного оператора If Then (якщо, тоді) у проекті 3XXif_then шляхом створення текстового файла (.tdf)і аналізу результатів так само, як у п.3.2.3.2 за винятком п.3.2.3.6, в якому ввести умовний оператор If Then: В2 > AT > If Then Statementта вставити в утворений таким чином шаблон мовою AHDL:     

а) між ключовими словами IF та THEN – умову (вираз або змінну), за істинності якої (тобто коли вона набуває значення логічної 1) є дійсними інструкції (функції у вигляді логічних значень або рівнянь через крапку з комою чи таблиці відповідності), що йдуть після слова THEN;  

б) після ключового слова ELSE – інструкції, що є дійсними за невиконання зазначеної умови (тобто коли вона набуває значення логічного 0), а все інше слід видалити;

в) виконати так само компіляцію, функціональне моделювання та автоматичне порівняння утворених часових діаграм.

< Приклад:  d:\max2work\tutorial\3lab\300if_then.tdf, .scf.

TITLE "Дешифратор-демультиплексор 2:4 (умовний оператор)";

SUBDESIGN 300if_then

(

          a[1..0], G               : INPUT = VCC;

          y[3..0]                    : OUTPUT;

)        

BEGIN

  IF G THEN                                      %               Якщо G=1, тоді                     %

       y0=!a1&!a0; y1=!a1&a0; y2=a1&!a0; y3=a1&a0; % дійсні значення      %

  ELSE                                                                      % інакше (за умови G=0) %

       y[] = GND;                                 %                y3=y2=y1=y0=0                    %

  END IF;

END;

F Примітки:

1. Необов’язкова частина оператора ELSIF THEN (якщо ще, тоді) заповнюється так само, як і основна: між цими ключовими словами вставляється додаткова умова, а після – інструкції, які є дійсні за її виконання.

2. Текстові файли легко модернізувати: скопіювати (все або частину), непотрібне вилучити, а додаткове вставити, як звичайно, за допомогою шаблонів AHDL, не забуваючи привести у відповідність назву підпроекту.

3.2.4.3 Здійснити синтез дешифратора (див. додаток А, варіант завдання 3,a) з використанням оператора вибору Case (випадок) у проекті 3XXcase шляхом створення текстового файла (.tdf)і аналізу результатів так само, як у п. 3.2.3.2 за винятком п. 3.2.3.6, в якому ввести оператора вибору Case: В2 > AT >Case Statementта вставити в утворений таким чином шаблон мовою AHDL:     

а) між ключовими словами CASE та IS – вираз (зокрема, код чи набір змінних), від значення якого залежать вихідні функції;

б) після ключового слова WHEN  перед стрілкою „=>” – конкретне значення виразу, а після неї – значення функцій (як у таблиці відповідності), відтак залишити крапку з комою; цей ланцюжок може повторюватися довільну кількість разів;

в) у необов’язковій частині WHEN OTHERS (коли інше) після стрілки – значення функцій за інших значень виразу (не перелічених у підпункті б);

г) виконати так само компіляцію, функціональне моделювання та автоматичне порівняння утворених часових діаграм;

д) створити символьний файл (так само, як у п. 3.2.2.3).

< Приклад: d:\max2work\tutorial\3lab\300case.tdf, .scf, .sym.

TITLE "Неповний дешифратор з інверсними виходами 2:3 (оператор вибору)";

SUBDESIGN 300case 

(

    a[1..0]                    : INPUT;

    yN[2..0]       : OUTPUT;

)

BEGIN                        

      CASE a[] IS                     % при наступних значеннях коду а1а0  маємо: %

WHEN 0 => yN[]=H"6";  % коли 00, то y2y1y0=110 (тобто лише у0=0) %

WHEN 1 => yN[]=H"5";   %          01               101              у1                    %

WHEN 2 => yN[]=H"3";   %          10               011              у2                    %

WHEN OTHERS => yN[]=X; %    коли (а1а0=3), то довільні значення  %

END CASE;                                                                                                 

END;