Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2331.pdf
Скачиваний:
13
Добавлен:
15.11.2022
Размер:
1.42 Mб
Скачать

коплавкие перемычки к проводникам матрицы. Программирование ПЛМ заключается в пережигании перемычек, соединяющих горизонтальные и вертикальные шины матриц, которое выполняется на специальных устройствах программаторах. В исходном состоянии все перемычки целы. Если в переменную Р входит прямое значение аргумента х, то пережигается перемычка, соединяющая вертикальную шину Р с инверсной горизонтальной шиной, если значение аргумента инверсное — то с шиной, передающей прямое значение аргумента. Если аргумент не участвует в формировании переменной, пережигаются обе перемычки. Если переменная Р входит в функцию у, то перемычка сохраняется, в противном случае пережигается [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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]