ПРОЕКТИРОВАНИЕ ПЕРЕКЛЮЧАТЕЛЬНЫХ УСТРОЙСТВ Методические указания к курсовому проектированию Для студентов, обучающихся по направлению подготовки 210100.62 «Электроника и наноэлектроника» профиль «Промышленная электроника» Составители: М. П. Маслаков, А. Г. Дедегкаев Владикавказ 2014 0 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)» Кафедра «Промышленная электроника» ПРОЕКТИРОВАНИЕ ПЕРЕКЛЮЧАТЕЛЬНЫХ УСТРОЙСТВ Методические указания к курсовому проектированию Для студентов, обучающихся по направлению подготовки 210100.62 «Электроника и наноэлектроника» профиль «Промышленная электроника» Составители: М. П. Маслаков, А. Г. Дедегкаев Допущено редакционно-издательским советом Северо-Кавказского горно-металлургического института (государственного технологического университета). Протокол заседания РИСа № 26 от 17.12.2013 г. Владикавказ 2014 1 УДК 519.713+621.382 ББК 32.815 М31 Рецензент: Доктор технических наук, профессор Северо-Кавказского горно-металлургического института (государственного технологического университета) Хасцаев Б. Д. М31 Проектирование переключательных устройств: Методические указания к курсовому проектированию / Сост.: М. П. Маслаков, А. Г. Дедегкаев; Северо-Кавказский горнометаллургический институт (государственный технологический университет). – Владикавказ: Северо-Кавказский горно-металлургический институт (государственный технологический университет). Изд-во «Терек», 2014. – 61 с. В методических указаниях изложены основы теории переключательных устройств в их конечно-автоматной интерпретации. Рассмотрены этапы проектирования устройств (минимизация и кодирование внутренних состояний, построение автоматного оператора) и минимизация логической функции. Даны содержание и примеры курсовых проектов. Курсовое проектирование предназначено для систематизации, расширения и закрепления теоретических знаний по дисциплине «Проектирование переключательных устройств», а также способствует развитию расчетно-графических навыков у студентов. УДК 519.713+621.382 ББК 32.815 Редактор: Иванченко Н. К. Компьютерная верстка: Куликова М. П. Составление. ФГБОУ ВПО «Северо-Кавказский горно-металлургический институт (государственный технологический университет)», 2014 Маслаков М. П., Дедегкаев А. Г., составление, 2014 Подписано в печать 26.03.2014. Формат 60х84 1/16. Бумага офсетная. Гарнитура «Таймс». Печать на ризографе. Усл. п.л. 3,54. Тираж 50 экз. Заказ № . Северо-Кавказский горно-металлургический институт (государственный технологический университет). Издательство «Терек». Отпечатано в отделе оперативной полиграфии СКГМИ (ГТУ). 362021, г. Владикавказ, ул. Николаева, 44. 2 Содержание Введение .....................................................................................................5 1. Основные теоретические положения...................................................6 1.1. Модели переключательных схем с памятью....................................6 1.2. Этапы проектирования переключательных устройств ...................7 1.2.1. Минимизация числа внутренних состояний .................................7 1.2.2. Кодирование внутренних состояний автомата .............................8 1.2.2.1. Частотно-матричный метод кодирования ..................................8 1.2.2.2. Противогоночное (соседнее) кодирование состояний автомата..........................................................................................................16 1.2.3. Построение автоматного оператора...............................................21 1.3. Минимизация логической функцию. Склеивание простых импликант...................................................................................................26 1.4. Структурный синтез переключательной схемы ..............................27 2. Содержание курсового проекта............................................................55 Приложение № 1 ........................................................................................43 Приложение № 2........................................................................................54 3. Литература .............................................................................................61 3 Введение Непрерывный рост сложности проектируемых устройств, задание их функционирования, резкое сокращение сроков морального старения, а также широкое внедрение интегральной схемотехники в практику создания электронных устройств обусловили развитие новых методов проектирования, в которых ручной труд заменяется механизированным, место инженерной интуиции занимают формальные методы принятия решений. Электронные устройства, для проектирования которых создаются автоматизированные системы, чрезвычайно разнообразны по своему назначению, физической сути и принципу работы. Соответственно этому разнообразны и математические модели, используемые для описания функционирования устройств и их элементов, и методы проектирования, оценки проектных вариантов. Все многообразие электронных устройств можно разделить на два больших класса: электронные устройства непрерывного действия (аналоговые устройства) и электронные устройства дискретного действия (цифровые устройства). В свою очередь, к классу устройств дискретного действия относятся последовательные машины или переключательные схемы с памятью, проектированию которых посвящено настоящее пособие. 4 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ 1.1. Модели переключательных схем с памятью В качестве модели переключательной схемы используется абстрактный автомат А = < X, Y, S, φ, Λ >, где X – множество входных состояний проектируемого устройства; Y – множество выходных состояний; S – множество внутренних состояний (состояний памяти); φ: (X × S) → S – однозначное вправо отображение декартова произведения множеств X и S в множестве S, называемое функцией переходов автомата; Λ: (X × S) → Y – однозначное вправо отображение декартова произведения множеств X и S в множестве Y, называемое функцией выходов. Если множества S и X являются конечными, то автомат называется конечным. Здесь рассматриваются только конечные автоматы. Если отображения φ и Λ однозначны вправо, то автомат называется детерминированным, в противном случае стохастическим или вероятностным. Методы проектирования вероятностных автоматов выходят за круг задач, решаемых в настоящем пособии, а возникновение неоднозначности функций φ или Λ для каких-либо значений х Є Х и s Є S будет свидетельствовать о некорректности того или иного преобразования над автоматом или о допущенной ошибке. Наиболее распространенными способами задания автоматов являются таблицы переходов и выходов и автоматные графоиды. Таблица переходов и выходов представляет собой двухвходовую таблицу, столбцы которой соответствуют внутренним состояниям автомата, а строки – входным состояниям. На пересечении i-ой строки с j-ым столбцом содержится пара (sα, уβ), где sα Є S – внутреннее состояние, в которое переходит автомат из состояния sj при поступлении на вход состояния xi Є X; yβ Є Y – выходное состояние, вырабатываемое автоматом, находящимися в состоянии sj при поступлении на его вход состояния xi. Автоматный графоид – ориентированный, взвешенный граф, вершины которого соответствуют внутренним состояниям автомата, а дуги – значениям функций φ и Λ. Если функции φ и Λ определены для каждого элемента множества X×S, то автомат называется полностью определенным, в противном случае – частичным или не полностью определенным. Для частичных автоматов в таблице переходов ставятся прочерки в клетках, соответствующих парам (Si, хi), на которых φ и Λ не определены. 5 В том случае, когда входное состояние X является фиктивной переменной функции Λ, для задания автомата используют матрицу соединений, столбцы и строки которой соответствуют внутренним состояниям, а на пересечении i-ой строки с j-ым столбцом содержится входное состояние, которым автомат переводится из Si в Sj. При таком задании признаком недетерминированности автомата является наличие одного и того же входного состояния в различных столбцах одной строки. Электронные переключательные устройства очень часто используются в контурах управления технологическими процессами, технологическим оборудованием. В этом случае в качестве модели устройства используется композиция пары автоматов – операционного и управляющего. Закон композиции определяется функционированием оборудования. Различие методов проектирования операционного и управляющего автоматов обусловлено тем, что число состояний управляющего автомата, как правило, на несколько порядков меньше, чем операционного. 1.2. Этапы проектирования переключательных устройств При использовании автоматной модели переключательного устройства применяются известные процедуры синтеза конечных автоматов. Предполагается, что формальное задание закона функционирования проектируемого устройства в виде автоматного графоида получено в результате диалога между заказчиком и проектировщиком на анкетном языке, либо каким-то другим способом. 1.2.1. Минимизация числа внутренних состояний Целью минимизации числа внутренних состояний является сокращение размерности автомата, что упрощает выполнение последующих преобразований, а также может привести к сокращению объема памяти при его физической реализации. Минимизация автомата основана на нахождении эквивалентных состояний и их замене одним состоянием. В случае полностью определенных автоматов используется метод Хаффмана, устанавливающий последовательно эквивалентность состояний от 1-эквивалентности до ∞-эквивалентности на основании таблицы переходов. Метод минимизации частичных автоматов предложен Ангером и Поллом. Аналогом класса эквивалентности полностью определенных автоматов является класс совместимости, 6 получаемый расширением класса эквивалентности теми состояниями, для которых переход по рассматриваемому входному состоянию не определен. Так как существует множество различных вариантов доопределения неопределенных переходов, то, очевидно, минимизация частичных автоматов несравненно сложнее, чем минимизация по Хаффману. Наличие эквивалентных состояний вовсе не обязательно, то есть исходное задание автомата может оказаться минимальным. Следует отметить, что минимизация не является принципиально необходимым преобразованием и от ее результатов зависит только сложность реализации и выполнения остальных процедур синтеза. 1.2.2. Кодирование внутренних состояний автомата В результате кодирования внутренних состояний каждое из них получает свое, только ему принадлежащее имя, составленное символами некоторого алфавита. Символы, образующие имя состояния, отождествляются с состояниями элементов памяти автомата. При использовании двух-стабильных элементов памяти алфавит состоит из множества символов 0 и 1. Кодирование внутренних состояний осуществляется в соответствии с заданным критерием оптимальности проектирования. В качестве таких критериев обычно выступают минимальность аппаратных затрат или максимальность надежности. Рассмотрим по одному методу кодирования для каждого из этих критериев. 1.2.2.1. Частотно-матричный метод кодирования Частотно-матричный метод является приближенным методом кодирования, ориентированным на получение схемной реализации, близкой к минимальной, без перебора вариантов. Этот метод основан на нахождении ближайших состояний, которым присваиваются ближайшие коды с целью их большего сближения. Для оценки близости состояний Si и Sj используется аппарат дифференцирования моделей. Для реализации этого метода кодирования используется следующий алгоритм синтеза кодирующего дерева: 1. По заданному автоматному графоиду S строим матрицу инцидентности модели Q (рисунок 1). Столбцы матрицы Q соответствуют внутренним состояниям автомата, а строки – компонентам входных и 7 выходных состояний. На пересечении i-ой строки с j-ым столбцом содержится «1», если i-ый компонент вектора в его парафазном представлении содержится в весах всех дуг, исходящих из j-ой вершины графоида, «0» – в противном случае (рисунок 2). S1 . 10 S1 S2 S3 S4 S5 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 01 1. 00 000 00 1. 1 1 101.00 Q= S2 S5 S4 111.11 110 010 .11 x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 . 01 S3 Рисунок 1 – Автоматный графоид S и его матрица инцидентности Q. 1×0 = 0 0 S1 {00} 0 0. 1 1 x1 S1 0 0 x2 1. x3 . Q= 0 y1 0 y2 0×0 = 0 0 1 0 0 0 0 0 1 ... {} x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 Рисунок 2 – Построение матрицы инцидентности Q. 2. По матрице Q находим частотную матрицу F по формуле: F=QT Q, 8 (1) где QT – это транспонированная матрица инцидентности Q. S1 S2 S3 S4 S5 2 0 0 1 0 S1 5 1 3 2 S2 2 0 2 S3 5 2 S4 5 S5 F = QT * Q = Элементы матрицы fii и fjj – количество единиц в столбцах i и j матрицы Q, соответственно; fij – количество совпадений по единицам между столбцами i и j матрицы Q. 3. По полученной частотной матрице F для каждой пары внутренних состояний Si и Sj находим значение производной по формуле: ∂ψ ∂S = fii -2fij +fjj fij , (2) где Ψ – модель, для которой F является частотной матрицей; S – событие, по которому осуществляется дифференцирование, fii и fjj – собственные частоты букв; fij – взаимная частота букв. Значения производных для всех пар внутренних состояний равны: fS S –2fS1 S2 +fs2 s2 2–2×0+5 ∂ψ (S1 S2 )= 1 1 = =∞; ∂S fS1 S2 0 ∂ψ ∂ψ ∂ψ (S1 S3 ) = ∞; (S1 S4 ) = 2,5; (S S ) = ∞; ∂S ∂S ∂S 1 5 ∂ψ ∂ψ 1 ∂ψ ∂ψ (S2 S3 ) = 2,5; (S2 S4 ) = 1 ; (S2 S5 ) = 3; (S S ) = ∞; ∂S ∂S 3 ∂S ∂S 3 4 ∂ψ ∂ψ (S3 S5 ) = 1,5; (S S ) = 3. ∂S ∂S 4 5 9 4. Выбираем пару внутренних состояний, для которой вычисленное значение производной минимально (если их несколько, то выбираем любую из них). 5. Выбранную пару состояний обозначаем через одно состояние и ставим ей в соответствие вершину в дереве кодирования, являющуюся началом дуг, концами которых являются выбранные состояния. Построенной вершине взаимно однозначно сопоставляем столбец строящейся матриц Q’, равный векторному произведению столбцов матрицы Q, соответствующий выбранным состояниям. 6. Вычеркиваем из рассмотрения значения производных тех пар внутренних состояний, в которые входят внутренние состояния из уже ранее выбранных пар. Проверяем, остались или нет нерассмотренные пары внутренних состояний, для которых вычислялись значения производных. Если да, то переходим к пункту 4, в противном случае – к пункту 7. 7. Проверяем, все ли внутренние состояния приняли участие в образовании матрицы Q’. Если да, то переходим к пункту 9, в противном случае – к пункту 8. 8. Оставшееся одно внутреннее состояние обозначаем через одно состояние и ставим ему в соответствие вершину дерева кодирования, являющуюся началом дуги, концом которой является оставшееся внутреннее состояние. Построенной вершине взаимно однозначно сопоставляем столбец строящейся матрицы Q’, равный столбцу матрицы Q, соответствующему оставшемуся внутреннему состоянию. 9. Проверяем, образована ли матрица Q’. Если да, то переходим к пункту 10, в противном случае – к пункту 2. 10. Каждым двум дугам, исходящим из вершины построенного дерева, начиная с дуг, исходящих из корня дерева, присваиваем произвольно, но обязательно разные значения 0 и 1 (если из вершины исходит одна дуга, то произвольно присваиваем ей либо 0, либо 1). Для получения кода некоторого состояния Si достаточно переписать веса всех ребер, образующих путь между корнем дерева и вершиной 1-го яруса, соответствующей состоянию Si. Проиллюстрируем предлагаемый алгоритм при кодировании автоматного графоида S (рисунок 1) с пункта 4: ∂ψ 1 Минимальное значение имеет производная ∂S (S2 S4 )=1 3 , обозначим пару внутренних состояний S2 S4 через одно состояние – «a». Убираем из рассмотрения производные, имеющие в своем составе состояния S2 и S4 : 10 ∂ψ ∂ψ ∂ψ (S1 S3 )=∞ (S1 S5 )=∞; (S S )=1,5. ∂S ∂S ∂S 3 5 ∂ψ Минимальное значение имеет производная ∂S (S3 S5 )=1,5, обозначим пару внутренних состояний S3 S5 через «b». Убираем из рассмотрения производные, имеющие в своем составе состояния S3 и S5 . В итоге не осталось не одной производной, однако состояние S1 не приняло участие в образовании матрицы Q’. Обозначим S1 через «c». Строим первый ярус дерева кодирования (рисунок 3): S1 S2 S3 S4 a b c S5 Рисунок 3 – Первый ярус дерева кодирования. Столбцы матрицы Q’ получаются следующим образом: { 0 0 1 Q= 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 { 0 S2 S3 0 0 0 0 0 0 1 0 1 0 S4 0 1 1 0 1 0 0 1 0 1 { { S1 S2 S5 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 11 × × × × × × × × × × S4 a a b c 0 1 1 0 1 0 0 1 0 1 =0 =1 =1 =0 =0 =0 =0 =1 =0 =0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 Q’ = x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 Матрица Q’ имеет вид: Q’ = a b c 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 Найдем значения производной по матрице Q’ и формуле 2: ∂ψ faa − 2fab + fbb 3 − 20 + 2 (ab) = = = ∞; ∂S fab 0 ∂ψ (ac) = ∞; ∂S ∂ψ (bc) = ∞. ∂S Все значения производных равны ∞, выбираем любую из них. ∂ψ (ab) = ∞ минимальна, обозначим Предположим, что производная ∂S пару состояний (ab) через «x». Убираем из рассмотрения производные, имеющие в своем составе состояния a и b. Оставшееся состояние (c) обозначим через «y». Строим второй ярус дерева кодирования (рисунок 4): S1 S2 S3 S4 a b c x y Рисунок 4 – Второй ярус дерева кодирования. 12 S5 Матрицу Q’’ имеет вид: Q’’ = x y 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 Найдем значения производной по матрице Q’’ и формуле 2. fxx − 2fxy + fyy 0 − 20 + 2 ∂ψ (xy) = = = ∞. ∂S fxy 0 Пару состояний (xy) = ∞, обозначим через «k». Искомое дерево кодирования, с уже взвешенными дугами, имеет вид, представленный на рисунке 5. S1 S2 S3 1 S4 0 0 1 0 a b 1 c 0 1 x y 0 1 k Рисунок 5 – Дерево кодирования. 13 S5 Матрица Q’’’ имеет вид: k Q’’’ = 0 0 0 0 0 0 0 0 0 0 x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 Согласно построенному дереву кодирования получаем следующие коды внутренних состояний автомата: S1 = 110; S2 = 011; S3 = 000; S4 = 010; S5 = 001. Переносим найденные коды внутренних состояний на автоматный графоид S (рисунок 6). 110 S1 0.1 0 01 1. 00 00 001 . 11 101.00 010 S4 S5 001 S2 011 111.11 11 0.1 01 1 0. 0 1 S3 000 Рисунок 6 – Закодированный автоматный графоид S. 14 Получением закодированного автоматного графоида завершается этап кодирования внутренних состояний частотно-матричным методом. 1.2.2.2. Противогоночное (соседнее) кодирование состояний автомата Гонками в автомате называется явление, состоящее в неправильном вычислении значения функции переходов из-за разброса длин цепей, по которым распространяются различные входные сигналы в комбинационной части автомата. Существует ряд схемотехнических приемов, позволяющих ликвидировать гонки. Все они связаны с усложнением схемы и уменьшением быстродействия. Принципиально другой подход к ликвидации гонок состоит в построении таких кодов состояний, для которых любой переход в автомате связан с переключением не более одного элемента памяти. Иными словами, коды концов каждой дуги автоматного графоида отличаются не более чем в одном разряде. В том, что такое кодирование существует не для каждого автомата, легко убедиться, рассмотрев любой цикл нечетной длины. Но отсутствие циклов нечетной длины не является достаточным условием существования противогоночного кодирования. Для существования на множестве состояний автомата противогоночного кода необходимо и достаточно, чтобы граф смежности этого автомата был вложен в n-мерное пространство. В этом случае существует n-разрядное кодирование, называемое также соседним. В том случае, когда соседнее кодирование объективно не существует, решается задача минимального гомеоморфного расширения графа смежности. Гомеоморфное расширение графа состоит в наведении на некоторые ребра граф дополнительных вершин, соответствующих состояниям автомата, в которых не вырабатываются выходные сигналы. Точное решение поставленной задачи связано с установлением взаимно однозначного соответствия между множеством вершин графоида и подмножеством вершин n-мерного единичного куба, не сужающего отношение смежности. Для полученных решений, приемле0мых в повседневной практики проектирования, разработан приближенный метод кодирования, который состоит в следующем: 1. По автоматному графоиду находится длина кода состояний: 15 n = max (Smax, [log2S]), (3) где Smax – степень вершины максимальной степени. 2. В качестве центра соседнего кодирования выбираем вершину максимальной степени и присваиваем ей код, состоящий из всех нулей. 3. Находим окрестность единичного радиуса центра соседнего кодирования и всем вершинам, принадлежащим этой окрестности, присваиваем коды, содержащие по одной единице, затем находим окрестность радиуса R = 2 и всем вершинам, принадлежащим этой окрестности, присваиваем коды, содержащие две единицы и т. д. Известны четыре ситуации, когда реализация этих процедур становится невозможной: 1) В рассматриваемой окрестности радиуса R найдется k ≥ 2 попарно смежных вершин. В этом случае на каждое из ребер, соединяющих между собой вершины одной окрестности, наводится дополнительная вершина, которая оказывается в окрестности радиуса R + 1, а в окрестности радиуса R не остается смежных вершин (рисунок 7). 2) В рассматриваемой окрестности радиуса R найдется вершина, смежная с m>R вершинами окрестности радиуса R – 1. В этом случае на m-R «лишних» ребер наводятся дополнительные вершины, и избыток связей переносится в следующую окрестность R + 1 (рисунок 8). 001 001 S2 100 101 DV1 S2 010 011 S3 S7 100 101 S5 DV1 R1 R2 S3 R1 R2 111 DV2 R3 Рисунок 8 – Ситуация (2). Рисунок 7 – Ситуация (1). 3) Число вершин рассматриваемой окрестности N>CnR, где CnR – число возможных кодов состояний для окрестности радиуса R. В этом случае длина кода n увеличивается на единицу, и все начинается сначала (рисунок 9). 16 000 S3 R0 001 011 S9 S2 010 110 111 S7 S8 S1 100 101 111 S6 S5 S4 R1 R2 R3 0000 S3 R0 0001 0011 S9 S2 0010 0110 0111 S7 S8 S1 0100 0101 1101 S6 S5 S4 R1 R2 R3 Рисунок 9 – Ситуация (3). 4) В рассматриваемой окрестности радиуса R найдется два и более состояния попарно смежных с двумя и более состояниями из окрестности радиуса R–1. В этом случае на одно любое ребро, соединяющее между собой вершины из разных окрестностей, наводятся две дополнительные вершины, одна из которых оказывается в окрестности радиуса R, а другая в окрестности радиуса R+1 (рисунок 10). 17 001 011 S9 S2 010 011 S7 S8 001 011 S9 S2 010 101 111 S7 S8 DV2 110 DV1 R1 R2 R1 R2 R3 Рисунок 10 – Ситуация (4). Проиллюстрируем метод противогоночного кодирования на автоматном графоиде S (рисунок 11). S1 . 10 01 1. 00 000 00 1. 1 1 101.00 S4 S5 S2 111.11 110 010 .11 . 01 S3 Рисунок 11 – Автоматный графоид S. За центр соседнего кодирования принимаем состояние S1 (вершина с максимальной степенью, она образует окрестность радиуса R0). Кодирование состояний автоматного графоида, на основе приближенного метода кодирования, проиллюстрировано на рисунке 12. 18 0001 S2 0011 DV2 0010 0000 S3 0110 S1 0100 DV3 S4 R0 1000 1010 S5 DV1 R1 R2 Рисунок 12 – Кодирование состояний автоматного графоида. Переносим найденные коды внутренних состояний и вспомогательные вершины на автоматный графоид S (рисунок 13). 0000 01 1.0 S1 0 000.1 0 . 11 101.00 001 0100 S4 1000 0001 S5 S2 111.11 1010 010.01 DV1 1 1 DV3 DV2 0011 0110 S3 110.11 1 0010 Рисунок 13 – Закодированный автоматный графоид S. 19 Получением закодированного автоматного графоида завершается этап кодирования внутренних состояний методом противогоночного кодирования. 1.2.3. Построение автоматного оператора Осуществив кодирование внутренних состояний, мы тем самым определили точно объем памяти автомата, а перенеся полученные коды на исходный графоид, уже можно сформулировать условия переключения элементов памяти и условия возбуждения выходных каналов, то есть построить функции возбуждения элементов памяти автомата и выходные функции. Количество элементов памяти (триггеров) автомата равно разрядности кода его внутренних состояний. Для автоматного графоида (рисунок 6) количество триггеров равно 3, а для автоматного графоида (рисунок 13) 4. Совокупность функций возбуждения элементов памяти и выходных функций называется автоматным оператором. Для того чтобы по закодированному автоматному оператору построить функцию возбуждения i-го элемента памяти, нужно найти все дуги, концы которых в том разряде кода не совпадают. Для каждой такой дуги составляется конъюнкция переменных кода начала дуги и входных переменных, взвешивающих дугу (рисунок 14). Соединив все полученные конъюнкции знаками дизъюнкции, получим функцию алгебры логики, задающую закон переключения i-го элемента памяти. Переменные кода 0 – z; начала дуги: 1 – z. z1 z2 z3 1 1 Входные переменные, 0 – x; взвешивающие дугу: 1 – x. x1 x2 x3 0 S1 0 0 0. 10 Конъюнкция переменных кода начала дуги и входных переменных, взвешивающих дугу, для перехода S1 101.00 S5 001 S2 S2: z1z2z3 x1x2x3 011 Рисунок 14 – Определение конъюнкции переменных кода начала дуги и входных переменных, взвешивающих дугу. 20 Проиллюстрируем на примерах построение функций возбуждения. На рисунке 15 представлен автоматный графоид S, закодированный частотно-матричным методом. Так как разрядность кода внутренних состояний равна трем, значит, имеем три функции возбуждения элементов памяти: φ1, φ2, и φ3. При переходе из состояния S1 в состояние S2 есть несовпадение кода состояния в 1-ом и 3-ем разрядах (т. е. код 110 меняется на код 011), следовательно, конъюнкция переменных кода начала дуги (S1) и входных переменных, взвешивающих дугу, будет записана в функции возбуждения элементов памяти φ1 и φ3: 𝛗𝟏 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) 𝛗𝟐 = 𝛗𝟑 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) 110 S1 0.1 0 01 1. 00 00 001 . 11 101.00 010 S4 S5 001 S2 011 111.11 11 0.1 01 1 0. 0 1 S3 000 Рисунок 15 – Автоматный графоид S. При переходе из состояния S1 в состояние S5 есть несовпадение кода состояния в 1-ом, 2-ом и 3-ем разрядах (т. е. код 110 меняется на код 001), следовательно, конъюнкция переменных кода начала дуги (S1) и входных переменных, взвешивающих дугу, будет записана в функции возбуждения элементов памяти φ1, φ2 и φ3: 𝛗𝟏 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) ⋁ z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) 21 𝛗𝟐 = z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) 𝛗𝟑 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) ⋁ z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) Таким образом, проанализировав весь автоматный графоид S и найдя все несовпадения кодов внутренних состояний, получаем конечный вариант функций возбуждения элементов памяти: 𝛗𝟏 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) ⋁ z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) ⋁ z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 (s3→s1) ⋁ z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) ; 𝛗𝟐 = z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) ⋁ z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 (s2→s3) ⋁ (s3→s1) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 ⋁ z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 (s3→s4) ; 𝛗𝟑 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) ⋁ z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) ⋁ (s2→s3) z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 ⋁ z̅1 z̅2 z3 x1 x2 x3 (s5→s3). На рисунке 16 представлен автоматный графоид S, закодированный методом противогоночного кодирования. Так как разрядность кода внутренних состояний равна четырем, значит, имеем четыре функции возбуждения элементов памяти: φ1, φ2, φ3 и φ4. 0000 01 1.0 S1 0 000.1 0 . 11 101.00 001 0100 S4 1000 0001 S5 S2 111.11 1010 010.01 DV1 1 1 DV3 DV2 0011 0110 S3 110.11 1 0010 Рисунок 16 – Автоматный графоид S. 22 Построение функций возбуждения элементов памяти для автоматного графоида, закодированного при помощи противогоночного кодирования, осуществляется аналогичным образом, что и для автоматных графоидов, закодированных при помощи частотноматричного кодирования. Единственным отличием является составление конъюнкции для дуг, не имеющих входных переменных, взвешивающих их. При переходе из дополнительного состояния DV1 в состояние S3 есть изменение в коде состояний в 1-ом разряде (т. е. код 1010 меняется на код 0010), следовательно, в функции возбуждения элемента памяти φ1 будет записана только конъюнкция переменных кода начала дуги (DV1): 𝛗𝟏 = z1 z̅2 z3 z̅4 ∙ 1(DV1→S3) . Аналогичным образом реализуется построение функции возбуждения элементов памяти для дуг, исходящих из вспомогательных состояний DV2 и DV3: 𝛗𝟑 = z̅1 z2 z3 z̅4 ∙ 1(DV3→S4) ; 𝛗𝟒 = z̅1 z̅2 z3 z4 ∙ 1(DV2→S3) . Таким образом, проанализировав весь автоматный графоид S (рисунок 16) и найдя все несовпадения кодов внутренних состояний, получаем конечный вариант функций возбуждения элементов памяти: 𝛗𝟏 = z̅1 z̅2 z̅3 z̅4 x1 ̅̅̅ x2 x3 (s1→s5) ⋁ z1 z̅2 z3 z̅4 ∙ 1(DV1→S3) ; 𝛗𝟐 = z̅1 z̅2 z3 z̅4 x1 x2 ̅̅̅ x3 (s3→DV3) ⋁ z̅1 z2 z̅3 z̅4 x̅1 x2 x3 (s4→s1) ; 𝛗𝟑 = z̅1 z̅2 z̅3 z4 x̅1 x2 ̅̅̅ x3 (s2→DV2) ⋁ z̅1 z̅2 z3 z̅4 x̅1 ̅̅̅ x2 x3 (s3→s1) ⋁ z̅1 z2 z3 z̅4 ∙ 1(DV3→S4) ⋁ z1 z̅2 z̅3 z̅4 x1 x2 x3 (s5→DV1) ; 𝛗𝟒 = z̅1 z̅2 z̅3 z̅4 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) ⋁ z̅1 z̅2 z3 z4 ∙ 1(DV2→S3). Выражения (конъюнкции кода начала дуги и входных переменных, взвешивающих дуги) для выходных функций получаются аналогичным образом, что и функции возбуждения элементов памяти. Обозначаются они как: y1 , y̅1 , y2 и ̅̅̅. y2 Распределение конъюнкций кодов начала дуг и входных переменных, взвешивающих дуги, по выходным функциям осуществляется следующим образом: а) если дуга взвешена выходным состоянием Yi , которое равно 1, то соответствующая этой дуге конъюнкция кодов начала дуг и входных переменных, взвешивающих дуги, записывается в выходную функцию yi ; 23 } б) если выходным состоянием Yi = 0, то соответствующая этой дуге конъюнкция записывается в выходную функцию y̅i . И так для всего множества выходных состояний, взвешивающих дуги автоматного графоида. Реализация построения выходных функций проиллюстрирована на рисунке 17. y1 = z1z2z3 x1x2x3 (S1 y1 = } } } z1z2z3 x1x2x3 110 y2 = y2 = z1z2z3 x1x2x3 (S1 } S1 000 } 101. 0 . 1 S2) 0 y1 = z1z2z3 x1x2x3 (S1 (S1 y1 = z1z2z3 x1x2x3 0 001 011 S2 y2 = (S1 y2 = z1z2z3 x1x2x3 S2) S5) S2) V z1z2z3 x1x2x3 (S1 S5) } } S5 S2) } z1z2z3 x1x2x3 Рисунок 17 – Распределение конъюнкций кодов начала дуг и входных переменных, взвешивающих дуги, по выходным функциям. Таким образом, проанализировав автоматные графоиды (рисунки 15 и 16), получаем конечный вариант выходных функций: Рисунок 15: 𝐲𝟏 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 (s3→s1) z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 (s3→s4) z̅1 z̅2 z3 x1 x2 x3 (s5→s3) ; ̅̅̅ 𝐲𝟏 = z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 (s2→s3) z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) (s4→s1) z̅1 z2 z̅3 x̅1 x2 x3 ; 𝐲𝟐 = z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 (s2→s3) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 (s3→s1) z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 (s3→s4) z̅1 z̅2 z3 x1 x2 x3 (s5→s3) ; 24 ̅̅̅ 𝐲𝟐 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5). Рисунок 16: 𝐲𝟏 = z̅1 z̅2 z̅3 z̅4 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) z1 z̅2 z̅3 z̅4 x1 x2 x3 (s5→DV1) (s3→DV3) z̅1 z̅2 z3 z̅4 x1 x2 ̅̅̅ x3 z̅1 z̅2 z3 z̅4 x̅1 ̅̅̅ x2 x3 (s3→s1) ; ̅̅̅ 𝐲𝟏 = z̅1 z̅2 z̅3 z4 x̅1 x2 ̅̅̅ x3 (s2→DV2) z̅1 z2 z̅3 z̅4 x̅1 x2 x3 (s4→s1); z̅1 z̅2 z̅3 z̅4 x1 ̅̅̅ x2 x3 (s1→s5) 𝐲𝟐 = z̅1 z̅2 z̅3 z4 x̅1 x2 ̅̅̅ x3 (s2→DV2) z1 z̅2 z̅3 z̅4 x1 x2 x3 (s5→DV1) z̅1 z̅2 z3 z̅4 x1 x2 ̅̅̅ x3 (s3→DV3) ⋁ z̅1 z̅2 z3 z̅4 x̅1 ̅̅̅ x2 x3 (s3→s1) ; ̅̅̅ 𝐲𝟐 = z̅1 z̅2 z̅3 z̅4 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) z̅1 z̅2 z̅3 z̅4 x1 ̅̅̅ x2 x3 (s1→s5) (s4→s1) z̅1 z2 z̅3 z̅4 x̅1 x2 x3 . Получением автоматного оператора завершается абстрактный синтез автоматов, так как нельзя привести полученную систему функций к оптимальному виду, не зная характеристик элементной базы. А это уже вопросы структурного синтеза. 1.3. Минимизация логической функции. Склеивание простых импликант В алгебре логики возможно упрощение исходных логических функций (ФАЛ) за счет применения законов алгебры логики. В частности, это законы: – единичного множества относительно конъюнкции: l×F(a,b,...,n) = F(a,b,...,n); (4) – единичного множества относительно дизъюнкции: 1 F(a,b,...,n) = 1; – нулевого множества относительно конъюнкции: 25 (5) 0×F(a,b,...,n) = 0; (6) – нулевого множества относительно конъюнкции: 0 F(a,b,...,n)= F(a,b,...,n); (7) – склеивания – если две конъюнкции являются соседними по букве хi и если они отличаются только в этой букве. В этом случае две конституенты склеиваются по этой букве, а она сама удаляется: x1 x2 x3 x4 x1 x2 x3 ̅̅̅ x4 = x1 x2 x3 . (8) Полученная упрощенная форма ФАЛ называется сокращенной дизъюнктивной совершенной нормальной формой – СДНФ. Применение указанных и некоторых других законов алгебры логики позволяет упрощать логические выражения и на их основе – переключательные схемы. Однако полученная СДНФ может не являться минимальной формой ФАЛ. Если СДНФ больше не упрощается, то она называется тупиковой. Для упрощения СДНФ ФАЛ применяется ряд методов, в частности: Квайна, Квайна–Мак-Класки, учета теоретико-структурных свойств ФАЛ, неопределенных коэффициентов. 1.4. Структурный синтез переключательной схемы Целью структурного синтеза является получение функциональной схемы, в которой воплощены требования и ограничения, сформулированные в исходном задании. Задачи, решаемые в структурном синтезе, характеризуются многовариантностью и плохой формализуемостью. Это приводит к необходимости использования эвристических методов синтеза. Можно выделить два подхода к решению задач структурного синтеза. Первый предполагает для оптимизации полученного автоматного оператора осуществить минимизацию всех функций алгебры логики раздельно или совместно, а затем под полученную форму подбирать элементную базу с минимальной функциональной избыточностью. При втором подходе, зная характеристики используемых элементов, мы пытаемся находить их «образы» в системе функций и по этому принципу группировать различные конъюнкции. Легко видеть, что в обоих случаях отсутствует строгая регламентация процедур. В реаль26 ной практике оба эти подхода, как правило, смешиваются и доминирующим становится интуиция разработчика. Разработанный для задач структурного синтеза аппарат коалгебры графов слишком громоздкий для функций реальной сложности и неинвариантен по отношению к элементной базе. Следует также отметить, что использование ко-алгебры графов связано с выполнением последовательности шагов, каждый из которых связан с необходимостью выбора из множества решений, при отсутствии эффективного способа прогнозирования влияния, того или иного выбора на окончательный результат. В качестве универсального преобразования, дающего хороший эффект, используется выделение общих частей функций автоматного оператора для их реализации в виде самостоятельных блоков, многократно участвующих при построении схемы в целом. Переключательные элементы, применяемые при структурном синтезе автоматов: 1. Переключательные элементы И-НЕ: 8И-НЕ 4И-НЕ 3И-НЕ 2И-НЕ & & & & 2. Переключательные элементы ИЛИ-НЕ: 8ИЛИ-НЕ 4ИЛИ-НЕ 3ИЛИ-НЕ 2ИЛИ-НЕ 1 1 1 1 3. Переключательный элемент НЕ: НЕ 1 27 4. Переключательный элемент JK-триггер: JK-триггер J TT C K Построение функциональной схемы автомата проиллюстрируем на основе автоматного графоида S (рисунок 15) и найденных его функций возбуждения и функций выходов: 𝛗𝟏 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) (s3→s1) (s4→s1) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 z̅1 z2 z̅3 x̅1 x2 x3 ; 𝛗𝟐 = z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) ⋁ z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 (s2→s3) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 (s3→s1) z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 (s3→s4); 𝛗𝟑 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) ⋁ z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 (s2→s3) (s5→s3) z̅1 z̅2 z3 x1 x2 x3 . 𝐲𝟏 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 (s3→s1) z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 (s3→s4) z̅1 z̅2 z3 x1 x2 x3 (s5→s3) ; ̅̅̅ 𝐲𝟏 = z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 (s2→s3) z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) ; 𝐲𝟐 = z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 (s2→s3) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 (s3→s1) z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 (s3→s4) z̅1 z̅2 z3 x1 x2 x3 (s5→s3) ; ̅̅̅ 𝐲𝟐 = z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 (s1→s2) z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) (s1→s5) z1 z2 z̅3 x1 ̅̅̅ x2 x3 . 28 1. Построение функциональной схемы начинается со сквозной нумерации функций выходов y1 и y̅1 : 𝐲𝟏 = (2) (1) (s1→s2) z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 (s3→s1) (3) (4) ; (s3→s4) z̅1 z̅2 z3 x1 x2 x3 (s5→s3) z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 ̅̅̅ 𝐲𝟏 = (5) (6) (s2→s3) z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) (7) . z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) 2. Далее, в соответствии с полученной нумерацией функций выходов y1 и y̅1 , производим нумерацию функций выходов y2 и ̅̅̅ y2 и функций возбуждения элементов памяти φ1, φ2, и φ3: 𝐲𝟐 = (2) (5) (s2→s3) z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 (s3→s1) (3) (4) ; (s3→s4) z̅1 z̅2 z3 x1 x2 x3 (s5→s3) z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 ̅̅̅ 𝐲𝟐 = (7) (1) (s1→s2) z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) (6) . z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) 𝛗𝟏 = (1) (6) (s1→s2) z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) (2) (7) ; (s3→s1) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) 29 𝛗𝟐 = (6) (5) (s1→s5) z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 (s2→s3) z1 z2 z̅3 x1 ̅̅̅ x2 x3 (2) (3) ; (s3→s1) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 (s3→s4) 𝛗𝟑 = (1) (6) (s1→s2) z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) (5) (4) . (s2→s3) z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 z̅1 z̅2 z3 x1 x2 x3 (s5→s3) 3. Проверяем, остались не пронумерованные конъюнкции переменных кодов внутренних состояний и входных переменных в функциях выходов y2 и ̅̅̅. y2 Если да, то вычисления были выполнены неверно, так как количество конъюнкций переменных кодов внутренних состояний и входных переменных в функциях выходов y1 , y̅1 и y2 , y2 должно быть одинаковым (совпадать). Вычисления конъюнкций ̅̅̅ начинаем производить заново. Если нет – переходим к пункту 4. 4. Проверяем, остались не пронумерованные конъюнкции переменных кодов внутренних состояний и входных переменных, а также конъюнкции переменных кода внутренних состояний в функциях возбуждения элементов памяти φ. Если остались не пронумерованные конъюнкции переменных кодов внутренних состояний и входных переменных, то их вычисление выполнено неверно, необходимо произвести их нахождение заново. Если нет, то проверяем, остались не пронумерованные конъюнкции переменных кода внутренних состояний (это возможно, если автоматный графоид кодировался противогоночным методом – есть вспомогательные вершины). Если да, то производим их нумерацию, присваивая первой, не пронумерованной конъюнкции переменных кода внутренних состояний номер, следующий за номером последней пронумерованной конъюнкции переменных кодов внутренних состояний и входных переменных. Если нет – переходим к пункту 5. 5. После окончания нумерации функций возбуждения и функций выходов автомата осуществляется выбор его шины данных и элементов памяти (триггеров). 30 Количество проводов шины данных равно удвоенной сумме количества функций возбуждения элементов памяти «φ» и количества входных переменных автомата «х». В нашем случае три функции возбуждения и три входных переменных, следовательно, количество проводов в шине данных равно 12 (2 (3+3) = 12). В шине данных 6 проводов (z1 , z2 , z3 , z̅1 , z̅2 и z̅3 ) – это всевозможные переменные кода внутренних состояний, другие 6 проводов (x1 , x2 , x3 , x̅1 , ̅̅̅и x2 ̅̅̅) x3 – это всевозможные входные переменные, взвешивающие дуги автоматного графоида. Также каждому проводу в шине данных присваивается номер, соответствующей входным переменным и переменным кода внутренних состояний автомата. Количество элементов памяти (триггеров) равно количеству функций возбуждения «φ», следовательно, в нашем примере автомат будет иметь три триггера (каждый триггер соответствует одной и только одной функции возбуждения). Функциональная схема автомата принимает вид, представленный на рисунке 18. Шина данных (12 проводов) Элементы памяти ( JK-триггеры) Рисунок 18 – Функциональная схема автомата (пункт 5). 6. Реализуем выходные функции 𝑦1 и ̅̅̅. 𝑦1 Первой конъюнкции из выходной функции ставится в соответствие переключательный элемент её реализующий. 31 Первая конъюнкция содержит шесть переменных, следовательно, для её реализации используем переключательный элемент 8И-НЕ, восьмой и седьмой выводы не используются, их соединяем с шестым выводом. Полученный переключательный элемент подключаем к шине данных, маркируем выводы с шины на переключательный элемент в соответствии с теми переменными, которые входят в реализуемую конъюнкцию. Вывод микросхемы (результат) конъюнкции подключаем к переключательному элементу НЕ, для получения истинного результата умножения (рисунок 19). } (1) S2) } z1z2z3 x1x2x3(S1 Рисунок 19 – Функциональная схема автомата (первая конъюнкция). Таким же образом реализуем все остальные конъюнкции, входящие в выходные функции y1 и y̅1 . По окончании реализации выходных функций y1 и y̅1 строится шина данных результатов конъюнкций. В нашем случае шина данных результатов конъюнкции состоит из 7 проводов, причем каждый провод имеет свой собственный номер, соответствующий номеру конъюнкции из выходных функций y1 и y̅1 (рисунок 20). 32 Шина данных результатов конъюнкции (7 проводов) (1) z1z2z3 x1x2x3(S1 S2) (2) z1z2z3 x1x2x3(S3 S1) (7) z1z2z3 x1x2x3 (S4 S1) Рисунок 20 – Функциональная схема автомата (пункт 6). 33 7. Если в пункте 4 были найдены конъюнкции переменных кода внутренних состояний (автоматный графоид кодировался противогоночным методом), то реализуем их так же как и в пункте 6, подключая их соответственно к шине данных результатов конъюнкции (переключательные блоки выбираются в соответствии с количеством переменных, входящих в конъюнкцию). Если нет – переходим к пункту 8. 8. Осуществляем построение самих функций возбуждения элементов памяти и функций выходов на функциональной схеме автомата. Каждой функции возбуждения соответствует дизъюнкция конъюнкций переменных кода внутренних состояний и входных переменных (для противогоночного кодирования еще и конъюнкций переменных кода внутренних состояний), к примеру: 𝛗𝟏 = (1) (6) (s1→s2) z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) (2) (7) . (s3→s1) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) Переключательный элемент ИЛИ-НЕ выбирается в соответствии с количеством слагаемых дизъюнкций в функции возбуждения (для φ1 это переключательный элемент 4 ИЛИ-НЕ). Вывод элемента – «результат сложения», подключается к выводу триггера «С» (того триггера, который отвечает за функцию возбуждения φ1). Переключательный элемент ИЛИ-НЕ подключаем к шине данных результатов конъюнкции, на выводах элемента ставим номера тех проводов шины данных результата, которые соответствуют тем конъюнкциям, которые входят в заданную функцию возбуждения триггера (в нашем случае, для φ1 – это номера 1, 6, 2 и 7). Функциональная схема автомата с реализованной функцией возбуждения φ1, представлена на рисунке 21. 34 Номера конъюнкций входящих в функцию возбуждения φ1 φ1 Рисунок 21 – Функциональная схема автомата (функция возбуждения φ1). 35 Остальные функции возбуждения элементов памяти φ2 и φ3 реализуются таким же образом (рисунок 22). φ1 φ2 φ3 Рисунок 22 – Функциональная схема автомата (пункт 8). 36 9. Реализация функций выходов автомата осуществляется так же, как и реализация функций возбуждения элементов памяти. Единственно, выводы переключательных элементов ИЛИ-НЕ (результат дизъюнкции) не подключаются ни к чему (рисунок 23). Функции выходов автомата Рисунок 23 – Функциональная схема автомата (пункт 9). 37 10. Производим нумерацию переключательных элементов, составляющих функциональную схему автомата, в соответствии с реальными микросхемами. Например, серия К155: 1. Микросхема К155ЛА2 – 1 элемент 8И-НЕ; 2. Микросхема К155ЛА1 – 2 элемента 4И-НЕ; 3. Микросхема К155ЛА3 – 4 элемента 2И-НЕ; 4. Микросхема К155ЛА4 – 3 элемента 3И-НЕ; 5. Микросхема К155ЛЕ1 – 4 элемента 2ИЛИ-НЕ; 6. Микросхема К155ЛЕ3 – 2 элемента 4ИЛИ-НЕ; 7. Микросхема К155ЛЕ4 – 3 элемента 3ИЛИ-НЕ; 8. Микросхема К155ЛД3 – 1 элемент 8ИЛИ-НЕ; 9. Микросхема К155ЛН1 – 6 элементов НЕ; 10. Микросхема К155ТВ – 2 JK – триггера. При нумерации переключательных элементов, составляющих функциональную схему автомата, возможно, использовать все имеющие российские и зарубежные микросхемы (серии к155, к561, 74 и 40). Причем, необходимо соблюдать следующее: 1. Микросхемы должны быть одной серии (желательно); 2. Питание микросхем должно быть одинаковым (обязательно). Функциональная схема автомата, построенная на основе автоматного графоида S (рисунок 15) представлена на рисунке 24. Нумерация переключательных элементов функциональной схемы автомата, в соответствии с реальными микросхемами, является заключительной стадией структурного синтеза переключательной схемы – автомата. 38 Рисунок 24 – Функциональная схема автомата, построенная на основе автоматного графоида S (рисунок 15). 39 2. СОДЕРЖАНИЕ КУРСОВОГО ПРОЕКТА 1. Титульный лист 2. Содержание 3. Задание 4. Основные теоретические положения 5. Расчетная часть 5.1. Кодирование внутренних состояний автомата 5.2. Нахождение функций возбуждения элементов памяти и выходных функций 6. Синтез функциональной схемы автомата 7. Литература 40 3. ЛИТЕРАТУРА Основная 1. Горбатов В. А., Горбатов А. В., Горбатова М. В. Теория автоматов. М.: АСТ: Астрель. 2008. 2. Закревский А. Д., Поттосин Ю. В., Черемисинова Л. Д. Логические основы проектирования дискретных устройств. М.: ФИЗМАТЛИТ. 2007. Дополнительная: 1. Горбатов В. А. Фундаментальные основы дискретной математики. М.: Наука. Физматлит. 2000. 2. Бутаев Г. М. Исчисление истинности высказываний. Владикавказ, Изд-во. СКГМИ. 1991. 41 Приложение 1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГБОУ ВПО «СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)» Факультет ЭЛЕКТРОННОЙ ТЕХНИКИ Кафедра ПРОМЫШЛЕННАЯ ЭЛЕКТРОНИКА КУРСОВОЙ ПРОЕКТ ТЕМА: Синтез логического устройства управления по заданному автоматному отображению. Способ кодирования внутренних состояний автомата – частотно-матричный Выполнил: студент __________________ _________________ (Ф.И.О.) группа:__________________ Руководитель:______________________ (Ф.И.О.) Владикавказ 2014 42 СОДЕРЖАНИЕ Задание 1. Основные теоретические положения 2. Расчетная часть 2.1. Кодирование внутренних состояний автомата 2.2. Нахождение функций возбуждения элементов памяти и выходных функций 3. Синтез функциональной схемы автомата 4. Литература 43 ЗАДАНИЕ Синтез логического устройства управления по заданному автоматному отображению. Способ кодирования внутренних состояний автомата – частотно-матричный. Автоматное отображение (автоматный графоид): S1 0.1 0 01 1. 00 00 001 .11 101.00 S4 S5 S2 111.11 11 0.1 01 1 S3 44 0. 0 1 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ ____________________________________________________________ (Основные теоретические положения берутся из данных методических указаний и предложенной литературы, в соответствии с заданием на курсовое проектирование) 2. РАСЧЕТНАЯ ЧАСТЬ 2.1. Кодирование внутренних состояний автомата 1) Строим матрицу инцидентности модели Q: Q= S1 S2 S3 S4 S5 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 2) Строим частотную матрицу F: S1 S2 S3 S4 S5 2 0 0 1 0 S1 5 1 3 2 S2 2 0 2 S3 5 2 S4 5 S5 F = QT * Q = 3) Находим значение производной для каждой пары внутренних состояний по формуле: ∂ψ fii − 2fij + fjj = ∂S fij ∂ψ ∂ψ ∂ψ ∂ψ (S1 S2 ) = ∞; (S1 S3 ) = ∞; (S1 S4 ) = 2,5; (S S ) = ∞; ∂S ∂S ∂S ∂S 1 5 45 ∂ψ ∂ψ 1 ∂ψ ∂ψ (S2 S3 ) = 2,5; (S2 S4 ) = 1 ; (S2 S5 ) = 3; (S S ) = ∞; ∂S ∂S 3 ∂S ∂S 3 4 ∂ψ ∂ψ (S3 S5 ) = 1,5; (S S ) = 3. ∂S ∂S 4 5 ∂ψ 1 4) Минимальное значение имеет производная ∂S (S2 S4 ) = 1 3 , обозначим пару внутренних состояний S2 S4 через одно состояние – «a». Убираем из рассмотрения производные, имеющие в своем составе состояния S2 и S4: ∂ψ ∂ψ ∂ψ (S1 S3 ) = ∞ (S1 S5 ) = ∞; (S S ) = 1,5. ∂S ∂S ∂S 3 5 ∂ψ Минимальное значение имеет производная ∂S (S3 S5 ) = 1,5, обозначим пару внутренних состояний S3 S5 через «b». Убираем из рассмотрения производные, имеющие в своем составе состояния S3 и S5. В итоге не осталось не одной производной, однако состояние S1 не приняло участие в образовании матрицы Q’. Обозначим S1 через «c». Матрица Q’ имеет вид: Q’ = a b c 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 5) Найдем значения производной по матрице Q’: ∂ψ ∂ψ ∂ψ (ab) = ∞; (ac) = ∞; (bc) = ∞. ∂S ∂S ∂S 46 Все значения производных равны ∞, выбираем любую из них. ∂ψ Предположим, что производная ∂S (ab) = ∞ минимальна, обозначим пару состояний (ab) через «x». Убираем из рассмотрения производные, имеющие в своем составе состояния a и b. Оставшееся состояние (c) обозначим через «y». Матрица Q’’ имеет вид: Q’’ = x y 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 6) Найдем значения производной по матрице Q’’: ∂ψ (xy) = ∞. ∂S Пару состояний (xy) = ∞, обозначим через «k». Матрицу Q’’’ имеет вид: k Q’’’ = 0 0 0 0 0 0 0 0 0 0 x1 x1 x2 x2 x3 x3 y1 y1 y2 y2 47 7) Строим дерево кодирования: S1 S2 S3 1 S4 0 S5 0 1 0 a b 1 c 0 1 x y 0 1 k Внутренние состояния автомата, согласно построенному дереву кодирования, имеют следующие коды: S1 = 110; S2 = 011; S3 = 000; S4 = 010; S5 = 001. 8) Закодированный автоматный графоид имеет вид: 110 S1 0.1 0 01 1. 00 00 001 . 11 101.00 010 S4 S5 001 S2 111.11 11 0.1 01 1 S3 000 48 0. 0 1 011 2.2. Нахождение функций возбуждения элементов памяти и выходных функций 1) Функции выходов В выходных состояниях две переменные y1 и y2, следовательно, имеем четыре функции выходов: 𝐲𝟏 = (2) (1) (s1→s2) z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 (s3→s1) (3) (4) ; (s3→s4) z̅1 z̅2 z3 x1 x2 x3 (s5→s3) z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 ̅̅̅ 𝐲𝟏 = (5) (6) (s2→s3) z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) (7) ; z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) 𝐲𝟐 = (2) (5) (s2→s3) z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 (s3→s1) (3) (4) ; (s3→s4) z̅1 z̅2 z3 x1 x2 x3 (s5→s3) z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 ̅̅̅ 𝐲𝟐 = (7) (1) ⋁ (s1→s2) z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) (6) . z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) 2) Функции возбуждения элементов памяти Разрядность кода внутренних состояний равна 3, значит имеем 3 функции возбуждения: 49 𝛗𝟏 = (1) (6) (s1→s2) z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) (2) (7) ; (s3→s1) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 z̅1 z2 z̅3 x̅1 x2 x3 (s4→s1) 𝛗𝟐 = (6) (5) (s1→s5) z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 (s2→s3) z1 z2 z̅3 x1 ̅̅̅ x2 x3 (2) (3) ; (s3→s1) z̅1 z̅2 z̅3 x̅1 ̅̅̅ x2 x3 z̅1 z̅2 z̅3 x1 x2 ̅̅̅ x3 (s3→s4) 𝛗𝟑 = (1) (6) (s1→s2) z1 z2 z̅3 x̅1 ̅̅̅ x2 ̅̅̅ x3 z1 z2 z̅3 x1 ̅̅̅ x2 x3 (s1→s5) (5) (4) . (s2→s3) z̅1 z2 z3 x̅1 x2 ̅̅̅ x3 z̅1 z̅2 z3 x1 x2 x3 (s5→s3) 50 3. СИНТЕЗ ФУНКЦИОНАЛЬНОЙ СХЕМЫ АВТОМАТА 51 4. ЛИТЕРАТУРА 1. Горбатов В. А., Горбатов А. В., Горбатова М. В. Теория автоматов. М.: АСТ: Астрель. 2008. 2. Закревский А. Д., Поттосин Ю. В., Черемисинова Л. Д. Логические основы проектирования дискретных устройств. М.: ФИЗМАТЛИТ. 2007. 3. Горбатов В. А. Фундаментальные основы дискретной математики. М.: Наука. Физматлит. 2000. 4. Бутаев Г. М. Исчисление истинности высказываний. Владикавказ, Изд-во. СКГМИ. 1991. 52 Приложение 2 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГБОУ ВПО «СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)» Факультет ЭЛЕКТРОННОЙ ТЕХНИКИ Кафедра ПРОМЫШЛЕННАЯ ЭЛЕКТРОНИКА КУРСОВОЙ ПРОЕКТ НА ТЕМУ: Синтез логического устройства управления по заданному автоматному отображению. Способ кодирования внутренних состояний автомата – противогоночный Выполнил: студент __________________ _________________ (Ф.И.О.) группа:__________________ Руководитель:______________________ (Ф.И.О.) Владикавказ 2014 53 СОДЕРЖАНИЕ Задание 1. Основные теоретические положения 2. Расчетная часть 2.1. Кодирование внутренних состояний автомата 2.2. Нахождение функций возбуждения элементов памяти и выходных функций 3. Синтез функциональной схемы автомата 4. Литература 54 ЗАДАНИЕ Синтез логического устройства управления по заданному автоматному отображению. Способ кодирования внутренних состояний автомата – противогоночный (соседнее кодирование). Автоматное отображение (автоматный графоид): S1 0.1 0 01 1. 00 00 001 .11 101.00 S4 S5 S2 111.11 11 0.1 01 1 S3 55 0. 0 1 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ ____________________________________________________________ (Основные теоретические положения берутся из данных методических указаний и предложенной литературы, в соответствии с заданием на курсовое проектирование) 2. РАСЧЕТНАЯ ЧАСТЬ 2.1. Кодирование внутренних состояний автомата За центр соседнего кодирования принимаем состояние S1 (вершина с максимальной степенью = 4), она образует окрестность радиуса R0, далее на основе алгоритма соседнего кодирования получаем: 0001 S2 0011 DV2 0010 0000 S3 0110 S1 0100 DV3 S4 R0 1000 1010 S5 DV1 R1 R2 При реализации противогоночного кодирования были получены три вспомогательные вершины (DV1, DV2 и DV3), которые и позволили закодировать автоматный графоид соседним кодом. Разрядность кода внутренних состояний равна четырем – в функциональной схеме автомата будет 4 элемента памяти (4 функции возбуждения). 56 В результате получаем следующий автоматный графоид: 0000 011 S1 .00 000.1 0 101.00 1000 1 1. 1 00 0100 S4 0001 S5 S2 111.11 1010 010.01 DV1 1 1 DV3 DV2 0011 0110 S3 110.11 1 0010 2.2. Нахождение функций возбуждения элементов памяти и выходных функций 1) Функции выходов В выходных состояниях две переменные y1 и y2, следовательно, имеем четыре функции выходов: 𝐲𝟏 = (1) (2) (s1→s2) z̅1 z̅2 z̅3 z̅4 x̅1 ̅̅̅ x2 ̅̅̅ x3 z1 z̅2 z̅3 z̅4 x1 x2 x3 (s5→DV1) (4) (3) ; (s3→DV3) z̅1 z̅2 z3 z̅4 x1 x2 ̅̅̅ x3 z̅1 z̅2 z3 z̅4 x̅1 ̅̅̅ x2 x3 (s3→s1) ̅̅̅ 𝐲𝟏 = (5) (6) (s2→DV2) z̅1 z̅2 z̅3 z4 x̅1 x2 ̅̅̅ x3 z̅1 z̅2 z̅3 z̅4 x1 ̅̅̅ x2 x3 (s1→s5) (7) ; z̅1 z2 z̅3 z̅4 x̅1 x2 x3 (s4→s1) 57 𝐲𝟐 = (5) (2) (s2→DV2) z̅1 z̅2 z̅3 z4 x̅1 x2 ̅̅̅ x3 z1 z̅2 z̅3 z̅4 x1 x2 x3 (s5→DV1) (4) (3) ; (s3→DV3) z̅1 z̅2 z3 z̅4 x1 x2 ̅̅̅ x3 z̅1 z̅2 z3 z̅4 x̅1 ̅̅̅ x2 x3 (s3→s1) ̅̅̅ 𝐲𝟐 = (1) (6) (s1→s2) z̅1 z̅2 z̅3 z̅4 x̅1 ̅̅̅ x2 ̅̅̅ x3 z̅1 z̅2 z̅3 z̅4 x1 ̅̅̅ x2 x3 (s1→s5) (7) . z̅1 z2 z̅3 z̅4 x̅1 x2 x3 (s4→s1) 2) Функции элементов памяти Разрядность кода внутренних состояний равна 4, значит имеем 4 функции возбуждения: 𝛗𝟏 = (6) (8) ; (s1→s5) z1 z̅2 z3 z̅4 ∙ 1(DV1→S3) z̅1 z̅2 z̅3 z̅4 x1 ̅̅̅ x2 x3 𝛗𝟐 = (7) (3) ; (s3→DV3) z̅1 z̅2 z3 z̅4 x1 x2 ̅̅̅ x3 z̅1 z2 z̅3 z̅4 x̅1 x2 x3 (s4→s1) 𝛗𝟑 = (5) (4) (s2→DV2) z̅1 z̅2 z̅3 z4 x̅1 x2 ̅̅̅ x3 z̅1 z̅2 z3 z̅4 x̅1 ̅̅̅ x2 x3 (s3→s1) (2) (9) ; (DV3→S4) z̅1 z2 z3 z̅4 ∙ 1 z1 z̅2 z̅3 z̅4 x1 x2 x3 (s5→DV1) 𝛗𝟒 = (1) (10) . (s1→s2) z̅1 z̅2 z3 z4 ∙ 1(DV2→S3) z̅1 z̅2 z̅3 z̅4 x̅1 ̅̅̅ x2 ̅̅̅ x3 58 3. СИНТЕЗ ФУНКЦИОНАЛЬНОЙ СХЕМЫ АВТОМАТА 59 4. ЛИТЕРАТУРА 1. Горбатов В. А., Горбатов А. В., Горбатова М. В. Теория автоматов. М.: АСТ: Астрель. 2008. 2. Закревский А. Д., Поттосин Ю. В., Черемисинова Л. Д. Логические основы проектирования дискретных устройств. М.: ФИЗМАТЛИТ,. 2007. 3. Горбатов В. А. Фундаментальные основы дискретной математики. М.: Наука. Физматлит. 2000. 4. Бутаев Г. М. Исчисление истинности высказываний. Владикавказ, Изд-во. СКГМИ. 1991. 60