Układy programowalne w praktyce

Komentarze

Transkrypt

Układy programowalne w praktyce
Spis treści
5
Spis treœci
1.
Informacje wstępne ...................................................................... 11
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
Wprowadzenie ........................................................................................ 12
Układy PLD i ASIC ............................................................................... 12
Pierwsze układy programowalne ........................................................... 13
Klasyfikacja układów programowalnych .............................................. 22
Konfigurowanie układów ....................................................................... 26
Producenci układów programowalnych ................................................ 28
2.
Architektury układów programowalnych .......................... 31
2.1.
2.2.
2.2.1.
2.2.1.1.
2.2.1.2.
2.2.1.3.
2.2.1.4.
2.2.1.5.
2.2.1.6.
2.2.2.
2.2.2.1.
2.2.2.2.
2.2.2.3.
2.2.3.
2.2.4.
2.2.4.1.
2.2.4.2.
2.2.4.3.
2.2.5.
2.2.5.1.
2.2.5.2.
2.2.5.3.
2.2.5.4.
2.2.5.5.
2.2.5.6.
2.2.6.
2.2.6.1.
2.2.6.2.
Układy PLD i SPLD .............................................................................. 32
Układy CPLD ......................................................................................... 35
Układy CPLD firmy Altera ................................................................... 37
Rodziny MAX3K/7K ............................................................................. 38
Rodzina MAX9K ................................................................................... 41
Rodzina FLEX8K .................................................................................. 44
Rodzina FLEX6K .................................................................................. 48
Rodziny FLEX10K, FLEX10KE, ACEX1K ........................................ 50
Rodzina APEX20K ................................................................................ 54
Układy CPLD firmy Atmel ................................................................... 59
Rodzina AT750 ...................................................................................... 60
Rodzina AT2500 .................................................................................... 60
Rodzina ATF1500 .................................................................................. 62
Układy CPLD firmy Clear Logic .......................................................... 63
Układy CPLD firmy Cypress ................................................................ 66
Rodzina MAX340 .................................................................................. 66
Rodziny Flash370/370i oraz Ultra37000 .............................................. 68
Rodzina Delta39K .................................................................................. 71
Układy CPLD firmy Lattice .................................................................. 75
Rodzina ispLSI1000EA ......................................................................... 76
Rodziny ispLSI2000VE/VL/E ............................................................... 79
Rodzina ispLSI5000VA/VE .................................................................. 79
Rodzina ispLSI8000/8000V .................................................................. 83
Rodzina ispMACH4A ............................................................................ 85
Rodzina MACH5 ................................................................................... 87
Układy CPLD firmy Xilinx ................................................................... 88
Rodziny 9500/9500XL/9500XV ........................................................... 88
Rodzina CoolRunner .............................................................................. 91
Spis treści
6
2.3.
2.3.1.
2.3.1.1.
2.3.1.2.
2.3.2.
2.3.2.1.
2.3.2.2.
2.3.2.3.
2.3.2.4.
2.3.2.5.
2.3.3.
2.3.3.1.
2.3.3.2.
2.3.3.3.
2.3.3.4.
2.3.3.5.
2.3.3.6.
2.3.3.7.
2.4.
2.4.1.
2.4.2.
2.4.3.
2.4.4.
2.5.
2.5.1.
2.5.2.
2.6.
2.6.1.
2.6.2.
2.6.3.
2.6.4.
Układy FPGA ......................................................................................... 94
Układy FPGA firmy Atmel ................................................................... 94
Rodziny AT40K/40KAL ....................................................................... 95
Rodzina AT6000 .................................................................................. 101
Układy FPGA firmy Quick Logic ....................................................... 105
Rodzina pASIC1 .................................................................................. 106
Rodzina pASIC2 .................................................................................. 107
Rodziny pASIC3, QuickPCI i QuickRAM ......................................... 110
Rodzina Eclipse .................................................................................... 111
Rodzina QuickDSP .............................................................................. 114
Układy FPGA firmy Xilinx ................................................................. 114
Rodzina XC3000 .................................................................................. 115
Rodziny XC4000E, XC4000X, XC4000XLA i XC4000XV ............. 118
Rodzina XC5200 .................................................................................. 123
Rodziny Spartan i Spartan XL ............................................................ 127
Rodzina Spartan II ............................................................................... 131
Rodziny Virtex, Virtex−E i Virtex−EM ............................................... 134
Rodzina Virtex II ................................................................................. 136
Układy ASIC i PLD programowane maską ........................................ 144
Projektowanie układów ASIC ............................................................. 146
Układy ASIC oferowane przez firmę Philips ..................................... 147
Układy ASIC oferowane przez firmę Epson ...................................... 148
Układy ASIC oferowane przez firmę AMS ........................................ 151
Analogowe układy programowalne ..................................................... 152
Wzmacniacze programowalne w systemie .......................................... 152
Programowalny w systemie filtr dolnoprzepustowy ........................... 155
Inne rodzaje układów programowalnych ............................................ 155
Interfejsy szeregowe zintegrowane z PLD .......................................... 156
Matryce programowalnych przełączników ......................................... 158
Programowalne interfejsy peryferyjne ................................................ 161
Układy FPSLIC .................................................................................... 165
3.
Realizacja układów cyfrowych w strukturach
programowalnych ....................................................................... 169
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
Programowanie pierwszych układów PLD ......................................... 170
Etapy realizacji układów w strukturach PLD ..................................... 171
Specyfikacja projektu układu .............................................................. 172
Implementacja projektu ....................................................................... 176
Weryfikacja projektu ........................................................................... 179
Programowanie ..................................................................................... 180
Spis treści
7
4.
Języki projektowania PLD ...................................................... 181
4.1.
4.2.
4.3.
4.3.1.
4.3.2.
4.4.
Języki HDL .......................................................................................... 182
Charakterystyka języków HDL ........................................................... 182
Sposoby opisu układów ....................................................................... 183
Opis strukturalny .................................................................................. 183
Opis behawioralny ............................................................................... 184
Języki opisu układów realizowanych w strukturach
programowalnych ................................................................................. 185
Język ABEL ......................................................................................... 185
Język AHDL ......................................................................................... 197
Język CUPL ......................................................................................... 202
Język VHDL ......................................................................................... 206
Język Verilog ....................................................................................... 208
Opis hierarchiczny ............................................................................... 209
4.4.1.
4.4.2.
4.4.3.
4.4.4.
4.4.5.
4.5.
5.
Charakterystyka oprogramowania CAD
dla układów programowalnych ............................................ 213
5.1.
5.2.
5.3.
5.3.1.
5.3.1.1.
5.3.2.
5.3.2.1.
5.3.3.
5.3.3.1.
5.4.
5.4.1.
5.4.1.1.
5.5.
Wstęp .................................................................................................... 214
Rodzaje narzędzi programowych ........................................................ 215
Zintegrowane oprogramowanie narzędziowe ...................................... 217
Max+Plus II firmy Altera .................................................................... 217
Obsługa systemu Max+Plus II ............................................................. 218
WinCUPL 5.1 ....................................................................................... 234
Obsługa WinCUPL 5.1 ........................................................................ 234
PAC Designer firmy Lattice ................................................................ 239
Obsługa programu PAC Designer ....................................................... 240
Zdalne narzędzia internetowe .............................................................. 244
WebFitter firmy Xilinx ........................................................................ 244
Obsługa WebFittera ............................................................................. 244
Pomocnicze programy narzędziowe do syntezy układów
programowalnych ................................................................................. 249
5.5.1.
FPGA Express firmy Synopsys ........................................................... 249
5.5.1.1. Obsługa FPGA Express ....................................................................... 249
5.5.2.
FPGA Advantage firmy Mentor Graphics .......................................... 252
6.
Przykładowe aplikacje układów programowalnych .... 257
6.1.
6.1.1.
6.2.
6.2.1.
Elektroniczny kompas .......................................................................... 258
Opis układu .......................................................................................... 259
Karta serwisowa do komputerów PC .................................................. 260
Opis układu .......................................................................................... 261
Spis treści
8
6.3.
6.3.1.
6.4.
6.4.1.
6.5.
6.5.1.
6.6.
6.6.1.
6.7.
6.7.1.
6.8.
6.8.1.
6.8.2.
6.9.
6.9.1.
6.10.
6.10.1.
Czterokanałowa przystawka do oscyloskopu ...................................... 264
Opis układu .......................................................................................... 265
Układ zliczający osoby w pomieszczeniu ........................................... 269
Opis układu .......................................................................................... 269
Miernik częstotliwości, czasu i okresu ................................................ 273
Opis układu .......................................................................................... 273
Karta przetwornika A/C i C/A do PC ................................................. 280
Opis układu .......................................................................................... 280
Dekoder klawiatury 12−stykowej ......................................................... 284
Opis układu .......................................................................................... 284
Nastawnik kanału radiowego ............................................................... 288
Opis układu – wersja 1 ........................................................................ 288
Opis układu – wersja 2 ........................................................................ 292
Licznik dwukierunkowy z wyświetlaczem LED ................................ 295
Opis układu .......................................................................................... 296
Zestaw laboratoryjny z układami EPM7128S i EPF10K10 ............... 300
Opis układu .......................................................................................... 301
7.
Programowanie, konfigurowanie
i testowanie układów .................................................................. 305
7.1.
7.2.
7.3.
7.3.1.
7.3.2.
7.3.3.
7.3.4.
7.3.5.
7.3.6.
7.3.7.
7.4.
7.4.1.
7.4.2.
7.4.3.
Klasyczne metody programowania układów PLD .............................. 306
Konfigurowanie układów z komórkami pamięci typu SRAM ........... 308
Programowanie i testowanie w systemie ............................................ 312
Przyspieszone programowanie ............................................................. 312
Powstanie interfejsu JTAG .................................................................. 314
Budowa interfejsu JTAG ..................................................................... 316
Praktyczne aspekty stosowania interfejsu JTAG ................................ 319
Nowelizacja normy JTAG ................................................................... 321
Jam STAPL – język programowania obsługi interfejsów JTAG ....... 322
Układy ISP w systemach mikroprocesorowych .................................. 325
Programatory układów ISP .................................................................. 327
Programator ISP dla układów firmy Altera (ByteBlaster) ................. 327
Programator ISP dla układów firmy Lattice ....................................... 329
Programator ISP dla układów firmy Xilinx (PC III, DLC5) ............. 330
8.
Informacje uzupełniające ........................................................ 333
8.1.
8.2.
8.3.
8.4.
Parametry wybranych układów PLD .................................................. 334
Adresy internetowe firm i organizacji działających na rynku PLD ... 359
Słownik ................................................................................................. 361
Literatura uzupełniająca ....................................................................... 369
Od autorów
9
Od autorów
Zajmujemy się elektroniką cyfrową. Jej żywiołowy, gwałtowny rozwój zmusza nas
do nieustannego śledzenia pojawiających się nowych rozwiązań, układów i oprog−
ramowania wspierającego projektowanie oraz do mozolnego poznawania ich tajni−
ków, czyli nieustannego samokształcenia. Nieustannego oraz mozolnego z racji
tempa zachodzących zmian i olbrzymiej ilości informacji napływających z różnych
źródeł: publikacji naukowych, reklam, doniesień ze stron WWW i monografii czy
podręczników, które z trudem dotrzymują kroku zachodzącym w tej dziedzinie
zmianom. Znamy więc trud pokonywania tej góry informacji, bo próba jej obejścia
oznacza rezygnację z zawodu.
Minęło nieco ponad 40 lat od wynalezienia układu scalonego, który „wyrzeźbił”
Jack Kilby w roku 1959 (przerzutnik odpowiadający złożonością dwóm bramkom),
a dzięki postępowi w technologii produkcji układów półprzewodnikowych, obecnie
oferowane są układy o złożoności odpowiadającej dziesiątkom tysięcy bramek
przeliczeniowych. Nad układami o tak dużych możliwościach funkcjonalnych trud−
no jest „zapanować” bez odpowiednich narzędzi, czyli wyspecjalizowanych progra−
mów komputerowych. Jak się w tym nie pogubić, gdy noty katalogowe niektórych
układów czy opisy oprogramowania liczą setki stron?
Nowe układy i narzędzia projektowe spowodowały zmiany w metodologii projekto−
wania. Stało się to jednak w pełni możliwe dopiero wtedy, gdy komputery PC stały
się powszechnie dostępne i dobrze oprogramowane. Od z górą 25 lat projektanci
układów cyfrowych mogą stosować w swoich konstrukcjach układy programowal−
ne, których właściwości funkcjonalne mogą obecnie określać samodzielnie, za po−
mocą niezbyt skomplikowanych narzędzi, przede wszystkim w postaci odpowied−
niego oprogramowania komputerowego. Jednak powolny rozwój tych układów
w początkowym okresie był spowodowany właśnie brakiem oprogramowania
wspomagającego ich programowanie.
Rozwój i upowszechnienie układów programowalnych, przejawiający się ich aktu−
alnym stopniem złożoności, olbrzymimi możliwościami funkcjonalnymi i po−
Od autorów
10
wszechnością zastosowania nie byłoby bowiem możliwe bez dwóch, wzajemnie
sprzężonych, czynników: postępu w technologii układów półprzewodnikowych
i rozwoju oprogramowania narzędziowego wspomagającego projektowanie. Bez
układów scalonych o zaawansowanych możliwościach funkcjonalnych nie byłoby
takiego oprogramowania i odwrotnie, bez odpowiedniego oprogramowania nie by−
łoby takich układów.
Pragniemy podzielić się z Czytelnikami naszym doświadczeniem w dziedzinie
układów programowalnych i pomóc im przebrnąć przez tę górę różnych informacji
i zagadnień związanych z nimi. Zachęcić do zgłębiania problematyki tych układów
oraz do doskonalenia się w posługiwaniu narzędziami ich implementacji w struktu−
rach programowalnych. Chyba warto „zaprzyjaźnić” się z tymi układami i poświę−
cić im trochę czasu, bo są to niewątpliwie układy elektroniki cyfrowej najbliższej
przyszłości.
Zgodnie z tytułem książki, chcieliśmy skupić się na praktycznych aspektach projek−
towania i realizacji układów w strukturach programowalnych. Zawarliśmy w niej
więc przegląd najważniejszych zagadnień związanych z opisem projektowanych
układów, programowymi narzędziami ich syntezy oraz programowania. Opisaliśmy
architekturę i budowę układów programowalnych klasyfikowanych jako układy
SPLD, CPLD i FPGA. Zamieściliśmy omówienie najpopularniejszych systemów
projektowych. Staraliśmy się wyczerpująco opisać metody programowania struktur
w różnych środowiskach projektowych, w tym m.in. metody programowania ISP.
Zamieściliśmy także wiele sprawdzonych przykładów układów cyfrowych zrealizo−
wanych w strukturach programowalnych oraz wiele – naszym zdaniem przydatnych
– informacji dodatkowych.
Mamy nadzieję, że nie odbiegliśmy zbyt daleko od naszych zamierzeń i dostarcza−
my Czytelnikom niezbędne, choć bardzo ograniczone, kompendium wiedzy na te−
mat układów programowalnych.
Powstanie tej książki było w dużym stopniu możliwe dzięki uprzejmości i przy−
chylności przedstawicieli wielu firm, którzy pozwolili nam korzystać bez ograni−
czeń z ich materiałów firmowych. Pragniemy więc podziękować paniom: Ninie
Brynczak i Jolancie Kraszewskiej z firmy Philips, panom: Jackowi Małeckiemu
z firmy Future Electronics, Markowi Sikorze z firmy Elmark Automatyka, Janowi
Surowiec z firmy Gamma, Witorowi Kuncewiczowi z firmy Techlab 2000, Wiesła−
wowi Ligenzie z firmy Memec, Jarosławowi Michalcowi i Sławomirowi Pieszczko−
wi z JM Elektronik oraz naszym zagranicznym przyjaciołom: Taffiq Mossadak
i Ralene Marcoccia z Altery, Martinowi Mansonowi z Atmela, Louie Yan z firmy
Cypress Semiconductor, Timowi Schnettler i Colette Mansfield z Lattice
Semiconductor, Rosemary Wylde z Quick Logic oraz Martinowi Warlop i Carole
Porte z firmy Xilinx.
Serdecznie dziękujemy także pani redaktor Elżbiecie Gawin i Pawłowi Zbysińskie−
mu, którzy nadali książce jej ostateczną postać.
Warszawa, maj 2001
Jerzy Pasierbiński, Piotr Zbysiński
Rozdzia³
2
Architektury uk³adów
programowalnych
Szybki rozwój architektur układów programowalnych rozmył ich, niegdyś klarowny,
podział na układy o klasycznych strukturach FPGA i CPLD. Konstruktorzy mają
jednak coraz szerszy dostęp do układów łączących w swoich architekturach zalety
rozwiązań oferowanych zarówno przez FPGA jak i CPLD.
W rozdziale zawarto wiele informacji systematyzujących podział współczesnych
układów programowalnych ze względu na ich architektury, omówiono także rozwią−
zania strukturalne zastosowane w układach różnych producentów.
2. Architektury układów programowalnych
32
2.1. Uk³ady PLD i SPLD
Akronimy PLD (Programmable Logic Devices), SPLD (Simple Programmable Lo−
gic Devices) oraz GAL (Generic Array Logic) są często używane zamiennie na
określenie układów programowalnych o małym stopniu scalenia (małej skali integ−
racji). Za takie są obecnie uważane układy zawierające w strukturze nie więcej niż
500 bramek logicznych, 24 makrokomórki i mają nie więcej niż 40 linii I/O. Więk−
szość tych układów jest obecnie produkowanych w różnych odmianach technologii
CMOS z komórkami pamięciowymi (konfigurującymi) kasowalnymi elektrycznie
(EEPROM), w niektórych wersjach z możliwością programowania w systemie. Do−
stępne są także układy z komórkami pamięciowymi kasowanymi promieniowaniem
ultrafioletowym (EPROM), a praktycznie zniknęły z rynku, popularne niegdyś, bi−
polarne układy programowalne. Jedyną firmą nadal produkującą bipolarne układy
SPLD jest Texas Instruments.
Warto zapamiêtaæ!
Zestawienie podstawowych parametrów układów SPLD znajduje się
w tablicy 8.1 (w rozdziale 8).
Struktura logiczna układów SPLD jest zazwyczaj oparta na jednej z dwóch klasycz−
nych już architektur:
1.PAL (Programmable Array Logic), dla której schemat logiczny układu przedsta−
wiono na rysunku 2.1. Wyjściowe funkcje logiczne są w nim tworzone jako sumy
A
Wejœcia
B
C
Programowana matryca AND
i na sta³e skonfigurowana
matryca OR
- oznacza mo¿liwoœæ
zrealizowania "zwarcia"
lub "rozwarcia" (po³¹czenie
programowane)
Y
X
Wyjœcia
Rys. 2.1. Przyk³adowy schemat logiczny
uk³adu o architekturze PAL
Rys. 2.2. Przyk³adowy schemat logiczny
uk³adu o architekturze PLA
2.1. Układy PLD i SPLD
33
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żytkow−
nik ma natomiast możliwość kształtowania konfiguracji połączeń sygnałów lo−
gicznych na wejściach bramek iloczynowych (programowanie matrycy AND).
2.PLA (Programmable Logic Array), dla której schemat logiczny układu przedsta−
wiono na rysunku 2.2. Jak można zauważyć, jest on niemal identyczny ze sche−
matem logicznym układu PAL z rysunku 2.1. Układ o takiej architekturze różni
się od poprzedniego tylko tym, że także dołączanie (matryca) sygnałów podawa−
nych z wyjść bramek iloczynowych AND na wejścia bramek sumy logicznej OR
jest w pełni konfigurowalne.
W najpopularniejszych obecnie układach GAL wykorzystano architekturę PAL
wzbogaconą o konfigurowalne makrokomórki wyjściowe zawierające przerzutniki
D (rys. 2.3), które spełniają rolę wyjściowych elementów pamięciowych umożli−
wiających budowanie układów synchronicznych. Podobne rozwiązania były stoso−
wane w układach PAL rodzin 16Rx, 20Rx (gdzie x = 1, 2, 4, 6 lub 8) oraz 22Rx
(gdzie x = 1, 2, 4, 6, 8 lub 10). Uniwersalność architektury zastosowanej w ukła−
dach GAL pozwoliła zastąpić kilkanaście typów układów PAL trzema reprogramo−
walnymi układami:
– GAL16V8, który jest odpowiednikiem układów serii PAL16R/H/L/V,
– GAL20V8, który jest odpowiednikiem układów serii PAL20R/H/L/V,
– GAL22V10, który jest odpowiednikiem układów serii PAL22R/H/L/V.
Wprowadzenie do produkcji uniwersalnych, reprogramowalnych układów GAL
stymulowało wdrażanie układów SPLD w nowych wersjach, których możliwości
logiczne (funkcjonalne) optymalizowano pod kątem zwiększania zasobów oferowa−
nych użytkownikowi. Tak powstały układy 22V10 i 26V12, w których zmodyfiko−
wano typową architekturę GAL−a, a także bardziej zaawansowane funkcjonalnie
układy GAL6001/6002, których poważnymi atutami było zastosowanie zagrzeba−
nych makrokomórek oraz rozdzielenie makrokomórek realizujących funkcje logicz−
ne od makrokomórek buforujących wejścia i wyjścia.
Liczba wejść sygnałów logicznych na programowalną matrycę AND i wyjść z mat−
rycy OR zależy od typu układu i może się zmieniać odpowiednio od 8…32/2…12.
W celu zwiększenia elastyczności struktur PAL/PLA, w większości współcześnie
produkowanych układów SPLD programowalna matryca AND jest wyposażana
w dodatkowe wydzielone linie, do których doprowadzone są sygnały sprzężenia
zwrotnego z wyjść bramek OR, przerzutników wyjściowych lub innych elementów
Warto zapamiêtaæ!
Warto pamiętać, że „PAL” oznacza zarówno rodzaj architektury ukła−
du logicznego, jak i – w wielu przypadkach – określa jego typ. Jest to
wynik zaszłości historycznej, gdyż pierwsze układy o architekturze
PAL wprowadziła na rynek firma MMI pod nazwą PAL16/20.
34
Rys. 2.3. Przyk³adowy schemat logiczny uk³adu GAL16V8
2. Architektury układów programowalnych
2.2. Układy CPLD
35
makrokomórek wyjściowych. Istotny wpływ na elastyczność łączeniową układów
PAL/PLA mają także wymiary matryc programowalnych łączących sygnały wej−
ściowe oraz maksymalna liczba iloczynów (termów) sumowanych przez bramki
OR. Przykładowo, w układach GAL16V8 i pochodnych, programowalna matryca
AND ma wymiary 64×32, a liczba wejść bramek OR wynosi 7 lub 8, w zależności
od trybu pracy układu. W nieco większych układach, pochodnych układu
GAL20V8, programowalna matryca AND ma wymiary 64×40, ale maksymalna
liczba wejść bramek OR także nie przekracza 8. Większą elastyczność oferują ukła−
dy GAL26V12 oraz GAL22V10, których matryce AND mają rozmiary 122×52
i 132×44, a do wejść bramek sumy logicznej OR jest podawane 8…12/8…16 syg−
nałów z wyjść bramek iloczynowych (termów). Liczba wejść bramek OR zależy od
fizycznego położenia makrokomórki, co czasami wymaga optymalizowania projek−
tu pod kątem dostępnych zasobów układu.
2.2. Uk³ady CPLD
Pierwszymi dostępnymi na rynku układami CPLD (Complex Programmable Logic
Devices) były opracowane w laboratoriach firmy MMI układy MegaPAL. Ich archi−
tektura była oparta na klasycznych rozwiązaniach, wcześniej sprawdzonych w ukła−
dach PAL16/20, przy czym znacznie zwiększono wymiary matrycy programowalnej
AND. Dzięki temu zabiegowi zwiększono liczbę sygnałów wejściowych doprowa−
dzanych do matrycy AND, a także znacznie zwiększono liczbę rejestrów wyjścio−
wych, co w założeniach konstruktorów układu miało radykalnie zwiększyć elastycz−
ność i możliwości funkcjonalne układów MegaPAL. Szybko okazało się jednak, że
wraz z powiększeniem rozmiarów matrycy AND zwiększyły się także pojemności pa−
sożytnicze i w konsekwencji wzrósł czas propagacji sygnału w tych układach, w na−
stępstwie czego układy MegaPAL uzyskały przydomek MegaSlow.
Warto zapamiêtaæ!
Zestawienie podstawowych parametrów układów CPLD znajduje się
w tablicy 8.2 (w rozdziale 8).
Klęska projektu MegaPAL zmusiła projektantów układów PLD o dużym stopniu sca−
lenia do zmiany koncepcji architektury dla dużych układów. W wyniku wielu prób
opracowano architekturę opartą także na blokach PAL, jednakże połączonych ze sobą
szybką, programowaną matrycą połączeniową (rys. 2.4). Jej zadaniem jest dostarcza−
nie sygnałów z wejść układu do wejść lokalnych matryc programowalnych (np. typu
AND), które umożliwiają realizowanie zadanych funkcji logicznych.
2. Architektury układów programowalnych
36
Rys. 2.4. Uproszczony schemat logiczny uk³adu o architekturze CPLD
Matryce połączeniowe mają bardzo różną architekturę, a w nowoczesnych ukła−
dach CPLD przypominają klasyczną „kratę”, w węzłach której są klucze (łączni−
ki) połączeniowe. Co prawda klasyczna kratownica zapewnia największe możli−
wości łączeniowe (ma dużą zdolność łączeniową), lecz jej implementacja
w strukturze wymaga wykonania bardzo dużej liczby programowalnych elemen−
tów łączących. W przypadku układu ze 128 makrokomórkami liczba elementów
łączących (łączników) mieści się w przedziale 65000…128000, a czas opóźnienia
wprowadzany przez taki element wynosi typowo 7…15 ns. W większości współ−
czesnych układów CPLD „matrycę połączeniową” zrealizowano więc w postaci
zespołu programowalnych multiplekserów, które dostarczają wybrane sygnały
z linii wejściowych i sprzężenia zwrotnego do bloków logicznych, jak to pokaza−
no na rysunku 2.5. Czas propagacji sygnału przez multipleksery 4−wejściowe nie
przekracza 0,4…2 ns. Zastosowanie do realizowania połączeń multiplekserów za−
miast typowych matryc połączeniowych z elementami łączącymi (kluczami) po−
zwoliło ograniczyć liczbę komórek pamięci nieulotnej podtrzymujących te połą−
czenia około 256−krotnie.
Warto zapamiêtaæ!
Ze względu na brak możliwości precyzyjnego zakwalifikowania nowo−
czesnych układów PLD do grup FPGA lub CPLD zgodnie z ich kla−
sycznymi definicjami, przyjęto klasyfikacje zgodne z sugestiami pro−
ducentów.
2.2. Układy CPLD
37
Rys. 2.5. Budowa multiplekserowej matrycy po³¹czeniowej
Niezależnie od wykonania, ważnymi parametrami matrycy połączeniowej są: zdol−
ność łączeniowa i czas propagacji sygnału. Przez pojęcie zdolności łączeniowej ro−
zumie się możliwość dołączenia dowolnego sygnału wyjściowego do dowolnie wy−
branego wejścia. Producenci układów rozwiązują związane z tym problemy w róż−
ny sposób, czego efektem są różnorodne architektury matryc połączeniowych,
w „dużych” układach CPLD także wielopoziomowe. Architektura matrycy połącze−
niowej i zastosowana do jej realizacji technologia mają duży wpływ na czas propa−
gacji sygnału. We współczesnych układach CPLD czas propagacji sygnału przez
matrycę połączeniową nie przekracza zazwyczaj 0,8…3 ns (m.in. matryce GRP –
Lattice, PIA – Altera, PIM – Cypress, ZIA – Xilinx). Dostępne są także układy,
w których czas propagacji skrócono do ok. 100…200 ps (ZIA – Xilinx).
2.2.1. Uk³ady CPLD firmy Altera
Firma Altera należy do producentów oferujących niezwykle bogatą gamę ukła−
dów klasyfikowanych jako CPLD. Są wśród nich układy rodzin MAX3K/7K/9K,
w których zastosowano klasyczną architekturę CPLD, a także układy rodzin
FLEX6K/8K, FLEX10K, APEX20K, ACEX1 i ACEX2, które charakteryzują się
znacznie większą gęstością upakowania oraz znacznie bardziej zaawansowanymi
rozwiązaniami architektonicznymi, do których bez wątpienia należą: wbudowane
konfigurowane bloki pamięci SRAM nie zajmującej innych zasobów układów,
wbudowane pętle PLL z powielaczami częstotliwości, ultraszybkie interfejsy
LVDS (Low Voltage Differential Signalling), interfejsy umożliwiające współpracę
z pamięciami DDRAM, QDRAM, ZBT itp.
Rozdzia³
5
Charakterystyka
oprogramowania CAD
dla uk³adów
programowalnych
W rozdziale przedstawiono możliwości oraz realizację projektów za pomocą najpo−
pularniejszych obecnie systemów projektowych służących do implementacji układów
w strukturach PLD. Dobrano je biorąc także pod uwagę możliwość zdobycia ich
w wersjach demonstracyjnych lub bezpłatnych, których możliwości implementacyjne
zazwyczaj niewiele odbiegają od możliwości systemów komercyjnych.
5. Charakterystyka oprogramowania CAD dla układów programowalnych
214
5.1. Wstêp
Grono producentów układów programowalnych opracowujących własne narzę−
dzia programowe do implementacji układów w oferowanych przez siebie struk−
turach było i jest stosunkowo niewielkie. W początkowym okresie rozwoju
układów programowalnych sytuację tę wykorzystały firmy zajmujące się two−
rzeniem wyłącznie oprogramowania (jak np. ViewLogic Data I/O, Mentor
Graphics czy Accel) oraz firmy zajmujące się zupełnie innymi dziedzinami
elektroniki (jak np. Logical Devices), które zaczęły oferować oprogramowanie
również dla układów programowalnych. Zmonopolizowanie światowego rynku
w tej dziedzinie spowodowało, że większość firm tworzących pierwsze progra−
my narzędziowe dla PLD już nie istnieje lub ich marka jest wykorzystywana
tylko w celach marketingowych przez rynkowych potentatów zajmujących się
opracowywaniem różnego rodzaju oprogramowania (np. firmy Innoveda, Protel
czy też Mentor Graphics).
Pomimo wyraźnego trendu monopolizacji rynku oprogramowania wspomagające−
go projektowanie, panuje na nim silna konkurencja, dzięki której coraz więcej
producentów udostępnia bezpłatne wersje swoich narzędzi. Zazwyczaj mają one
nieco mniejsze możliwości od wersji komercyjnych, ale w wielu przypadkach
różnice między oprogramowaniem w wersji bezpłatnej i komercyjnej są na tyle
mało istotne, że oprogramowanie bezpłatne może być z powodzeniem wykorzys−
Tablica 5.1. Zestawienie podstawowych mo¿liwoœci wybranych zintegrowanych pakietów
oprogramowania narzêdziowego do implementacji uk³adów w strukturach PLD
Mo¿liwe sposoby
opisu projektu
Tekstowy, schematy,
przebiegi czasowe
Tekstowy, schematy,
przebiegi czasowe
Nazwa pakietu
Producent
Max+Plus II
Altera
Quartus II
Altera
WinCUPL
Atmel
(Logical
Devices)
Tekstowy
CUPL
PLA, PDIF, PALASM
Warp
Cypress
Tekstowy, graficzny
(dla FSM)
Verilog, VHDL
Verilog, VHDL
ispDesign Expert
Lattice
Tekstowy, schematy
Verilog, VHDL, ABEL
Verilog, VHDL, EDIF
ispPAC Designer
QuickWorks
Lattice
Schematy
Quick Logic Tekstowy, schematy
Tekstowy, schematy,
Xilinx
graficzny opis
automatów
Tekstowy, schematy,
Xilinx
graficzny opis
automatów
–
VHDL
–
Verilog, VHDL
VHDL, Verilog, ABEL
VHDL, Verilog, EDIF,
SDF
ABEL
VHDL, Verilog, EDIF,
SDF
Foundation ISE
WebPack ISE
Jêzyki opisu
Interfejsy wyjœciowe
Verilog, VHDL, AHDL,
Verilog, VHDL, AHDL, EDIF, JAM, SVF
Verilog, VHDL, AHDL,
Verilog, VHDL, AHDL, EDIF, JAM, SVF
Uwagi:
1. Podano ceny netto obowi¹zuj¹ce w sieciach dystrybucyjnych w Europie Zachodniej.
215
5.2. Rodzaje narzędzi programowych
tywane do celów dydaktycznych i realizacji własnych projektów. Z tego właśnie
powodu chcielibyśmy w tym rozdziale przedstawić kilka bezpłatnych pakietów
oprogramowania narzędziowego o możliwościach przekraczających często po−
trzeby większości projektantów.
5.2. Rodzaje narzêdzi programowych
Wśród oferowanych pakietów oprogramowania narzędziowego różnych producen−
tów jest stosunkowo niewiele takich, które umożliwiają realizację wszystkich eta−
pów cyklu projektowego. Najczęściej narzędzia tego rodzaju dostarczają swoim
klientom producenci układów programowalnych. Na przykład Altera oferuje pakie−
ty Max+Plus II oraz Quartus/Quartus II, Cypress pakiet Warp, Lattice pakiet ispDe−
sign Expert, Quick Logic pakiet Quick Works a Xilinx pakiety Foundation ISE
i WebPack ISE. Zestawienie najpopularniejszych zintegrowanych narzędzi progra−
mowych wraz z ich najważniejszymi możliwościami zawarto w tablicy 5.1 (za isd,
September 2000).
Pomimo pozornej obfitości narzędzi CAD wspomagających projektowanie i im−
plementację układów w strukturach PLD wiele firm niezależnych od producen−
tów układów programowalnych także oferuje różnego rodzaju programy narzę−
cd. tabl. 5.1
Nazwa pakietu
Przybli¿ona cena
wersji komercyjnej
System operacyjny
Obs³ugiwane uk³ady PLD
Wszystkie uk³ady SPLD i CPLD
b.d.
produkowane przez Alterê
Quartus II
Windows 95/98/2000/NT,
Solaris 2.5/2.6, HP-UX, AIX
Windows 98/2000/NT,
Solaris 2.6/2.7, HP-UX
WinCUPL
Windows 95/98/2000/Me/NT
Warp
Windows 95/98/2000/Me/NT
ispDesign Expert
Windows 95/98/2000/Me/NT
ispPAC Designer
QuickWorks
Max+Plus II
APEX, ACEX, Mercury
b.d.
SPLD (GAL), ATF15xx,
ATF75x, ATV2500
b.d.
Windows 95/98/2000/Me/NT
Windows 95/98/NT/2000/Me
Ultra37000, Delta39K,
Quantum38K
ispLSI, ispMACH, ispGDX,
ispGAL, GAL, PAL
ispPAC
FPGA firmy Quick Logic
150USD
995..1700USD
Foundation ISE
Windows 95/98/NT/2000/Me
XC9500, XC3K/4K/5K,
Spartan, Virtex, Virtex II
od 695USD
WebPack ISE
Windows 95/98/NT/2000/Me
XC9500, CoolRunner
bezp³atny
99...2995USD
995..5995USD
2. W kolumnie „Interfejsy wyjœciowe” nie wymieniono formatów plików wykorzystywanych do programowania lub testowania uk³adów. Wszystkie zawarte w tablicy pakiety narzêdziowe wyposa¿ono w interfejsy tego typu.
5. Charakterystyka oprogramowania CAD dla układów programowalnych
216
Tablica 5.2. Zestawienie podstawowych mo¿liwoœci wybranych pakietów oprogramowania
narzêdziowego do syntezy logicznej w strukturach PLD
Nazwa pakietu
Producent
Mo¿liwe sposoby
opisu projektu
Jêzyki opisu
Interfejsy wyjœciowe
Active-HDL
Aldec
Tekstowy, schematy
Verilog, VHDL
Verilog, VHDL, EDIF
FPGA Advantage
Mentor
Graphics
Tekstowy, diagramy
Verilog, VHDL
Verilog, VHDL, EDIF
FPGA Express
Synopsys
Tekstowy
VHDL, Verilog, EDIF
VHDL, Verilog, EDIF
Peak FPGA
Protel
Tekstowy, schematy
VHDL
EDIF
Synplify
Synplicity
Tekstowy
VHDL, Verilog
EDIF
dziowe umożliwiające realizację fragmentów cyklu projektowego. Najwięcej
„alternatywnego” oprogramowania służy do specyfikacji projektu układu oraz
jego symulacji funkcjonalnej i czasowej. Większość spośród dostępnych progra−
mów narzędziowych tego rodzaju wymaga od projektanta znajomości jednego ze
standardowych języków HDL: Veriloga lub VHDL. Poszczególne bloki funkcjo−
nalne projektowanego układu można oczywiście opisywać na różne sposoby,
lecz wspólną platformą systemów projektowych tego rodzaju są właśnie języki
HDL wysokiego poziomu.
Stosowanie takich narzędzi ma sens szczególnie w przypadku realizowania wielu
projektów dla układów docelowych o różnych architekturach i pochodzących od
różnych producentów. Dzięki nim projektant nie musi poznawać wielu narzędzi
o często odmiennych sposobach obsługi, może natomiast skupić się na rozwią−
zywaniu merytorycznych problemów związanym z projektem. Po zakończeniu
opisu projektu i jego kompilacji jest generowany plik wynikowy w jednym ze
standardowych formatów (np. EDIF itp.), który może być następnie
wykorzystany do implementacji tego projektu w wybranym układzie PLD za po−
mocą innych narzędzi programowych.
Ponieważ za pomocą narzędzi tego rodzaju można przeprowadzić wstępną kom−
pilację projektu oraz jego symulację funkcjonalną i czasową dla wirtualnych
układów programowalnych, to do tego celu wystarczają tylko standardowe bib−
lioteki zawierające modele czasowo−funkcjonalne układów docelowych. Biblio−
teki tego rodzaju są bezpłatnie udostępniane przez producentów układów. Taki−
mi „częściowymi” programami narzędziowymi, przeznaczonymi do realizowania
syntezy logicznej, są: Active−HDL firmy Aldec, FPGA Advantage firmy Mentor
Graphics, Peak FPGA firmy Protel, czy też Synplify firmy Synplicity. Zestawie−
nie najpopularniejszych narzędzi „częściowych” wraz z ich najważniejszymi
możliwościami zawarto w tablicy 5.2 (za isd, September 2000).
217
5.3. Zintegrowane oprogramowanie narzędziowe
cd. tabl. 5.2
Nazwa pakietu
Active-HDL
FPGA Express
Synplify
Obs³ugiwane uk³ady PLD
W zale¿noœci od do³¹czonych
bibliotek
Windows 95/98/NT/2000/Me, W zale¿noœci od do³¹czonych
Solaris, HP-UX
bibliotek
W zale¿noœci od do³¹czonych
Windows 95/98/NT/2000/Me bibliotek
W zale¿noœci od do³¹czonych
Windows 95/98/NT/2000/Me bibliotek
Windows 95/98/NT/2000/Me, W zale¿noœci od do³¹czonych
Solaris, HP-UX
bibliotek
Windows 95/98/NT/2000/Me
FPGA Advantage
Peak FPGA
System operacyjny
Przybli¿ona cena
wersji komercyjnej
2995...6800USD
12000..70000USD
b.d.
2495USD
od 6250USD
Uwagi:
1. Podano ceny netto obowi¹zuj¹ce w sieciach dystrybucyjnych w Europie Zachodniej.
5.3. Zintegrowane oprogramowanie narzêdziowe
Przedstawimy opis czterech systemów projektowych dla układów PLD wraz ze
wskazówkami dotyczącymi ich obsługi. Dwa z nich (Max+Plus II oraz WinCUPL)
są klasycznymi systemami projektowymi dla cyfrowych układów programowal−
nych, trzeci (WebFitter) jest zdalnym systemem internetowym, a czwarty (ispPAC
Designer) jest nietypowym programem narzędziowym, służącym do konfigurowa−
nia analogowych układów programowalnych.
5.3.1. Max+Plus II firmy Altera
Max+Plus II jest jednym z najbardziej przyjaznych narzędzi CAD służących do
projektowania i implementacji układów w strukturach programowalnych, pomimo
jego ogromnych możliwości użytkowych. W skład pakietu wchodzą: edytor sche−
matowy, edytor tekstowy dla różnych języków HDL, graficzny edytor przebiegów,
kompilator, symulator funkcjonalny i czasowy, system definiowania stylów kompi−
lacji projektu oraz bardzo bogate biblioteki gotowych bloków funkcjonalnych. Do
najważniejszych zalet tego systemu należy zaliczyć:
Warto zapamiêtaæ!
Pakiet oprogramowania Max+Plus II jest dostępny w dwóch wersjach,
których możliwości niewiele ustępują możliwościom pakietu w wersji
komercyjnej. Są to: Max+Plus II Baseline oraz Max+Plus II Student
Edition (z kompilatorami VHDL i Verilog). Pakiety w obydwu wers−
jach można „ściągnąć” ze strony WWW firmy Altera http://www.alte−
ra.com/support/software/sof−download_center.html. Ich aktywizacja
wymaga rejestracji, po której otrzymuje się bezpłatnie plik licencyjny.

Podobne dokumenty