Michał Białko Oleg Maslennikow Politechnika oszalińska Wydział Elektroniki ul. Śniadeckich 2, 75-453 oszalin email: oleg@ie.tu.koszalin.pl Natalia Maslennikowa Piotr Pawłowski Układy cyfrowe zbudowane w oparciu o bramki prądowe: stan obecny, perspektywy rozwoju i zastosowania Słowa kluczowe: mieszane analogowo-cyfrowe systemy VLS, zakłócenia podłożowe, układy cyfrowe pracujące w trybie prądowym, układy reprogramowalne STRESZCZENE W niniejszej pracy omówiono stan obecny oraz perspektywy rozwoju i zastosowania bramek cyfrowych pracujących w trybie prądowym, a także różnego rodzaju układów cyfrowych zbudowanych z bramek prądowych. Praca podsumowuje kilkuletnie badania autorów nad koncepcją bramki prądowej i jej realizacją, podstawami algebry bramek prądowych oraz sposobów projektowania i weryfikacji cyfrowych układów prądowych działających w standardowej logice binarnej (Boole a), jak i w wielowartościowych logikach z podstawą N > 2. W pracy rozpatrzono również możliwość wykorzystania bramek prądowych w układach reprogramowalnych, w których w sposób programowy może być określony typ systemu liczbowego oraz jego podstawa N.. WPROWADZENE Prace nad koncepcją bramki prądowej oraz nad algebrą bramek prądowych zapoczątkowała idea profesora Andrzeja Guzińskiego, który na początku lat 90-tych wieku opracował pierwsze rozwiązanie bramki prądowej dla technologii CMOS [4]. Pierwsze badania układów cyfrowych zbudowanych w oparciu o bramki prądowe prof. A. Guziński prowadził razem ze swoimi dyplomantami. W miarę zdobywania doświadczeń i powstawania nowych koncepcji związanych z tymi układami, powiększała się grupa osób zaangażowanych w te badania. Od 997 roku badania są prowadzone przez zespół złożony z pracowników Wydziału Elektroniki Politechniki oszalińskiej, głównie w ramach projektów badawczych finansowanych przez Polski omitet Badań Naukowych (grantów BN) 8TB 042 4 (lata 998-999), 7TB 004 20 (lata 200-2003) i obecnie 3TB 059 26. Działalność autorów w tym zespole badawczym skupiała się głównie na opracowywaniu podstaw algebry bramek prądowych i sposobów projektowania cyfrowych układów prądowych, a także na zaprojektowaniu układów cyfrowych różnego stopnia złożoności w oparciu o bramki prądowe [5-]. Większość opracowanych przez autorów układów została zrealizowana praktycznie w postaci układów scalonych ASC [9]. Prezentowane w niniejszej pracy wyniki badań pokazują, że bramki prądowe mogą być rajowa onferencja Elektroniki
z powodzeniem wykorzystane do konstruowania zarówno standardowych, binarnych układów cyfrowych, jak i układów cyfrowych działających w logice wielowartościowej MVL (ang. Multiple-Valued Logic) z podstawą N > 2 lub w arytmetyce modulo N. 2. ONCEPCJA, PRZEZNACZENE, TP WŁAŚCWOŚC LOGCZNE BRAME PRĄDOWCH oncepcję opracowanej przez prof. Guzińskiego bramki pracującej w trybie prądowym oraz przykładową realizację tej bramki przedstawiono na rys.. Zgodnie z tą koncepcją, tryb prądowy pracy układu cyfrowego oznacza, że poziom logicznego 0 na wejściu lub wyjściu bramki odpowiada prądowi o wartości równej zero, a prąd logicznego odpowiada pewnej, ustalonej wartości prądu wpływającego na wejście bramki lub wypływającego z jej wyjścia. Dla bramki z rys., poziomowi logicznemu na wejściu ( tj. prądowi wpływającemu o ustalonej arbitralnie wartości) odpowiada poziom 0 na wyjściu ( prąd wyjściowy O = 0) bramki i odwrotnie. Z tego powodu bramka ta otrzymała nazwę inwertera prądowego; jej parametry elektryczne przedstawione są np. w pracy [4]. a) V DD b) V bias V DD H M 5 M 4 in O in O M M 2 M M 2 Rys.. V M 3 GND GND oncepcja bramki prądowej (a); przykładowa realizacja CMOS bramki inwertera (b) W trakcie badań prowadzonych przez autorów w ramach grantu 7TB 004 20 opracowano nową koncepcję podstawowej bramki prądowej, cechującej się lepszymi parametrami elektrycznymi i dynamicznymi, w szczególności lepszą charakterystyką przejściową. Nową koncepcję bramki inwertera prądowego i jej przykładową realizację z ilustracją sposobu dołączania dodatkowych wyjść przedstawiono na rys. 2. a) b) in H O M p M p3 V DD : : M p2 M p4 V bias in M i5 bramka prądowa M i2 : M o O / 2 H U k A bias = H M i3 2: : :2 U k M o2 GND A = H obwód polaryzacji M p5 GND V bias2 M i4 M i M o3 Rys. 2. Ulepszona koncepcja bramki inwertera prądowego (a) i jej przykładowa realizacja CMOS (b) Pierwotnym celem opracowania bramek prądowych było zwalczenie negatywnego wpływu zakłóceń podłożowych generowanych przez część cyfrową mieszanego analogowocyfrowego układu scalonego, na jego część analogową [2, 3]. Przyczyną wymienionych zakłóceń są impulsy prądowe powstające podczas pracy (przełączania) układów cyfrowych, w których bramki pracują w trybie napięciowym. Główną cechą bramek prądowych jest stała wartość pobieranego prądu w różnych trybach pracy (np. w stanach logicznego zera, jedynki 2
oraz podczas przełączania się). Np. badania elektroniczne ulepszonej bramki prowadzone przez członków zespołu badawczego pokazały, że fluktuacje wartości prądu w linii zasilania bramki prądowej wynoszą około 8 μa dla prądu jedynki logicznej wynoszącego 40 μa. Z kolei dla stosowanych powszechnie bramek napięciowych te fluktuacje osiągają wartości nawet do ma. Z tego powodu bramki prądowe cechują się znacznie mniejszym poziomem zakłóceń przenoszonych do podłoża układu scalonego (przez występujące w sposób nieunikniony pasożytnicze sprzężenia podłożowe) w porównaniu z bramkami napięciowymi i mogą być stosowane mieszanych analogowo-cyfrowych systemach jednoukładowych. Analiza działania bramki inwertera prądowego wykazuje, że np. poziom zera logicznego na wyjściu bramki osiągany jest w przypadku pojawienia się na jej wejściu nie tylko jedynki logicznej, lecz dowolnej wartości prądu większej od jedynki. Poza tym, koncepcja bramki umożliwia wprowadzenie trzeciego stanu logicznego na wyjściu bramki, w którym z wyjścia bramki prąd o ustalonej wartości nie tylko wypływa lub nie, ale również do tego wyjścia wpływa. Czyli do dotychczasowych wartości logicznych 0 (brak prądu) i (prąd wypływa) można dodać trzeci stan wyjścia - (schemat elektryczny zmodyfikowanej bramki, która otrzymała nazwę anty-inwerter, i jej parametry przedstawiono w pracach [6, 7]). Stąd wynika, że fizyczne i logiczne zasady funkcjonowania bramek prądowych różnią się od analogicznych zasad funkcjonowania klasycznych bramek napięciowych, a algebra bramek prądowych nie jest algebrą binarną. W wyniku badań przeprowadzonych przez członków zespołu badawczego opracowane, przetestowane i zakwalifikowane do wykorzystania w układach prądowych zostały bramki czterech typów inwertera, anty-inwertera, podwójnego-inwertera i anty-podwójnegoinwertera, których oznaczenie graficzne i wykonywane funkcje są przedstawione na rys. 4.3. a) = = 0, dla, dla = 0, -, - 2, =, 2,...... c) = 3 = 0 dla = 0, -, - 2, dla =, 2,...... b) 0 = ˆ 2 =, dla -, dla = 0, -, - 2,... =, 2,... d) 4 = ˆ - = 0 dla = 0, -, - 2, dla =, 2,...... Rys. 3. Bramki prądowe: inwerter (a), anty-inwerter (b), podwójny-inwerter (c), anty-podwójny-inwerter (d) Ponadto, technika bramek prądowych umożliwia realizacje bramek wielowyjściowych (dla układu z rys. 2, w celu utworzenia dodatkowego wyjść wystarczy dołączyć kolejną grupę tranzystorów M o -M o3 sterowanych napięciem U k ), a nawet takich, które mają wyjścia różnych typów. Przykładowe oznaczenie graficzne takiej bramki prądowej z wyjściami czterech różnych typów przedstawiono na rys. 4. Dla tego samego pobudzenia na wejściu, z wyjścia bramka jest widoczna jako inwerter, z wyjścia 2 jako anty-inwerter, z wyjścia 3 jako podwójny inwerter, i z wyjścia 4 jako anty-podwójny-inwerter. Bardzo interesującą cechą bramek prądowych jest możliwość łączenia wyjść różnych bramek (a nawet kilku wyjść jednej bramki) 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 (ich określone natężenia odpowiadają wartościom logicznym odpowiedniego operandu). rajowa onferencja Elektroniki 3
3. OPS ALGEBR BRAME PRĄDOWCH W algebrze bramek prądowych zdefiniowane są trzy podstawowe operacje: suma algebraiczna, inwersja i anty-inwersja. Symbolem operacji sumy algebraicznej jest znak +. Dla tej operacji w algebrze bramek prądowych obowiązuje zasada skracania; oznacza to, że z a+ b= a+ c wynika b= c. Operacje inwersja i anty-inwersja są jednoargumentowymi, a ich symbolami są znaki odpowiednio i ^ umieszczone nad argumentem operacji. W algebrze bramek prądowych przyjmuje się aksjomaty ()-(2). Wzór () stwierdza, że w algebrze bramek prądowych operacja sumy algebraicznej jest działaniem przemiennym, a wzór (2) iż jest to działanie łączne. Wzór (3) informuje, że tak jak w zwykłej algebrze, elementem neutralnym operacji sumy algebraicznej jest element 0 (zero). W algebrze bramek prądowych możliwe jest tworzenie operacji złożonych, w ten sposób, że we wzorze, w miejsce argumentu operacji można wstawić dowolną inną operację. Poza tym, obowiązuje następujące starszeństwo operacji: w przypadku dowolnego wyrażenia operacje wykonuje się w kolejności najpierw dolna, potem górna. Podstawowe tożsamości algebry bramek prądowych mają charakter stwierdzeń dających się wyprowadzić z podanych wyżej aksjomatów, przy uwzględnieniu podanych wcześniej definicji. W lewej kolumnie tablicy tabl. dla przykładu przedstawiono tylko kilka z nich, gdzie zmienne a, b i a i ( i =... n ) przyjmują wartości z przedziału (- M, P ), a M i P są liczbami naturalnymi, których wartości zależą od realizacji fizycznej bramki. 2 3 4 2 3 a + b = b + a () ( a + b) + c = b + ( a + c) (2) a + 0 = a (3) 4 Rys. 4. Przykładowa wielowyjściowa bramka prądowa Tabl.. Przykładowe tożsamości algebry bramek prądowych Tożsamości podstawowe przypadek a, b, a i (-M, P), i =... n Tożsamości dodatkowe przypadek a, b, a i {0, }, i =... n a = aˆ + a = a a = a a + aˆ = 0 a = aˆ a + a = a + a + + a = a a + a 2 + + an = a + a aˆ ˆ2 + + n a + a + + a = aˆ aˆ + b = a + bˆ aˆ + b = a + bˆ 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 4
argumentu ograniczy się do zbioru {0, }; taka właściwość ma zastosowanie przy konstrukcji odpowiedników funkcjonalnych układów algebry Boole a. W tym przypadku zbiór tożsamości algebry bramek prądowych może być poszerzony o inne tożsamości, z których kilka przedstawiono w prawej kolumnie tabl.. 4. SPOSOB MNMALZACJ FUNCJ BNARNCH W ALGEBRZE BRAME PRĄDOWCH W trakcie przeprowadzonych przez autorów badań zostało udowodniono, że dowolnie złożona funkcja logiczna przedstawiona w postaci wyrażenia boolowskiego może być zrealizowana w oparciu o bramki inwerterów prądowych. W tym celu opracowano m.in. wyrażenia (4)-(7) dla zamiany podstawowych operacji algebry Boole a AND, NAND, OR i NOR na podstawowe operacje algebry prądowej. Należy zaznaczyć, że 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. To oznacza, że lewa strona w każdym wyrażeniu (4)-(7) reprezentuje odpowiednią funkcję w algebrze Boole a, natomiast prawa strona reprezentuje tę samą funkcję w algebrze bramek prądowych (przy czym prawa strona wyrażeń (5) i (6) w niektórych przypadkach może być jeszcze bardziej uproszczona [6]). a + a2 an = a + a2 + a n, (4) a + a2 an = a + a2 + a n, (5) a + a2 an = a + a2 + a n, (6) a + a2 an = a + a2 + a n. (7) Ze wzorów (4)-(7) wynika jeden ze sposobów minimalizacji binarnych funkcji logicznych w algebrze bramek prądowych. Sposób ten polega na otrzymaniu dla funkcji logicznej, która powinna być realizowana przez układ, jej opisu w postaci wyrażenia boolowskiego. Następnie dokonuje się minimalizacji otrzymanego wyrażenia (również w algebrze Boole a) kierując się specjalnie opracowanymi przez autorów kryteriami, które pozwalają otrzymać (przy pomocy wzorów konwersji (4)-(7)) zminimalizowaną postać funkcji logicznej w algebrze prądowej [6]. olejny sposób minimalizacji funkcji logicznych jest przeznaczony do wykorzystania bezpośrednio w algebrze bramek prądowych i jest oparty o udowodnione przez autorów 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. Sposób ten może być najefektywniej wykorzystany w przypadku minimalizacji równocześnie kilku funkcji logicznych mających wspólne argumenty. W takim przypadku jedna lub więcej funkcji (najlepiej najprostszych) są minimalizowane za pomocą pierwszego sposobu, natomiast pozostałe funkcje wykorzystują je jako funkcje bazowe. Oprócz tego, udowodnione twierdzenie pozwala minimalizować binarne funkcje logiczne bezpośrednio w algebrze prądowej w oparciu o diagramy Veitcha-arnaugha. Ten trzeci sposób minimalizacji polega na wykorzystaniu dla funkcji n argumentów binarnych a, a 2,..., a n diagramu zawierającego 2 n kratek (pól), który wypełniany jest analogicznie jak w przypadku diagramów w algebrze Boole a. Po wypełnieniu diagramu, sąsiednie kratki zawierające jednakowe wartości funkcji, większe od zera i mniejsze od zera, łączy się w osobne bloki rajowa onferencja Elektroniki 5
(w sposób standardowy, jak jest to wykonywane w algebrze Boole a). Przy tworzeniu bloków z kratek diagramu dąży się do zmniejszenia liczby bloków, zwiększenia ich rozmiaru oraz do tworzenia bloków niezależnych (bez wspólnych kratek). Następnie, dla każdego bloku, w sposób standardowy określana jest odpowiednia koniunkcja, z których każda zostaje następnie przekształcona za pomocą wyrażenia (4). Ostateczne wyrażenie dla zminimalizowanej funkcji otrzymuje się jako sumę algebraiczną funkcji poszczególnych bloków. Prawidłowość i efektywność opracowanych sposobów minimalizacji funkcji logicznych w algebrze bramek prądowych potwierdzają wyniki testowania zaprojektowanych przez autorów prototypów prądowych standardowych układów cyfrowych: różnego rodzaju sumatorów, dekoderów, multiplekserów, przerzutników, rejestrów, liczników [5-8], jednostki 4-bitowej ALU 74S8, z których większość została zrealizowana praktycznie w postaci układów scalonych ASC [9]. W trakcie badań zostało ustalone, że otrzymane prądowe układy kombinacyjne zwykle cechują się mniejszą liczbą bramek w porównaniu z ich prototypami zbudowanymi na bazie klasycznych bramek napięciowych, natomiast układy sekwencyjne wymagają wykorzystania porównywalnej liczby bramek w obu technikach. Jako przykład, na rys. 5a przedstawiono schemat pełnego jednobitowego sumatora zbudowanego z bramek prądowych (w skrócie: sumatora prądowego ) zawierającego ponad 2 razy mniej bramek w porównaniu ze swoim analogiem złożonym z bramek boolowskich techniki napięciowej oraz prawie 2 razy mniej tranzystorów (w realizacji CMOS). Rys. 5b przedstawia schemat przerzutnika prądowego typu D, sterowanego poziomem sygnału taktującego, zawierającego tyle bramek, ile ma jego analog napięciowy. a) S b) D Q C N - C OUT C NQ Rys. 5. Schemat jednobitowego sumatora prądowego (a) i przerzutnika prądowego typu D (b) Przedstawione cechy cyfrowych układów prądowych stwarzają podstawę do opracowania i wytworzenia mieszanych analogowo-cyfrowych układów na wspólnym podłożu, w tym mieszanych reprogramowalnych układów FPMA, w których część cyfrowa przedstawia sobą układ FPGA zbudowany w oparciu o bramki prądowe. Jako prototyp funkcjonalny komórki układu prądowego FPGA wybrany został blok SLCE układu Spartan firmy ilinx. Oznacza to, że założeniem wstępnym autorów przy zaprojektowaniu prototypu prądowego bloku SLCE było to, że układ ten powinien posiadać jednakowe z oryginałem wejścia, wyjścia i wszystkie tryby pracy. Wybór nowoczesnego, dobrze znanego, układu FPGA jako wzorca miał na celu sprawdzenie tezy, iż stosując bramki prądowe, możliwe jest zbudowanie dowolnie złożonego systemu cyfrowego. Poza tym, wykorzystanie prądowych układów FPGA, funkcjonalnie zgodnych z ich odpowiednikami napięciowymi, pozwala zautomatyzować procedurę implementacji w nich układów cyfrowych za pomocą wykorzystania standardowych narzędzi programowych do syntezy i implementacji układów. Przy projektowaniu struktury wewnętrznej bloku SLCE, szczególną uwagę zwrócono na opracowanie możliwie jak najprostszego, pod względem liczby bramek, układu LUT (ang. Look-Up-Table), który w bloku SLCE pełni funkcję jednostki arytmetyczno-logicznej, lub funkcję 6-komórkowego bloku pamięci typu RAM, ROM lub FFO. 6
Rys. 6. Prototyp prądowy bloku LUT układów FPGA rodzin Spartan i Virtex Autorom udało się opracować pełny funkcjonalny analog bloku LUT [7], który przedstawiony został na rys. 6. Na tym schemacie sygnały G- G4 oznaczają wejścia układu LUT, D wyjście układu, RAM, ROM i FFO wejścia sterujące określające tryb pracy układu, DG i DG2 wejścia układu w trybie FFO, WSG wejście sterujące zapisem i odczytem danych do/z układu LUT. Wprowadzenie tranzystorów do układu prądowego LUT spowodowane jest zastosowaniem w układzie prądowym FPGA pamięci konfiguracyjnej pracującej w trybie napięciowym. Ponieważ podczas pracy układu zawartość pamięci konfiguracyjnej nie zmienia się, bramki nie zmieniają swojego stanu, t.j. nie generują zakłóceń. A Cin Bi Ai G4 G3 G2 G A4 A3 A2 LUT A WS D O nd D2 nd2 D B nb ncnc2 C2 C COUT B B nv V ne E LUT H nh CL J nf F Si CE SR F5N ng G T T2 T3 T nt GSR L M nm N nn D S Q nq CE CL R n Z nz Q C Cin Bi Ai F4 F3 F2 F nu U A4 A3 A2 A WS LUT D O nr R2 nr2 R O npnp2 P2 P D S Q nq CE CL R Q W nw n F5 B B CN S ns Q nq Rys. 7. Struktura układu prądowego SLCE rajowa onferencja Elektroniki 7
Oprócz prądowego układu LUT autorzy zaprojektowali prototypy prądowe bloku realizującego szybkie przeniesienie w układzie SLCE, oraz logikę sterującą tego układu. W wyniku powstał prototyp prądowy całego układu SLCE, przedstawiony na rys. 7, gdzie grube linie pokazują (jako przykład możliwego zastosowania układu) przepływ sygnałów przy realizacji sumatora szeregowego. 5. WERFACJA ZAPROJETOWANCH UŁADÓW PRĄDOWCH CH MPLEMENTACJA W PRĄDOWCH UŁADACH FPGA Realizacja fizyczna każdego z opracowanych układów prądowych była poprzedzona opracowaniem i przetestowaniem jego modelu w języku VHDL. Przystosowanie języka VHDL oraz środowiska programowego Active-HDL do opisu i symulacji układów polegało m.in. na opracowaniu biblioteki deklarującej i definiującej poziomy logiczne algebry prądowej, a także tablic i funkcji rezolucji sygnałów działających zarówno dla pojedynczych sygnałów jak i ich wektorów, z uwzględnieniem właściwości algebry bramek prądowych. Dodatkowo, w celu przyspieszenia testowania otrzymywanych układów na poziomie logicznym, autorzy opracowali środowisko graficzne MPU umożliwiające m.in.: wybór, umieszczenie na ekranie, przesunięcie i usunięcie bramek prądowych; określenie liczby i typów wyjść dla każdej użytej w układzie bramki; łączenie bramek oraz usuwanie połączeń. Okno główne programu MPU ze schematem jednobitowego sumatora prądowego jest pokazane na rys. 8. Rys. 8. Okno programu MPU Oprócz konstruowania i edycji schematu układu, program umożliwia jego symulację poprzez ustawienie stanu dla każdego wejścia układu i odczytanie stanów jego wyjść oraz zapis tablicy prawdy prądowych układów kombinacyjnych do pliku. Na podstawie utworzonych bloków prądowych SLCE,, pamięci konfiguracyjnej i przełączników macierzowych, przez członków zespołu zaprojektowana została architektura układu prądowego FPGA, podobna do architektury układu FPGA SPARTAN oraz opracowany jej model w języku VHDL [5]. Model ten jest bezpośrednio powiązany z układem, który powinien być realizowany w układzie FPGA. Z tego powodu głównymi parametrami modelu są liczba wykorzystywanych bloków SLCE i oraz ich połączenia. Badanie modelu całego układu prądowego FPGA dokonano m.in. na układach różnego rodzaju sumatorów w postępowaniu składającym się z kilku etapów. Najpierw określono 8
liczbę bloków SLCE i niezbędnych dla realizacji danego układu funkcjonalnego. Następnie określono tryby pracy i realizowane funkcje logiczne dla każdego bloku SLCE i połączenia między nimi. Na podstawie otrzymanych danych określono zawartość poszczególnych komórek pamięci konfiguracyjnej układu FPGA. Po wprowadzeniu danych konfiguracyjnych do pamięci modelu, sprawdzono poprawność jego działania w środowisku Active-HDL. Należy zaznaczyć, że opisana procedura formowania danych konfiguracyjnych może być wykonana nie tylko w sposób ręczny, lecz również w sposób zautomatyzowany. Jako bazę programową członkowie zespołu badawczego wykorzystali pakiet Foundation/SE firmy ilinx, w którym przy próbie implementacji opisu VHDL urządzenia w układzie FPGA otrzymuje się plik binarny NCD (ang. Native Circuit Description) zawierający informację o konfiguracji i połączeniach komórek układu FPGA przy realizacji w nim zaprojektowanego urządzenia. Otrzymany plik binarny może być przekształcony za pomocą programu DL do formatu tekstowego DL (ang. ilinx Design Language), który może zostać użyty we własnych programach użytkowników pakietu Foundation. Dzięki takiej możliwości członkom zespołu udało się opracować następującą procedurę projektowania cyfrowych układów prądowych i ich implementacji w układach prądowych FPGA zawierającą następujące etapy: opracowanie projektu układu w algebrze Boole a oraz jego opisu w języku VHDL; synteza i implementacja układu w wybranym układzie FPGA; otrzymanie pliku NCD i jego przekształcenie do formatu DL; analiza pliku DL i generacja opisu VHDL układu prądowego FPGA. Należy zaznaczyć, że ostatni etap jest realizowany za pomocą specjalnie opracowanego przez członków zespołu programu GEDEON [0] przekształcającego informacje zawarte w plikach DL do postaci modelu VHDL układu prądowego FPGA zawierającego także dane konfigurujące ten układ. 6. CFROWE UŁAD PRĄDOWE DZAŁAJĄCE W LOGACH Z PODSTAWĄ N > 2 Szczególną i zdaniem autorów bardzo korzystną cechą algebry bramek prądowych jest to, że jest ona w pewnym stopniu algebrą (logiką) wielowartościową MVL []. Przykładem logiki wielowartościowej może być np. system trójkowy z cyframi 0,, 2, lub nawet dziesiętny z cyframi 0,, 2,..., 9. Wykorzystanie arytmetyki wielowartościowej w specjalistycznych systemach komputerowych niesie ze sobą kilka istotnych korzyści, wymienionych niżej. ) Przedstawienie określonej liczby z określoną dokładnością wymaga w systemach wielowartościowych użycia mniejszej liczby cyfr w porównaniu z systemem dwójkowym. Pozwala to na odpowiednie zmniejszenie szerokości rejestrów, liczników, komórek pamięci, a nawet bloków operacyjnych sumatorów, mnożarek, itd., oraz zmniejszenie szerokości magistral danych i adresów systemu. Poza tym, znacznie zmniejsza się liczba połączeń wewnętrznych i zewnętrznych w systemie. 2) Dzięki mniejszej liczbie cyfr przedstawiających dane, czas wykonywania operacji w układach szeregowych sumatorach, blokach mnożenia, dzielenia, itd. także jest mniejszy. 3) System wielowartościowy może być łatwo przerobiony w odpowiedni system resztowy RNS (ang. Residue Number System) [], oparty o arytmetykę modulo N, poprzez usunięcie bloków przeniesienia z układów sumujących. W tym przypadku uzyskuje się dodatkowe zalety wykorzystania arytmetyki resztowej powiązane z brakiem przeniesienia między poszczególnymi cyframi w liczbach. rajowa onferencja Elektroniki 9
Ponieważ bramki prądowe mogą być wykorzystane dla realizacji operacji logiki MVL z podstawą N i arytmetyki modulo N, autorzy podjęli próbę zaprojektowania podstawowych układów prądowych działających w w/w systemach. W wyniku prowadzonych badań wykazano, że opracowane sumatory, a nawet kombinacyjne bloki mnożące działające w logice MVL lub w arytmetyce modulo N są prostsze od znanych zarówno pod względem liczby wykorzystanych bramek, jak i liczby tranzystorów. Jako przykład, rys. 9a przedstawia schemat sumatora MVL z podstawą N, rys. 9b schemat sumatora modulo N, rys. 9c realizację sumatora modulo N na poziomie tranzystorów (dla przypadku N = 3), z ilustracją sposobu modyfikacji schematu przy zmianie wartości N. Zaletą ostatniego sumatora jest to, że jest on najprostszy ze znanych: zawiera tylko jedną wielowyjściową bramkę prądową realizowaną na 3 ( N + ) tranzystorach. a) C N -(N-) 2 N S C OUT c) in O M i2 O2 ON S b) -(N-) 2 N S bias = H 2: V bias2 GND - :2 N- = 2 - :2 M i3 M i4 M i komparator prądów dla ½ H : :2 M o2 M o3 obwód wyjściowy :2 wielowyjściowa bramka prądowa M o22 M o32 obwód wyjściowy :2 M o2n M o3n obwód wyjściowy Rys. 9. Przykładowa realizacja sumatorów prądowych: z podstawą 3 (a), modulo 3 (b i c) N=3 7. ONCEPCJA UŁADU REPROGRAMOWALNEGO DZAŁAJĄCEGO W LOGCE MVL ARTMETCE RNS Wyróżniającą cechą opracowanych przez autorów sumatorów, przerzutników i kombinacyjnych bloków mnożących działających w logice MVL i arytmetyce resztowej oraz opracowanych przez zespół badawczy układów pomocniczych (np. układów replikujących), a nawet podstawowych bramek prądowych jest modułowość i regularność ich budowy. Oznacza to, że schemat ogólny układu składa się z prostych modułów kilku różnych typów, których liczba zależy od wartości podstawy N systemu liczbowego. ażda bramka prądowa składa się z obwodu wejściowego przedstawiającego sobą komparator oraz jednego lub kilku obwodów wyjściowych typu inwerter lub anty-inwerter. onstruowanie bramki jednowyjściowego anty-inwertera prądowego polega na połączeniu wyjścia bloku z wejściem bloku, natomiast bramkę jednowyjściowego podwójnego inwertera otrzymuje się przez dołączenie do bloku dwóch bloków, przy czym w takim przypadku pierwszy blok zawiera również uproszczony komparator wytwarzający odpowiednie napiecie sterujące dla drugiego bloku. Należy zaznaczyć, że dla logiki MVL, w przypadku ogólnym, obwód wejściowy bramki składa się z (N-) szeregowo połączonych komparatorów, a realizacja np. jednowyjściowej bramki inwertera MVL wymaga podłączenia osobnego bloku do wyjścia każdego komparatora, przy czym wyjścia wszystkich (N-) bloków są połączone w jeden węzeł, który jest wyjściem bramki. Opracowane przez autorów sumatory, przerzutniki i inne układy wielowartościowe też mają regularną strukturę. Na przykład, w sumatorach przedstawionych na rys. 9 w zależności od wartości N zmienia się tylko liczba wyjść typu anty-inwerter w wykorzystanej bramce. Umożliwia to opracowanie układów reprogramowalnych typu FPGA przeznaczonych 0
do działania w systemach MVL i RNS, w których w sposób programowy można wybrać typ systemu liczbowego (MVL lub RNS) oraz wartość jego podstawy N. (Należy zaznaczyć, że w przypadku systemu resztowego RNS realizacja wielocyfrowego sumatora wymaga stosowania równocześnie p podstaw N, N 2,..., N p, gdzie p liczba wyjść sumatora). Struktura ogólna takiego układu reprogramowalnego FPGA może składać się z matrycy bloków kilku różnych typów oraz sieci połączeń umożliwiającej łączenie bloków w sposób programowalny. Fragment struktury wewnętrznej takiego układu reprogramowalnego przedstawiono na rys. 0, gdzie przez, i oznaczono odpowiednio komparator, obwód wyjściowy typu inwerter i obwód wyjściowy typu anty-inwerter. Programowalne przełączniki sieci połączeń są zaznaczone na rys. 0 za pomocą przekreślonych kółek. PAMĘĆ ONFGURACJNA UŁADU SGNAŁ STEROWANA ONFGURACJĄ UŁADU............... Rys. 0. Ogólna struktura układu reprogramowalnego działającego w systemach MVL i/lub RNS Praca jest wykonana w ramach grantu BN 3TB 059 26. BBLOGRAFA [] The Programmable Logic Data Book. ilinx, nc., 2002 [2] M. Nagata, J. Nagai, T. Morie, A. wata, Measurements and Analyses of Substrate Noise Waveform in Mixed-Signal C Environment EEE Trans. on Computer-Aided Design of ntegrated Circuits and Systems, vol. 9, No. 6, pp. 67-678, June 2000 [3] E. Charbon, P. Miliozzi, L. P. Carloni, A. Ferrari, A. Sangiovanni-Vincentelli, Modeling Digital Substrate Noise njection in Mixed-Signal C s EEE Trans. on Computer-Aided Design of ntegrated Circuits and Systems, vol. 8, No. 3, pp. 30-30, March 999 [4] A. Guziński, A. ielbasinski, Current-Mode Digital Circuits Operating in Mixed Analog-Digital Systems Bulletin of the Polish Academy of Sciences, Technical Sciences, vol. 44, No. 2, pp. 93-98, 996 [5] D. Gretkowski, A. Guziński, J. aniewski, O. Maslennikow, VHDL models of digital combinatorical circuits on the current-mode gates, Proc. 6-th nt. Conf. MDES 99, pp. 253-258, raków, Poland, 999 [6] O. Maslennikow, Approaches to Designing and Examples of Digital Circuits Based on the Current-Mode Gates Data Recording, Storage & Processing, vol. 3, No. 2, pp. 84-98, 200 [7] O. Maslennikow, P. Pawlowski, P. Sołtan, R. Berezowski, Current-Mode Digital Gates and Circuits: Conception, Design and Verification Proc. EEE nt. Conf. CECS 2002, pp. 623-626, Dubrovnik 2002 [8] O. Maslennikow, R. Berezowski, P. Soltan, M. Rajewska, Designing Prototype of the Spartan FPGA Slice with the Current-Mode Gates Proc. EEE nt. Conf. CCSC 2002, pp. 82-85, St.-Petersburg 2002 [9] D. Gretkowski, O. Maslennikow, Designing and Testing the Prototype of Reprogrammable Chip Based on the Current-Mode Gates Proc. 7 nt. Conf. CADSM 2003, pp. 434-437, Lwów 2003 [0] O. Maslennikow, P. Soltan, Automated mplementation of Digital Circuits in Current-Mode FPGA Chips Proc. 7 nt. Conf. CADSM 2003, pp. 223-225, Lwów 2003 [] O. Maslennikow, D. Gretkowski, P. Pawlowski, Current-Mode Circuits for Multiple-Valued Logic and Residue Number System Arithmetic Proc. 0-th nt. Conf. MDES 2003, pp. 82-87, 2003 rajowa onferencja Elektroniki