Układy programowalne w praktyce
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.