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

F Примітка. Скінченний автомат State Machine має лише три вхідні порти: CLK (синхровхід з динамічним керуванням), RESET (скидання) і ENA (дозвіл на проходження синхроімпульсів, тобто на перемикання) та вихідні порти, оголошені перед ключовим словом OUTPUT секції SUBDESIGN. Булеві рівняння керування Boolean equationsлогічної секції складаються згідно із синтаксисом: <symbolic name>.clk, <symbolic name>.reset, <symbolic name>.ena, <symbolic name>.qi, де <symbolic name> - назва, оголошена в підсекції State Machine Declaration. У прикладі рівняння gkp.clk = C приєднує зовнішній порт „С” до синхровходу автомата, а рівняння Q[] = gkp.q[] приєднує його виходи до зовнішніх портів „Q1”, „Q2”, „Q3”. Отже, інші зовнішні сигнали не можна вважати портами автомата, їх треба пов’язувати з переходами автомата іншими логічними рівняннями або гілками умовних операторів чи таблиці, як, наприклад, у проекті d:\max2work\tutorial\7lab\700smtabl_gkp.

в) після рівнянь у логічну секцію вставити шаблон умовного оператора Case Statement (див. п. 3.2.4.3), до якого ввести переходи між станами автомата, так само, як у перемикальному графі:

BEGIN                             

        gkp.clk = C;

        Q[] = gkp.q[];

        CASE gkp IS                                        %  Case Statement         %

                  WHEN s0 => gkp = s1;              %  0 => 1                         %

                  WHEN s1 => gkp = s2;              %  1 => 3                                   %

                  WHEN s2 => gkp = s3;              %  3 => 7                         %

                  WHEN s3 => gkp = s4;              %  7 => 6                         %

                  WHEN s4 => gkp = s5;              %  6 => 4                         %

                  WHEN OTHERS => gkp = s0;  %  4=>0,  2=>0,  5=>0   %

        END CASE;

END;

г) після компіляції і функціонального моделювання перевірити результати проектування за часовими діаграмами 7XXsmcase_gkp(ri).sсf.

< Приклад: d:\max2work\tutorial\7lab\700smcase_gkp.tdf, sсf; перемикальний граф 5, 700gkp1.gdf.

F Примітка. Замість оператора вибору Case також можна використовувати умовний оператор IF THEN.

7.2.4.2 За перемикальним графом 7XXgkp(ri)1.gdf  створити пристрій з використанням таблиці відповідності в тестовому файлі (.tdf) проекту 7XXsmtabl_gkp(ri), для чого виконати п. 7.2.4.1, де у п. 7.2.4.1, в) до логічної секції вставити шаблон таблиці відповідності Truth Table Statement (див. п. 3.2.4.1), до якого ввести переходи між станами автомата, так само, як у перемикальному графі.

TITLE "ГКП - State Machine - перемикальна таблиця";

SUBDESIGN 700smtabl_gkp

(

        C, R, LD      : INPUT;

        Q[2..0]         : OUTPUT;

)

VARIABLE                                           % Variable Section                   %

        gkp    : MACHINE                        % State Machine Declaration   %

        OF BITS (q[2..0])

        WITH STATES (

                  s0 = 0, s1 = 1, s2 = 3, s3 = 7, s4 = 6, s5 = 4,

                  il1 = 2, il2 = 5);

BEGIN                                                   %  Logic Section                       %

        gkp.clk = C; gkp.reset = R;            %  Boolean equations               %

        Q[] = gkp.q[];

   TABLE                                               %  Truth Table Statement         %

        LD, gkp         => gkp;        

        ------------------------

        0,  s0    => s1;   1,  s0    => il1;   0,  s1    => s2;   1,  s1    => s1;

        0,  s2    => s3;   1,  s2    => s2;   0,  s3    => s4;    1,  s3    => s3;        

        0,  s4    => s5;   1,  s4    => s4;   0,  s5    => s0;    1,  s5    => s5;        

        0,  il1   => il2;   1,  il1   => il1;   0,  il2   => s2;    1,  il2   => il2;       

   END TABLE;

END;