Синтез конечных автоматов Синтез конечных автоматов заключается в построении реальной схемы устройства, исходя из условий его работы. Синтез состоит из трех основных этапов. 1. Абстрактный синтез автомата. 2. Структурный синтез. 3. Построение принципиальной электрической схемы. На этапе абстрактного синтеза осмысливается работа разрабатываемой дискретной системы, создается словесное, а затем и формализованное представление ее функционирования. После многочисленных обсуждений с заказчиком получают таблицы переходов и выходов или автоматный граф и производят минимизацию числа состояний абстрактного автомата. Получив минимальный автомат, переходят к его структурному синтезу. Структурный синтез – синтез функциональной схемы, преобразующей входные сигналы и сигналы, снимаемые с выходов элементов памяти в выходные сигналы и в сигналы, подаваемые на входы элементов памяти. Существует общий прием, так называемый канонический метод структурного синтеза, позволяющий свести синтез конечного автомата к выбору элементов памяти и синтезу комбинационной схемы. Рассмотрим канонический метод структурного синтеза автомата на конкретном примере. Пусть необходимо синтезировать неполный автомат, заданный таблицей переходов и выходов (табл. 4.20), полученной нами в разделе 4.7 после минимизации числа состояний. Канонический метод структурного синтеза включает следующие этапы. 1. Кодирование конечного автомата. Закодируем входы, состояния и выходы абстрактного автомата (табл. 4.20) двоичными кодами минимальной длины. Четыре абстрактных входных сигнала z1 , z 2 , z3 , z 4 автомата потребуют два двоичных разряда (обозначим х1 , х2 ), три состояния { b1 , b2 , b3 } также требуют два разряда ( 1 , 2 ) и для кодирования двух выходов { w1 , w2 } достаточно одного разряда ( y ). Результаты кодирования входов, состояний и выходов приведены в табл. 4.21–4.23. Таблица 4.21 Входы х1 х2 z1 0 0 z2 0 1 z3 1 0 z4 1 1 Таблица 4.22 Состояния 1 2 b1 0 0 b2 0 1 b3 1 0 Таблица 4.23 Выходы y w1 0 w2 1 После кодирования имеем автомат с двумя двоичными входами ( х1 , х2 ), одним двоичным выходом ( y ) и двумя двоичными состояниями ( 1 , 2 ). Структурная схема автомата приведена на рис. 4.12, где П1 и П 2 – элементы памяти. Заменив в табл. 4.20 входы, выходы и состояния их кодами, получим таблицу переходов (табл. 4.24) и таблицу выходов (табл. 4.25) структурного автомата. Рис. 4.12 00 01 10 11 00 01 10 01 00 Таблица 4.24 01 10 01 — 10 00 00 00 10 — 00 01 10 11 2. Выбор элементов памяти и построение возбуждения памяти. 00 0 1 0 0 Таблица 4.25 01 10 0 ― 1 1 0 1 0 — таблицы для функции В качестве элементов памяти могут быть использованы D- , T- , RS- и JK-триггеры. В нашем примере две переменные состояния, следовательно, необходимы два триггера. Для определения того, что нужно подать на вход каждого триггера, чтобы на выходе получить необходимый сигнал в соответствии с таблицей переходов (табл. 4.24) структурного автомата, будем использовать функцию входов триггера. Функцию входов триггера удобно представлять в виде таблицы, в левом столбце которой указано исходное состояние триггера исх (то есть исходный сигнал на прямом выходе триггера), в правом столбце – состояние, в которое переходит триггер пер (то есть полученный сигнал на прямом выходе) под действием входного сигнала (средний столбец). Рассмотрим различные типы триггеров (рис. 4.13) и их функции входов. Рис. 4.13 Т-триггер. Имеет один вход и выходы: прямой и инверсный (рис. 4.13а). Функция входов приведена в табл. 4.26. Т-триггер изменяет свое состояние на противоположное всякий раз, когда на вход поступает 1. Поэтому его называют счетным триггером – триггер изменяет свое состояние столько раз, сколько было единиц на входе. Таблица 4.26 исх 0 0 1 1 пер 0 1 0 1 0 1 1 0 Таблица для функции возбуждения памяти строится следующим образом. Из табл. 4.24 следует, что из состояния 00 под действием входного сигнала 00 автомат переходит в состояние 01. Этот переход складывается из переходов двух триггеров. Первый триггер остается в состоянии 0 и, следовательно, на его вход (в соответствии с табл. 4.26) необходимо подать 0. Второй триггер переходит из состояния 0 в состояние 1 и, следовательно, на его вход необходимо подать 1 (в соответствии с той же табл. 4.26). Определяя таким образом, что нужно подавать на входы триггеров, чтобы их выходы соответствовали таблице переходов автомата (табл. 4.24), получим таблицу для функции возбуждения памяти, построенной на Т-триггерах (табл. 4.27). 00 01 10 11 00 01 10 01 00 Таблица 4.27 01 10 00 — 11 10 01 10 11 — D-триггер. Имеет информационный вход , вход синхронизации С и выходы: прямой и инверсный (рис. 4.13б). Вход С предназначен для организации хранения информации. При С=0 состояния выходов сохраняются независимо от входа. При наличии единицы на входе синхронизации функция входов имеет вид, представленный в табл. 4.28. Таблица 4.28 исх 0 0 1 1 пер 0 1 0 1 0 1 0 1 Из табл. 4.28 видно, что состояние, в которое переходит триггер (правый столбец), совпадает с поступившим на его вход сигналом (средний столбец). D-триггер осуществляет задержку входного сигнала на один такт. В связи с этим при использовании D-триггеров таблица функций возбуждения памяти синтезируемого автомата будет полностью совпадать с таблицей переходов этого автомата (табл. 4.24). RS-триггер. Имеет два входа: R и S , на которые поступают сигналы R и S (рис. 4.13в). Кроме того, RS-триггер может иметь вход синхронизации С . При С 0 триггер будет находиться в режиме хранения, то есть при любых сигналах на входах R и S на выходе сохраняется прежнее значение. При C 1 функция входов имеет вид, представленный в табл. 4.29. исх 0 0 0 0 1 1 1 1 Таблица 4.29 R S пер 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 Комбинация, при которой оба входа равны единицы, считается запрещенной, так как в этом случае триггер работает неустойчиво и его состояние зависит от того, на какой вход раньше поступила единица. Из табл. 4.29 видно, что при исх 0 и S 0 триггер переходит в 0 независимо от того, что на входе R , и при исх 1 и R 0 триггер переходит в 1 независимо от входа S . С учетом этого, а также исключая запрещенные наборы, табл. 4.29 может быть преобразована в более простую (табл. 4.30), в которой прочерк означает, что данный переход не зависит от сигнала R или S . исх 0 0 1 1 Таблица 4.30 R S пер – 0 0 0 1 1 1 0 0 0 – 1 Таблица для функций возбуждения памяти при использовании RSтриггеров будет иметь следующий вид (табл. 4.31). 00 01 10 11 00 –0 01 01 –0 –0 01 –0 –0 Таблица 4.31 01 10 –0 0– — 01 10 10 –0 –0 10 10 –0 01 10 — При использовании RS-триггеров требуется четыре функции возбуждения памяти 1R , 1S , 2 R , 2 S , по две на каждый триггер. Но это не должно нас смущать, так как в результате минимизации функции возбуждения могут оказаться значительно проще, чем при использовании других типов триггеров, и, следовательно, схема также будет простой. Из RS-триггера легко получить D-триггер (рис. 4.14а) и Т-триггер. (рис. 4.14б). Входом Т-триггера в этом случае является вход синхронизации. Рис. 4.14. JK-триггер. Также имеет два входа ( J и K на рис. 4.13г), но в отличие от RS-триггера сигналы 1 могут одновременно поступать на входы JKтриггера. При этом состояние триггера изменится на противоположное, то есть при J=K JK-триггер ведет себя как Т-триггер. JK-триггер удобен тем, что позволяет легко получать схемы, функционирующие как D- и Tтриггеры (рис. 4.14в, г). 3. Получение логических функций выходов конечного автомата и функций возбуждения памяти. После выбора элементов памяти и построения таблицы для функции возбуждения, дальнейший синтез автомата сводится к синтезу комбинационной схемы, реализующей функции выхода и возбуждения памяти. Функции выходов строятся по таблице выходов (табл. 4.25) конечного автомата. Таблица выходов не определена (имеются прочерки). Доопределив таблицу выходов нулями, получим: y 0 0001 0101 1001 1010 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 . Доопределив таблицу выходов единицами, получим: y1 y 0 1000 1011 0001 0101 1001 1010 1000 1011 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 . Выражения для функций возбуждения памяти получаем из таблицы возбуждения. Мы уже знаем, что при использовании D-триггеров таблица для функции возбуждения памяти будет полностью совпадать с таблицей переходов конечного автомата (табл. 4.24). В случае использования RSтриггеров необходимы четыре функции возбуждения, которые получим из табл. 4.31. Будем использовать в качестве элементов памяти Т-триггеры. Из табл. 4.27 при различных доопределениях получим: 10 0001 0101 0111 1001 1010 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 ; 20 0000 0010 0101 0110 0111 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 1 2 х1 х 2 . 11 10 1000 1011 1 2 х1 х2 1 2 х1 х2 1 2 х1 х2 1 2 х1 х2 1 2 х1 х2 1 2 х1 х2 1 2 х1 х2 ; 12 20 1000 1011 1 2 х1 х2 1 2 х1 х2 1 2 х1 х2 1 2 х1 х2 1 2 х1 х2 1 2 х1 х2 1 2 х1 х2 . Различные доопределения необходимы для последующей минимизации функции выхода и функций возбуждения памяти. 4. Минимизация полученных в п.3 логических функций. Для минимизации функций y 1 , 2 , х1 , х 2 , 1 1 , 2 , х1 , х 2 , 2 1 , 2 , х1 , х 2 можно использовать метод Квайна–Мак Класки, карты Карно или n мерный куб. Составим карты Карно для минимизации функций. Для y 1 , 2 , х1 , х 2 получим (табл. 4.32): 1 2 х1 х 2 1 2 Таблица 4.32 1 2 1 2 1 1 1 1 х1 х 2 х1 х 2 х1 х 2 y 1 , 2 , х1 , х2 1 2 1 х1 х2 . Для 1 1 , 2 , х1 , х2 получим (табл. 4.33): 1 2 х1 х 2 х1 х 2 х1 х 2 х1 х 2 1 2 1 1 Таблица 4.33. 1 2 1 2 1 1 1 1 1 , 2 , х1 , х2 1 2 1 х1 х2 1 2 х2 . Для 2 1 , 2 , х1 , х2 получим (табл. 4.34): Таблица 4.34 1 2 1 2 х1 х 2 х1 х 2 х1 х 2 х1 х 2 1 2 1 2 1 1 1 1 1 2 1 , 2 , х1 , х2 1 2 х2 1 2 х2 1 2 х1 . 5. Построение функциональной схемы. Полученные в п. 4 минимальные дизъюнктивные нормальные формы функций y 1 , 2 , х1 , х 2 , 1 1 , 2 , х1 , х2 , 2 1 , 2 , х1 , х2 , реализуются в функциональной схеме. Если способ реализации не оговаривается, то схема строится на логических элементах И, ИЛИ, НЕ с учетом взаимосвязи между функциями (рис. 4.15). Для реализации в другом базисе необходимы преобразования полученных МДНФ функций. Так для перехода в базис И-НЕ используем двойное отрицание и формулу де Моргана, например: y 1 , 2 , х1 , х2 1 2 1 х1 х2 1 2 1 х1 х2 . Рис. 4.15 На основе полученной функциональной схемы строится электрическая принципиальная схема. Для ее построения производится расчет электрических параметров и выбираются реальные элементы, реализующие логику работы устройства с учетом требуемых быстродействия, надежности и условий эксплуатации. К условиям эксплуатации относятся температура окружающей среды, механические воздействия (вибрация, одиночные удары), влажность (иней, роса), радиационная стойкость, электромагнитная совместимость и др.