Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория автоматов. Учебное пособие
.pdf
1
матрицы ИЛИ
3231431
1
матрицы ИЛИ
.
3231431
xxxxPPF
.
32121212
xxxxxPPF
Рис. 9.5. Программируемая логическая матрица
Высокий уровень напряжения (логическая 1) на шине F1 матрицы
ИЛИ будет лишь тогда, когда высокий уровень напряжения (логическая 1)
действует или на третьем, или на четвертом столбцах, т.е. по отношению к выходной шине F
выполняется функция ИЛИ:
1
.
xxxxPPF
По аналогии получим:
Таким образом, программируемая логическая матрица — это сетка взаимно перпендикулярных проводников (рис. 9.2), в местах пересечения которых находятся полупроводниковые элементы — диоды или
транзисторы, включенные через легкоплавкие перемычки к проводникам матрицы. Программирование ПЛМ заключается в пережигании перемычек, соединяющих горизонтальные и вертикальные шины матриц,
которое выполняется на специальных устройствах — программаторах.
В исходном состоянии все перемычки целы. Если в переменную Р входит
прямое значение аргумента х, то пережигается перемычка, соединяющая
вертикальную шину Р с инверсной горизонтальной шиной, если значение аргумента инверсное — то с шиной, передающей прямое значение
аргумента. Если аргумент не участвует в формировании переменной, пережигаются обе перемычки. Если переменная Р входит в функцию у, то
перемычка сохраняется, в противном случае — пережигается [27].
-111-

В [28] изложен систематический подход к построению комбинационных схем — простейших преобразователей информации, реализующих функциональное отображение конечных множеств.
Рассмотрим проблемы построения простейших дискретных преобразователей информации.
Пусть А — некоторое множество элементов информации, представленных тем или иным образом, В — другое множество элементов
информации, а Ф — функция преобразования. Преобразователь информации можно представить себе схематично как устройство, реализующее отображение Ф : А → В одного множества на другое (рис. 10.1, а).
Рассмотрим возможность систематического построения таких преобразователей. Очевидно, что трудно предложить какое-то решение в общем случае, когда множества А и В имеют произвольную природу,
а о самом отображении Ф ничего не известно. Однако, если множества
А и В являются конечными (то есть преобразователь, который мы хотим
построить, является «конечным функциональным преобразователем»)
и дискретными (то есть преобразование осуществляется в дискретные
моменты времени), существует систематический метод решения этой
проблемы. Этот метод состоит в том, что элементы множеств А и В
предварительно кодируют двоичными кодами и строят преобразование одного множества двоичных векторов в другое (рис. 10.1, б). Рассмотрим этот метод на примере.
Двоичное кодирование состоит во взаимно однозначном сопоставлении всем элементам конечного множества некоторых двоичных
векторов одной и той же длины. При таком подходе проблема реализации преобразователя Ф сводится к построению трех преобразователей:
-112-

A
В
Ф
A
В
Ф
F
…
…
x1 x
x
f1 f2 f
A
В
…
Y
X
x
x
f
f
кодировщика К : А → Х, собственно функционального преобразователя
(ФП) F : X → Y и декодировщика D: Y → B, причем эти отображения
должны быть выбраны так, что K • F • D = Ф (рис. 10.1, б). Рассмотрим
проблемы построения этих трех преобразователей поочередно.
Y
К
…
D
а б
2
m
1
D
…
n
n
К
1
…
m
в г
Рис. 10.1. Реализация конечного ФП
Число двоичных векторов длины n равно 2n, и если все элементы
множества S закодировать двоичными векторами одной и той же длины n, то для однозначности кодирования n должно быть не меньше, чем
log
|S|. Пусть m и n — длины двоичных векторов для кодирования со-
2
ответственно множеств А и В входных и выходных информационных
элементов конечного функционального преобразователя Ф. Тогда кодирование — это построение некоторого отображения К : А → {0,1}
кодирование — построение отображения D : {0,1}
ное отображение F сопоставляет каждому вектору из {0,1}
вектор из {0,1}
В = {b1, b2, b3} и отображение Ф задается табл. 10.1.
n
, причем так, чтобы K • F • D = Ф.
n
→B, а функциональ-
m
некоторый
n
, де-
Пример 10.1. Пусть множество А = {а1, а2, а3, а4, а5}, а множество
-113-

I II III
IV
3
23
BD
1,0:
ВАФ :
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
--
I II III
IV
3
1,0: АК
23
1,01,0: F
BD
2
1,0:
ВАФ :
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
Устройство кодирования должно преобразовать элементы информации
nm
, который может быть задан, например, таблично, поскольку ис-
Таблица 10.1
Отображение Ф : А → В
A B
a1 b2
a2 b3
a3 b2
a4 b1
a5 b2
Понятно, что в данном примере m должно быть не меньше 3, n
должно быть не меньше 2. Мы можем выбрать произвольно функции
кодирования и декодирования (например, представленные на рис. 10.2
в виде таблиц I и II). Отображение F строим таким образом, чтобы выполнялось соотношение K • F • D = Ф.
1,0: АК
1,01,0: F
2
Рис. 10.2. Отображение F
Устройство кодирования должно преобразовать элементы информации множества А заданной природы в двоичные векторы (представленные тем или иным удобным нам способом), причем преобразование
это должно быть взаимно однозначно. Аналогично устройство декодирования должно преобразовать двоичные векторы (представленные
тем или иным способом) в элементы информации множества В. Проблема построения конечного функционального преобразователя теперь
сводится к реализации произвольного преобразователя
F 1,01,0:
-114-
,

