Опис алгоритму роботи автомата
Вихідний алгоритм роботи автомата може бути заданий у вигляді блок-схеми або словесного опису.
Для того, щоб описати автомат мовою AHDL, необхідно формалізувати алгоритм його роботи, тобто представити його або графом переходів, або таблицею переходів і виходів (можливе використання сполученої таблиці переходів і виходів).
Як приклад розглянемо словесний опис алгоритму роботи пристрою, що мають входи: START, АВАР, CLK і виходи: WORK, END_WORK.
Вихідний стан:
на виходах WORK, END_WORK присутні сигнали логічного нуля;
з появою на вході START сигналу логічної одиниці пристрій переходить у робочий режим, у протилежному випадку - залишається у вихідному стані.
Робочий режим:
на виході WORK є присутнім сигнал логічної одиниці;
на виході END_WORK є присутнім сигнал логічного нуля;
з появою на вході START рівня, що відповідає логічному нулю, пристрій переходить у режим очікування, у протилежному випадку залишається в робочому режимі.
Режим очікування:
на виходах WORK, END_WORK є присутнім сигнал логічної одиниці;
з появою на вході START сигналу логічної одиниці пристрій переходить у режим поновлення роботи, у протилежному випадку переходить у режим закінчення роботи.
Режим поновлення роботи:
на виходах WORK, ENO_WORK присутні сигнали логічного нуля;
з появою на вході START сигналу логічного нуля пристрій переходить у режим очікування, у протилежному випадку переходить у робочий режим.
Режим закінчення роботи:
на виході WORK є присутнім сигнал логічного нуля,
на виході END_WORK є присутнім сигнал логічної одиниці;
незалежно від логічного рівня сигналу на вході START пристрій переходить у вихідний стан.
З появою на вході АВАР сигналу логічної одиниці пристрій з будь-якого режиму асинхронно переходить у вихідний стан.
Даний пристрій може бути реалізований і як автомат Мура, і як автомат Милі.
Виділимо набір станів автомата:
INIT - вихідний стан;
Working - робочий режим;
Waiting - режим очікування;
Resuming - режим поновлення роботи;
Ending - режим закінчення роботи.
Граф переходів, що описує заданий алгоритм роботи пристрою як автомат Мура, наведений на рис. 2.
Граф переходів складається з вузлів, що позначають стани автомата, і гілок, що відображають синхронні переходи між станами.
В автоматі Мура:
для кожного стану зазначений набір вихідних сигналів (у даному прикладі - це сигнали WORK і END_WORK);
у кожній гілці зазначені значення вхідних сигналів (у даному прикладі сигналу START), що викликають відповідний перехід між станами.
Не залежні від значень вхідних сигналів переходи — це безумовні переходи (наприклад, перехід зі стану Ending у стан INIT).
Рис. 2.
Рис. 3.
Відзначимо, що описаний автомат асинхронно переходить із будь-якого стану в стан INIT з появою на вході АВАР сигналу логічної одиниці.
Граф переходів автомата Милі, що реалізує той же алгоритм, що й наведений вище автомат Мура, зображений на рис. 3.
У кожної гілці автомата Милі указані:
значення вхідних сигналів, що викликають відповідний перехід (у даному прикладі - сигналу START);
значення вихідних сигналів (у даному прикладі - сигналів WORK і END_WORK).
