- •1. СТАНОВЛЕНИЕ ТЕОРИИ АВТОМАТОВ
- •1.1. Взаимосвязь теории автоматов и других
- •1.2. Подходы к определению конечного автомата
- •1.3. Сущность метода "черного ящика"
- •1.4. Основные задачи теории автоматов
- •2. ФОРМАЛЬНАЯ КЛАССИФИКАЦИЯ АБСТРАКТНЫХ АВТОМАТОВ И ИХ МАТЕМАТИЧЕСКИЕ МОДЕЛИ
- •2.1. Словесные определения автоматов
- •2.2. Формальное определение абстрактного автомата
- •2.3. Формальная классификация автоматов
- •2.4. Математические модели автоматов
- •2.4.1. Модель Мили
- •2.4.2. Модель Мура
- •2.4.3. Модель совмещенного автомата (С-автомата)
- •2.4.4. Модель микропрограммного автомата
- •3. СТРУКТУРНЫЕ МОДЕЛИ ПЕРВОГО УРОВНЯ АБСТРАКТНЫХ АВТОМАТОВ
- •3.1. Структурная модель автомата Мили
- •3.2. Структурная модель автомата Мура
- •3.3. Структурная модель С-автомата
- •3.4. Структурная модель микропрограммного автомата
- •4. СПОСОБЫ ЗАДАНИЯ АБСТРАКТНЫХ И СТРУКТУРНЫХ АВТОМАТОВ
- •4.1. Начальные языки
- •4.1.1. Язык регулярных выражений алгебры событий
- •4.1.2. Язык логических схем
- •4.1.3. Язык граф – схем алгоритмов
- •4.2. Автоматные языки
- •4.2.1. Таблицы переходов и выходов
- •4.2.2. Матрицы переходов и выходов
- •4.2.3. Граф автомата
- •4.3.2. Язык временных диаграмм
- •5. Минимизация абстрактных автоматов
- •6. МАТЕМАТИЧЕСКИЕ ОСНОВЫ АЛГЕБРЫ ЛОГИКИ
- •6.1. Формальное определение алгебры логики
- •6.2. Аксиомы, теоремы и законы алгебры логики
- •6.2.1. Аксиомы алгебры логики
- •6.2.2. Теоремы алгебры логики
- •6.2.3. Законы алгебры логики
- •6.3. Основные понятия и определения
- •6.4. Формы представления логических функций
- •6.4.1. Словесная форма представления логических функций
- •6.4.2. Табличная форма представления логических функций
- •6.4.3. Аналитическая форма представления логических функций
- •7. Минимизация логических функций
- •7.1. Методы минимизации логических функций на основе прямых аналитических преобразований СДНФ
- •7.2. Метод испытания импликант
- •7.3. Визуальные методы минимизации логических функций
- •7.3.2. Метод минимизации частично определенных логических функций с помощью карт Карно
- •7.4. Машинно-ориентированные методы минимизации логических функций
- •7.5. Групповая минимизация системы логических функций
- •8. ФУНКЦИОНАЛЬНО ПОЛНЫЕ СИСТЕМЫ ЭЛЕМЕНТАРНЫХ ЛОГИЧЕСКИХ ФУНКЦИЙ
- •9. ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ
- •9.1. Программируемые логические матрицы
- •10. КОНЕЧНЫЕ ФУНКЦИОНАЛЬНЫЕ ПРЕОБРАЗОВАТЕЛИ
- •11. СИНТЕЗ И АНАЛИЗ ТИПОВЫХ КОМБИНАЦИОННЫХ АВТОМАТОВ
- •11.1. Шифратор (coder) и его синтез
- •11.2. Дешифратор и его синтез
- •11.3. Мультиплексор и его синтез
- •11.4. Синтез демультиплексора (распределителя)
- •12. Элементарные автоматы с памятью и их синтез
- •12.1. Понятие функционально полной системы элементарных автоматов
- •12.2. Разновидности триггеров
- •12.3. Обобщённая характеристика триггеров
- •12.4. Синтез однотактного асинхронного RS-триггера
- •12.4.1. Синхронный однотактный RS-триггер
- •12.5. Синхронный однотактный D-триггер
- •12.6.1. Принцип построения двухтактного триггера
- •12.6.2. Однотактный Т-триггер
- •12.6.3. Двухтактные Т-триггеры
- •12.7. Двухтактный JK-триггер
- •12.8. Двухтактные RS-триггеры и D-триггеры
- •Рис. 12.28. Синхронный двухтактный RS-триггер
- •Рис. 12.30. УГО синхронного двухтактного RS-триггера
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
- •Учебное издание
коплавкие перемычки к проводникам матрицы. Программирование ПЛМ заключается в пережигании перемычек, соединяющих горизонтальные и вертикальные шины матриц, которое выполняется на специальных устройствах – программаторах. В исходном состоянии все перемычки целы. Если в переменную Р входит прямое значение аргумента х, то пережигается перемычка, соединяющая вертикальную шину Р с инверсной горизонтальной шиной, если значение аргумента инверсное — то с шиной, передающей прямое значение аргумента. Если аргумент не участвует в формировании переменной, пережигаются обе перемычки. Если переменная Р входит в функцию у, то перемычка сохраняется, в противном случае – пережигается [27].
10. КОНЕЧНЫЕ ФУНКЦИОНАЛЬНЫЕ ПРЕОБРАЗОВАТЕЛИ
В [28] изложен систематический подход к построению комбинационных схем – простейших преобразователей информации, реализующих функциональное отображение конечных множеств.
Рассмотрим проблемы построения простейших дискретных преобразователей информации.
Пусть А – некоторое множество элементов информации, представленных тем или иным образом, В – другое множество элементов информации, а Ф – функция преобразования. Преобразователь информации можно представить себе схематично как устройство, реализующее отображение Ф: А → В одного множества на другое (рис. 10.1,а). Рассмотрим возможность систематического построения таких преобразователей. Очевидно, что трудно предложить какое-то решение в общем случае, когда множества А и В имеют произвольную природу, а о самом отображении Ф ничего не известно. Однако, если множества А и В являются конечными (то есть преобразователь, который мы хотим построить, является
126
«конечным функциональным преобразователем») и дискретными (то есть преобразование осуществляется в дискретные моменты времени), существует систематический метод решения этой проблемы. Этот метод состоит в том, что элементы множеств А и В предварительно кодируют двоичными кодами и строят преобразование одного множества двоичных векторов в другое (рис. 10.1,б). Рассмотрим этот метод на примере.
Двоичное кодирование состоит во взаимно однозначном сопоставлении всем элементам конечного множества некоторых двоичных векторов одной и той же длины. При таком подходе проблема реализации преобразователя Ф сводится к построению трех преобразователей: кодировщика К : А → Х , собственно функционального преобразователя (ФП) F : X →Y и декодировщика D : Y → B , причем эти отобра-
жения должны быть выбраны так, что К •F •D =Ф(рис. 10.1, б). Рассмотрим проблемы построения этих трех преобразователей поочередно.
A |
|
В |
Ф |
|
Y |
|
|
A |
|
В |
|||
|
Ф |
|
|
|
||
|
|
К |
… |
F … |
D |
|
|
|
|
||||
|
а) |
|
|
|
б) |
|
127
x1 x2 |
x |
|
X |
|
A |
x1 |
|
К |
||
|
||
|
… |
|
|
xm |
|
|
в) |
Y |
|
f1 |
|
|
|
||
f1 |
В |
f2 |
|
|
|||
… |
D |
|
|
… |
… |
||
|
|||
fn |
|
fn |
|
|
|
г)
Рис. 10.1. Реализация конечного ФП
Число двоичных векторов длины n равно 2n, и если все элементы множества S закодировать двоичными векторами одной и той же длины n, то для однозначности кодирования n должно быть не меньше, чем log 2|S|. Пусть m и n – длины двоичных векторов для кодирования соответственно множеств А и В входных и выходных информационных элементов конечного функционального преобразователя Ф. Тогда кодирование
– это построение некоторого отображения К : А→{0,1}n , де-
кодирование – построение отображения D :{0,1}n → B , а
функциональное отображение F сопоставляет каждому вектору из {0,1}m некоторый вектор из {0,1}n, причем так, чтобы
К •F •D =Ф.
Пример 10.1. Пусть множество А = {а1, а2, аЗ, а4, а5}, а множество В = {b1, b2, bЗ} и отображение Ф задается табл. 10.1.
128
Таблица 10.1
Отображение Ф: А → В
A |
B |
a1 |
b2 |
a2 |
b3 |
a3 |
b2 |
a4 |
b1 |
a5 |
b2 |
Понятно, что в данном примере m должно быть не меньше 3, n должно быть не меньше 2. Мы можем выбрать произвольно функции кодирования и декодирования (например, представленные на рис. 10.2 в виде таблиц I и II). Отображение F строим таким образом, чтобы выполнялось соот-
ношение К •F •D =Ф.
I |
II |
III |
IV |
К : А → {0,1} |
F : {0,1}3 → {0,1}2 |
D : {0,1}2 → B |
Ф: А→ В |
A |
{0,1}3 |
|
{0,1}3 |
{0,1}2 |
|
{0,1}2 |
B |
|
A |
B |
a1 |
010 |
• |
000 |
-- |
|
00 |
b1 |
= |
a1 |
b2 |
a2 |
110 |
001 |
10 |
• |
01 |
-- |
a2 |
b3 |
||
|
|
|
|
|
|
|
|
|
|
|
a3 |
001 |
|
010 |
10 |
10 |
b2 |
a3 |
b2 |
||
a4 |
100 |
|
011 |
10 |
|
11 |
b3 |
|
a4 |
b1 |
a5 |
011 |
|
100 |
00 |
|
|
|
|
a5 |
b2 |
|
|
|
101 |
-- |
|
|
|
|
|
|
|
|
|
110 |
11 |
|
|
|
|
|
|
|
|
|
111 |
-- |
|
|
|
|
|
|
Рис. 10.2. Отображение F
Устройство кодирования должно преобразовать элементы информации множества А заданной природы в двоич-
129
ные векторы (представленные тем или иным удобным нам способом), причем преобразование это должно быть взаимно однозначно. Аналогично, устройство декодирования должно преобразовать двоичные векторы (представленные тем или иным способом) в элементы информации множества В. Проблема построения конечного функционального преобразователя теперь сводится к реализации произвольного преобразова-
теля F :{0,1}m →{0,1}n , который может быть задан, например,
таблично, поскольку исходное множество А конечно. Проблема построения произвольного преобразователя
F :{0,1}m →{0,1}n имеет более четкую математическую фор-
мулировку, однако решить ее непросто. Для упрощения решения этой проблемы удобен следующий простой прием: вместо
одной функции F :{0,1}m →{0,1}n построим n функций
fi :{0,1}m →{0,1} так, что реализация совокупности этих бо-
лее простых функций даст искомый преобразователь F. Этот прием представлен на рис. 10.1, в. На рис. 10.1, г функции fi выделены явно.
Функции вида f :{0,1}m →{0,1} , сопоставляющие
двоичным векторам двоичные значения, называются двоичны-
ми (или булевыми) функциями.
Булевы функции определены на конечном множестве аргументов, каждый из которых принимает только два значения, 0 и 1. Поэтому булевы функции можно представить таблицей истинности, перечисляющей для каждого набора значений аргументов значение функции.
Если мы сможем эффективно реализовывать любые двоичные функции, при построении конечных функциональных преобразователей останутся только проблемы кодирования и декодирования, которые должны решаться всякий раз по-своему при каждом специфическом представлении входной и выходной информации.
130