- •Проектирование автоматов
- •Проектирование автоматов
- •5.7. Упражнения 90
- •Введение
- •1. Абстрактные автоматы
- •1.1. Эквивалентность автоматов
- •1.2. Минимизация автоматов
- •1.2.1. Минимизация полностью определенного автомата
- •1.2.2. Минимизация частичного автомата
- •1.3. Композиция автоматов
- •1.3.1. Параллельное соединение
- •1.3.2. Последовательное соединение
- •1.3.3. Соединение с обратной связью
- •1.3.4. Соединение в сеть
- •1.4 Декомпозиция автомата
- •1.4.1. Задача декомпозиции
- •1.4.2. Разбиения со свойствами подстановки
- •1.4.3. Метод декомпозиции
- •1.5. Упражнения Эквивалентность автоматов
- •Минимизация полностью определённого автомата.
- •Декомпозиция автоматов
- •2. Структурные автоматы
- •2.1. Автоматная полнота и теорема в.М.Глушкова
- •2.2. Гонки в автомате
- •2.2.1. Кодирование состояний
- •2.2.2. Понятие о гонках. Противогоночное кодирование
- •2.3. Проектирование автомата
- •2.4. Упражнение Кодирование
- •Синтез автомата
- •3. Синтез схем
- •3.1. Определения
- •3.2. Функциональная полнота базиса
- •3.2.1. Классы функций
- •3.2.2. Монотонные функции
- •3.2.3. Самодвойственные функции
- •3.2.4. Линейные функции
- •3.2.5. Функции, сохраняющие константу
- •3.2.6. Функциональная полнота
- •3.3. Топологические ограничения в схемах
- •3.3.1. Плоские схемы
- •3.3.2. Ограничения на глубину связи в схеме
- •3.4. Методы синтеза схем
- •3.4.1. Метод факторизации
- •3.4.2. Метод декомпозиции
- •3.4.3. Синтез схем в классическом базисе.
- •3.4.4. Синтез схем в монофункциональном базисе.
- •3.5. Упражнения Функциональная полнота
- •Синтез схем
- •4. Эксперименты над автоматами
- •4.1. Построение диагностических деревьев
- •4.2. Диагностические и установочные эксперименты
- •4.2.1. Дерево преемников
- •4.2.2. Диагностический эксперимент
- •4.2.3. Установочный эксперимент
- •4.3. Упражнения Диагностические эксперименты
- •Установочные эксперименты
- •5. Формальные грамматики
- •5.1. Языки и порождающие их грамматики
- •5.2. Примеры фрагментов описаний в языках программирования.
- •5.3. Порождающая грамматика
- •5.4. Классы языков и грамматик
- •5.5. Язык, понимаемый устройством
- •5.6. Автоматные языки
- •5.7. Упражнения
- •Библиографический список
- •Проектирование автоматов
- •620002, Екатеринбург, Мира, 19
3.4.3. Синтез схем в классическом базисе.
Решение задачи начинается с представления функции в виде ДНФ. Анализ функций направлен на выявления общих частей функций, которые должны будут реализовываться общими подсхемами. Это же относится и к реализации одной функции: общие части реализуются одной схемой, что значительно сокращает схему.
Рассмотрим применение метода на примере реализации пары функций
F= {f1=ababc ab c, f2=abc} в классическом базисе
{2-И, 2-ИЛИ, НЕ}
Прежде всего минимизируем задание. После сокращения функции примут вид:
f1=abab, f2=abc.
У читывая вид второй функции, перепишем первую в виде
f 1=abab = abab= ab(ab).
Теперь реализация первой функции потребует четыре элемента, второй функции – один элемент, с учётом того, что конъюнкция ab уже реализована в схеме первой функции.
П ри синтезе полезно использовать правило де Моргана. Действительно, если для реализацииab необходимо три элемента, то равная ей функция потребует только два элемента.
3.4.4. Синтез схем в монофункциональном базисе.
При синтезе схем в базисе p-И-НЕ, где p – число входов элемента, используется следующий алгоритм.
Исходная функция представляется в дизъюнктивной нормальной форме, т.е. в виде К1 К2 … Кr, затем над ней проводится операция двойного отрицания, одно из которых опускается до конъюнкций, т.е.
ф ункция будет представлена через функции базиса.
Е сли rp и число букв в каждой из конъюнкций не больше p, то задача решена. Схема будет состоять из двух уровней. На первом из них реализуются конъюнкции, на втором происходит их объединение. Задача усложняется, если на каком-то уровне у элемента не хватает для реализации входов. В этом случае задача состоит в том, чтобы разбить исходную запись функции на фрагменты и реализовать каждый из них отдельно, объединяя затем, используя правило де Моргана.
Д ля этого проводится анализ конъюнкций в формуле, выделяются общие части и выносятся за скобки общие части.
Этот же приём, связанный с вынесением за скобки и выделением общих частей, необходим, когда стоит задача реализации нескольких функций. При этом может оказаться, что для получения минимальной схемы не обязательно приводить все функции к минимальной форме.
Пример. Реализуем в базисе 3 -И-НЕ функцию f=<01101000>
Запишем её в СДНФ: f =ab c a b c a bc
Функция не минимизируется, полученная нормальная форма является и минимальной.
Схема будет иметь вид как на рис. 3.9.
Если возникает необходимость реализовать эту функцию в базисе 2-И-НЕ, то формулу преобразуем так:
f =abcabcabc= a(bcbc)a(bc) = =a / (b c bc) / (a / (b c )).
(bc bc ) = (b / c) / (b /c ), bc =b /c .
Здесь символом / обозначена функция элемента базиса.
Инверсия реализуется на одном элементе базиса, если у него на оба входа подать одну и ту же переменную, т.е. (x/x)=x.
При реализации на элементе p-ИЛИ-НЕ используют представление функции в конъюнктивной нормальной форме. Всё остальное то же, что и при реализации в базисе p-И-НЕ.
Пример. Реализуем ту же функцию в базисе 3-ИЛИ-НЕ.
f=(abc) (abc) (abc) (abc) (abc)= = (abc) (bc) (a c) (ab).
Решение имеет вид как на рис.3.10.