Układy programowalne cz. 1

Transkrypt

Układy programowalne cz. 1
2014-11-26
Układy programowalne
SPLD, CPLD, FPGA
Podział układów programowalnych
Procesor
Procesory strukturalne
PLD
ASIC/ASSP
SPLD
CPLD
Procesory proceduralne
mikroprocesor
mikrokontroler
FPGA
PROM, PLE, PLA, PAL, GAL
•
•
•
•
•
SPLD (ang. Simple Programmable Logic Device) grupa prostych programowalnych
cyfrowych układów elektronicznych pierwszej generacji.
CPLD (ang. Complex Programmable Logic Device) – złożone programowalne układy
elektroniczne.
FPGA (ang. Field Programmable Gate Array bezpośrednio programowalna macierz
bramek) – rodzaj programowalnego układu logicznego.
ASIC (ang. Application Specific Integrated Circuit) – typ elektronicznych układów
scalonych zaprojektowanych do realizacji z góry ściśle określonego zadania.
ASSP (ang. Application Specific Standard Product) rodzaj układu scalonego, który
realizuje określoną funkcję, która jest powszechnie stosowana. Przeciwieństwo
układu ASIC.
1
2014-11-26
Historia układów programowalnych
Na podstawie: C.M. Maxfield, The Design Warrior’s Guide to FPGAs, Linacre House 2004
Pierwsze układy programowalne:
• 1969, Motorola układ XC157, 12 bramek i 30 I/O końcówek
• 1970, Texas Instruments układ TMS2000, 17 wejść i 18 wyjść z 8 JK flip flop.
• 1971, General Electric Company (GE) przedstawia układ oparty na technologii PROM.
• GE przedstawia pierwszy kasowalny układ PLD.
• 1973 National Semiconductor przedstawia układ PLA DM7575 (14 wejść i 8 wyjść).
• 1985 Lattice Semiconductor wprowadza układ kasowalny i reprogramowalny.
• Koniec lat 70-tych, Signetics - pierwsze przykłady układów FPGA to 82s100 i 82S105.
• 1985, Xilinx przedstawia układ FPGA XC2064 który, miał programowalne bramki i programowalne połączenia
między bramkami. 64 konfigurowalnych bloków logicznych (CLB), z dwoma 3-wejściowych tabel Lookup (LUT).
Układy programowalne
•
•
•
•
Programowanym układem logiczny PLD (Programmable Logic Devices), nazywamy układ scalony,
którego właściwości funkcjonalne są ustalane przez końcowego użytkownika, który może
implementować w jego strukturze opracowany przez siebie projekt jakiegoś wyspecjalizowanego
układu cyfrowego.
Najważniejszą cechą tych układów jest ich konfigurowalność przez użytkownika.
Układ PLD może zostać zaprogramowany tak, żeby działał jak dowolny układ cyfrowy.
Ograniczeniem jest tylko wielkość zasobów układu PLD, czyli liczba wewnętrznych elementów które
można zaprogramować.
Układy programowalne nie są procesorami, ponieważ procesor to układ o stałej strukturze
wewnętrznej (architektura) , natomiast struktura bramek logicznych w układach PLD zależy od tego
jak zaprogramujemy dany układ.
Przed pojawieniem się układów programowalnych do realizacji specjalizowanych funkcji logicznych
użytkownik mógł wykorzystać:
• SSI (Small Scale of Integration), układy logiczne o małym stopniu scalenia zbudowane zazwyczaj z
pojedynczych bramek logicznych
• MSI (Medium Scale of Integration), układy o średnim stopniu scalenia wykorzystujące w swej
budowie multipleksery, liczniki itp..
• LSI (VLSI) (Large Scale of Integration), układy do implementacji bardziej złożonych układów
logicznych
• Jedną z technologii full-custom lub semi-custom do realizacji wyspecjalizowanych układów
cyfrowych
2
2014-11-26
Układy PLD
•
•
•
•
•
Do grupy układów programowalnych PLD (Programmable Logic Devices)
zalicza się układy cyfrowe, których właściwości funkcjonalne definiowane
są przez użytkownika końcowego.
Konfiguracja struktury polega na zrealizowaniu odpowiednich połączeń
pomiędzy komórkami logicznymi oraz w ich obrębie.
W tym celu używane są wyspecjalizowane narzędzia (aplikacje
komputerowe) dostarczane zazwyczaj przez producenta układu.
Zakładając, że w grupie tej znajdują się układy o specyficznych
właściwościach funkcjonalnych definiowanych przez użytkownika,
klasyfikacja ta jest prawidłowa.
W ramach układów PLD są układu PROM, SPLD, CPLD i FPGA
Układy SPLD - PROM
•
•
•
•
•
•
PROM (ang. Programmable read-only memory) - jednokrotnego zapisu,
zbudowana w postaci układu scalonego.
Programowanie pamięci PROM polega na podaniu między linię bitu, a linię
słowa napięcia od kilkunastu do kilkudziesięciu woltów, które przepala
element łączący linię bitu i linię słowa.
Opornik przepala się na przerwę, a tranzystory na zwarcie. Pamięci z
matrycą oporową mają wpisane jedynki, a przy programowaniu wpisujemy
0. Pamięci z matrycą tranzystorową mają najczęściej wpisane 0, a przy
programowaniu wpisujemy 1.
Proces programowania nie następuje w momencie produkcji. Można ją też
zaprogramować samodzielnie.
W pamięć PROM jest wyposażany również szereg mikrokontolerów
jednoukładowych np. PIC z literą C. Układ jest programowalny w trakcie
lub tuż po montażu i w pełni funkcjonalny dla odpowiednika z pamięcią
Flash, ale znacząco tańszy w skali produkcji. Niestety w urządzeniach z
pamięcią PROM nie można aktualizować oprogramowania.
Obecnie ten typ pamięci jest rzadko stosowany.
3
2014-11-26
Układy SPLD – PAL, PLA, PLE
•
•
Układy SPLD (Simple Programmable Logic Device) są najmniejszymi układami
rodziny PLD. Produkowane w technologii CMOS, posiadają zazwyczaj nie więcej niż
500 bramek logicznych oraz maksymalnie 24 makrokomórki. Ich struktura logiczna
zawiera matrycę bramek AND, której wyjścia połączone są z wejściami matrycy OR.
Konfiguracja układu realizowana jest przy pomocy łączników rozwarciowych bądź
tranzystorów MOS. Ze względu na typ struktury logicznej (zazwyczaj symetrycznej)
układy te dzielą się na trzy grupy:
– PAL (Programmable Array Logic) - struktura tych układów umożliwia konfigurowanie tylko
matrycy bramek AND. Matryca bramek OR posiada natomiast stałą konfigurację.
– Na podstawie modyfikacji struktury PAL, firma Lattice opracowała układy GAL. Wprowadzone
w nich dodatkowe makrokomórki wyjściowe z przerzutnikami typu D umożliwiały
projektowanie układów synchronicznych. W wyniku dalszego rozwoju struktur PLD różnica
pomiędzy układami PAL i GAL zatarła się. Obecnie są to najpopularniejsze układy rodziny SPLD,
produkowane najczęściej w technologii EEPROM. Dzięki technologii EEPROM układy są
reprogramowalne EPLD (ang. Erasable Programmable Logic Device)
– PLA (Programmable Logic Array) - w układach tych użytkownik ma możliwość konfigurowania
zarówno matrycy bramek AND jak i matrycy bramek OR. Obecnie układy te zostały wyparte
przez struktury PAL.
– PLE (ang. Programmable Logic Element) – programowalna matryca logiczna. Układy te
posiadają programowalna matryce bramka OR. Prawie wszystkie układy PLE mają wyjścia
trójstanowe. Bardziej rozbudowane struktury PLE są wyposażone w buforowe rejestry
wyjściowe, zbudowane z synchronicznych przerzutników typu D z trójstanowymi wyjściami
sterownymi bezpośrednio (asynchronicznie) lub pośrednio, za pomocą dodatkowego
przerzutnika (synchroniczne). Ponadto układy te mają dodatkowe wejścia, służące do
programowania tzw. inicjalizacji. Umożliwia ono zapisanie w określonym obszarze matrycy PLE
sekwencji 16 słów, a następnie ich wygenerowanie w rejestrze wyjściowym.
Układy SPLD – PAL, PLA
Klasyfikacja rozwiązań układowych, programowalnych struktur logicznych,
oparta jest na kryterium rodzaju obu matryc - programowalne lub stałe
Matryca
AND
OR
Typ struktury
PAL
PLA
programowalna
programowalna
nieprogramowalna
programowalna
Klasyfikacja struktur logicznych ze względu na rodzaj matryc.
PAL (Programmable Array Logic) - która składa się z programowalnej matrycy AND oraz
nie programowalnej matrycy OR. Wyjściowe funkcje logiczne są w niej tworzone jako
sumy iloczynów logicznych sygnałów wejściowych, przy czym dołączenia do bramek
(matryca połączeń) sum logicznych (OR) są skonfigurowane na stałe; użytkownik ma
natomiast możliwość konfigurowania połączeń sygnałów logicznych na wejściach bramek
iloczynowych (czyli programowanie matrycy AND).
4
2014-11-26
A
A
B
C
Układy SPLD - PAL
B
C
A
A
B
B
C
Uproszczone symbole graficzne bramek
stosowane w schematach logicznych
układów programowalnych
C
• Przykładowy schemat logiczny
układu o architekturze PAL.
• „X” - na schemacie oznacza
możliwość zrealizowania
„zwarcia” lub „rozwarcia”
(połączenie może być
konfigurowane).
A
B
Wejścia
Programowa lna
matryca
AND
C
X
Wyjścia
Skonfigurowana
na sta łe matryca
OR
Y
Układy SPLD - PLA
A
Wejścia
B
Programowalna
matryca
AND
C
X
Programowalna
matryca
OR
Wyjścia
• Przykładowy schemat logiczny
układu o architekturze PLA.
• „X” - na schemacie oznacza
możliwość zrealizowania
„zwarcia” lub „rozwarcia”
(połączenie może być
konfigurowane).
Y
• PLA (Programmable Logic Array) - która składa się z programowalnej matrycy AND oraz również
programowalnej matrycy OR .
• Jak widać, schemat logiczny układu dla tej architektury jest prawie identyczny jak schemat logiczny
układu PAL - różnicę widać jedynie w matrycy bramek OR - jest ona w pełni konfigurowalna (dołączenie czyli matryca - sygnałów podawanych z wyjść bramek iloczynowych AND na wejścia bramek sumy
logicznej OR jest całkowicie programowalna).
• Obecnie stosuje się najczęściej układy typu GAL (Generic Array Logic), w których wykorzystano
architekturę PAL wzbogaconą o konfigurowalne makrokomórki wyjściowe zawierające przerzutniki D,
które spełniają rolę wyjściowych elementów pamięciowych umożliwiających budowanie układów
synchronicznych.
5
2014-11-26
Układy SPLD
Linie sygn ałów wejściowych
a)
IX
b)
Linie sygnałów wejściowych
CK
OE
D Q
Q
Q
• Typowe struktury
logiczne układów
PAL należących do
rodziny SPLD:
• A) - z wyjściem
typu
kombinacyjnego,
• B) - z rejestrem
wyjściowym
IX
Układy SPLD - GAL
Przykładowy schemat logiczny
układu ATF22V10C, firmy Atmel
• Industry-standard Architecture
• – Low-cost, Easy-to-use Software Tools
• High-speed, Electrically Erasable
Programmable Logic Devices
• 5ns Maximum Pin-to-pin Delay
• Latch Feature Holds Inputs to Previous
Logic States
• Pin-controlled Standby Power (10µA
Typical)
• Advanced Flash Technology
• Reprogrammable 100% Tested
• igh-reliability CMOS Process
• 20-year Data Retention
• 100 Erase/Write Cycles
• 2,000V ESD Protection
• 200mA Latch-up Immunity
• Full Military, Commercial and Industrial
Temperature Ranges
6
2014-11-26
Układy SPLD - GAL
• Porównanie dwóch układów SPLD firmy Lattice „tradycyjnego” GAL22V10 i jego odpowiednika,
ale z interfejsem ISP: ispGAL22V10.
Przykład realizacji funkcji logicznej w SPLD
• Przykład funkcji logicznej:
w= a AND b
x= NOT (a AND b)
y= c XOR (a AND b)
Na podstawie: C.M. Maxfield, The Design Warrior’s Guide to FPGAs, Linacre House 2004
7
2014-11-26
Przykład realizacji funkcji logicznej w SPLD
Realizacja funkcji logicznej na pamięci PROM
Przykład realizacji funkcji logicznej w SPLD
Realizacja funkcji logicznej na układzie typu PLA
8
2014-11-26
Przykład realizacji funkcji logicznej w SPLD
Realizacja na układzie typu PAL
Układy CPLD
•
•
•
•
•
Pierwotną ideą układów CPLD (Complex Programmable Logic Devices) było
zastosowanie klasycznej struktury PAL ze znacznie zwiększonym rozmiarem
matrycy AND.
Zmiana ta miała na celu poprawę elastyczności oraz funkcjonalności
układów. W praktyce okazało się, że ze względu na drastyczny wzrost
pojemności pasożytniczych matrycy, parametry czasowe układów uległy
znacznemu pogorszeniu. Niezbędna więc okazała się zmiana koncepcji
architektury dla układów o dużym stopniu scalenia.
W efekcie struktura CPLD została podzielona na wiele bloków PAL
połączonych ze sobą szybką, programowalną matrycą połączeniową.
Budowa tej matrycy może być bardzo różna, przez co układy CPLD różnią
się między sobą czasami propagacji sygnałów oraz zdolnością łączeniową.
Obecnie układy CPLD produkowane są w technologii EEPROM lub Flash.
Zawierają przeważnie od kilkudziesięciu do kilkuset makrokomórek
pogrupowanych w bloki logiczne. Każdy blok zawiera od 4 do 16
makrokomórek.
Należy jednak pamiętać, że każdy rodzaj architektury może mieć
specyficzne dla danego producenta odmiany lub jest przez niego inaczej
klasyfikowany, jak chociażby niektóre układy CPLD firmy Altera, których
architektura ma główne cechy układów FPGA.
9
2014-11-26
Układy CPLD – połączenie wielu bloków SPLD
Układy CPLD – połączenia wewnątrz ukłądu
10
2014-11-26
Układy CPLD
Makrokomórki
Szkic typowej architektury układów CPLD.
Matryca
połączeniowa
Blok
logiczny
Blok
logiczny
Blok
logiczny
• Układy CPLD są koncepcyjnie podobne do układów SPLD, lecz są bardziej
złożone: mają większe zasoby logiczne i możliwości funkcjonalne.
• Ich architektura ma strukturę hierarchiczną opartą na makrokomórkach
logicznych, których zawierają od kilkudziesięciu do kilkuset.
• Typowo od czterech do szesnastu makrokomórek jest połączonych w
większy blok funkcjonalny.
• Jedną z ważniejszych cech architektury układów CPLD jest liczba termów
przypadających na pojedynczą makrokomórkę oraz możliwość pożyczki
termów z sąsiednich makrokomórek.
• Dla niektórych architektur, gdy liczba niezbędnych termów do realizacji
danej funkcji przekracza liczbę dostępnych w makrokomórkach, to
dodatko-we termy mogą być pożyczane z sąsiednich makrokomórek. To
powoduje, że CPLD są bardzo elastyczne w stosowaniu.
• Jednak w przypadku skorzystania z termów z sąsiednich makrokomórek, te
komórki nie mogą być już używane do generowania innych termów.
• Makrokomórki tworzące blok funkcjonalny są zwykle w pełni połączone.
Jeżeli układ zwiera wiele bloków funkcjonalnych, muszą być one łączone
między sobą. Do tego celu służy matryca połączeniowa kluczy, a jej
zdolność łączeniowa jest również ważną cechą układów CPLD.
• Ta liczba połączeń wewnątrz matrycy określa bowiem, jak łatwo jest
„wpasować” jakiś projekt w dany układ programowalny. Nie we wszystkich
układach możliwości łączeniowe takich matryc są stuprocentowe, to znaczy
realizowane są wszystkie możliwe połączenia.
• Mniej niż 100% możliwych do zrealizowania połączeń między blokami
funkcjonalnymi oznacza, że w takiej strukturze nie zawsze będzie można
wytyczyć wszystkie niezbędne połączenia lub zachować te same
wyprowadzenia układu po wprowadzeniu jakichś zmian do projektu.
term - jest to iloczyn (składnik iloczynowy) utworzony z sygnałów wejściowych (zmiennych funkcji)
Układy CPLD
• Generalnie czas propagacji w matrycy o pełnej zdolności
łączeniowej jest stały i przewidywalny. Natomiast czas
propagacji w matrycach tylko o częściowej zdolności
łączeniowej nie jest stały i trudniejszy do przewidzenia,
podobnie jak w układach FPGA.
• Na ogół układy CPLD są wytwarzane w technologii MOS z
zastosowaniem nieulotnych komórek pamięci EPROM,
EEPROM i Flash do zdefiniowania realizowanej funkcji.
• Układy wytwarzane w technologii EPROM są zwykle
jednokrotnie programowalne (OTP), chyba że mają okienko
kwarcowe do kasowania promieniowaniem ultrafioletowym
(UV).
• Najnowsze układy CPLD są zwykle reprogramowalne
i w większości mogą być programowane w systemie.
11
2014-11-26
Układy FPGA
•
•
•
•
•
•
Architektura układów FPGA (Field Programmable Gate Arrays) jest bardziej złożona
niż w przypadku produktów CPLD.
Podstawowym elementem struktury są matrycowo rozłożone programowalne bloki
logiczne oparte na tablicach logicznych LUT (Lookup Table). Budowa LUT, ich
struktura w bloku logicznym oraz funkcje jakie mogą pełnić ściśle zależą od
konkretnej rodziny układów FPGA.
Łączenie bloków logicznych realizowane jest poprzez zestawianie ze sobą
odpowiednich segmentów ścieżek połączeniowych. Taka metoda łączeniowa
wymuszona jest matrycowym rozłożeniem bloków struktury FPGA i niesie za sobą
poważną niedogodność.
Parametry czasowe projektowanego układu są trudne do przewidzenia i ściśle
zależą od implementacji projektu, a dokładniej od długości tras propagacji
sygnałów. Możliwe jest, że po wprowadzeniu nawet niewielkiej zmiany w projekcie,
odpowiednie funkcje logiczne zostaną rozmieszczone w zupełnie innych blokach, a
co za tym idzie parametry czasowe układu ulegną znacznej zmianie.
Jako pamięć konfiguracyjna w strukturach FPGA najczęściej stosowana jest ulotna
pamięć SRAM. W celu załadowania odpowiedniej konfiguracji układu po załączeniu
zasilania wymagane jest zastosowanie dodatkowej pamięci nieulotnej, najczęściej
typu Flash.
Obecnie układy FPGA są największymi strukturami PLD. Dla przykładu układ
XC3S5000 rodziny Spartan 3 firmy Xilinx posiada 5000000 bramek
przeliczeniowych, 74880 komórek logicznych i 784 linie I/O.
FPGA
12
2014-11-26
Rodzaje łączników stosowanych w układach
programowalnych
Układy programowalne konfiguruje się realizując określone połączenia w
komórkach logicznych oraz połączenia między tymi komórkami. Realizację tą
osiąga się poprzez stosowanie łączników konfigurujących, których rodzaje
przedstawiono poniżej:
• fuse - łączniki rozwarciowe (przepalane), ich działanie polega na
przepaleniu (podczas procesu programowania) odpowiednio
przygotowanej wcześniej ścieżki (usunięcie „zwarcia”);
• antifuse - łączniki zwarciowe, ich działanie polega na tworzeniu (podczas
procesu programowania) połączeń elektrycznych wskutek przebicia
izolatora w strukturze podobnej do kondensatora;
• tranzystory MOS - łączniki zwarciowe, ale reprogramowalne (w
przeciwieństwie do fuse i antifuse), tranzystor po włączeniu w stan
przewodzenia (na skutek małej rezystancji w tym stanie) zwiera ścieżki.
•
Najstarszą z wymienionych jest technologia łączników typu fuse, która
była już stosowana w pierwszych układach programowalnych - jest to
odpowiednio przygotowane połączenie, które może być przepalone przez
przepływ prądu o wystarczająco dużym natężeniu. Jak już wspomniano - są
to układy nieulotne (czyli jednokrotnie programowalne).
Rodzaje łączników stosowanych w układach
programowalnych
•
•
•
•
•
Układy konfigurowalne za pomocą pamięci SRAM są z natury
reprogramowalne.
Ponieważ jednak pamięci statyczne są ulotne, to ich zawartość musi być
ładowana po włączeniu zasilania z zewnętrznych nieulotnych pamięci
konfiguracji, w której zapisana jest informacja o funkcjach realizowanych
przez każdy blok logiczny, a także połączeniach między nimi i z blokami I/O.
Układy FPGA samoczynnie przeładowują do pamięci SRAM dane
konfigurujące z zewnętrznej pamięci konfiguracji, bądź ładowaniem
steruje mikroprocesor pobierając je z pamięci systemu.
Przy samoczynnym ładowaniu FPGA adresują zewnętrzną nieulotną
pamięć równoległą ROM, z której są odczytywane dane konfigurujące,
bądź jest odczytywana zawartość pamięci szeregowej PROM.
Układy FPGA konfigurowane z wykorzystaniem pamięci statycznych SRAM
mogą być stosowane jako układy rekonfigurowalne podczas pracy systemu
(bez jego wyłączania) w zastosowaniach wspomagających obliczenia, gdy
funkcje układu są dynamicznie zmieniane.
13
2014-11-26
Metody programowania układów PLD
• Komórki pamięci EPROM stosowane w układach programowalnych
są podobne do stosowanych w standardowych pamięciach tego
rodzaju.
• Stanowią je tranzystory MOS z pływającą bramką. Ładunek w niej
zgromadzony (ekranujący kanał tranzystora) może być usunięty
tylko przez naświetlanie struktury promieniowaniem UV.
• Jednak większość układów SPLD i CPLD, w których są stosowane te
komórki pamięci, ze względu na obniżenie kosztów są pozbawione
okienek kwarcowych umożliwiających kasowanie, a więc mają
cechy układów jednokrotnie programowalnych. Takie komórki
pamięci są programowane w programatorze.
• Komórki pamięci EEPROM mają większe rozmiary niż komórki
technologii EPROM, ale ich zawartość może być kasowana
elektrycznie. Komórki pamięci Flash EEPROM maję zalety
kasowalnych elektrycznie pamięci EEPROM, przy małych rozmiarach
komórek, porównywalnych z rozmiarami komórek pamięci EPROM.
Metody programowania układów PLD
Zasadniczo istnieją dwie metody programowania układów PLD:
–
–
•
•
•
•
klasyczna
w systemie (ISP).
Metody klasyczne opierają się na użyciu specjalnych programatorów, które początkowo (tzn.
stosowane dla wczesnych układów PLD) były dosyć ograniczone i realizowały niezbyt liczne grupy
ściśle określonych algorytmów programowania. Niestety szybkie poszerzenie gamy oferowanych
układów spowodowało, że użytkownicy byli zmuszeni do inwestowania w coraz to nowszy,
stosunkowo kosztowny i mało uniwersalny sprzęt laboratoryjny.
Stopniowa unifikacja algorytmów i innych parametrów programowania układów pochodzących od
różnych producentów umożliwiła powstanie programatorów uniwersalnych, które obsługiwały także
inne, poza PLD, rodzaje układów. Taka ewolucja była możliwa dzięki udoskonalaniu sprzętowej
części programatorów i przeniesieniu ciężaru realizacji algorytmów na oprogramowanie sterujące
ich pracą.
W kolejnych, nowszych modelach programatorów uniwersalnych eliminowano sukcesywnie różne
niedogodności ich stosowania. Większość z oferowanych obecnie programatorów wyposażono w
możliwość prowadzenia za ich pomocą testów funkcjonalnych programowanych układów,
automatyzowane są także procesy programowania, weryfikacji i ewentualnego kasowania.
Większość nowoczesnych programatorów oprócz programowania układów w sposób tradycyjny, tj.
tak jak pamięci, może również emulować interfejs JTAG (opisany w normie IEEE1149.1) pozwalający także testować funkcjonalnie programowane układy - co znacznie zwiększa ich walory
użytkowe.
Najpoważniejszą z punktu widzenia użytkownika wadą programatorów uniwersalnych jest
konieczność - co prawda coraz rzadszego - korzystania z adapterów dopasowujących mechanicznie
(czasami także elektrycznie) uniwersalną podstawkę programatora do coraz bardziej wymyślnych
obudów układów scalonych. Ze względu na szybki rozwój technologii produkcji obudów, które
nieustannie są miniaturyzowane, szanse na eliminację tej uciążliwości są niezbyt duże.
14
2014-11-26
Przykłady programatorów stacjonarnych
Oferta firmy Elnec
Przykłady programatorów przemysłowych
Automat programujący, firmy Xeltek
15
2014-11-26
Metody programowania układów PLD
•
•
•
•
Metoda programowania w systemie wiąże się z upowszechnieniem
układów PLD z reprogramowalnymi pamięciami konfiguracji typu Flash i
EEPROM.
Zachęciło to producentów do opracowania układów wyposażonych w
specjalizowany interfejs oraz odpowiednie mechanizmy umożliwiające
programowanie pamięci konfiguracji bez konieczności stosowania
programatorów.
Rozwinięciem tego pomysłu było programowanie i testowanie układów już
po ich zamontowaniu na płytce drukowanej urządzenia (ISP - In System
Programmability).
Dalszy, bardzo szybki wzrost popularności układów PLD z możliwością
programowania ISP był stymulowany oszczędnościami uzyskiwanymi przez
producentów urządzeń zawierających te układy, przede wszystkim dzięki
znacznemu skróceniu cyklu produkcyjnego. Dodatkową zaletą układów
programowanych w systemie jest skrócenie o ok. 30% czasu trwania cyklu
projektowego, co ma bardzo duży wpływ na szybkość wprowadzenia
nowego wyrobu na rynek.
Programatory w systemie (ISP)
Programator stacjonarny
wyposażony w możliwość
programowania w systemie
16
2014-11-26
Programowanie i testowanie za pomocą złącza
JTAG
Układy FPGA najczęściej są programowane za pomocą
JTAG.
Rodzaje łączników stosowanych w układach
programowalnych
•
Technologia antifuse także pozwala na jednokrotne zaprogramowanie
układu, ale w tej technologii zamiast przerywania istniejącego połączenia
tworzone jest nowe.
– Stosuje się tutaj struktury nie przewodzące, o budowie podobnej do
kondensatorów. Są to struktury o bardzo małych wymiarach i bardzo dużej
rezystancji (setki megaomów) w których podczas programowania, w wyniku
przyłożenia podwyższonego napięcia (10-12V), następuje przebicie izolatora
rozdzielającego ścieżki przewodzące (ich rezystancja maleje do kilkudziesięciu kilkuset omów).
– Technologia ta jest stosowana w układach produkowanych przez firmę Actel
(struktury PLICE) i QuickLogic (struktury ViaLink).
•
Ostatnie z wymienionych rodzajów łączników - tranzystory MOS - jako
jedyne pozwalają na ponowne skonfigurowanie układu. Możliwość
włączenia tranzystorów zależy od ich budowy, mogą to być bowiem
tranzystory stosowane jako komórki pamięci typu EPROM, EEPROM, Flash
lub zwyczajne tranzystory MOS, których stan włączenia jest
podtrzymywany z komórek pamięci statycznej RAM.
17
2014-11-26
Producenci układów CPLD i FPGA
• Altera
• Atmel
• Cypress
Semiconductor
• Lattice
Semiconductor
• Microsemi
• NEC
• Xilinx
Firma Altera i Xilinx kontrolują około 80% rynku układów PLD
Zalety i wady układów programowalnych
Zalety układów programowalnych PLD
• Szybkość działania – w zależności od rodzaju i typu ponad
setki MHz, znacznie więcej niż SSI i MSI lecz mniej niż w
układach specjalizowanych ASIC.
• Pojemność – nawet ok. 1 mln bramek w jednym układzie,
znacznie więcej niż SSI i MSI lecz mniej niż w układach
specjalizowanych.
• Czas realizacji projektu – kilka dni lub tygodni w porównaniu
do kilku tygodni a nawet kilku miesięcy dla układów ASIC.
• Czas prototypowania i symulacji – podczas gdy proces
wytwarzania układów ASIC trwa tygodnie a nawet miesiące od
momentu ukończenia projektu do momentu dostarczenia
gotowego produktu, w przypadku układów PLD wymaga to
jedynie czasu na opracowanie projektu.
• Czas wytwarzania – wszystkie układy scalone muszą być
poddane procesowi testowania; proces ten jest inny dla
każdego projektu układu scalonego; w przypadku układów PLD
program testowy dla jednego układu scalonego jest taki sam
dla wszystkich projektantów i użytkowników wykorzystujących
ten układ.
• Łatwość modyfikacji – dopasowanie układu do określonego
projektu, wymaga jedynie elektrycznej modyfikacji; każda
funkcja układu może być zmieniana poprzez zmianę programu
konfigurującego; w przypadku układów specjalizowanych ASIC
ich funkcjonalność jest na stałe ustalona.
• Niskie ryzyko – podobnie jak w przypadku układów SSI i MSI
projektant ponosi małe ryzyko związane z procesem
projektowania tzn. ten sam układ może być wykorzystany
wielokrotnie do realizacji różnych funkcji i być wykorzystany w
wielu projektach.
• Szybkie działanie układów poprzez równoległe wykonywanie
zadań.
•
•
•
•
•
•
Wady układów PLD
Czas działania - programowane połączenia
wprowadzają dodatkową rezystancję, zaś
punkty programowalne dodatkową
pojemność, co znacznie wpływa na czas
propagacji (dotyczy układów SPLD). W tym
przypadku układ ASIC jest szybszy.
Nie wykorzystane zasoby - mechanizmy
zapewniające programowalność wprowadzają
pewną nadmiarowa logikę, która nie może być
wykorzystana przez użytkownika.
Pobór mocy - układy PLD pobierają znacznie
więcej prądu niż układy mikroprocesorowe.
Kompatybilność EMC – układy PLD mogą
generować większe zakłócenia typu EMC
Koszt układów jest większy od typowych
układów mikroprocesorowych.
Sygnały analogowe - mała liczba analogowych
układów PLD. Mała liczba układów z
elementami typu przetwornik A/C, C/A, które
są łatwo dostępne w mikrokontrolerach.
18
2014-11-26
Podsumowanie
• Programowane układy logiczne w zupełności wyparły standardowe
układy cyfrowe małej i średniej skali integracji oraz specjalizowane
układy mikroprocesorowe.
• Aktualnie układy CPLD i FPGA niewiele się różnią od siebie i często
używa się tych pojęć zamiennie.
• Ponad 80% rynku PLD zajmują obecnie układy firm Xilinx i Altera.
• Obie firmy oferują rodziny układów od tanich i niedużych CPLD do
ogromnych i drogich FPGA.
• Każda z tych firm oferuje też darmowe oprogramowanie do
tworzenia projektów.
• Układy PLD są szybkie a ich częstotliwość pracy dochodzą do kilku
GHz.
• Systemy projektowania integrują różnorakie sposoby
projektowania, symulowania, programowania , a także testowania.
19

Podobne dokumenty

Układy programowalne w technice cyfrowej

Układy programowalne w technice cyfrowej • 1943 – komputer Marck I (University of Harward) • 1946 - komputer ENIAC (Uniwerity of Pensylwania) 18 tys. Lamp • 1948 – tranzystor (J. Bardeen i W.Brattain – Bell Laboratories)

Bardziej szczegółowo