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

Podobne dokumenty