Oleg Maslennikow Wydział Elektroniki Politechnika Koszalińska ul. JJ Śniadeckich, 75-45 Koszalin e-mail: oleg@ie.tu.koszalin.pl Minimalizacja funkcji logicznych w algebrze bramek prądowych Słowa kluczowe: mieszane analogowo-cyfrowe systemy VLS, bramki prądowe, cyfrowe układy prądowe, logiczne funkcje binarne, minimalizacja funkcji logicznych, algebra Boole a STRESZCZENE W pracy zaprezentowano metodę minimalizacji binarnych funkcji logicznych w algebrze bramek prądowych nowych bramek cyfrowych, w których stany logiczne odpowiadają odpowiednim wartościom nie napięcia, lecz prądu. Stosowanie proponowanej metody pozwala na osiągniecie porównywalnej, a często nawet mniejszej złożoności sprzętowej układów cyfrowych, zbudowanych w oparciu o bramki prądowe, w porównaniu z ich odpowiednikami napieciowymi. Proponowana metoda jest oparta o bardzo prostą realizację, w algebrze bramek prądowych, operacji dodawania algebraicznego i może być wykorzystana przy minimalizacji funkcji za pomocą metod Veitcha-Karnaugha, Quine a-mcqluskeya i innych znanych metod.. WPROWADZENE Prace nad koncepcją bramki prądowej oraz nad algebrą bramek prądowych zapoczątkowała idea profesora Andrzeja Guzińskiego, który opracował koncepcję bramki prądowej dla technologii CMOS. Od 997 roku badania te są prowadzone przez zespół pracowników Wydziału Elektroniki i nformatyki Politechniki Koszalińskiej. Działalność autora w tym zespole polegała na opracowywaniu podstaw algebry bramek prądowych, a także na projektowaniu układów cyfrowych różnego stopnia złożoności w oparciu o bramki prądowe [-]. Zgodnie z koncepcją prof. Guzińskiego [4, 5] prądowy tryb pracy bramki oznacza, że poziomy logiczne na jej wejściu lub wyjściu odpowiadają pewnym, ustalonym wartościom prądu wpływającego na wejście bramki lub wypływającego z jej wyjścia. Główną cechą bramek prądowych jest stała wartość pobieranego prądu w różnych stanach oraz podczas przełączania się. Stąd cyfrowe układy prądowe w znacznie mniejszym stopniu zakłócają układy analogowe w porównaniu z ich odpowiednikami zbudowanymi z bramek klasycznych, pracujących w trybie napięciowym. W wyniku badań przeprowadzonych przez członków zespołu badawczego, do wykorzystania w binarnych układach prądowych opracowane zostały bramki czterech typów: inwertera, anty-inwertera, podwójnego-inwertera i anty-podwójnego-inwertera, których oznaczenie graficzne i wykonywane funkcje są przedstawione na rys. a rys. d. Ponadto, technika prądowa umożliwia realizacje bramek wielowyjściowych, ponieważ bramki prądowe mają regularną i modułową strukturę. Każda bramka składa się z obwodu wejściowego przedstawiającego sobą komparator K oraz jednego lub kilku obwodów wyjściowych typu inwerter lub anty-inwerter A. Jako przykład, rys. e Projekty finansowane przez MNi 597
przedstawia strukturę i oznaczenie graficzne bramki z wyjściami czterech różnych typów. a), dla = 0, -, -,... d) = = = = ˆ - dla 0, -, -,... 4 = 0, dla =,,... 0 dla =,,... b) c) 0 = ˆ = 0 = =, dla -, dla = 0, -, -,... =,,... dla = 0, -, -,... dla =,,... e) 4 K A A 4 Rys.. Bramki prądowe: inwerter (a), anty-inwerter (b), podwójny-inwerter (c), anty-podwójny-inwerter (d), struktura wielowyjściowej bramki prądowej (e) Bardzo ważną cechą bramek prądowych jest możliwość łączenia wyjść różnych bramek w jeden węzeł. Faktycznie w ten sposób w technologii bramek prądowych realizowana jest operacja dodawania algebraicznego, która na poziomie fizycznym odpowiada dodawaniu prądów. W związku z tym, w algebrze bramek prądowych zdefiniowane są trzy podstawowe operacje: suma algebraiczna, inwersja i anty-inwersja, których symbolami graficznymi są odpowiednio znaki +, i ^. W algebrze bramek prądowych dwukrotne wykonanie operacji inwersji danego elementu na ogół nie daje w wyniku tego samego elementu, jak ma to miejsce w algebrze Boole a w przypadku podwójnej negacji. W tej algebrze można jednak otrzymać takie same wartości wyniku i argumentu w przypadku podwójnej inwersji, gdy zakres wartości argumentu ograniczy się do zbioru {0, }. Taka właściwość ma zastosowanie przy konstrukcji odpowiedników funkcjonalnych układów cyfrowych działających w algebrze Boole a. Podstawowe tożsamości algebry bramek prądowych przedstawiono w pracy [].. SPOSOB MNMALZACJ FUNKCJ LOGCZNCH W ALGEBRZE BRAMEK PRĄDOWCH W trakcie przeprowadzonych przez zespół badań zostało udowodniono, że dowolna funkcja binarna (przedstawiona w postaci wyrażenia boolowskiego) może być zrealizowana w oparciu o bramki prądowe inwerterów. W tym celu opracowano m. in. wyrażenia ()-(4) dla zamiany podstawowych operacji algebry Boole a AND, NAND, OR i NOR na podstawowe operacje algebry prądowej. W lewej części tych wyrażeń symbole, i reprezentują odpowiednio operacje boolowskie AND, OR i negacji, natomiast symbole + i w prawej części każdego z wymienionych wyrażeń reprezentują odpowiednio operacje dodawania i inwersji algebry bramek prądowych (przy czym prawa strona wyrażeń () i () w niektórych przypadkach może być uproszczona [] odpowiednio do wyrazeń (5) i (6)). a a + K an = a a a + K an = a a a + K an = a () () a + a K an = a (4) a + a K an = a (5) () a a K an = a + a + K + a (6) n Ze wzorów ()-(4) wynika jeden ze sposobów minimalizacji binarnych funkcji logicznych w algebrze prądowej. Sposób ten polega na otrzymaniu, dla docelowej funkcji logicznej, jej opisu w postaci wyrażenia boolowskiego. Następnie, również w algebrze 598
Boole a, dokonuje się minimalizacji otrzymanego wyrażenia, kierując się specjalnie opracowanymi przez autora kryteriami, które pozwalają otrzymać (stosując wzory konwersji ()-(6)) odpowiedni opis funkcji w algebrze prądowej w sposób, zmniejszających nakłady sprzętowe przy jej realizacji na bramkach prądowych []. Kolejny sposób minimalizacji funkcji logicznych jest oparty o udowodnione przez autora twierdzenie, że dowolna funkcja logiczna może być przedstawiona w algebrze prądowej jako suma algebraiczna kilku innych (np. prostszych) funkcji logicznych nazywanych funkcjami bazowymi. To twierdzenie pozwala minimalizować zarówno binarne, jak i wielowartościowe funkcje logiczne (których argumentami jednak są zmienne binarne) bezpośrednio w algebrze prądowej, w oparciu np. o diagramy Veitcha-Karnaugha. W przypadku minimalizacji funkcji = f ( a, a,..., a n ) diagram ten zawiera n kratek (pól), i jest wypełniany analogicznie jak w przypadku diagramów Veitcha-Karnaugha w algebrze Boole a. Po wypełnieniu diagramu, sąsiednie kratki zawierające jednakowe i różne od zera wartości funkcji zostają łączone w bloki B i (jak jest to wykonywane w algebrze Boole a). Przy tworzeniu bloków z kratek diagramu dąży się do zmniejszenia liczby bloków przy zwiększeniu ich rozmiaru. Procedura tworzenia bloków w algebrze prądowej różni się, jednak, od analogicznej procedury wykonywanej w algebrze Boole a możliwością tworzenia bloków zawierających wspólne kratki, np. takich bloków B, B,..., B k, że B B K Bk = B, (7) nawet jeśli wyżej wymienione bloki odpowiadają różnym wartościom funkcji. Podstawowy warunek, który musi być spełniony w tym przypadku jest następujący. Wartość W funkcji we wszystkich kratkach diagramu tworzących blok B powinna być równa W = W + W +... + W k, (8) gdzie zmienne W, W,..., W k reprezentują wartości funkcji w blokach odpowiednio B, B,..., B k. Następnie dla każdego bloku w sposób standardowy określana jest odpowiednia koniunkcja (implikant boolowski), z których każda zostaje przekształcona za pomocą wyrażenia () w odpowiednie wyrażenie prądowe. Ostateczne wyrażenie dla zminimalizowanej funkcji otrzymuje się jako sumę algebraiczną funkcji odpowiadających poszczególnym blokom B i zgodnie z wyrazeniem (), lub (w przypadku, gdy sformowane bloki nie mają wspólnych kratek, tj. gdy warunek (7)warunek nie jest spełniony) zgodnie z wyrażeniem (6) zamiast wyrazenia (). Na rys. a przedstawiono przykład diagramu Veitcha-Karnaugha dla trójargumentowej funkcji = f ( a, a, a ), oraz jeden z możliwych wariantów łączenia kratek w bloki. Rozkład poszczególnych wartości funkcji w diagramie umożliwia tworzenie trzech niezależnych bloków B, B, B, zaznaczonych na rys. a owalami. W rezultacie, funkcja wykonywana przez pierwszy blok odpowiada wyrażeniu boolowskiemu a a, tj. a w algebrze prądowej. Opisem drugiego bloku w algebrze Boole a jest wyrażenie a a a, co odpowiada wyrażeniu a w algebrze prądowej. Ponieważ trzeci blok zawiera kratkę z liczbą ujemną -, ostateczne wyrażenie dla funkcji powinno mieć postać sumy algebraicznej zawierającej wyrażenie a ze znakiem minus. Biorąc pod uwagę, że wartość - jest uzyskiwana za pomocą operacji anty-inwersji, ostateczny opis funkcji będzie wyglądał następująco: = a + a a = a + a + a Schemat układu realizującego funkcję przedstawiono na rys. b. Możliwość tworzenia bloków zawierających wspólne kratki diagramu zgodnie. (9) Projekty finansowane przez MNi 599
z warunkami (7) i (8) pozwala w sposób radykalny uprościć opis rozpatrywanej funkcji i układ realizujący tę funkcję. W przypadku funkcji warunek (8) będzie spełniony dla bloków B i B odpowiadającym wartościom funkcji odpowiednio W = i W = -. Ten wariant łączenia kratek diagramu w bloki reprezentuje rys. c. Ostateczne wyrażenie funkcji przyjmuje w tym przypadku następującą postać: = a a = a + a, (0) natomiast schemat układu realizującego wyrażenie (0) ilustruje rys. d. a) b) c) d) a a 0 0 0 0 - a a a a a a - 0 0 0 - a a a a Rys.. Możliwe warianty tworzenia bloków (a) i (c) oraz odpowiednie warianty realizacji funkcji (c) i (d). METODA MNMALZACJ BNARNCH FUNKCJ LOGCZNCH W ALGEBRZE BRAMEK PRĄDOWCH Opisany w poprzednim rozdziale sposób tworzenia bloków B,B,..., B k (zgodnie z warunkami (7) i (8)) może być również efektywnie wykorzystany w pzypadku minimalizacji binarnych funkcji logicznych, tj. w przypadku, gdzy diagram Veitcha- Karnaugha docelowej funkcji = f ( x, x,..., x n ) zawiera wylącznie wartości 0 i. Dodatkowym atutem w rozpartywanym przypadku jest możliwość formalizacji tego sposobu, co owocuje powstaniem metody minimalizacji binarnych funkcji logicznych w algebrze bramek prądowych. Metoda ta jest oparta o bardzo prostą i naturalną realizację, w algebrze bramek prądowych, operacji dodawania algebraicznego i może być wykorzystana przy minimalizacji funkcji logicznych za pomocą zarówno diagramów Veitcha-Karnaugha, jak i innych metod minimalizacji (np. Quine a-mcqluskeya) przeznaczonych do realizacji komputerowej. W celu klarowności reprezentacji metody dalej jej opis będzie oparty o diagramy Veitcha-Karnaugha. W algebrze Boole a trudnymi do zminimalizowania są funkcje logiczne zawierające kratki z jedynkami, umieszczone na diagramie w postaci szachownicy (kilka możliwych takich przypadków ilustruje rys. a i rys.b). Tak rozmieszczone kratki z jedynkami nie da się połączyć w bloki zawierające więcej niż jedną kratkę. W wyniku tego, wyrazenie boolowskie funkcji logicznej = f ( x, x,..., x n ), której diagram Veitcha-Karnaugha zawiera fragmenty szachownicy, przedstawia sobą sumę logiczną OR k implikantów (gdzie k - liczba kratek zawierających jedynki), z których każdy reprezentuje n-argumentowy iloczyn boolowski. Realizacja takiego wyrazenia w oparciu o bramki OR, AND i NOT wymaga duzych nakładów sprzętowych, natomiast w układach prądowych może być prostsza ze względu na wielowartościowość algebry bramek prądowych oraz latwą realizację operacji dodawania. Faktycznie, zaznaczone za pomocą owałów na diagramach (na rys. a i rys.b) bloki odpowiadają funkcji sumy modulo (OR) na m argumentach funkcji, gdzie m = log k + oraz m < n. właśnie ta operacja może być w prosty sposób realizowana w algebrze bramek prądowych w oparciu o opisany wyzej sposób tworzenia bloków B,B,..., B k zgodnie z warunkami (7) i (8). Dla przypadku n = suma modulo ma następującą postac: f = x x x x x x x x x x x x, () 600
co w algebrze prądowej jest reprezentowane jako: f = x + x + x + ( x + x + x ) + ( x + x + x ) = x + x + x + ( x + x + x ) x a) c) x 0 0 0 0 0 0 0 0 x 0 0 0 0 f, () b) x 4 x x 0 0 0 0 0 0 x 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 5 0 0 0 0 0 0 0 0 d) - f4 x 6 0 0 0 0 0 0 0 0 x 4 0 0 0 0 0 0 0 0 x 4 - x Rys.. Diagramy Veitcha-Karnaugha przykładowych funkcji logicznych zawierających fragmenty szachownicy (a) i (b); schematy układów prądowych realizujacych funkcję f (c) i f4 (d) natomiast w przypadku n = 4 wyrażenie () zamienia się na następujące wyrazenie (): f 4 = x + x + x + x4 + ( x + x + x + x4 ) + ( x + x + x + x4 ). () W rezultacie schemat układu realizującego funkcję () będzie zawierał inwertery, 4 trzywejściowe bramki AND oraz czterowejściową bramkę OR. Odpowiednik prądowy tego układu, realizujący wyrazenie (), przedstawiono na rys. c, gdzie blok - oznacza stałą prądową o wartości logicznej minus jedynki. Schemat układu prądowego realizującego czteroargumentową funkcję OR zgodnie z wyrazeniem () przedstawiono na rys. d, natomiast rys. 4 reprezentuje układ realizujący tę samą funkcję, który jest zbudowany z klasycznych bramek AND, OR i NOT. Porównanie złożoności sprzetowej układów przestawionych na rys. d i rys. 4 potwierdza tezę o prostszej realizacji w technice bramek prądowych funkcji logicznych, których tablicę prawdy zawierają fragmenty odpowiadajace wieloargumentowym operacjom suma modulo. Właśnie dlatego pierwszym etapem proponowanej metody metody minimalizacji binarnej funkcji = f ( x, x,..., x n ) jest odnalezienie w jej diagramie Veitcha-Karnaugha (lub w jej tablicy prąwdy) fragmentów szachownicy. Następnie określane są rozmiary odnalezionych fragmentów, na podstawie czego okreslona zostaje liczba argumentów n i operacji sumy modulo dla kazdego i-tego fragmentu, i wybierane są odpowiednie wyrażenia, opisujące odnalezione fragmenty w algebrze prądowej (np. jeśli n i =, to wybiera się wyrażenie ()). Pozostałe kratki diagramu Veitcha-Karnaugha docelowej funkcji = f ( x, x,..., x n ), zawierające wartości jednostkowe, łączone zostają w bloki wedlug reguł obowiązujących w algebrze Boole a. Przy tworzeniu tych bloków dąży się do Projekty finansowane przez MNi 60
zmniejszenia liczby bloków przy zwiększeniu ich rozmiaru. Rys. 4. Schemat układu skonstruowanego w oparciu o bramki AND, OR i NOT i realizujacego funkcję =f4 Następnie, implikanty odpowiadające utworzonym blokom zostają przekształcone, zgodnie z wyrażeniem (), w odpowiednie funkcję algebry prądowej, a ostateczne wyrażenie dla zminimalizowanej funkcji otrzymuje się jako sumę algebraiczną funkcji odpowiadających poszczególnym blokom B i zgodnie z wyrazeniem (), lub (w przypadku, gdy sformowane bloki nie mają wspólnych kratek) zgodnie z wyrażeniem (6). 4. WNOSK W niniejszej pracy zaproponowaną metodę minimalizacji binarnych funkcji logicznych w algebrze bramek prądowych, która nadaje się do realizacji w narzędziach programowych do syntezy logicznej układów prądowych. Metoda korzysta z wielowartościowości algebry prądowej, a jej stosowanie pozwala w sposób radykalny zmniejszyć liczbę połączeń oraz liczbę wykorzystanych bramek w układach cyfrowych, zbudowanych w oparciu o bramki prądowe, w porównaniu z ich odpowiednikami napieciowymi. Wymienione zmniejszenie, w niektórych przypadkach, dotyczy nawet liczby tranzystorów niezbędnych do skonstruowania poszczególnych bramek układu. BBLOGRAFA [] M. Białko, O. Maslennikow, N. Maslennikow, P. Pawłowski Układy cyfrowe zbudowane w oparciu o bramki prądowe: stan obecny, perspektywy rozwoju i zastosowania. Elektronika, nr, 004, s.8 4. [] Maslennikow O. Podstawy teorii zautomatyzowanego projektowania reprogramowalnych równoległych jednostek przetwarzających dla jednoukładowych systemów czasu rzeczywistego. (Monografia habilitacyjna). Wydawnictwo Uczelniane Politechniki Koszalińskiej, Koszalin, 004, 7 s. [] Maslennikow O. Approaches to Designing and Examples of Digital Circuits Based on the Current-Mode Gates. Data Recording, Storage & Processing, V., No., 00, pp.84-98. [4] P. Pawłowski. Current Mode Digital Gates for Mixed Mode Reprogrammable ntegrated System. Proc. EEE Conf. on Circuits and Systems for Communication. St. Petersburg, pp. 86-89. [5] Guziński A., Pawłowski P. Current-mode digital circuits for low-voltage mixed analog-digital systems,proc. 6-th nt.conf. Mixed design of integrated circuits systems, MDES 99, Kraków, Poland, 999, pp.69-7. Praca została wykonana w ramach grantu KBN TB 0596 60