I II III
IV
3
1,0: АК
23
1,01,0: F
BD
2
1,0:
ВАФ :
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
Устройство кодирования должно преобразовать элементы информации
nm
, который может быть задан, например, таблично, поскольку ис-
I II III
IV
3
1,0: АК
23
1,01,0: F
BD
2
1,0:
ВАФ :
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
Устройство кодирования должно преобразовать элементы информации
nm
, который может быть задан, например, таблично, поскольку ис-
II III
IV
23
1,01,0: F
BD
2
1,0:
ВАФ :
{0,1}3
{0,1}2
{0,1}2
B A B
000
-- 00
b1 a1
b2
001
10
01
-- = a2
b3 010
10 10
b2 a3
b2
011
10 11
b3 a4
b1
100
00
a5
b2 101
-- 110
11 111
--
Рис. 10.2. Отображение F
nm
F 1,01,0:
nm
F 1,01,0:
построим n функций
1,01,0:
m
i
f
1,01,0:
m
f
, сопоставляющие двоичным векторам дво-
II III
IV
23
1,01,0: F
BD
2
1,0:
ВАФ :
{0,1}3
{0,1}2
{0,1}2
B A B
000
-- 00
b1 a1
b2
001
10
01
-- = a2
b3 010
10 10
b2 a3
b2
011
10 11
b3 a4
b1
100
00
a5
b2 101
-- 110
11 111
--
Рис. 10.2. Отображение F
nm
F 1,01,0:
nm
F 1,01,0:
построим n функций
1,01,0:
m
i
f
1,01,0:
m
f
, сопоставляющие двоичным векторам дво-
который может быть задан, например, таблично, поскольку исходное
множество А конечно.
Проблема построения произвольного преобразователя
F 1,01,0:
нако решить ее непросто. Для упрощения решения этой проблемы удобен следующий простой прием: вместо одной функции
построим n функций
имеет более четкую математическую формулировку, од-
F 1,01,0:
так, что реализация совокупности
этих более простых функций даст искомый преобразователь F. Этот
прием представлен на рис.10.1, в. На рис. 10.1, г функции f
выделе-
i
ны явно.
Функции вида
, сопоставляющие двоичным векто-
рам двоичные значения, называются двоичными (или булевыми)
функциями.
Булевы функции определены на конечном множестве аргументов,
каждый из которых принимает только два значения, 0 и 1. Поэтому булевы функции можно представить таблицей истинности, перечисляющей для каждого набора значений аргументов значение функции.
Если мы сможем эффективно реализовывать любые двоичные
функции, при построении конечных функциональных преобразователей останутся только проблемы кодирования и декодирования, которые должны решаться всякий раз по-своему при каждом специфическом представлении входной и выходной информации.
-115-

Комбинационным автоматом (автоматом без памяти) называется
автомат, у которого множество состояний состоит из одного элемента,
т.е. |A| = 1. Для такого автомата характерно то, что функция переходов у
него отсутствует. По этой причине выходной сигнал автомата без памяти зависит от комбинации логических значений входных переменных.
Именно поэтому автомат называют комбинационным или автоматом
без памяти.
Комбинационный автомат называют также nk-полюсником. Это
обусловлено тем, что на уровне черного ящика автомат рассматривают
как устройство, имеющее n-входов и k-выходов. Если k = 1, то автомат
называется одновыходным, если k > 1, то автомат называется многовыходным или k-выходным. Для различных комбинационных автоматов
существуют и различные соотношения между n и k. Процедуру синтеза
комбинационных автоматов можно охарактеризовать схемой алгоритма, представленной на рис.11.1.
Каждый из блоков этой схемы представляет собой определенный
этап синтеза комбинационного автомата:
1-й — начало синтеза комбинационного автомата;
2-й — на этом этапе комбинационный автомат представляют на
уровне черного ящика;
3-й — словесное описание работы автомата;
4-й — задание работы автомата в виде таблицы истинности; в случае необходимости происходит доопределение таблицы истинности;
5-й — аналитическое описание работы автомата в виде СДНФ или
СКНФ;
6-й — минимизация аналитического описания работы автомата;
-116-

