układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/miup/uklady programowalne...

19
2014-11-26 1 Układy programowalne SPLD, CPLD, FPGA Podział układów programowalnych 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. Procesor Procesory strukturalne Procesory proceduralne mikroprocesor mikrokontroler ASIC/ASSP PLD CPLD FPGA SPLD PROM, PLE, PLA, PAL, GAL

Upload: others

Post on 12-Sep-2019

11 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

1

Układy programowalne

SPLD, CPLD, FPGA

Podział układów programowalnych

• 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.

Procesor Procesory strukturalne Procesory proceduralne

mikroprocesor mikrokontroler ASIC/ASSP PLD

CPLD FPGA SPLD

PROM, PLE, PLA, PAL, GAL

Page 2: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

2

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

Page 3: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

3

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.

Page 4: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

4

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

Matryca Typ struktury

PAL PLA

AND programowalna programowalna

OR nieprogramowalna programowalna

Klasyfikacja rozwiązań układowych, programowalnych struktur logicznych, oparta jest na kryterium rodzaju obu matryc - programowalne lub stałe

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).

Page 5: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

5

Układy SPLD - PAL

A

B

C

A

B

C

A B C

A B C

Uproszczone symbole graficzne bramek stosowane w schematach logicznych układów programowalnych

ProgramowalnamatrycaAND

Wejścia B

C

A

X

Y

WyjściaSkonfigurowanan matryca

ORa sta łe

• 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).

Układy SPLD - PLA

• 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.

ProgramowalnamatrycaAND

Wejścia B

C

A

X

Y

WyjściaProgramowalna

matrycaOR

• 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).

Page 6: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

6

Układy SPLD • Typowe struktury

logiczne układów PAL należących do rodziny SPLD:

• A) - z wyjściem typu kombinacyjnego,

• B) - z rejestrem wyjściowym

Q

OECK

D Q

Q

IX

IX

Linie sygnałów wejściowych

Linie sygnałów wejściowych

a)

b)

Układy SPLD - GAL

• 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

Przykładowy schemat logiczny układu ATF22V10C, firmy Atmel

Page 7: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

7

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

Page 8: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

8

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

Page 9: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

9

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.

Page 10: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

10

Układy CPLD – połączenie wielu bloków SPLD

Układy CPLD – połączenia wewnątrz ukłądu

Page 11: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

11

Układy CPLD

• 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.

Bloklogiczny

Bloklogiczny

Bloklogiczny

Ma

tryca

p

ołą

czenio

wa

Ma

kro

kom

órk

i

Szkic typowej architektury układów CPLD.

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.

Page 12: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

12

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

Page 13: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

13

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.

Page 14: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

14

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.

Page 15: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

15

Przykłady programatorów stacjonarnych

Oferta firmy Elnec

Przykłady programatorów przemysłowych

Automat programujący, firmy Xeltek

Page 16: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

16

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

Page 17: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

17

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.

Page 18: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

18

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.

Page 19: Układy programowalne - mysinski.wieik.pk.edu.plmysinski.wieik.pk.edu.pl/MiUP/Uklady programowalne czesc I.pdf · Procesory strukturalne Procesory proceduralne ASIC/ASSP mikroprocesor

2014-11-26

19

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.