Podstawy Techniki Cyfrowej i Mikroprocesorowej 1
Transkrypt
Podstawy Techniki Cyfrowej i Mikroprocesorowej 1
Układy FPGA Programowalne układy cyfrowe – Studia niestacjonarne II – Wykład 7 Charakterystyczne dla większości układów FPGA ułoŜenie komórek logicznych oraz traktów połączeniowych dr inŜ. Sławomir Sambor [email protected] ITA, budynek C-5 pokój 708, Tel. 0 71 320 30 78 http://zstux.ita.pwr.wroc.pl/slawek/ FPGA (Field Programmable Gate Array) - programowalne matryce bramkowe 1 Schemat blokowy CLB w układach XC3000 Układy FPGA firmy Xilinx Xilinx – światowy lider wśród producentów układów FPGA. Wszystkie dotychczas produkowane przez Xilinx'a układy FPGA mają wewnętrzną pamięć konfiguracji typu SRAM, wymagają wiec stosowania zewnętrznych pamięci konfigurujących (konfiguratorów). Rodzina XC3000 Podstawowymi elementami logicznymi układów rodziny XC3000 są konfigurowalne bloki logiczne CLB (Configurable Logic Block). Komunikację pomiędzy poszczególnymi blokami logicznymi CLB zapewniają pionowe i poziome trakty komunikacyjne, przy czym dostępne są dwa rodzaje takich traktów: • lokalne trakty komunikacyjne zapewniające połączenia miedzy sąsiednimi CLB, • szybkie trakty połączeniowe dalekiego zasięgu, nazywane przez producenta długimi liniami połączeniowymi (LongLines) Budowa komórek wejściowo-wyjściowych układów XC3000 W komórce moŜna zaprogramować: - podciąganie napięcia na wyjściu do poziomu odpowiadającego logicznej „l", - szybkość narastania sygnału na wyjściu bufora trój stanowego, - polaryzacje sygnałów sterujących buforem wyjściowym i wejściowym wyjściowego przerzutnika D. Konfigurowalny blok logiczny CLB ma pięć wejść i dwa wyjścia. Zawiera dwa generatory funkcji logicznych, czyli elementów realizujących dowolne funkcje logiczne. Do tego celu zastosowano tablice wartości funkcji LUT o modyfikowanej zawartości. W zaleŜności od konfiguracji CLB liczba wejść do generatora funkcji logicznych moŜe wynosić 4 lub 5, a liczba wyjść odpowiednio l lub 2. W jednym z trybów pracy CLB moŜna takŜe wykorzystać obydwa generatory funkcji do realizacji dwóch róŜnych funkcji tych samych czterech wejściowych sygnałów logicznych. Wówczas sygnałem podawanym na piąte wejście CLB moŜe być wybierana funkcja „aktywna" w danej chwili. W kaŜdym trybie pracy CLB moŜna wykorzystać dwa sygnały sprzęŜenia zwrotnego QX i Q Y, zapamiętywane na wyjściach przerzutników wbudowanych w CLB Układy rodziny XC3000 są wyposaŜone w dwa globalne bufory sygnałów wejściowych oraz wewnętrzne magistrale trójstanowe, pozwalające tworzyć funkcje logiczne AND dołączonych do nich sygnałów. Wewnętrzne bufory trójstanowe są ulokowane wzdłuŜ poziomych traktów połączeniowych, do których są dołączone takŜe pasywne elementy „podciągające" napięcie linii do poziomu odpowiadające-go logicznej „l". Rodziny XC4000E, XC4000X, XC4000XLA i XC4000XV Architektura tych układów jest typową dla układów FPGA co oznacza, Ŝe konfigurowalne elementy logiczne układów są rozmieszczone w postaci regularnej matrycy bloków logicznych CLB, a komunikację miedzy nimi zapewniają pionowe i poziome trakty połączeniowe o róŜnym zasięgu i liczbie linii. Trakty połączeniowe narysowane na czarno są dostępne tylko w układach XC4000X, pozostałe występują w układach obydwu rodzin. W układach XC4000E sąsiadujące bloki CLB nie mają bezpośredniej komunikacji między sobą co powoduje, Ŝe lokalne połączenia pomiędzy blokami CLB zajmują niewielkie zasoby linii połączeniowych nazwanych przez producenta pojedynczymi - single (nazwa pochodzi od długości linii wyraŜonej odstępami pomiędzy CLB) Podstawy Techniki Cyfrowej i Mikroprocesorowej 1 Budowa matrycy połączeniowej PSM Linie o pojedynczej i podwójnej długości wchodzące w skład pionowych i poziomych traktów połączeniowych mogą być ze sobą łączone w celu przesyłania sygnałów miedzy blokami CLB leŜącymi w róŜnych wierszach i kolumnach matrycy komórek logicznych. Odpowiednie łączenie linii umoŜliwiają programowalne matryce połączeniowe PSM (Programmable Switch Matrix) Uproszczony schemat blokowy CLB Na wejściu CLB zastosowano dwie 4-wejściowe tablice LUT, w których mogą być zapisane wartości funkcji kombinacyjnych sygnałów G1...G4 oraz F1...F4. W trzeciej, dodatkowej tablicy LUT moŜe być generowana funkcja kombinacyjna trzech sygnałów: F', G' i Hl. Zastosowanie tej tablicy LUT umoŜliwia realizację w pojedynczej CLB funkcji logicznych maksymalnie 9-ciu zmiennych, jakie są dość często spotykane w praktyce (np. generator parzystości). Na wyjściach bloków CLB znajdują się dwa przerzutniki taktowane wspólnym sygnałem zegarowym. Programowane inwertery na wejściach zegarowych pozwalają jednak dobrać indywidualnie fazę sygnału taktującego dla kaŜdego z przerzutników. W układach XC4000X przerzutniki moŜna skonfigurować takŜe do pracy w trybie rejestru zatrzaskowego (latch). Przerzutniki mogą być takŜe asynchronicznie zerowane lub ustawiane, o czym decydują bloki sterujące dystrybucją sygnału SR/Ho. Sygnały zerujące/ustawiające przerzutniki mogą być wytwarzane dla kaŜdego CLB niezaleŜnie, są to więc sygnały lokalne. Przekształcenie ich w sygnały globalne lub o większym zasięgu wymaga zajęcia którejś linii (lub kilku linii) w traktach połączeniowych. Oprócz sygnałów lokalnych w układach XC4000X/XC4000E dostępny jest globalny sygnał zerujący/ustawiający przesyłany linią wydzieloną z podstawowych zasobów połączeniowych. Uaktywnienie tego sygnału powoduje ustawienie wyjść przerzutników zgodnie z konfiguracją bloków rozprowadzających lokalne sygnały zerujące/ustawiające. Przykładowa konfiguracja pamięci RAM o pojemności 32 bitów Budowa komórek wejściowo-wyjściowych w układach XC4000E i XC4000X Rezygnując z części zasobów logicznych CLB, wejściowe tablice LUT moŜna skonfigurować jako synchroniczne, dwuportowe pamięci RAM o pojemności: 16x2 bity, 32x1 bit lub 16x1 bit. W przypadku wybrania konfiguracji pamięci 16x1 bit drugą tablice LUT moŜna wykorzystać do realizacji funkcji logicznej 5-ciu zmiennych. W trybie dwuportowym pamięć RAM moŜna wykorzystać jako pamięć kolejkową FIFO lub jako pamięć z moŜliwością jednoczesnego zapisu i odczytu, przy czym adresy zapisu i odczytu mogą być róŜne. Magistrala połączeniowa VersaRing Magistrala połączeniowa VersaRing otacza matrycę bloków CLB jednocześnie oddzielając je od komórek wejściowo-wyjściowych. Dzięki temu zmiany wprowadzane w strukturze logicznej projektu nie wpływają na sposób dołączenia sygnałów do wyprowadzeń układu Bloki WED (Wide Edge Decoders), to specjalizowane bloki programowanych dekoderów (moŜe ich być maksymalnie 32), które moŜna wykorzystać do budowy dekoderów o duŜej liczbie wejść (maksimum 132, w XC4052X). Zaznaczone na czarno trakty połączeniowe są dostępne tylko w układach rodziny XC4000X. Podstawy Techniki Cyfrowej i Mikroprocesorowej Alternatywnymi do VersaRing zasobami połączeniowymi pomiędzy komórkami, wejściowowyjściowymi i CLB są linie bezpośrednich wejść i wyjść, dostępne w układach XC4000X 2 Rodzina XC5200 Układy rodziny XC5200 zaprojektowano opierając się na uproszczonej architekturze układów XC4000. Konstruktorzy układów rodziny XC5200 zachowali w nich wiele cech pierwowzorów, lecz wskutek wprowadzonych uproszczeń znacznie obniŜyli cenę nowych układów. Zrezygnowano z implementacji w tablicach LUT bloków pamięci RAM i dekoderów krawędziowych WED oraz uproszczono system generacji przeniesień pomiędzy blokami CLB Podstawowe bloki logiczne, nazywane VersaBlock, składają się z czterech komórek logicznych oraz matrycy połączeniowej LIM (Local Interconnect Matrix). Na wejściu kaŜdej komórki logicznej jest 4-wejściowa tablica LUT, a na wyjściu przerzutnik D. Równoległe połączenie dwóch tablic LUT pozwala na utworzenie jednej tablicy 5-wejściowej. Zasoby połączeniowe w układach XC5200 Połączenia o dalekim zasięgu umoŜliwia matryca GRM (General Routing Matrix) dołączona za pomocą 24-liniowego lokalnego traktu połączeniowego do VersaBlocku. Budowa komórek logicznych układach KC5200 Na wyjściu kaŜdej z komórek logicznych znajduje się bufor trójstanowy, za pomocą którego moŜna przekazywać sygnały na wybrane długie linie pionowych i poziomych traktów połączeniowych TS. Wszystkie bufory w bloku CLB są uaktywniane jednocześnie sygnałem generowanym lokalnie wewnątrz bloku. Podstawy Techniki Cyfrowej i Mikroprocesorowej Budowa komórek wejściowo-wyjściowych w układach XC5200 Komórki wejściowo-wyjściowe w układach XC5200 oddzielono od bloków CLB za pomocą dedykowanej matrycy połączeniowej VersaRing. Układy rodziny XC5200 wyposaŜono w cztery globalne linie słuŜące do rozprowadzenia sygnałów zegarowych. Sygnały przesyłane globalnymi liniami zegarowymi moŜna takŜe wykorzystać przy generowaniu funkcji logicznych i sterujących w blokach CLB . W układach XC5200 zastosowano takŜe linię globalną dla sygnału zerującego rejestry w komórkach logicznych oraz dla sygnału blokującego prace wszystkich wyjściowych buforów trójstanowych w komórkach wejściowo-wyjściowych. 3