
- •Проектирование автоматов
- •Проектирование автоматов
- •Введение
- •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.3.2. Ограничения на глубину связи в схеме
Формализуем понятие глубины связей в схемах следующим образом. Рассмотрим схемы, не имеющие обратных связей. Элементы таких схем можно однозначно разбить на группы, называемые рангами или ярусами, по следующему правилу. К нулевому ярусу (рангу) относим входные полюса схемы. Элементы, входы которых связаны только с входными полюсами, отнесем к первому ярусу. В общем, к элементу i-го яруса отнесем все элементы, входы которых связаны только с выходами элементов (i--1)-го и, может быть, элементов нижних ярусов. Если выход элементаi-го уровня связан с входом элементаj-го уровня, то длину этой связи оценим числом (i-j), названным глубиной связи. Если на схему задано ограничение на глубину связи, это означает, что рассматриваются только такие схемы, в которых глубина связи не превосходит заданной величины
Если рассматривать модель схемы, в которой функционирование происходит в дискретном времени по тактам и элементам приписаны единичные задержки, то ранг элемента определяет такт, в котором на его выходе реализуется выходной сигнал, а ограничение на глубину связей определяет максимальный разброс времени поступления дискретных сигналов на входы элементов схемы, равный (-1). Если= 1, то величина этого разброса равна нулю.
Определим, как изменятся требования к множеству функций, порождающих класс всех булевых функций, если рассматривать только такие их суперпозиции, которым соответствуют схемы с ограниченной глубиной связи, в частности схемы с глубиной, равной единице.
Вслед за Постом, определим булеву функцию как -функцию, еслиf(x,x,x,...x) =x,-функцию, еслиf(x,x,...,x)=1,- функцию, еслиf(x,x,...,x) = 0 и как- функцию, еслиf(x,x,...,x) = `x, где `x-инверсиях.
Очевидно, что если базис содержит хотя бы одну -функцию, он является функционально полным при условии, что глубина связи=1, так как из этой функции реализуется функция, равная переменной (повторитель или задержка), и, следовательно, любую связь можно свести введением этих функций к последовательности связей единичной глубины.
Теорема. Любой полный базис из более чем одной функции порождает С при = 1, за исключением случая, когда базис содержит ровно две функции : функцию нелинейную и несамодвойственную и функцию, не сохраняющую константу, причем последняя не равна константе и не есть-функция. Одноэлементный базис при условии = 1 неполон.
Следующие утверждения будут нам необходимы при доказательстве:
У1. Если функция самодвойственная, то она или - или-функция. Утверждение следует из того, чтоf(0,0,...,0)f(1,1,...,1).
У2. Линейная функция есть - или-функция тогда и только тогда, когда она самодвойственная,- или-функция тогда и только тогда, когда она несамодвойственная. Утверждение следует из определения линейной функции и того, что в первом случае сумма будет содержать нечетное число сомножителей, во втором случае – четное.
У3. Если - или-функция отлична от константы, то она немонотонна. Утверждение следует из того, что эта функция будет иметь одинаковые значения на нулевом и единичном наборах, которые сравнимы со всеми наборами и являются, соответственно, максимальным и минимальным.
У4. -функция является немонотонной и не сохраняет константы.
У5. Из линейной функции заменой некоторых переменных на константу 0 можно получить переменную (-функцию). Из нелинейной функции для получения-функции необходимо иметь обе константы.
Доказательство проведем в несколько этапов. Вначале покажем, что если базис содержит более двух элементов, то среди его функций обязательно есть -функция, то есть он полон при Затем более подробно разберем двухэлементные базисы, не содержащиефункций. В конце доказательства рассмотрим одноэлементные базисы.
Пусть базис i|i=1,кик> 2. Покажем, что он содержитфункцию.
Разделим базисы на две группы в зависимости от того, какова в нем нелинейная функция (обозначим ее как 1):
а.1является самодвойственной;
б.1– функция несамодвойственная.
Случай а.По свойству 1 функция1 или- или-функция. Если это--функция, то она немонотонная, не сохраняет константы, и в базис достаточно добавить несамодвойственную функцию, то есть базис будет иметь только две функции.
Случай б.Если1-функция, то она по свойству У4 одна является полным базисом. Если1- или-функция, то по свойству У3 она немонотонна и не сохраняет одну константу. В этом случае в базис нужно добавить только функцию, не сохраняющую вторую константу.
Утверждение 1 доказано. Рассмотрим теперь базисы, содержащие ровно две функции и не содержащие -функций. Обозначим их как={1,2}.
Снова разделим рассмотрение на два случая: а) функция 1 –несамодвойственная и линейная,2 - функция самодвойственная и нелинейная. Случай б) функция1– несамодвойственная и нелинейная,2- не сохраняет константу.
Случай а).По свойству У2 функция2является-функцией, значит на втором уровне можно получить инверсии переменных. Функция1 является- или-функцией, значит на втором уровне можно получить одну из констант. На третьем уровне с помощью этих функций получаем переменные и обе константы (вторую – через инверсию первой). С помощью констант из линейной функции можно получить на четвертом и всех последующих уровнях-функцию (повторитель), чем и обеспечивается полнота базиса для этого случая.
Случай б.
функция 1– несамодвойственная, нелинейная и не-функция (иначе она одна – базис). Значит это- или-функция. Если при этом2есть- или-функция , то на втором уровне можно получить только такие функции, которые имеют значения на нулевом наборе такие же, как и на единичном. Значит, на следующих уровнях из них не удастся получить- или-функции и полнота обеспечена не будет.
Если же функция 2есть-функция, то на втором уровне могут быть получены инверсии переменных и константа, на третьем – переменные и обе константы, которые позволят по свойству У5 получить повторитель на всех последующих уровнях.
И, наконец, если функция 2есть константа, то она есть на первом уровне вместе с переменными. С ее помощью из функции1можно получить на втором уровне инверсии переменных и обе константы, которые обеспечат полноту.
Для одноэлементного базиса, реализующего только -функцию, на первом ( и всех нечетных ) уровне можно реализовать только-функции, на втором (и всех четных) уровне реализуются только-функции. В этом базисе приникогда не реализуютсяифункции. Значит, полнота обеспечена быть не может.
При функциональная полнота обеспечивается для любого функционально полного в смысле Поста базиса.
Теперь понятно, почему нельзя реализовать любую функцию из элементов шефферовского типа в однородных двумерных решетках как на рис.3.4
Здесь любая схема будет иметь , и для получения схем с глубиной связи, равной двум, нужно решетку дополнить диагональными связями,
например, как это показано на рис. 3.5.