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