Układy cyfrowe zbudowane w oparciu o bramki - kik
Transkrypt
Układy cyfrowe zbudowane w oparciu o bramki - kik
Michał Białko Oleg Maslennikow Natalia Maslennikowa Piotr Pawłowski Politechnika Koszalińska Wydział Elektroniki ul. Śniadeckich 2, 75-453 Koszalin email: [email protected] Układy cyfrowe zbudowane w oparciu o bramki prądowe: stan obecny, perspektywy rozwoju i zastosowania Słowa kluczowe: mieszane analogowo-cyfrowe systemy VLSI, zakłócenia podłożowe, układy cyfrowe pracujące w trybie prądowym, układy reprogramowalne STRESZCZENIE 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. 1. WPROWADZENIE 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 XX 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 1997 roku badania są prowadzone przez zespół złożony z pracowników Wydziału Elektroniki Politechniki Koszalińskiej, głównie w ramach projektów badawczych finansowanych przez Polski Komitet Badań Naukowych (grantów KBN) 8T11B 042 14 (lata 1998-1999), 7T11B 004 20 (lata 2001-2003) i obecnie 3T11B 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-11]. Większość opracowanych przez autorów układów została zrealizowana praktycznie w postaci układów scalonych ASIC [9]. Prezentowane w niniejszej pracy wyniki badań pokazują, że bramki prądowe mogą być III Krajowa Konferencja Elektroniki —1— 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. KONCEPCJA, PRZEZNACZENIE, TYPY I WŁAŚCIWOŚCI LOGICZNE BRAMEK PRĄDOWYCH Koncepcję opracowanej przez prof. Guzińskiego bramki pracującej w trybie prądowym oraz przykładową realizację tej bramki przedstawiono na rys. 1. 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 1 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. 1, poziomowi logicznemu 1 na wejściu ( tj. prądowi wpływającemu II o ustalonej arbitralnie wartości) odpowiada poziom 0 na wyjściu ( prąd wyjściowy IO = 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) b) VDD IH in II M5 IO out M1 VDD Vbias M4 II in M2 IO out M1 M2 V M3 GND Rys. 1. GND Koncepcja bramki prądowej (a); przykładowa realizacja CMOS bramki inwertera (b) W trakcie badań prowadzonych przez autorów w ramach grantu 7T11B 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) IH IO out in II K /2 IH GND Rys. 2. Mp1 IA IA = IH Vbias1 1:1 bramka prądowa Mp2 II Mp3 Y Uk 1 VDD 1:1 out IO 2: Mo2 :1 Mp5 obwód polaryzacji Mi2 Mi3 Ibias = IH GND Mo1 in Mi5 Mp4 :1 Mi4 Mi1 Uk :2 Mo3 Vbias2 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 1 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 „1” (prąd wypływa) można dodać trzeci stan wyjścia – „-1” (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) ⎧ 1 , dla X = 0, - 1, - 2, ... Y1 = X = ⎨ ⎩ 0 , dla X = 1, 2, ... X b) Rys. 3. ⎧ 0 dla X = 0, - 1, - 2, ... Y3 = X = ⎨ ⎩ 1 dla X = 1, 2, ... X X ⎧ 0 , dla X = 0, - 1, - 2, ... Y2 = Xˆ = ⎨ ⎩ - 1 , dla X = 1, 2, ... X c) X d) X ⎧ - 1 dla X = 0, - 1, - 2, ... Y4 = Xˆ = ⎨ ⎩ 0 dla X = 1, 2, ... X X 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 Mo1-Mo3 sterowanych napięciem Uk), 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 X, z wyjścia Y1 bramka jest widoczna jako inwerter, z wyjścia Y2 jako anty-inwerter, z wyjścia Y3 jako podwójny inwerter, i z wyjścia Y4 – 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). III Krajowa Konferencja Elektroniki —3— 3. OPIS ALGEBRY BRAMEK PRĄDOWYCH 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 (1)-(2). Wzór (1) 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. 1 dla przykładu przedstawiono tylko kilka z nich, gdzie zmienne a, b i ai ( i = 1 ... 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. Y1 Y2 Y3 Y4 X X I Y1 AI Y2 I I Y3 I AI Y4 K Rys. 4. Przykładowa wielowyjściowa bramka prądowa Tabl. 1. Przykładowe tożsamości algebry bramek prądowych a+b =b+a (1) ( a + b) + c = b + ( a + c ) (2) a+0= a (3) Tożsamości podstawowe przypadek a, b, a i ∈ (-M, P), i = 1 ... n Tożsamości dodatkowe przypadek a, b, a i ∈ {0, 1} , i = 1 ... n a = aˆ + 1 a=a a=a a + aˆ = 0 ∧ a = aˆ a + a =1 a + a +K+ a = a a1 + a2 + K + an = a1 + aˆ 2 + K + aˆ n ∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧ aˆ + b = a + bˆ a + a + K + a = aˆ 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, 1}; 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. 1. 4. SPOSOBY MINIMALIZACJI FUNKCJI BINARNYCH W ALGEBRZE BRAMEK PRĄDOWYCH 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]). a1 ⋅ a 2 ⋅ K ⋅ a n = a1 + a 2 + K + a n , (4) a1 ⋅ a2 ⋅ K ⋅ an = a1 + a2 + K + an , (5) a1 ∨ a 2 ∨ K ∨ a n = a1 + a 2 + K + a n , (6) a1 ∨ a 2 ∨ K ∨ a n = a1 + a 2 + K + 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]. Kolejny 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-Karnaugha. Ten trzeci sposób minimalizacji polega na wykorzystaniu dla funkcji n argumentów binarnych a1, a2, ... , an diagramu zawierającego 2n 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 III Krajowa Konferencja 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 74S181, z których większość została zrealizowana praktycznie w postaci układów scalonych ASIC [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. S a) X b) D Q Y COUT CIN C “-1” 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 SLICE układu Spartan II firmy Xilinx. Oznacza to, że założeniem wstępnym autorów przy zaprojektowaniu prototypu prądowego bloku SLICE 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 SLICE, 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 SLICE pełni funkcję jednostki arytmetyczno-logicznej, lub funkcję 16-komórkowego bloku pamięci typu RAM, ROM lub FIFO. —6— Rys. 6. Prototyp prądowy bloku LUT układów FPGA rodzin Spartan II 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 G1G4 oznaczają wejścia układu LUT, D – wyjście układu, RAM, ROM i FIFO – wejścia sterujące określające tryb pracy układu, DIG1 i DIG2 – wejścia układu w trybie FIFO, 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 A4 G3 G2 A3 G1 A1 1 LUT COUT B nB O nD1 D2 nD2 D1 A2 YB nC1 nC2 WS C2 C1 DI nV V 1 Y H nH LUT BY nE E CLK J nF F Si T1 T2 T3 M nM T nT CE K L D S Q nQ CE nG G GSR SR CLK R F5IN I WS Cin Bi F4 A4 F3 F2 A3 F1 A1 A2 N nN DI D S Q nQ CE O LUT nR1 R2 nR2 R1 O CLK R Ai nU U YQ Y nY Z nZ Cout XQ W nW X nX 1 nP1 nP2 1 BX F5 XB P2 P1 S nS Q nQ CIN Rys. 7. Struktura układu prądowego SLICE III Krajowa Konferencja Elektroniki —7— X Oprócz prądowego układu LUT autorzy zaprojektowali prototypy prądowe bloku realizującego szybkie przeniesienie w układzie SLICE, oraz logikę sterującą tego układu. W wyniku powstał prototyp prądowy całego układu SLICE, 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. WERYFIKACJA ZAPROJEKTOWANYCH UKŁADÓW PRĄDOWYCH I ICH IMPLEMENTACJA W PRĄDOWYCH UKŁ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 „MPUK” 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 „MPUK” ze schematem jednobitowego sumatora prądowego jest pokazane na rys. 8. Rys. 8. Okno programu MPUK 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 SLICE, IOB, 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 II 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 SLICE i IOB 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 SLICE i IOB niezbędnych dla realizacji danego układu funkcjonalnego. Następnie określono tryby pracy i realizowane funkcje logiczne dla każdego bloku SLICE 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/ISE firmy Xilinx, 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 XDL do formatu tekstowego XDL (ang. Xilinx 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 XDL; • analiza pliku XDL 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 [10] przekształcającego informacje zawarte w plikach XDL do postaci modelu VHDL układu prądowego FPGA zawierającego także dane konfigurujące ten układ. 6. CYFROWE UKŁADY PRĄDOWE DZIAŁAJĄCE W LOGIKACH 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 [11]. Przykładem logiki wielowartościowej może być np. system trójkowy z cyframi 0, 1, 2, lub nawet dziesiętny z cyframi 0, 1, 2, ... , 9. Wykorzystanie arytmetyki wielowartościowej w specjalistycznych systemach komputerowych niesie ze sobą kilka istotnych korzyści, wymienionych niżej. 1) 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) [11], 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. III Krajowa Konferencja 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 + 1) tranzystorach. a) c) X 1 S X X 2 Y Y Y N CIN COUT “-(N-1)” 1 2 Y “-(N-1)” II N Ibias = IH -1 -1 2: :2 :2 S GND out S out IO1 IO2 ION Mo21 Mo22 Mo2N Mi2 in b) X out Mi3 Mi4 Mi1 :1 :2 Mo31 :2 Mo32 :2 Mo3N Vbias2 N-1 = 2 komparator prądów dla ½ IH K obwód wyjściowy AI obwód wyjściowy AI obwód wyjściowy AI wielowyjściowa bramka prądowa N=3 Rys. 9. Przykładowa realizacja sumatorów prądowych: z podstawą 3 (a), modulo 3 (b i c) 7. KONCEPCJA UKŁADU REPROGRAMOWALNEGO DZIAŁAJĄCEGO W LOGICE MVL I ARYTMETYCE 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. Każda bramka prądowa składa się z obwodu wejściowego przedstawiającego sobą komparator K oraz jednego lub kilku obwodów wyjściowych typu inwerter I lub anty-inwerter AI. Konstruowanie bramki jednowyjściowego anty-inwertera prądowego polega na połączeniu wyjścia bloku K z wejściem bloku AI, natomiast bramkę jednowyjściowego podwójnego inwertera otrzymuje się przez dołączenie do bloku K dwóch bloków I, przy czym w takim przypadku pierwszy blok I 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 -1) szeregowo połączonych komparatorów K, a realizacja np. jednowyjściowej bramki inwertera MVL wymaga podłączenia osobnego bloku I do wyjścia każdego komparatora K, przy czym wyjścia wszystkich (N -1) bloków I 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 — 10 — 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 N1, N2, ... , Np, 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. 10, gdzie przez K, I i AI 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. 10 za pomocą przekreślonych kółek. PAMIĘĆ KONFIGURACYJNA UKŁADU IOB IOB IOB K I AI IOB IOB K I AI IOB IOB K I AI IOB SYGNAŁY STEROWANIA KONFIGURACJĄ UKŁADU IOB IOB IOB IOB IOB ... K I AI IOB ... K I AI ... IOB ... K I AI IOB IOB IOB ... Rys. 10. Ogólna struktura układu reprogramowalnego działającego w systemach MVL i/lub RNS Praca jest wykonana w ramach grantu KBN 3T11B 059 26. BIBLIOGRAFIA [1] The Programmable Logic Data Book. Xilinx, Inc., 2002 [2] M. Nagata, J. Nagai, T. Morie, A. Iwata, „Measurements and Analyses of Substrate Noise Waveform in Mixed-Signal IC Environment” IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems, vol. 19, No. 6, pp. 671-678, June 2000 [3] E. Charbon, P. Miliozzi, L. P. Carloni, A. Ferrari, A. Sangiovanni-Vincentelli, „Modeling Digital Substrate Noise Injection in Mixed-Signal IC’s ” IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems, vol. 18, No. 3, pp. 301-310, March 1999 [4] A. Guziński, A. Kielbasinski, „Current-Mode Digital Circuits Operating in Mixed Analog-Digital Systems” Bulletin of the Polish Academy of Sciences, Technical Sciences, vol. 44, No. 2, pp. 193-198, 1996 [5] D. Gretkowski, A. Guziński, J. Kaniewski, O. Maslennikow, „VHDL models of digital combinatorical circuits on the current-mode gates”, Proc. 6-th Int. Conf. MIXDES’99, pp. 253-258, Kraków, Poland, 1999 [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, 2001 [7] O. Maslennikow, P. Pawlowski, P. Sołtan, R. Berezowski, „Current-Mode Digital Gates and Circuits: Conception, Design and Verification” Proc. IEEE Int. Conf. ICECS’2002, pp. 623-626, Dubrovnik 2002 [8] O. Maslennikow, R. Berezowski, P. Soltan, M. Rajewska, „Designing Prototype of the Spartan II FPGA Slice with the Current-Mode Gates” Proc. IEEE Int. Conf. ICCSC’2002, pp. 182-185, St.-Petersburg 2002 [9] D. Gretkowski, O. Maslennikow, „Designing and Testing the Prototype of Reprogrammable Chip Based on the Current-Mode Gates” Proc. 7 Int. Conf. CADSM’2003, pp. 434-437, Lwów 2003 [10] O. Maslennikow, P. Soltan, „Automated Implementation of Digital Circuits in Current-Mode FPGA Chips” Proc. 7 Int. Conf. CADSM’2003, pp. 223-225, Lwów 2003 [11] O. Maslennikow, D. Gretkowski, P. Pawlowski, „Current-Mode Circuits for Multiple-Valued Logic and Residue Number System Arithmetic” Proc. 10-th Int. Conf. MIXDES’2003, pp. 182-187, 2003 III Krajowa Konferencja Elektroniki — 11 —