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.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.