Проектування цифрових пристроїв на основі САПР QUARTUS II: Практикум, страница 56

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”. Отже, інші зовнішні сигнали не можна вважати портами автомата, їх треба зв’язувати з переходами автомата іншими логічними рівняннями або гілками умовних операторів чи таблиці, як, наприклад, у наступному проекті 800smtabl_gkp;

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

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;

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

Приклад: 800smcase_gkp.tdf, vwf; перемикальний граф 5, 800gkp1.bdf.

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

4.2 За перемикальним графом 6 у файлі 8XXgkp(ri)1.bdf  створити пристрій з використанням таблиці відповідності в тестовому файлі (.tdf) проекту8XXsmtabl_gkp(ri), для чого виконати п. 4.1, де у п. 4.1,в до логічної секції вставити шаблон таблиці відповідності Truth Table Statement (див. лаб. робота №5, п. 1.2), до якого ввести переходи між станами автомата, так само, як у перемикальному графі.

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

SUBDESIGN 800smtabl_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;

Приклад: 800smtabl_gkp.tdf, vwf; перемикальний граф 6, 800gkp1.bdf.