Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Cинтез функциональной схемы конечного автомата
Задачу синтеза конечного автомата к задаче синтеза комбинационных схем. Вы уже знаете, что структура конечного С-автомата имеет вид:
Если синтезировать комбинационные схемы входящие в эту структуру, то можно начертить функциональную схему конечного автомата. Для этого следует определить, сколько входных и выходных проводников в каждой из комбинационных схем. Каждому входному проводнику соответствует аргумент булевой функции, а на каждом выходном проводнике формируется значение булевой функции. Таким образом, число выходных проводников определяет число функций, которое реализует комбинационная схема, а число входных проводников определяет число аргументов, от которых зависят эти функции. Для определения числа входных шин конечного автомата (они являются частью входов первой и второй комбинационных схем), выходных шин 1-го рода, 2-го рода, числа элементов памяти используют формулу
1) количество входных проводников конечного автомата:
2) число выходных шин 1-го рода (число выходных проводников комбинационной схемы 2):
3) число выходных шин 2-го рода (число выходов комбинационной схемы 3):
4) число элементов памяти:
После этих вычислений производится кодирование входных, выходных сигналов и состояний автомата. При этом каждому символу входящему в множества Замечание. На практике в ряде случаев коды входных и выходных сигналов задаются заказчиком.
Пример. Синтезируем С – автомат, заданный таблицей переходов и таблицей выходов. Будем использовать логические элементы булевого базиса, уравнения представляем в дизъюнктивных формах, а в качестве элементов памяти используем Т – триггеры.
Таблица переходов – выходов автомата:
Множество Автомат имеет 3 состояния, следовательно, нужны 2 триггера ( Замечание 1. Естественно, что проектировщик может выбрать для кодирования состояний и другие коды. Замечание 2. От выбранных кодов зависит сложность комбинационной схемы 1.
У автомата три типа выходных сигналов 1-го рода, следовательно, он имеет 2 выходных проводника 1-го рода. Пусть сигналы 00 на этих проводниках соответствуют Комбинационная схема 3 имеет один выходной проводник. Пусть 0 на этом проводнике соответствует сигналу
Теперь нужно заменить символы
Используя две верхние строки кодированной таблицы переходов-выходов, синтезируем схему формирования сигналов 2-го рода (на рисунке это комбинационная схема 3). Обозначим состояния триггеров автомата
Таким образом эти строчки представляют собой таблицу истинности булевой функции, по которой синтезируется комбинационная схема 3. Можно (при желании) представить эту таблицу в стандартной форме
0 1 0 1 0 1 0 0 1
Минимизируем функцию U:
Минимальное выражение:
Оставшаяся часть таблицы переходов-выходов содержит информацию для синтеза комбинационной схем 1 и 2. В верхних треугольниках записаны коды состояний, в которые переключается конечный автомат в момент времени
Обозначим сигналы на выходных проводниках 1-го рода
Минимизируем функции
Минимальные выражения:
Теперь нужно синтезировать схему, переключающую Т – триггеры. Необходимая для синтеза информация берется из кодированной таблицы переходов-выходов и таблицы функционирования Т триггера. Используя эти таблицы, заполняют так называемую таблицу функций возбуждения элементов памяти. (Под функциями возбуждения понимают функции, описывающие управляющие входы триггеров). Рассмотрим таблицу переходов-выходов, обращая внимание только на верхние треугольники:
При построении таблицы функций возбуждения элементов памяти рисуют следующую таблицу:
Верхняя строка этой таблицы – состояния конечного автомата, левый столбец – входные сигналы автомата. В пустые клетки нужно вписать сигналы, которые необходимо подать на управляющие входы триггеров, чтобы обеспечить переключение автомата, соответствующее таблице переходов. Рассмотрим, например, заполнение клеточки для случая, когда автомат находится в состоянии
После заполнения таблица функций возбуждения элементов памяти имеет вид:
Эта таблица является таблица истинности комбинационной схемы 1. Запишем эту же таблицу в привычном виде:
Минимизируем функции
Таблица для V1 Таблица для V2
Минимизированные функции:
Зная структурную схему конечного автомата, по полученным уравнениям чертят функциональную схему конечного автомата.
Минимизация полностью определенных автоматов.
Определение. Два состояния автомата Для минимизации числа состояний следует получить разбиение множества состояний конечного автомата на непересекающиеся подмножества эквивалентных состояний (классы эквивалентности). Если в каждом подмножестве оставить только одно состояние, то получится автомат с минимальным числом состояний. Определение. Два состояния автомата Алгоритм минимизации числа состояний: Шаг 1. Находятся последовательные разбиения Шаг 2. В каждом классе разбиения Шаг 3. В таблице переходов – выходов вычеркивают столбцы, соответствующие удаленным состояниям. Если в оставшихся столбцах имеются символы удаленных состояний, то они заменяются на не удаленные эквивалентные им состояния. Шаг 4. В качестве начального состояния выбирается любое состояние эквивалентное
Получено разбиение Строим новую таблицу, в верхней строчке которой записываем все состояния автомата, сгруппировав их по множествам одноэквивалентных состояний, в левом столбце записываем все входные сигналы автомата. Для заполнения пустой клетки, стоящей на пересечении строки
После заполнения таблица будет иметь вид:
Выделяя одинаковые столбцы для состояний, принадлежащих одному и тому же множеству, получаем разбиение Строим таблицу для поиска трех-эквивалентных состояний:
Строим таблицу для поиска четырех-эквивалентных состояний:
Разбиение
Обратите внимание, что после вычеркивания столбцов в таблице могут остаться символы удаленных состояний (
При минимизации автоматов Мура одинаково отмеченные состояния считаются 0 – эквивалентными, а поиск эквивалентных состояний начинается с поиска разбиения Пример.
Получено разбиение Обратите внимание, что состояния
В разбиении
|