Микропрограммные автоматы представляют собой следующий шаг по пути усложнения интеллекта цифровых схем. На основе микропрограммных автоматов можно строить устройства, которые работают по довольно сложным алгоритмам, выполняют различные функции, определяемые входными сигналами, выдают сложные последовательности выходных сигналов. При этом алгоритм работы микропрограммного автомата может быть легко изменен заменой прошивки ПЗУ.
Проектировать микропрограммные автоматы с точки зрения схемотехники довольно просто.
Наиболее распространенная структура микропрограммного автомата включает в себя всего лишь три элемента: ПЗУ, регистр, срабатывающий по фронту, и тактовый генератор.
Схема работает следующим образом. В каждом такте ПЗУ выдает код данных, тем самым определяя не только состояние выходных сигналов схемы, но и адрес ПЗУ, который установится в следующем такте (после следующего положительного фронта тактового сигнала). На этот следующий адрес влияют также и входные сигналы. То есть в данном случае адреса могут перебираться не только последовательно (с помощью счетчика), но и в произвольном порядке, который определяется прошивкой ПЗУ, называемой микропрограммой.
Условием правильной работы схемы будет следующее. За один период тактового сигнала должны успеть сработать регистр и ПЗУ. Иначе говоря, сумма задержки регистра и задержки выборки адреса ПЗУ не должна превышать периода тактового сигнала.
Сформулируем несколько элементарных функций, из которых могут складываться алгоритмы работы микропрограммного автомата
1. Последовательный перебор адресов ПЗУ (например, для выдачи последовательности выходных сигналов).
2. Периодическое повторение последовательности адресов ПЗУ (например, для повторения последовательности выходных сигналов).
3. Остановка в каком-то адресе ПЗУ (например, для ожидания изменения входного сигнала).
4. Временное отключение реакции на входные сигналы (например, для того, чтобы закончить отработку реакции на предыдущее изменение входных сигналов).
Недостатком любого микропрограммного автомата является относительно малое предельное быстродействие и необходимость составления карты прошивки ПЗУ с микропрограммами, часто довольно сложными.