A
= 1. Для
Начало
2
3
4
5
6
7
Конец
7-й — синтез логической схемы автомата в заданном элементном
базисе;
8-й — конец синтеза комбинационного автомата.
Рис. 11.1. Схема алгоритма, характеризующая процедуру
синтеза комбинационного автомата
В общем случае процесс синтеза комбинационного автомата является итерационным процессом, о чем свидетельствует наличие обратной связи в схеме алгоритма.
Рассмотрим типовые комбинационные автоматы и их синтез.
Шифратор — это устройство, осуществляющее преобразование
входного кода «1 из n» в k-разрядный позиционный выходной код.
Код «1 из n» часто называют унитарным кодом.
Если число входов шифратора равно 2
но, должно быть равным n, то есть числу разрядов двоичного кода, которым можно закодировать 2
n
различных комбинаций.
-117-
n
, то число выходов, очевид-

n
k
2 1 3 2 4 2 5 3 6 3 7
3
x
x
y
y
…
…
Если в качестве позиционного кода использовать двоичный код, то
между n и k должно иметь место следующее соотношение:
k
n = 2
, тогда k = ]log2n[ = int(log2n + 0,5), (11.1)
где ]x[ — означает ближайшее целое, не меньше x. Рассчитаем по соотношению (11.1) значения k при n = 2, 3, 4, 5, 6, 7:
n k
2 1
3 2
4 2
5 3
6 3
7 3
Синтезируем шифратор, преобразующий 10-разрядный унитарный код в двоичный код.
«1 из 10» → 2k.
1. Начало.
2.Представим шифратор на уровне черного ящика с детализацией
его до входов и выходов (рис. 11.2).
0
9
Рис. 11.2. Представление шифратора на уровне черного ящика
с детализацией его до входов и выходов
Шф.
0
3
3. При воздействии на вход шифратора каждого в отдельности
входного сигнала, на его выходе должен формироваться соответствующий данному входному сигналу двоичный код.
4.Работа шифратора описывается четырьмя функциями y
, каждая из которых равна 1 на некоторых наборах, номер которых
y
3
соответствует номеру входа шифратора. Составим таблицу истинности,
отражающую закон функционирования шифратора (табл. 11.1).
-118-
, y1, y2,
0

1 0 1 0 0 4 1 0 1 0 1 5 1 0 1 1 0 6 1 0 1 1 1
7
1 1 0 0 0 8 1 0 0 1
9
;
975310
xxxxxy
76321
xxxxy
; (11.2)
76542
xxxxy
;
983
xxy
.
x9
x8
x7
x6
x5
x4
x3
x2
x1
x0
y0
y1
y2
y3
Таблица 11.1
x9x8x7x6x5x4x3x2x1x0y3y2y1y0№ входа
1 0 0 0 0 0
1 0 0 0 1 1
1 0 0 1 0 2
1 0 0 1 1 3
1 0 1 0 0 4
1 0 1 0 1 5
1 0 1 1 0 6
1 0 1 1 1 7
1 1 0 0 0 8
1 1 0 0 1 9
5–6. Воспользовавшись табл. 11.1, составим СДНФ функций выхода
шифратора:
y
y
7.Синтезируем шифратор в элементном базисе И, ИЛИ, НЕ (рис. 11.3).
Функции (11.2) реализуются четырьмя дизъюнкторами, на выходах которых формируется четырехразрядный двоичный код.
= x1 + x3 + x5 + x7 + x9;
0
= x2 + x3 + x6 + x7;
1
y
= x4 + x5 + x6 + x7;
2
= x8 + x9.
y
3
(11.2)
1
1
1
1
Рис. 11.3. Схема шифратора на 10 входов
8. Конец.
-119-

x0 x
y
y
CD
На рис. 11.3 аргумент x0 не входит ни в одну из логических функций
и шина x
му сигналу x
остается незадействованной в схеме. Действительно, входно-
0
должен соответствовать код «0000», который сформирует-
0
ся на выходе шифратора, если все остальные аргументы будут равны 0.
Шифраторы широко применяются в системах управления технологическими процессами («1» — включено и «0» — выключено). Их применяют также для зашифровки адресов ячеек запоминающих устройств,
высвечивания букв и цифр на мониторах, приоритетные шифраторы
применяются при работе ЭВМ и других устройств, когда решается задача определения приоритетного претендента на обслуживание (высший
приоритет — наибольший номер входа, низший — наименьший) [27].
На рис. 11.4 представлено условное графическое обозначение (УГО)
шифратора.
0
…
x
n
n–1
…
y
k
k–1
Рис. 11.4. Условное графическое обозначение шифратора
Дешифратор (decoder) — это комбинационное устройство, позво-
ляющее распознавать числа, представленные позиционным n-разрядным кодом. Если на входе дешифратора n-разрядный двоичный код, то
на его выходе код «1 из N». В кодовой комбинации этого кода только
одна позиция занята единицей, а все остальные— нулевые [27].
Дешифратор предназначен для преобразования n-разрядного позиционного кода в k-разрядный унитарный код.
Число входов дешифратора n должно удовлетворять соотношению
n < k, где k — число выходов дешифратора.
n
Если k удовлетворяет соотношению k = 2
n
зывается полным, если k < 2
— то неполным.
, то такой дешифратор на-
-120-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
