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