Программирование логических схем, заданных полной таблицей истинности
ПРОГРАММИРОВАНИЕ ЛОГИЧЕСКИХ (РЕЛЕЙНЫХ) СХЕМ
Способ программирования логической схемы определяется способом математического описания работы этой схемы.
Программирование логических схем, заданных полной таблицей истинности
В таблице истинности всем наборам входных переменных ставится в соответствие набор выходных.
| Входные переменные | Выходные переменные | ||||||
|
|
|
|
|
|
|
|
| . . . | . . . | . . . | |||||
– входные переменные.
– выходные переменные.
Число строк в таблице
.
- число входных переменных.
- число выходных переменных.
Для упрощения программирования максимальное число входных переменных не более разрядности шины адреса процессора
.
Число выходных переменных не более разрядности шины данных процессора
.
Входные переменные поступают на модуль ввода, который имеет конкретный физический адрес, заданный пользователем или изготовителем (
- адрес входных переменных), так же, как и модуль вывода
.
1) В памяти записывается таблица значений выходных переменных для всех значений входных переменных в порядке возрастания.
2) Считанная с модуля ввода комбинация входных переменных
является номером строки, которая суммируется с начальным адресом таблицы
. Сумма является адресом строки соответствующей комбинации выходных переменных. Эта комбинация пересылается по адресу модуля вывода
, к которому подключены выходные устройства.

Затраты памяти составляют 
Эффективность этого способа программирования резко уменьшается с увеличением числа входных переменных, так как таблица будет содержать большое число нулевых строк.
В общем случае блок-схема алгоритма программирования имеет следующий вид:

Это самый быстрый способ программирования логических схем и любых нелинейных зависимостей между входными и выходными переменными, заданными таблично.
Программирование логических функций, заданных в совершенной дизъюнктивной нормальной форме (СДНФ)
Таблица, описывающая работу логической схемы в СДНФ, не содержит нулевых строк, где выходные переменные равны нулю.
Программирование заключается в следующем:
1) В памяти формируются 2 массива:
- Массив набора входных переменных
, для которых выходные переменные ненулевые.
- Массив значений выходных переменных
, соответствующий набору входных переменных.
2) Считанная с модуля ввода комбинация комбинация входных переменных проверяется на совпадение с первым массивом. Если совпадение найдено, то по его порядковому номеру определяется адрес строки выходных переменных. Если нет, то выходные переменные нулевые.

Исходными данными для составления программы являются:
Ø
– адреса модулей ввода и вывода.
Ø
– начальные адреса таблиц входных и выходных переменных.
Ø
– регистр числа строк таблиц.
Ø
– регистр числа операций сравнения.