Spis treœci. 1. Informacje wstępne... 11. 2. Architektury układów programowalnych... 31



Podobne dokumenty
ZL11PRG v.2. Uniwersalny programator ISP. Odpowiednik: Byte Blaster II DLC5 Programmer AT89ISP STK-200 Lattice ISP ARM Wiggler

Elektronika i techniki mikroprocesorowe

Język opisu sprzętu VHDL

PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE

Temat: Pamięci. Programowalne struktury logiczne.

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

Elementy cyfrowe i układy logiczne

ZL19PRG. Programator USB dla układów PLD firmy Altera

Katedra Mikroelektroniki i Technik Informatycznych

Systemy na Chipie. Robert Czerwiński

Opracował: Jan Front

ZL10PLD. Moduł dippld z układem XC3S200

Technika Cyfrowa 2 wykład 1: programowalne struktury logiczne - wprowadzenie

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Zakład Układów Elektronicznych i Termografii ( Prezentacja bloków i przedmiotów wybieralnych

Układy programowalne

Układy programowalne. Wykład z ptc część 5

Projektowanie układów FPGA. Żródło*6+.

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

Cyfrowe układy scalone

Cyfrowe układy scalone

METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Opis przedmiotu zamówienia CZĘŚĆ 1

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

PRZEWODNIK PO PRZEDMIOCIE

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

WebPack nadal bezpłatnie, ale z licencją

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

PROGRAMOWALNE STEROWNIKI LOGICZNE

Bezpieczeństwo informacji oparte o kryptografię kwantową

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

PSM niebanalne Flashe

Programowalne Układy Cyfrowe Laboratorium

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

2. PRZERZUTNIKI I REJESTRY

Systemy wbudowane. Paweł Pełczyński

Opisy efektów kształcenia dla modułu

Rok akademicki: 2013/2014 Kod: JIS s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Opisy efektów kształcenia dla modułu

Rok akademicki: 2030/2031 Kod: EIT s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

System on Chip na miarę S P R Z Ę T

Opis przedmiotu zamówienia

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

Bezpieczeństwo informacji oparte o kryptografię kwantową

PROJEKTOWANIE UKŁADÓW VLSI

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Ćw. 7: Układy sekwencyjne

Rok akademicki: 2030/2031 Kod: EEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

Układy programowalne. Wykład z ptc część 5

Rok akademicki: 2016/2017 Kod: EAR s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

4. Wpisz do tabeli odpowiednie oznaczenia ukladów: PAL, PLA, PLE

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 1 (3h) Wprowadzenie do systemu Quartus II

LABORATORIUM PROJEKTOWANIA UKŁADÓW VLSI

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Technika Cyfrowa 2. Wykład 1: Programowalne układy logiczne

Systemy wbudowane. Układy programowalne

Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego

BADANIE UKŁADÓW CYFROWYCH. CEL: Celem ćwiczenia jest poznanie właściwości statycznych układów cyfrowych serii TTL. PRZEBIEG ĆWICZENIA

Wstęp Architektura... 13

Wielokontekstowy sterownik programowalny przyszłości wykorzystujący układy programowalne psoc

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Sterowniki Programowalne (SP)

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

T. Łuba, B. Zbierzchowski Układy logiczne Podręcznik WSISiZ, Warszawa 2002.

Projektowanie układów cyfrowych w strukturach FPGA

TECHNIKA CYFROWA ELEKTRONIKA ANALOGOWA I CYFROWA. Badanie rejestrów

Zakład Układów Elektronicznych i Termografii

Układy programowalne w technice cyfrowej

Komputerowe systemy wspomagania projektowania układów cyfrowych

Rok akademicki: 2013/2014 Kod: EEL s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2017

To nie huragan, to Cyclone II!

Altera MAX10: nowa generacja FPGA i jej nowe możliwości

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

PRZEWODNIK PO PRZEDMIOCIE

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

x x

TECHNIKA CYFROWA ELEKTRONIKA ANALOGOWA I CYFROWA. Układy czasowe

Technika Cyfrowa. Badanie pamięci

AiR_UCiM_3/5 Układy Cyfrowe i Mikroprocesorowe Digital Circuits and Microprocessors

Politechnika Warszawska

Artur Cichowski Paweł Szczepankowski Wojciech Śleszyński TECHNIKA CYFROWA I MIKROPROCESOROWA LABORATORIUM

PROTOTYPOWANIE UKŁADÓW ELEKTRONICZNYCH Programowalne układy logiczne FPGA Maciej Rosół, Katedra Automatyki AGH,

PRZEWODNIK PO PRZEDMIOCIE

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

Projektowanie Systemów Wbudowanych

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Transkrypt:

Spis treści 5 Spis treœci 1. Informacje wstępne... 11 1.1. Wprowadzenie... 12 1.2. Układy PLD i ASIC... 12 1.3. Pierwsze układy programowalne... 13 1.4. Klasyfikacja układów programowalnych... 22 1.5. Konfigurowanie układów... 26 1.6. Producenci układów programowalnych... 28 2. Architektury układów programowalnych... 31 2.1. Układy PLD i SPLD... 32 2.2. Układy CPLD... 35 2.2.1. Układy CPLD firmy Altera... 37 2.2.1.1. Rodziny MAX3K/7K... 38 2.2.1.2. Rodzina MAX9K... 41 2.2.1.3. Rodzina FLEX8K... 44 2.2.1.4. Rodzina FLEX6K... 48 2.2.1.5. Rodziny FLEX10K, FLEX10KE, ACEX1K... 50 2.2.1.6. Rodzina APEX20K... 54 2.2.2. Układy CPLD firmy Atmel... 59 2.2.2.1. Rodzina AT750... 60 2.2.2.2. Rodzina AT2500... 60 2.2.2.3. Rodzina ATF1500... 62 2.2.3. Układy CPLD firmy Clear Logic... 63 2.2.4. Układy CPLD firmy Cypress... 66 2.2.4.1. Rodzina MAX340... 66 2.2.4.2. Rodziny Flash370/370i oraz Ultra37000... 68 2.2.4.3. Rodzina Delta39K... 71 2.2.5. Układy CPLD firmy Lattice... 75 2.2.5.1. Rodzina isplsi1000ea... 76 2.2.5.2. Rodziny isplsi2000ve/vl/e... 79 2.2.5.3. Rodzina isplsi5000va/ve... 79 2.2.5.4. Rodzina isplsi8000/8000v... 83 2.2.5.5. Rodzina ispmach4a... 85 2.2.5.6. Rodzina MACH5... 87 2.2.6. Układy CPLD firmy Xilinx... 88 2.2.6.1. Rodziny 9500/9500XL/9500XV... 88 2.2.6.2. Rodzina CoolRunner... 91

6 Spis treści 2.3. Układy FPGA... 94 2.3.1. Układy FPGA firmy Atmel... 94 2.3.1.1. Rodziny AT40K/40KAL... 95 2.3.1.2. Rodzina AT6000... 101 2.3.2. Układy FPGA firmy Quick Logic... 105 2.3.2.1. Rodzina pasic1... 106 2.3.2.2. Rodzina pasic2... 107 2.3.2.3. Rodziny pasic3, QuickPCI i QuickRAM... 110 2.3.2.4. Rodzina Eclipse... 111 2.3.2.5. Rodzina QuickDSP... 114 2.3.3. Układy FPGA firmy Xilinx... 114 2.3.3.1. Rodzina XC3000... 115 2.3.3.2. Rodziny XC4000E, XC4000X, XC4000XLA i XC4000XV... 118 2.3.3.3. Rodzina XC5200... 123 2.3.3.4. Rodziny Spartan i Spartan XL... 127 2.3.3.5. Rodzina Spartan II... 131 2.3.3.6. Rodziny Virtex, Virtex E i Virtex EM... 134 2.3.3.7. Rodzina Virtex II... 136 2.4. Układy ASIC i PLD programowane maską... 144 2.4.1. Projektowanie układów ASIC... 146 2.4.2. Układy ASIC oferowane przez firmę Philips... 147 2.4.3. Układy ASIC oferowane przez firmę Epson... 148 2.4.4. Układy ASIC oferowane przez firmę AMS... 151 2.5. Analogowe układy programowalne... 152 2.5.1. Wzmacniacze programowalne w systemie... 152 2.5.2. Programowalny w systemie filtr dolnoprzepustowy... 155 2.6. Inne rodzaje układów programowalnych... 155 2.6.1. Interfejsy szeregowe zintegrowane z PLD... 156 2.6.2. Matryce programowalnych przełączników... 158 2.6.3. Programowalne interfejsy peryferyjne... 161 2.6.4. Układy FPSLIC... 165 3. Realizacja układów cyfrowych w strukturach programowalnych... 169 3.1. Programowanie pierwszych układów PLD... 170 3.2. Etapy realizacji układów w strukturach PLD... 171 3.3. Specyfikacja projektu układu... 172 3.4. Implementacja projektu... 176 3.5. Weryfikacja projektu... 179 3.6. Programowanie... 180

Spis treści 7 4. Języki projektowania PLD... 181 4.1. Języki HDL... 182 4.2. Charakterystyka języków HDL... 182 4.3. Sposoby opisu układów... 183 4.3.1. Opis strukturalny... 183 4.3.2. Opis behawioralny... 184 4.4. Języki opisu układów realizowanych w strukturach programowalnych... 185 4.4.1. Język ABEL... 185 4.4.2. Język AHDL... 197 4.4.3. Język CUPL... 202 4.4.4. Język VHDL... 206 4.4.5. Język Verilog... 208 4.5. Opis hierarchiczny... 209 5. Charakterystyka oprogramowania CAD dla układów programowalnych... 213 5.1. Wstęp... 214 5.2. Rodzaje narzędzi programowych... 215 5.3. Zintegrowane oprogramowanie narzędziowe... 217 5.3.1. Max+Plus II firmy Altera... 217 5.3.1.1. Obsługa systemu Max+Plus II... 218 5.3.2. WinCUPL 5.1... 234 5.3.2.1. Obsługa WinCUPL 5.1... 234 5.3.3. PAC Designer firmy Lattice... 239 5.3.3.1. Obsługa programu PAC Designer... 240 5.4. Zdalne narzędzia internetowe... 244 5.4.1. WebFitter firmy Xilinx... 244 5.4.1.1. Obsługa WebFittera... 244 5.5. 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. Elektroniczny kompas... 258 6.1.1. Opis układu... 259 6.2. Karta serwisowa do komputerów PC... 260 6.2.1. Opis układu... 261

8 Spis treści 6.3. Czterokanałowa przystawka do oscyloskopu... 264 6.3.1. Opis układu... 265 6.4. Układ zliczający osoby w pomieszczeniu... 269 6.4.1. Opis układu... 269 6.5. Miernik częstotliwości, czasu i okresu... 273 6.5.1. Opis układu... 273 6.6. Karta przetwornika A/C i C/A do PC... 280 6.6.1. Opis układu... 280 6.7. Dekoder klawiatury 12 stykowej... 284 6.7.1. Opis układu... 284 6.8. Nastawnik kanału radiowego... 288 6.8.1. Opis układu wersja 1... 288 6.8.2. Opis układu wersja 2... 292 6.9. Licznik dwukierunkowy z wyświetlaczem LED... 295 6.9.1. Opis układu... 296 6.10. Zestaw laboratoryjny z układami EPM7128S i EPF10K10... 300 6.10.1. Opis układu... 301 7. Programowanie, konfigurowanie i testowanie układów... 305 7.1. Klasyczne metody programowania układów PLD... 306 7.2. Konfigurowanie układów z komórkami pamięci typu SRAM... 308 7.3. Programowanie i testowanie w systemie... 312 7.3.1. Przyspieszone programowanie... 312 7.3.2. Powstanie interfejsu JTAG... 314 7.3.3. Budowa interfejsu JTAG... 316 7.3.4. Praktyczne aspekty stosowania interfejsu JTAG... 319 7.3.5. Nowelizacja normy JTAG... 321 7.3.6. Jam STAPL język programowania obsługi interfejsów JTAG... 322 7.3.7. Układy ISP w systemach mikroprocesorowych... 325 7.4. Programatory układów ISP... 327 7.4.1. Programator ISP dla układów firmy Altera (ByteBlaster)... 327 7.4.2. Programator ISP dla układów firmy Lattice... 329 7.4.3. Programator ISP dla układów firmy Xilinx (PC III, DLC5)... 330 8. Informacje uzupełniające... 333 8.1. Parametry wybranych układów PLD... 334 8.2. Adresy internetowe firm i organizacji działających na rynku PLD... 359 8.3. Słownik... 361 8.4. 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

10 Od autorów 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.

32 2. Architektury układów programowalnych 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 Wejœcia A B C Programowana matryca AND i na sta³e skonfigurowana matryca OR - oznacza mo liwoœæ zrealizowania "zwarcia" lub "rozwarcia" (po³¹czenie programowane) X Y 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 2. Architektury układów programowalnych Rys. 2.3. Przyk³adowy schemat logiczny uk³adu GAL16V8

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.

36 2. Architektury układów programowalnych 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.

214 5. Charakterystyka oprogramowania CAD dla układów programowalnych 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 Nazwa pakietu Producent Mo liwe sposoby opisu projektu Jêzyki opisu Interfejsy wyjœciowe Max+Plus II Altera Tekstowy, schematy, Verilog, VHDL, AHDL, przebiegi czasowe Verilog, VHDL, AHDL, EDIF, JAM, SVF Quartus II Altera Tekstowy, schematy, Verilog, VHDL, AHDL, przebiegi czasowe Verilog, VHDL, AHDL, EDIF, JAM, SVF Atmel WinCUPL (Logical Tekstowy CUPL PLA, PDIF, PALASM Devices) Warp Cypress Tekstowy, graficzny (dla FSM) Verilog, VHDL Verilog, VHDL ispdesign Expert Lattice Tekstowy, schematy Verilog, VHDL, ABEL Verilog, VHDL, EDIF isppac Designer Lattice Schematy QuickWorks Quick Logic Tekstowy, schematy VHDL Verilog, VHDL Tekstowy, schematy, Foundation ISE Xilinx graficzny opis VHDL, Verilog, ABEL VHDL, Verilog, EDIF, automatów SDF Tekstowy, schematy, WebPack ISE Xilinx graficzny opis ABEL automatów Uwagi: 1. Podano ceny netto obowi¹zuj¹ce w sieciach dystrybucyjnych w Europie Zachodniej. VHDL, Verilog, EDIF, SDF

5.2. Rodzaje narzędzi programowych 215 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 System operacyjny Obs³ugiwane uk³ady PLD Przybli ona cena wersji komercyjnej Max+Plus II Quartus II WinCUPL Windows 95/98/2000/NT, Wszystkie uk³ady SPLD i CPLD Solaris 2.5/2.6, HP-UX, AIX produkowane przez Alterê b.d. Windows 98/2000/NT, Solaris 2.6/2.7, HP-UX APEX, ACEX, Mercury b.d. Windows 95/98/2000/Me/NT SPLD (GAL), ATF15xx, ATF75x, ATV2500 b.d. Warp Windows 95/98/2000/Me/NT Ultra37000, Delta39K, Quantum38K 99...2995USD ispdesign Expert Windows 95/98/2000/Me/NT isplsi, ispmach, ispgdx, ispgal, GAL, PAL 995..5995USD isppac Designer Windows 95/98/2000/Me/NT isppac 150USD QuickWorks Windows 95/98/NT/2000/Me FPGA firmy Quick Logic 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 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.

216 5. Charakterystyka oprogramowania CAD dla układów programowalnych 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).

5.3. Zintegrowane oprogramowanie narzędziowe 217 cd. tabl. 5.2 Nazwa pakietu System operacyjny Obs³ugiwane uk³ady PLD Active-HDL FPGA Advantage FPGA Express Peak FPGA Synplify Windows 95/98/NT/2000/Me Windows 95/98/NT/2000/Me, Solaris, HP-UX Windows 95/98/NT/2000/Me Windows 95/98/NT/2000/Me Windows 95/98/NT/2000/Me, Solaris, HP-UX W zale noœci od do³¹czonych bibliotek W zale noœci od do³¹czonych bibliotek W zale noœci od do³¹czonych bibliotek W zale noœci od do³¹czonych bibliotek W zale noœci od do³¹czonych bibliotek Uwagi: 1. Podano ceny netto obowi¹zuj¹ce w sieciach dystrybucyjnych w Europie Zachodniej. Przybli ona cena wersji komercyjnej 2995...6800USD 12000..70000USD 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. b.d. 2495USD od 6250USD 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.