Задача кодирования состояний является одной из основных задач канонического метода структурного синтеза управляющих автоматов. Кодирование заключается в установлении взаимно-однозначного соответствия между множеством состояний автомата А = {а1, ..., аm} и множеством R-компонентных векторов {К1, ..., Кm), Кm = (еm1, ..., emR}, где еmR - состояние r-го элемента памяти r = 1, ..., R.
Переход автомата из одного состояния в другое осуществляется за счет изменения состояний элементов памяти. Так, если автомат переходит из состояния аm с кодом 0101 в состояние аs, с кодом 1001, то это означает, что триггер Т1, переходит из состояния 0 в состояние 1, триггер Т2 - из состояния 1 в состояние 0, а состояния триггеров Т3, и Т4 не изменяются.
Целью данной работы является анализ влияния кодирования состояний автомата на сложность комбинационной схемы. Большое число работ, начало которых было положено Хартманисом и Стирном, посвящено получению такого кодирования, при котором уменьшается зависимость функций возбуждения памяти от переменных обратной связи. Хартманис и Стирн показали, что этот подход тесно связан с существованием определенных разбиений множества состояний автомата. Как правило, нахождение вариантов кодирования состояний, которые обеспечивают ослабленную функциональную зависимость для функций возбуждения, дает более экономичную схему, чем при других типах кодирования. Методы кодирования состояний с ослаблением функциональной зависимости тесно связаны с декомпозицией автомата.
В процессе работы были исследованы два метода кодирования состояний автомата. В первом случае состояния автомата по возможности были закодированы соседними кодами. Во втором применялся эвристический алгоритм кодирования состояний, минимизирующий суммарное число изменений элементов памяти на всех переходах автомата [1]. При таком критерии уменьшается сложность схем, реализующих дизъюнкции на входах элементов памяти, вследствие чего минимизируется комбинационная схема. Для данного способа кодирования состояний был разработан алгоритм (рисунок) и программа в среде Delphi 7.0.
Исследования проводились на примере нескольких структурных таблиц переходов автоматов Мили и Мура, задающих алгоритм работы управляющих автоматов с жесткой логикой. В примерах для построения памяти автомата были использованы RS-триггеры. Комбинационные схемы были реализованы на ПЛИС фирмы Xilinx. Для каждого способа кодирования состояний автомата был проведен подсчет количества логических блоков N, необходимых для реализации систем канонических уравнений функций возбуждения памяти φi.
При кодировании вручную необходимо большее количество корпусов микросхем, комбинационная схема более сложная. Также при этом методе кодирования трудоемкость и временные затраты увеличиваются вместе с ростом сложности алгоритма. Таким образом, использование для кодирования состояний автомата разработанной программы, реализующей эвристический алгоритм кодирования, позволяет снизить цену комбинационной схемы автомата, а также значительно сократить время, необходимое для выполнения процедуры кодирования.
Схема алгоритма
Список литературы
- Баранов С.И. Синтез микропрограммных автоматов. - Л.: Энергия, Ленингр. отд-ние, 1979.
- Федосеева Л.И. Элементы теории цифровых автоматов: учебное пособие. - Пенза: Изд-во Пенз. гос. ун-та, 2004.
- Федосеева Л.И. Синтез управляющих автоматов: учебное пособие. - Пенза: Изд-во Пензенского технологического института, 2002.