Двоичное кодирование переменных и функций трехзначной логики

Представление 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