Двоичное кодирование переменных и функций трехзначной логики
Представление k-значных функций в виде нормальных форм
Теорема 2. Любая функция k - значной логики может быть представлена в виде СДНФ:
f(x1,..., xn ) = v js1( x1 ) & js2( x2 ) &... jsn( xn) & f ( s1, s2,..., sn )
или в виде s-p формы:
f( x1,..., xn) = Å Ys1 ( x1 ) & Ys2 ( x2 )... & Ysn ( xn ) Ä f ( s1,...,sn).
Пример. Для функции, заданной таблицей истинности
x1 | x2 | f |
0дд 0 | ||
составить СДНФ и s-pформу.
Решение. Заметим, что значения xi в таблице соответствуют индексам si при функциях jiи Yi.И в соответствии с выше обозначенными формулами можно записать:
f( x1, x 2 ) = j0( x1 ) & j1( x2 ) & 1 v j0( x1 ) & j2( x2 ) & 2
v j2( x1 ) & j1( x2 ) & 1.
f( x1, x 2 ) = Y0( x1 ) & Y1( x2 ) Ä 1 Å Y0( x1 ) & Y2( x2 ) Ä 2
Å Y2( x1 ) & Y1( x2 ) Ä 1.
Закодируем аргументы следующим образом:
x | n1 | n2 |
Откуда следует, что для записи и передачи любого троичного переменного необходимо использовать две двоичные переменные v1, v2. При этом функции Yi(x) будут кодироваться следующим образом: Yi’, Yi’’по 2-м выходам соответственно.
x | n1 | n2 | Y0’ | Y0’’ | Y1’ | Y1’’ | Y2’ | Y2’’ |
0 | 1 | |||||||
0 | 1 | |||||||
0 | 1 | |||||||
* | * | * | * | * | * | * |
Удобно доопределить Yi’ на наборе <1,1> нулями, тогда получим
Y0’ = Y1’ = Y2’ = 0; Y0’’ = Øn1 & Øn2; Y1’’ = Øn1 & n2; Y2’’ = n1 & Øn2.
Один из способов моделирования трехзначной логики заключается в создании функциональных элементов с тремя устойчивыми состояниями, то есть с квантованием сигнала по трем уровням, при этом принята следующая система аналогий:
· положительный потенциал - 0;
· нулевой потенциал - 1;
· отрицательный потенциал - 2.
Практически, в полупроводниковых схемах для трехзначной функции справедливо:
· положительным потенциалом считается потенциал >= 1.5В.
· нулевым потенциалом считается потенциал по модулю <= 0.6В.
· отрицательным - потенциал <=- 1.5 В.
Пример. Построить таблицу истинности для функций
X1 Å X2, X1 Ä X2.
Закодировать в двоичной системе координат, представить СДНФ, минимизировать и построить для одной из выбранных функций комбинационную схему в базисе (&,V, Ø ).
Решение.
X1 | X2 | X1Å X2 | X1 Ä X2 | ||||
V1 | V2 | V3 | V4 | f1 | f2 | f3 | f4 |
* | * | * | * | ||||
* | * | * | * | ||||
* | * | * | * | ||||
* | * | * | * | ||||
* | * | * | * | ||||
* | * | * | * | ||||
* | * | * | * |
Таким образом, функцию f( x1,x2 )можно представить следующим образом:
f( x1,x2 ) = < f1 (v1,v2,v3,v4 ), f2 (v1,v2,v3,v4 ) > .
f1 = Øv1 Øv2 v3 Øv4 v Øv1 v2 Øv3 v4 v v1 Øv2 Øv3 Øv4,
f2 = Øv1 Øv2 Øv3 v4 v Øv1 v2 Øv3 Øv4 v v1 Øv2 v3 Øv4 .
Как следует из кодировки функции, логическая схема ее реализующая должна иметь два выхода и четыре входа. Прежде чем приступить к построению схемы необходимо выполнить минимизацию сформированных функций f1, f2.Выполним действия относительно одной из функций, например, f1.Составим карту Карно.
Øv1 Øv1 v1 v1
V2 | * | * | Øv4 | ||
V2 | * | * | * | v4 | |
Øv2 | * | * | v4 | ||
Øv2 | Øv4 |
Øv3 v3 v3 Øv3
Для того чтобы минимизировать слабо определенную функцию в карте Карно проставляют специальный знак, например, * в местах характерных наборам, на которых функция не определена, затем * меняют на 1 в тех клетках, прямоугольники составленные из которых уменьшили бы число конъюнкций, дизъюнкций и отрицаний. Сказанное позволяет записать:
f1 = v2 & v4 v v3 & Øv1 & Øv2 v Øv3 & Øv4 & v1.
Аналогично составляются функции f2, f3, f4.Схемная реализация функции f1 примет вид:
v1
v2
v3
v4
& & & &
&
& &
1