Projekt i weryfikacja praktyczna podstawowych - kik
Transkrypt
Projekt i weryfikacja praktyczna podstawowych - kik
Robert Berezowski Magdalena Rajewska Dariusz Gretkowski Piotr Pawłowski Politechnika Koszalińska Wydział Elektroniki ul. Śniadeckich 2, 75-453 Koszalin email: [email protected] Projekt i weryfikacja praktyczna podstawowych bloków układów FPGA zbudowanych w oparciu o bramki prądowe Słowa kluczowe: logika prądowa, bramki prądowe, układ FPGA, testowanie układów FPGA STRESZCZENIE W niniejszej pracy przedstawiono podstawowe bloki układu reprogramowalnego FPGA zbudowane w oparciu o bramki prądowe, oraz ich realizację i weryfikację praktyczną w układzie scalonym ASIC. Prowadzone badania zostały wykonane w ramach projektu badawczego KBN 3T11B 059 26, w którym autorzy pełnili role wykonawców. Wyniki badań potwierdzają tezę, iż układy cyfrowe zbudowane z bramek prądowych generują kilkukrotnie mniejsze zakłócenia w porównaniu z ich odpowiednikami napięciowymi, co pozwała na stosowanie bramek prądowych w mieszanych jednoukładowych systemach analogowo-cyfrowych. 1. WPROWADZENIE Szybki rozwój współczesnej technologii VLSI już teraz umożliwia realizację całego wyspecjalizowanego systemu na jednym podłożu (ang. System-on-Chip). Głównym przeznaczeniem takich systemów jest praca z rzeczywistymi sygnałami. Z tego powodu realizacja większości zadań współczesnego przetwarzania sygnałów wymaga wykorzystania mieszanych systemów obliczeniowych składających się z części cyfrowej wykonującej obliczenia i części analogowej stanowiącej interfejs pomiędzy częścią cyfrową, a zewnętrznym światem sygnałów analogowych. Jednak na przeszkodzie do praktycznej realizacji mieszanego jednoukładowego systemu SoC stoi problem zmniejszenia wpływu części cyfrowej układu na jego część analogową (tzw. zakłóceń podłożowych). Skutecznym sposobem rozwiązania wymienionego problemu jest realizacja cyfrowej części układu w oparciu o bramki prądowe [1,2,3], czyli takie, w których zero logiczne odpowiada prądowi równemu zero, a jedynka – pewnej, arbitralnie przyjętej wartości prądu. Główną cechą bramek prądowych jest stała wartość pobieranego prądu w różnych trybach ich pracy (np. w stanach logicznego zera i jedynki). Z tego powodu cechują się one wielokrotnie mniejszym poziomem pasożytniczych sprzężeń podłożowych, stąd w znacznie mniejszym stopniu zakłócają układy analogowe w porównaniu z układami napięciowymi. Oprócz tego, wcześniejsze badania sposobów projektowania cyfrowych układów prądowych, jak też eksperymenty elektroniczne z wyprodukowanymi w technologiach CMOS 0,8 μm i 0,6 μm bramkami i układami prądowymi wykazały, że standardowe układy cyfrowe (np. sumatory, III Krajowa Konferencja Elektroniki —1— bloki operacyjne ALU itd.) zbudowane w oparciu o bramki prądowe są prostszymi logicznie (pod względem liczby wykorzystanych bramek do 50%) od ich prototypów zbudowanych w oparciu o klasyczne bramki napięciowe. Stwarza to podstawę do opracowania mieszanych analogowo-cyfrowych układów na wspólnym podłożu, w tym układów reprogramowalnych, w których część analogowa jest zbudowana w oparciu o standardowe analogowe układy reprogramowalne FPAA, natomiast cyfrowa część przedstawia sobą układ FPGA zbudowany w oparciu o bramki prądowe. W wyniku przeprowadzonej analizy istniejących rodzin układów FPGA różnych firm, jako prototyp funkcjonalny układu prądowego FPGA wybrany został blok SLICE układu FPGA Spartan II firmy Xilinx. Wybór rzeczywistego 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, a opracowane reguły algebry prądowej i sposoby minimalizacji funkcji logicznych, umożliwiają otrzymanie układów prądowych o parametrach porównywalnych z ich prototypami napięciowymi. W związku z tym, w niniejszej pracy przedstawiono podstawowe bloki układu reprogramowalnego funkcjonalnie zgodne z odpowiednimi blokami układu Spartan II, lecz zbudowane w oparciu o bramki prądowe, oraz ich realizację i weryfikację praktyczną w układzie scalonym ASIC. Wyniki badań potwierdzają tezę, iż układy cyfrowe zbudowane z bramek prądowych generują kilkukrotnie mniejsze zakłócenia w porównaniu z ich odpowiednikami napięciowymi (przykładowo, fluktuacje wartości natężenia prądu w linii zasilania układów prądowych mieszczą się w zakresie około 10% wartości natężenia prądu przypisanej jedynce logicznej), co pozwala na stosowanie bramek prądowych w mieszanych systemach analogowo-cyfrowych. OPIS UKŁADU SCALONEGO 5 4 3 2 1 12 84 83 82 81 80 UmemCLK1 GND UmemCLK2 UmemIN YmemA YmemT1 YmemT2 YmemT3 VDD YmemOUT 2. 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 UKŁAD ASIC ULFIFO YLFIFO ULFRAM YLFRAM ULGFIFO YLGFIFO ULGRAM YLGRAM ULROM YLROM 39 40 41 42 43 44 45 46 47 48 Ibias WBX WBY WCE WCIN WCLK WF1 WF2 WF3 WF5 WG1 WG2 WG3 WGSR WLgtest11 WLgtest13 WLgtest16 WSR Wtest08 Wtest09 Rys. 1. Opis wyprowadzeń układu ASIC 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 ZCOUT ZF5 ZLgtest10 ZLgtest12 ZLgtest14 ZLgtest15 ZLgtest17 Ztest01 Ztest02 Ztest03 Ztest04 Ztest05 Ztest06 Ztest07 ZX ZXB ZXQ ZY ZYB ZYQ W obrębie prac nad weryfikacją praktyczną opracowanych układów prądowych opracowano projekt układu ASIC do testowania prototypów prądowych bloków SLICE układu FPGA SPARTAN II, którego wyprowadzenia przedstawiono na Rys. 1. Projekt wykonano kierując się regułami procesu technologicznego CMOS AMS 0.6μ firmy Austria Mikro Systeme, o minimalnej długości kanału tranzystora MOS 0,6 μm. Zaprojektowany układ ASIC zawiera jeden blok SLICE z odpowiednim fragmentem pamięci konfiguracyjnej. Wyprowadzenia układu scalonego umożliwiają dostęp do wszystkich zewnętrznych wejść i wyjść bloku SLICE i pamięci konfiguracyjnej. Ponadto, układ zawiera 17 dodatkowych wyprowadzeń ułatwiających testowanie bloku SLICE. Układ SLICE posiada 14 wejść i 8 wyjść prądowych oraz 32 wejścia pamięci konfiguracyjnej. Przy projektowaniu struktury wewnętrznej bloku SLICE, szczególną uwagę zwrócono na opracowanie możliwie najprostszego, pod względem liczby bramek, układu LUT (ang. Look-Up-Table). Blok LUT pełni w układzie SLICE funkcję 8-komórkowego bloku pamięci typu RAM, ROM lub FIFO, lub funkcję jednostki arytmetyczno-logicznej. Pełny funkcjonalny analog 8-komórkowego bloku LUT zbudowany w oparciu o bramki prądowe przedstawiony został na Rys. 2. Zawiera on osiem przerzutników typu D i niezbędne —2— Rys. 2. Schemat bloku LUT zbudowanego w oparciu o bramki prądowe układy sterujące. Przerzutnik sterowany zboczem sygnału zegarowego jest podstawowym elementem tego układu. Przerzutnik ten jest zbudowany z dwóch połączonych szeregowo przerzutników typu D (Rys. 3) działających w trybie master-slave. Na schemacie przedstawionym na Rys. 2, sygnały G1-G3 oznaczają wejścia układu LUT, O – wyjście układu, RAM, ROM i FIFO – wejścia sterujące określające tryb pracy układu, DI – wejście układu, WS – wejście sterujące zapisem i odczytem danych do układu LUT. Dekoder układu LUT (DC) ma 8 wyjść i jest zbudowany na bazie dekodera dwójkowego przedstawionego na Rys. 4 (bez bramek inwerterów na wyjściu). Oprócz układu LUT opracowano bloki prądowe szybkiego przeniesienia oraz sterowania układu SLICE. W wyniku powstał prototyp prądowy całego układu SLICE przedstawiony na Rys. 5, gdzie grube linie oznaczają magistrale. Dodatkowo, na Rys. 5 pokazano przepływ sygnałów w układzie SLICE przy realizacji w nim 2-bitowego fragmentu sumatora równoległego (linie kreskowane), gdzie przez Ax, Bx, Ax+1, Bx+1 oznaczono odpowiednie bity argumentów A i B, Sx i Sx+1 reprezentują 2-bitowe wyjście sumatora, a Coutx+1 reprezentuje wartość przeniesienia wyjściowego. Rys. 3. Schemat przerzutnika D pracującego w układzie LUT Rys. 4. Schemat dekodera DC z układu LUT Przerzutniki PW1 i PW2 na Rys. 5 są przerzutnikami typu D, które mogą być konfigurowane jako przerzutniki przełączane zboczem lub poziomem sygnału zegarowego. Poza tym, istnieje możliwość ustawienia tych przerzutników w stan logicznego zera lub III Krajowa Konferencja Elektroniki —3— jedynki za pomocą wejść S i R. Przykładowa realizacja opisanych przerzutników na bramkach prądowych przedstawiona jest na Rys. 6. Rys. 5. Realizacja fragmentu wielobitowego sumatora (2-bity) zbudowanego w oparciu o prądowy układ FPGA Należy zaznaczyć, że wprowadzenie tranzystorów do układu prądowego SLICE spowodowane jest zastosowaniem pamięci konfiguracyjnej pracującej w trybie napięciowym (Rys. 7). Badania wykazały, że najlepszym rozwiązaniem technicznym ze względu na pobór prądu i zajmowaną w układzie scalonym powierzchnię, jest realizacja komórek tej pamięci w oparciu o klasyczne bramki napięciowe. Ponieważ podczas normalnej pracy układu (w odróżnieniu od trybu programowania) zawartość pamięci konfiguracyjnej się nie zmienia, bramki nie zmieniają swojego stanu, tzn. nie generują zakłóceń. Rys. 6. Realizacja przerzutników PW1 i PW2 3. Rys. 7. Realizacja fragmentu pamięci konfiguracyjnej TESTOWANIE UKŁADÓW PRĄDOWYCH Dla testowania układu zaprojektowana została płytka pomiarowa zawierająca 24 konwertery sygnału z napięcia na prąd i 18 konwerterów z prądu na napięcie oraz umożli- —4— wiająca umieszczenie i połączenie między sobą dwóch układów scalonych w celu zwiększenia liczby bloków SLICE. Zdjęcie płytki pomiarowej z układem scalonym przedstawiono na Rys. 8. W projekcie płytki drukowanej przewidziano zastosowanie trzech odrębnych układów zasilania. W celu zwiększenia dokładności pomiarów dynamicznych przebiegów prądowych badanego układu na płytce umieszczono różnicowe wzmacniacze pomiarowe. Realizacja procedury pomiaru parametrów elektronicznych układu była wspomagana przez pakiet oprogramowania WaveStar firmy Tektronix zainstalowany na komputerze PC i współpracującego poprzez złącze RS232 z dwukanałowym oscyloskopem cyfrowym TDS 340A. Podczas testowania układu w sposób eksperymentalny został określony najlepszy poziom jedynki logicznej (dla technologii realizacji układu i wybranych rozmiarów tranzystorów), który wynosi 30 μA. Przy takim poziomie jedynki logicznej jednowyjściowa bramka pobiera prąd 30 μA od źródła zasilania, i prąd ten rośnie wprost proporcjonalnie ze zwiększeniem liczby wyjść bramki. W ramach prac nad badaniem zakłóceń podłożowych w wyprodukowanym układzie scalonym potwierdzono, że dla takiego samego napięcia zasilania oraz czasu narastania przebiegu cyfrowego, układy prądowe generują kilkukrotnie mniejsze (co do wartości międzyszczytowej) zakłócenia w porównaniu z ich odpowiednikami napięciowymi. Stwierdzono, że wartość zakłóceń, oprócz odległości odbiornika od źródła oraz stromości zboczy sygnału cyfrowego, zależy również od przyjętego poziomu logicznej jedynki. Należy zaznaczyć, że w przypadku układów pracujących w trybie prądowym poziom ten może być arbitralnie przyjęty, a nawet może być zmieniany w trakcie pracy układu. Tym samym rezygnując z dużej szybkości działania układu, dla prądu jedynki logicznej o wartości dużo mniejszej od maksymalnej można uzyskać nawet o kilka rzędów mniejsze zakłócenia w porównaniu z generowanymi przez klasyczne bramki napięciowe. Dodatkową zaletą zmniejszenia poziomu prądu odpowiadającego logicznemu 1, a tym samym prądu pobieranego przez bramkę, jest zmniejszenie wartości prądu pobieranego ze źródła zasilania przez cały układ. W wyniku badań eksperymentalnych ustalono, że fluktuacje wartości prądu w linii zasilania bramki prądowej mieszczą się w zakresie około 10% prądu jedynki logicznej, co oznacza przykładowo wahania od 36 do 44 μA dla prądu jedynki logicznej wynoszącego 40 μA. Z kolei dla bramek napięciowych te fluktuacje osiągają wartości nawet do 1mA. Rys. 8. Zdjęcie płytki pomiarowej z układem scalonym III Krajowa Konferencja Elektroniki —5— W celu sprawdzenia możliwości funkcjonalnych układu zaprojektowane i zrealizowane zostało stanowisko pomiarowe składające się (oprócz wyżej opisanej płytki pomiarowej) z płytki Xess (XS40 v1.1) zawierającej odpowiednio zaprogramowany układ FPGA Xilinx XC4010XLPC84-3 oraz komputer klasy PC AT ze specjalnie opracowanym przez członków zespołu badawczego programem komunikacyjno-testowym. Program ten pozwala na przesyłanie przez port równoległy PC w jednym cyklu 24 bitów informacji testowej i odebranie 18 bitów wyników. Przewidziano także możliwość wcześniejszego przygotowania danych testowych w postaci tablicy (której przykład pokazano na Rys. 9), do której mogą być w trakcie testowania dopisywane rezultaty. Testowanie możliwości funkcjonalnych układu scalonego polegało na implementacji w nim różnych układów cyfrowych, zaczynając od najprostszych (pojedyncza bramka logiczna) po bardziej skomplikowane – układy sumatorów różnego typu i bloki mnożenia dwóch liczb dwubitowych. Implementacja dowolnego z wymienionych układów wymagała sformowania dwóch tablic danych przedstawionych w postaci plików binarnych. Pierwsza tablica odpowiada za konfigurację układu scalonego – zawiera ona wartości wprowadzane do pamięci konfiguracyjnej. Zawartośc tej tablicy można określić „ręcznie” lub za pomocą opracowanej w ramach projektu badawczego zautomatyzowanej procedury projektowania i implementacji w układów prądowych FPGA, która jest szczegółowo opisana w pracy [4]. Druga tablica decyduje, jakie wartości mają pojawiać się na wejściach odpowiednio skonfigurowanego już układu. Przykłady obu tablic dla konfiguracji i testowania sumatora szeregowego w układzie zawierającym jeden blok SLICE przedstawiono niżej: Tablica 1. – Konfiguracja układu SLICE: 0000000010000000010000110000000 Tablica 2. Dane wejście F1 wejście F2 wejście G1 wejście G2 testowe: „01010101” „00110011” „00110011” „01010101” Otrzymane wyniki testowania sumatora są następujące: wynik: wyjście X „01100110” wyjście Y „01110111” wyjście Cout „00010001” Rys. 9. Okno programu komunikacyjnego do testowania układów prądowych Praca jest wykonana w ramach grantu KBN 3T11B 059 26 BIBLIOGRAFIA [1] Maslennikow O. Approaches to Designing and Examples of Digital Circuits Based on the Current-Mode Gates. Data Recording, Storage & Processing, V.3, No.2, 2001, pp.84-98. [2] O. Maslennikow, P. Pawłowski, P. Sołtan, R. Berezowski, “Current-Mode Digital Gates and Circuits: Conception, Design and Verification”, Proc. IEEE Int. Conf. on Electronic Circuits and Systems, ICECS’2002, Dubrovnik, Croatia 2002, vol. 2, str. 623-626. [3] O. Maslennikow, R. Berezowski, P. Soltan, M. Rajewska. Designing Prototype of the Spartan II FPGA Slice with the Current-Mode Gates. Proc. of the IEEE Int.Conf. on Circuits and Systems for Communication, ICCSC’2002, ST.-Petersburg, pp. 182-185. [4] P. Sołtan, O. Maslennikow, R. Berezowski, M. Rajewska. Automatyzacja procesu implementacji układów cyfrowych w technologii prądowych układów FPGA. Prace I Konferencji Krajowej Elektroniki, KKE’2002, Kołobrzeg, 2002, pp.843-848. —6—