Piotr Pawłowski Michał Białko Wydział Elektroniki Politechnika Koszalińska ul. Partyzantów 17, 75-411 Koszalin Oleg Maslennikow Przemysław Sołtan Programowane połączenia w układach FPMA Słowa kluczowe: Mieszane analogowo cyfrowe układy scalone, układy FPGA, układy FPMA STRESZCZENIE W pracy przedstawiona jest koncepcja rozprowadzania sygnałów w mieszanym analogowo-cyfrowym układzie reprogramowalnym zbudowanym z użyciem bramek cyfrowych pracujących w trybie prądowym. Zaprezentowana została koncepcja oraz układy wykonawcze dla realizacji programowalnych połączeń wewnątrz bloków oraz części cyfrowej układu FPMA, jak również pomiędzy tymi blokami, w oparciu o przełączniki macierzowe i multipleksery dostępu do magistral. 1. WPROWADZENIE Szybki rozwój współczesnej technologii VLSI przyczynił się do pojawienia się programowalnych cyfrowych układów scalonych FPGA, których struktura wewnętrzna może być szybko i wielokrotnie zmieniana programowo przez użytkownika w celu dopasowania jej do wykonywanych zadań [1, 2, 3, 5, 6]. Stworzyło to możliwość realizacji programowalnych mieszanych analogowo-cyfrowych układów scalonych FPMA poprzez umieszczenie układów FPGA i FPAA na wspólnym podłożu oraz ich połączenie przez programowalne przetworniki analogowo-cyfrowe [4]. a) PAMIĘĆ KONFIGURACYJNA UKŁADU b) PAMIĘĆ KONFIGURACYJNA UKŁADU SYGNAŁY STEROWANIA KONFIGURACJĄ UKŁADU SYGNAŁY STEROWANIA KONFIGURACJĄ UKŁADU CZĘŚĆ ANALOGOWA ADC/DAC CZĘŚĆ CYFROWA Rys. 1. Klasyczna architektura układów FPGA (a) oraz proponowana architektura układów typu FPMA (b) Na rys. 1a przedstawiono najbardziej obecnie popularną architekturę układu FPGA [7]. Jest to struktura regularna, symetryczna. Struktura tego typu została wprowadzona po raz II Krajowa Konferencja Elektroniki 1
pierwszy przez firmę XILINX w 1986 roku i obecnie można ją spotkać w kilku rodzinach układów innych firm, jak Altera, Quicklogic. Układy FPGA o tej architekturze są układami matrycowymi złożonymi z pewnej liczby programowalnych cyfrowych bloków, które ułożone są w rzędy i kolumny tworząc tablicę, a także z otaczających tę tablicę bloków wejścia-wyjścia. W celu przeprowadzenia sygnałów pomiędzy blokami oraz, układ FPGA zawiera rozproszoną strukturę połączeń. Połączenia w takiej strukturze nie są z góry sztywno określone, tylko wykonywane z segmentów. Segmenty należą do magistral stanowiących wiązki przewodów różnej długości wykonywanych na warstwach metalizacji struktury układu scalonego. Segmenty połączeń mogą być ze sobą łączone za pośrednictwem tzw. przełączników macierzowych (ang. switch box, S-Block) (oznaczone jako kółka z krzyżykiem na rys 1). Układy oraz, podczas konfiguracji układu, dołączane są do magistral za pośrednictwem układów multiplekserów. Opis katalogowy firmy Xilinx [1] przedstawia budowę przełącznika macierzowego w zarysie (rys. 2a), gdzie elementy ustawione na skrzyżowaniach linii poziomych i pionowych (dla uproszczenia wyłącznie na przekątnej) zbudowane są z sześciu tranzystorów, w ten sposób, aby możliwe było dowolne połączenie sąsiadujących segmentów. W pracy [7] zaprezentowane jest podobne rozwiązanie, gdzie zaznaczono więcej układów kluczy, chociaż nie ma możliwości zrealizowania dowolnego połączenia w ramach zbioru segmentów dochodzących do bloków (nazwanych tam DMC). W konkretnym układzie, o określonej liczbie i przeznaczeniu wejść oraz wyjść komórek i, nie wszystkie połączenia są konieczne, a niektóre należy uznać za niewłaściwe, jak np. połączenia pomiędzy wyjściami. Widać stąd, że możliwa jest optymalizacja liczby i rozmieszczenia kluczy, tak aby zmniejszyć powierzchnię zajmowaną przez układ, ponieważ każdy klucz w układzie FPGA, to nie tylko tranzystor przełączający, ale także dodatkowa komórka pamięci konfiguracyjnej. a) b) c) d) Rys. 2. Ogólne zasady konstrukcji przełączników macierzowych (a), przykładowa realizacja punktu łączeniowego (b), sterowanie przełącznikami w oparciu o wybrane konfiguracje dla przełącznika macierzowego (c) i dla multipleksera dostępu do magistrali (d) Dodatkowo, zgodnie z powyższym nie wszystkie kombinacje połączeń możliwe są do wykorzystania w poszczególnych trybach pracy komórek i, a także nie wszystkie mają zastosowanie w typowych implementacjach. Jest to okazja do poczynienia dalszej oszczędności w liczbie komórek pamięci, przez zastosowanie dekodera wybierającego określone kombinacje przełączników, na podstawie liczb binarnych zapisanych w mniejszej liczbie komórek pamięci, w porównaniu z przypadkiem, gdy każdym kluczem steruje odrębna, dedykowana komórka pamięci. Poglądowy schemat ilustrujący ww koncepcję, dla przełącznika macierzowego i multipleksera dostępu do magistrali, prezentuje rys. 2c. Istotną sprawą jest w tym przypadku wybór konfiguracji kluczy dla różnych stanów dekodera i ewentualnie usunięcie niektórych kluczy z przełącznika macierzowego. W przypadku układów rekonfigurowalnych droga sygnału nie jest znana przy tworzeniu topografii układu scalonego. Jest ona znana po wyborze układu (implementacji), jaki ma być zrealizowany na danym układzie. Na etapie projektowania topografii można próbować przewidzieć drogi 2
sygnałów występujące w typowych realizacjach. Stąd, projektowanie układów scalonych rekonfigurowalnych jest najczęściej procesem przeprowadzanym w oparciu o doświadczenie zebrane przy projektowaniu i praktycznym wykorzystaniu układów wykonanych wcześniej. W przypadku układów znanych firm, takich jak Xilinx, Altera itp. odpowiada to pracy przy projektowaniu kolejnych serii lub generacji układów, podczas której można bazować na znajomości możliwości wykorzystania serii przekazanych już do stosowania w praktyce. 2. KONFIGUROWALNE POŁĄCZENIA W UKŁADACH FPMA ZBUDOWANYCH Z BRAMEK PRĄDOWYCH W opracowywanych układach FPMA, podobnie jak w układach FPGA programowalne bloki tworzą regularną siatkę, przyjęto więc podobne jak tam rozwiązanie, że magistrale biegną pionowo oraz poziomo, wzdłuż krawędzi bloków, umożliwiając wykonywanie złożonej sieci połączeń obejmującej całą strukturę układu (por. rys. 1b). Konfigurowalne bloki logiki zbudowane z bramek prądowych oraz podstawowe podukłady konfigurowalnych bloków analogowych przedstawiono w pracach zespołu projektującego opisywane tu układy FPMA [3, 4, 5, 6]. O wyborze bramek cyfrowych pracujących w trybie prądowym na podstawowe elementy, z których składa się część cyfrowa układu FPMA zadecydował fakt, że podczas pracy, w znacznie mniejszym stopniu zakłócają one układy analogowe umieszczone na tym samym podłożu [3]. 2.1. Połączenia wewnątrz bloków części cyfrowej układu FPMA Istotą koncepcji zastosowanych bramek jest stała (chociaż niewielka) wartość prądu pobieranego przez tę bramkę z linii zasilania, w każdych warunkach, również podczas procesu zmiany stanu. Odróżnia to bramki prądowe od klasycznych bramek napięciowych, które podczas zmiany stanu pobierają impulsowo dosyć znaczny prąd (rzędu 500 μa), natomiast pomiędzy chwilami przełączeń pobierają tylko niewielki prąd związany z upływnościami. W układzie cyfrowym zbudowanym z bramek prądowych poziomy sygnałów logicznych kodowane są przez zakresy wartości prądu w połączeniu. Układ bramki prądowej zbudowany jest w ten sposób, aby w linii sygnałowej dołączonej do wejścia rozróżniać dwa zakresy prądu przyporządkowane stanom logicznym 1 i 0, a jednocześnie zapewniać poziomy nominalne (typowe) w linii łączącej wyjście tej bramki z następną bramką, co zilustrowano symbolicznie na rys. 3a, gdzie typowe wartości I Htyp dla stosowanych realizacji fizycznych wybierane są z zakresu od 10 μa do 100 μa globalnie dla całego układu FPMA. a) 0 na wejściu I o 1 na wejściu b) sygnał z pamięci konfiguracyjnej I i < I Lmax I o ~I H I i > I Hmin I o ~ 0 I i < I Lmax I o ~I H I Ltyp I i I Lmax I Hmin I Htyp połączenie w bloku lub Rys. 3. Ilustracja pracy bramek prądowych wykorzystywanych w opracowywanych układach FPMA (a) oraz koncepcja programowania drogi sygnałów prądowych w blokach i (b) Wewnątrz układu i zachodzi konieczność zmiany dróg przebiegu niektórych sygnałów prądowych. W niektórych konfiguracjach w układzie po rekonfiguracji znajdą się bramki, do których wyjść nie podłączono żadnej bramki. Jeżeli na wejściu takiej bramki pojawi się stan logiczny 0 (por. rys. 3b) to przy braku możliwości wyprowadzenia prądu wyjściowego do obciążenia zakłócona byłaby zasada niezmienności prądu pobieranego z linii zasilania (por. rys 1a i b), która w dużym stopniu zapewnia małe zakłócenia przenoszone do układów analogowych umieszczonych na tym samym podłożu. W opisanym przypadku konieczne jest zastosowanie specjalnego modułu klucza. Rys. 4 II Krajowa Konferencja Elektroniki 3
prezentuje układ bramki, w którym wyjście out 2 jest połączone z modułem klucza zbudowanym z tranzystorów M k1 i M k2 sterowanych tym samym napięciem U klucz. Obwód wejściowy bramki tworzą tranzystory M i1 -M i4, a główny obwód wyjściowy tranzystory M o1a -M o3a. Przykładowy układ bramki prezentuje równocześnie sposób dołączania dodatkowych wyjść do bramki prądowej. W pokazany sposób, do głównego obwodu, dołączyć można dodatkowe wyjścia, tak że wyjście numer n tworzone będzie przez tranzystory M o1n -M o3n. W celu dostarczenia napięć V bias1 i V bias2, w każdym rzędzie komórek standardowych każdego bloku lub, konieczne jest wstawienie komórki układu polaryzacji, tworzonej przez tranzystory M p1 -M p5 tak, że prąd I bias ustala wartość I Htyp. Należy tu zaznaczyć, że w projekcie układu FPMA przyjęto rozwiązanie, że przełączanie podczas procesu konfiguracji układu dokonywane będzie sygnałem napięciowym (na wejściu U klucz ) zmieniającym się w pełnym zakresie napięcia zasilającego. Ponieważ proces ten nie jest przeprowadzany podczas normalnej pracy układu, więc problem zakłóceń nie jest w tym czasie istotny. V DD M p1 M p3 I bias 1:1 1:1 GND M p2 M p5 V bias1 M p4 obwód polaryzacji 2: V bias2 bramka prądowa z dwoma wyjściami in I in M i3 M i4 M i2 M i1 :1 :1:2 M o11 out 1 I out_1 M o21 M o31 :1 :2 M o12 out 2 I out_2 M o22 M o32 U klucz M k2 moduł klucza M k1 do następnej bramki Rys. 4. Realizacja CMOS bramki prądowej dla realizacji układów FPMA wraz z układem polaryzacji i ilustracją sposobu dołączania dodatkowych wyjść Innym rozwiązaniem jest układ z rys. 5, gdzie tranzystor M i2, który w układzie podstawowym ustala jeden z punktów pracy bramki ( napięcie aktywacji obwodu wejściowego) użyty został w roli jednego z kluczy M k1 układu z rys. 4. Układ bramki został powiększony o tranzystor M i5 (odpowiadający tranzystorowi M k2 z rys. 4) przełączany tym samym napięciem konfigurującym, co tranzystor M i2. a) b) 60μA I DD U klucz in V bias1 M o1 out 50μA 40μA I out M i2 30μA I in Rys. 5. M i5 M i4 M i3 M i1 V bias2 M o2 M o3 20μA 10μA I D(Mi1) I D(Mi3) 0A 0A 10μA 20μA 30μA 40μA I 50μA in Bramka prądowa z wejściem U klucz do wykonywania konfigurowalnych połączeń wewnątrz komórek oraz (a) wykres zmian wartości prądów w układzie bramki dla zmian prądu I in przy załączonym tranzystorze M i2 (b) Ze względu na szczupłość miejsca nie zostało to tutaj pokazane, ale poczyniona modyfikacja układu bramki powoduje niewielki wzrost powierzchni bramki. Z punktu widzenia topografii całego układu jest to wzrost mniejszy, niż w przypadku stosowania odrębnych modułów kluczy zbudowanych z dwóch tranzystorów każdy. Mniejszy jest też spadek napięcia, gdy zamiast połączenia szeregowego tranzystorów występuje tylko jeden 4
tranzystor (M i2 ), co wpływa na lepsze zachowanie stałości prądu I DD. Zastosowanie odrębnego modułu klucza może być jednak konieczne, gdy tylko jedno z wyjść powinno być odłączone od danego układu bramek. Część powierzchni układu lub będzie jednak wówczas nieuchronnie zajęta przez taki moduł. 2.2. Połączenia pomiędzy blokami części cyfrowej w układzie FPMA. Jak wyżej wspomniano układ bramki prądowej pracuje w oparciu o koncepcję przetwarzania prądów. Ułatwieniem w opracowywaniu koncepcji dystrybucji sygnałów pomiędzy blokami wydaje się być przyjęcie takiego samego rozwiązania jak dla rozprowadzania sygnałów wewnątrz. Występuje jednak kilka trudności związanych z przekazywaniem sygnałów między blokami w technologii prądowej. Główny problem związany jest z ograniczoną liczba linii magistrali. W przypadku dystrybuowania sygnałów prądowych, gdy wymagane jest doprowadzenie takiego samego sygnału do kilku wejść, konieczne byłoby poprowadzenie ich niezależnych kopii, a dla każdej kopii danego sygnału potrzebne jest użycie innej linii. Wymagałoby to również użycia dodatkowych układów klonujących sygnał prądowy, co w wykonanym już układzie nie jest możliwe. Ewentualnie należałoby utworzyć zestaw buforów replikujących sygnał prądowy. Prawdopodobne jest jednak, że duża liczba tych buforów byłaby niewykorzystana, co daje niepotrzebną stratę powierzchni układu scalonego. Z kolei, gdy wyjście bramki prądowej nie jest połączone z żadnym wejściem, to przy przełączaniu tej bramki prąd pobierany z linii zasilania nie miałby stałej wartości, a zachowanie stałości prądu zasilania wydatnie przyczynia się do zmniejszenia zakłóceń cyfrowych Wymienione powody wymusiły rezygnację z dystrybucji sygnałów kodowanych wartościami prądu, pomimo ważnej, dla układów mieszanych, zalety rozprowadzania stosowanych sygnałów prądowych o niewielkiej amplitudzie zmian. Rozważono możliwość sterowania linii przez sygnał napięciowy. Dostarczenie sygnału do kilku układów odbiorczych, przy ograniczonej liczbie linii połączeniowych, łatwe jest do spełnienia w technologii układów cyfrowych napięciowych, gdyż napięcie w linii pozostaje takie samo niezależnie czy za pośrednictwem kluczy (w multiplekserze i w przełączniku macierzowym) do danego wyjścia podłączonych jest kilka wejść, czy tylko jedno. Wyjście takie może również nie zostać w ogóle połączone z żadnym wejściem, jeżeli dana implementacja układu cyfrowego w układzie FPGA/FPMA tego wymaga. Rys. 6 przedstawia koncepcję wykonywania programowanych połączeń w układzie FPMA. Nadajnik linii segment połączenia przełączniki macierzowe segment połączenia Odbiornik linii Rys. 6. Koncepcja tworzenia połączeń pomiędzy blokami części cyfrowej układu FPMA Zauważmy, że w przypadku układów napięciowych sytuacja, gdy do odbiornika linii nie jest podłączony żaden nadajnik oznacza, że poziom na wejściu odbiornika linii będzie zmieniać się przypadkowo. Jeden ze stanów logicznych można jednak, wtedy, w specjalny sposób narzucić przez zastosowanie rezystora typu pull-up lub pull-down. Wartość rezystora musi być wtedy tak określona, aby dla załączonych kluczy, dla najbardziej krytycznej sytuacji, gdy na drodze sygnału jest najwięcej kluczy, możliwa była zmiana stanu odbiornika linii przy zmianie stanu nadajnika. W opisywanym układzie wykorzystano, proponowane obecnie w literaturze [8] rozwiązanie oparte na sterowaniu linii magistral danych sygnałami napięciowymi o stosunkowo małej amplitudzie. Unika się wtedy przeładowywania pojemności II Krajowa Konferencja Elektroniki 5
pasożytniczych linii w pełnym zakresie (odpowiadającym przeładowywaniu przy zmianach napięcia rzędu napięcia zasilania). Zmniejsza to opóźnienia propagacji sygnału w linii. Wadą takiego rozwiązania jest jednak większa wrażliwość na zakłócenia, które mogą dostać się do linii z zewnątrz. Wobec tego przyjęto rozwiązanie kompromisowe i zakres zmian napięcia w linii ( voltage swing ) wynosi około 2,5 V, czyli jest dwukrotnie mniejszy niż w przypadku zmian pomiędzy zerem i napięciem zasilania (5V) przy sterowaniu linii typu rail-to-rail. Sterujący sygnał napięciowy o zredukowanej amplitudzie uzyskuje się w proponowanych układach łatwo, poprzez pobranie sygnału napięciowego, który w bramce prądowej steruje obwodem wyjściowym (jest to napięcie drenu tranzystora M i1 ). Zakres zmian tego napięcia dla maksymalnych wartości jedynki logicznej (około 100 μa) wynosi 2,5V przy zasilaniu bramki napięciem 5V. Umożliwiło to zastosowanie przełączników macierzowych zbudowanych z kluczy tranzystorowych, o podobnej strukturze jak prezentowane na rys. 2. Z kolei odbiornikiem linii, czyli układem konwertującym sygnał napięciowy z powrotem na sygnał prądowy jest obwód wyjściowy bramki prądowej. Wybrano zastosowanie rezystora pull-down symulowanego przez tranzystor o prądzie drenu związanym z wartością napięcia V bias2 komórki w skład której wchodzi dany odbiornik linii. Jako opcję można tu zastosować również programowe odłączanie rezystora podczas konfiguracji układu, gdy okaże się on zbędny. 3. PODSUMOWANIE W pracy przedstawiono koncepcję rozprowadzania sygnałów w mieszanym analogowocyfrowym układzie reprogramowalnym zbudowanym z użyciem bramek cyfrowych pracujących w trybie prądowym. Zaprezentowana została koncepcja realizacji programowalnych połączeń wewnątrz bloków oraz części cyfrowej układu FPMA. Przedstawiono zmodyfikowane układy bramek prądowych przystosowane do realizacji programowanych połączeń. Przedyskutowano koncepcję dystrybucji sygnałów pomiędzy blokami i w oparciu o przełączniki macierzowe i multipleksery dostępu do magistral. Przedstawiono rozwiązanie bazujące na przesyłaniu sygnałów napięciowych o zredukowanej amplitudzie zmian napięcia i prądu w linii. Przy czym rozwiązanie takie okazało się nie tylko niezbędne, ale w naturalny sposób wynika z zasady działania nowej struktury bramek prądowych. Przedstawione propozycje uzupełniono wynikami symulacji opracowanych układów środowisku SPICE. Praca wykonana w ramach grantu KBN 7T11B 004 20 BIBLIOGRAFIA [1] The Programmable Logic Data Book, Xilinx, Inc., 1999 [2] T. Łuba, B. Zbierzchowski, Komputerowe projektowanie układów cyfrowych, WKiŁ, Warszawa 2000 [3] O. Maslennikow, P. Pawlowski, P. Soltan and R. Berezowski, Current-Mode Digital Gates and Circuits: Concept, Design and Verification, IEEE ICECS 2002, pp. 623-626 [4] R. Suszyński, B. Strzeszewski, Rekonfigurowalny potokowy przetwornik A/C, I Krajowa Konferencja Elektroniki KKE 02, pp. 377-382 [5] P. Sołtan, O. Maslennikow, R. Berezowski, M. Rejewska, Automatyzacja procesu implementacji układów cyfrowych w technologii prądowych układów FPGA, I Krajowa Konferencja Elektroniki KKE 02, pp. 843-848 [6] R. Berezowski, N. Maslennikowa, M. Białko, P. Sołtan, Realizacja logiki szybkiego przeniesienia w prototypie prądowym układu FPGA Spartan II, I Krajowa Konferencja Elektroniki KKE 02, pp. 849-854 [7] V. Baena-Lecuyer, M. A. Aguirre, A. Torralba, L. G. Franquelo and J. Faura RAISE: a Detailed Routing Algorithm for SRAM Based Field-Programmable Gate Arrays Using Multiplexed Switches, Proc. of ISCAS 98 [8] H. Zhang, V. George, J. M. Rabaey, Low-Swing On-Chip Signaling Techniques: Effectiveness and Robustness, IEEE Trans. VLSI Systems, vol. 8, No. 3, 2000, pp. 264-272 6