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

Представление 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. При этом функции Y i(x) будут кодироваться следующим образом: Yi’, Yi’’ по 2-м выходам соответственно.

x n1 n2 Y0 Y0’’ Y1 Y1’’ Y2 Y2’’
      0 1        
          0 1    
              0 1
*     * * * * * *

Удобно доопределить Y i’ на наборе <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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: