Dr Galina Cariowa
Programowalne technologie realizacji układów logicznych
Legenda Metody programowania układów PLD. Przykłady realizacji. Typy układów PLD.
I Metody programowania układów PLD Podział układów VLSI VLSI
Podział ASIC Układy na zamówienie z pełnym cyklem projektowania (full-custom): Wykonywany jest cały projekt układu wraz ze szczegółami związanymi z rozplanowaniem układu. Układy na zamówienie z ograniczonym cyklem projektowania (semi-custom), a w tym: a) układy wykorzystujące komórki standardowe (standard-cells); b) układy na płytkach wstępnie przygotowanych jak matryce bramek AND (gate arrays). Układy programowane przez użytkownika: a) programowalne układy logiczne PLD (programmable logic devices); b) mikroprocesory jednoukładowe z pamięcią reprogramowalną EPROM.
Układy programowane przez użytkownika PLD produkowane: 1) w strukturach, które realizują określone funkcje logiczne; 2) w strukturach, które są stosowane do określania połączeń lub przechowywania informacji.
Typy układów PLD 1. ROM (Read Only Memory) – programowalne pamięci tylko do czytania. 2. PLA (Programmable Logic Arrays) – układy programowalnych modułów logicznych. 3. PAL (Programmable Array Logic) - układy programowalnych matryc logicznych.
Zastosowanie układów PLD ustanowić lub przerwać połączenia w układzie (3metody) utworzyć komórki pamiętające, tzw. LUT (ang. Look-Up Tables) (praca własna) sterować załączaniem tranzystora (technologie: wymazywalna, elektrycznie wymazywalna, błyskowa- ang. flash) (praca własna)
Metody programowania połączeń w układzie PLD 1.Stosowanie tzw. bezpieczników (ang. fuse). Każdy z programowalnych węzłów w układzie PLD to połączenie utworzone przez taki bezpiecznik. Dwa stany połączenia (zamknięty i otwarty) są reprezentowane przez nienaruszony i przepalony bezpiecznik. Przyłożenie napięcia nieco większego od napięcia zasilającego układ powoduje przerwanie połączenia (przepalanie bezpiecznika)
Metody programowania połączeń w układzie PLD 2. Programowanie masek (ang. mask programming) - Wykonywane przez producenta układów półprzewodnikowych podczas ostatniej fazy procesu wytwarzania struktury półprzewodnikowej. - Uzasadnione tylko w przypadkach dużych ilości tego samego układu.
Metody programowania połączeń w układzie PLD 3. Stosowanie tzw. antybezpieczników (technologia antifuse) - Element antifuse składa się z dwóch przewodników położonych blisko siebie odseparowanych materiałem mającym wysoką rezystancję. - Przed zaprogramowaniem antybezpiecznik zachowuje się jak przerwa (ROZWARCIE) w obwodzie. - Przyłożenie do obu przewodników napięcia nieco wyższego od napięcia zasilania powoduje, że materiał odseparowujący jest topiony, przez co jego rezystancja staje się bardzo mała. - Materiał o niskiej rezystancji przewodzi i powstaje połączenie (tzn. zamknięta ścieżka).
Specjalna symbolika do przedstawienia matrycy logicznej Symbole wielowejściowej bramki OR
Położenie połączeń wszystkich typów układów PLD
Położenie programowalnych połączeń w PROM: Programowalne pamięci tylko do odczytu PROM zawierają na stałe skonstruowaną matrycę AND w postaci dekodera i programowalne połączenia dla matrycy OR. Układ PROM realizuje funkcje boolowskie w postaci sumy mintermów.
Położenie programowalnych połączeń w układach PAL: Układ PAL ma programowalne połączenia w matrycy AND i stałą strukturę matrycy OR. Bramki AND są programowane, by dostarczyć odpowiednie iloczyny, które są sumowane w każdej bramce OR. PAL jest zespołem bramek iloczynowych dołączonych do oddzielnych bramek OR.
Położenie programowalnych połączeń w PLA: Układ PLA ma programowalne połączenia zarówno w matrycy AND, jak i w matrycy OR. Iloczyn tworzony w matrycy AND może być wspólny i dołączony do dowolnej bramki OR, tworząc w ten sposób implementację wymaganej sumy iloczynów. PLA – najbardziej elastyczna struktura.
I Pamięć ROM Pamięć stała ROM jest pamięcią nieulotną, przeznaczoną tylko do odczytu. Nieulotność oznacza, że po wyłączeniu napięcia zasilania tej pamięci, informacja w niej przechowywana nie jest tracona. Określenie „tylko dla odczytu” oznacza, że do pamięci tej nie możemy zapisywać danych w trakcie jej normalnej pracy w systemie. Raz zapisana informacja jest trwale przechowywana przez długi czas i może być wielokrotnie odczytywana.
I Pamięć ROM Zawartość komórek pamięci ROM jest ustalana już w czasie produkcji. Raz wyprodukowana pamięć ROM już nie może zmienić swojej zawartości. W przypadku błędów w zapisanych danych nie ma możliwości ich poprawienia, całą pamięć trzeba wyprodukować od nowa. Pamięć ROM nie może być stosowana w urządzeniach jednostkowych. ! Gdy zawartość pamięci jest bez błędów to układy raz zaprojektowane można produkować w dużych ilościach po bardzo niskich kosztach.
I Pamięć ROM Schemat blokowy układu pamięci ROM Organizacja pamięci – sposób podziału obszaru pamięci na słowa.
I Przykład wewnętrznej organizacji pamięci ROM pojawi się słowo 1001.
I Wewnętrzna struktura pamięci ROM o organizacji 32 x 8.
Implementacja układu z użyciem pamięci ROM
Implementacja układu z użyciem pamięci ROM c.d.
Stosowanie układów pamięci ROM do implementacji: 1. złożonych układów kombinacyjnych na podstawie ich tablicy prawdy; 2. do konwersji z jednego kodu do innego kodu; 3.do generowania złożonych operacji arytmetycznych ( mnożenia i dzielenia); 4.do aplikacji wymagających umiarkowanej liczby wejść i znacznej liczby wyjść.
I Pamięć ROM. Technologie programowania.
Statyczna pamięć ROM o organizacji 8x2048 bitów. Pamięci PROM można zaprogramować tylko jeden raz.
Pamięć PROM (ang. programable ROM). Tworzenie zawartości pamięci ROM jest bardzo kosztowne w małych ilościach i zajmuje mnóstwo czasu. Pamięć PROM sprzedawana jest jako pusta - wszystkie komórki pamiętają stan logiczny 1 – zawartość można zdefiniować przy pomocy specjalnego urządzenia, zwanego programatorem pamięci PROM ( zastosowanie bezpieczników).
I Pamięć EPROM (Erasable Programmable ROM) EPROM - pamięć ROM, której zawartość można programować, a następnie w razie potrzeby wymazywać. Kasowanie zawartości pamięci wymaga naświetlenia jej struktury światłem ultrafioletowym przez około minut.
I Pamięć EPROM (Erasable Programmable ROM) W obudowie EPROM umieszczone jest małe okienko kwarcowe przepuszczające ultrafiolet, poprzez które widoczna jest płytka krzemowa zawierająca elementy pamięci. Pamięci te wytrzymują kilkaset - do kilku tysięcy cykli programowania i kasowania. Natomiast odczytywać zawartość pamięci EPROM można dowolną liczbę razy. Informacja przechowywana jest przez około 10 lat.
Pamięć EEPROM Electrically Erasable and Programmable ROM Pamięć EEPROM jest pamięcią stałą, którą można wymazywać elektrycznie i programować elektrycznie. Pamięć może być przeprogramowana w docelowym urządzeniu, np. w komputerze, przy pomocy odpowiedniego programu. Zaletą w porównaniu z EPROM jest selektywność kasowania - można usunąć zawartość określonych komórek pamięci bez naruszania informacji przechowywanej w innych komórkach.
Pamięć FLASH (Flash Memory) Pamięci Flash znalazły obecnie szerokie zastosowanie : w kartach pamięciowych do aparatów, kamer cyfrowych, telefonów, notebooków, odtwarzaczy mp3, iPodów itp. oraz w dyskach krzemowych USB zwanych Pen Drive. Pamięć Flash jest specyficznym rodzajem pamięci EEPROM
Pamięć FLASH (Flash Memory) Pamięć Flash jest pamięcią nieulotną, którą można elektrycznie wymazywać oraz programować - podobnie jak pamięć EEPROM. W pamięci FLASH kasowany jest jednocześnie cały blok komórek (np. w porcjach po 1024 bajty). Umożliwia to znacznie szybszy zapis nowej treści niż w przypadku EEPROM, stąd pochodzi nazwa FLASH - błysk. W pamięci EEPROM można kasować pojedyncze komórki.
II Struktura PLA (Programowalne moduły logiczne)
II Struktura PLA Programowalna matryca AND umożliwia tworzenie iloczynów pełnych lub niepełnych. Możliwe jest utworzenie nie wszystkich lecz tylko niektórych iloczynów. Programowalna matryca OR umożliwia tworzenie sum złożonych z dowolnych iloczynów utworzonych z matrycy AND.
II Zastosowanie programowalnych modułów logicznych (PLA) do implementacji funkcji
Iloczyny Wejścia Wyjścia (T) (C) A B C F 1 F Tablica programowania układu PLA
II Struktura PLA Przykłady realizacji. 5 wejść, 3 wyjścia, 6 bramek AND
II Struktura PLA Przykłady realizacji
II Struktura PLA Przykłady realizacji.
II Ogólny schemat struktury PLA ( po zaprogramowaniu)
II Schemat struktury PLA Symboliczny schemat matrycy PLA rozumieć należy następująco: 1. Linie poziome reprezentują zmienne wejściowe i wyjściowe. 2. Linie wejściowe są podwójne, górna odpowiada zmiennej w postaci prostej, dolna – zmiennej w postaci zanegowanej. 3. Linie pionowe reprezentują iloczyny (wejścia bramek AND). 4. Zmienna (prosta lub zanegowana) jest czynnikiem iloczynu jeżeli na przecięciu odpowiedniej linii poziomej i pionowej jest kropka. Iloczyn 0 zawiera zmienne i. 5. Jeśli iloczyn ten jest składnikiem odpowiedniej sumy (bramki OR) – analogiczna kropka jest umieszczona na przecięciu linii pionowej i poziomej wyjściowej. Suma zawiera 0 i k Fizycznie kropka oznacza, że dany punkt połączeniowy między linią pionową i poziomą jest zaprogramowany.
II Programowanie Struktury PLA Proces programowania jest wykonywany automatycznie na podstawie tablicy programowania PLA (mapy przepaleń PLA). W rezultacie tradycyjny układ logiczny zbudowany z bramek może być łatwo zrealizowany w strukturze PLA.
II Struktura PLA
III Struktura PAL (Programmable Array Logic) Struktura PAL złożona jest z programowalnej matrycy AND i stałej matrycy OR (wejścia bramek OR są dołączone na stałe do konkretnych linii iloczynu). Stanowi to oczywiście udogodnienie technologiczne, lecz jest pewnym ograniczeniem możliwości struktury i prowadzi do zmian w projektowaniu. Iloczyn wchodzący do kilku sum nie może być teraz używany wielokrotnie, a musi być tworzony tyle razy, do ilu bramek OR jest doprowadzany. !
Konfiguracja logiczna PAL
Przykład zastosowania układów PAL do implementacji funkcji
Zastosowanie układów PAL do implementacji funkcji
Realizacja PAL
III Realizacja PAL Schemat matrycy PAL interpretujemy w sposób podobny do sposobu interpretowania matrycy PLA. Jedyną różnicą jest to, że w tym przypadku wyjścia bramek AND są dołączone do wejść bramek OR na stałe – czyli nie są programowane. Z tych powodów liczba linii iloczynu w strukturach typu PAL jest większa niż w matrycach PLA. Mimo to w produkowanych obecnie strukturach programowalnych częściej stosuje się matryce typu PAL. Decydują o tym inne zalety tych struktur, a właściwie technologiczne wady matryc PLA.
Klasyfikacja układów PLD Obecnie produkowane układy PLD w zależności od ich struktury klasyfikujemy na: - proste układy PLD; - złożone układy PLD (Complex PLD, w skrócie CPLD); - złożone układy FPGA.
Układy FPGA ( Field Programmable Gate Array) W prostych układach PLD podstawowym elementem konstrukcyjnym jest matryca AND - OR i zespoły elementów wyjściowych. Realizacja bardziej złożonych układów logicznych wymaga użycia wielu PLD. Programowalne układy logiczne służące do realizacji złożonych układów logicznych w pojedynczym układzie scalonym nazywane są FPGA. FPGA zawierają szereg komórek, składających się z podstawowych układów logicznych (dekodery, multipleksery, itp.) które można łączyć.
Układy FPGA Strukturę układu tworzy macierz niezależnych bloków logicznych LAB (ang. Logic Array Block). Każdy blok logiczny zbudowany jest z pewnej liczby elementów logicznych, każdy element może realizować niezależną funkcję logiczną. Połączenia elektryczne pomiędzy blokami są realizowane za pomocą magistrali połączeń. Magistrale biegną wzdłuż całego układu, dzięki czemu łączone mogą być ze sobą bloki w dowolnych lokalizacjach. LAB Struktura PAL jest przykładem bloku funkcjonalnego, który wykorzystywany jest w układach programowalnych, FPGA.
Układy FPGA Układy FPGA zbudowane są z takich elementów jak : - bramki logiczne, - przerzutniki, - multipleksery, - pamięci ROM, - elementy LUT, - sumatory, - inne.
Układy FPGA Proces projektowania FPGA najczęściej oparty jest o odpowiednie oprogramowanie CAD. Zaprojektowanie odpowiedniej funkcji sprowadza się do tego, aby zaprogramować odpowiednie połączenia. Dokonuje się tego w specjalnych urządzeniach zwanych programatorami. Programatory przyjmują z komputera sterującego informację, gdzie ma zostać dokonane połączenia. W tym celu przesyła się do programatora plik zawierający zera i jedynki (połączenia i brak połączeń).
Programator układów PLD
Struktura FPGA Zalety struktur FPGA: - elastyczność architektury (równoległość przetwarzania i dowolna szerokość ścieżki danych); - wielokrotne użycie tych samych zasobów sprzętowych; - rekonfigurowalność( możliwość wielokrotnego przeprogramowania układu); - szybszy czas dostarczenia finalnego produktu, - niższe koszty związane z kosztami rozwoju samego produktu. Wady struktur FPGA: -niedoskonałość narzędzi projektowania; - trudny proces uczenia się języka HDL.
Układy FPGA Firmy produkujące układy FPGA: Waltera Lattice Xilinx... Każda z firm produkuje różne serie układów FPGA. Z roku na rok następuje rozrost rynku FPGA : około 2 miliardów dolarów; wzrost o 40%.
Struktura PGA
Jedno z wyjść poprzez element (bufor) trójstanowy jest doprowadzone do jednego z wejść. Jeśli na wejście programujące jest podany sygnał 0, to element trójstanowy zachowuje się jak nienegujący bufor. Sygnał z wyjścia OR jest podawany na wejście, tworząc sprzężenie zwrotne. Jeśli na wejście programujące jest podany sygnał 1, to impedancja wyjściowa jest bardzo duża i sygnał z wyjścia bramki nie przechodzi na wejście, które może być stosowano jako zwykłe wejście.
T. Łuba, K. Jasiński, B. Zbierzchowski. Specjalizowane układy cyfrowe w strukturach PLD i FPGA, WKŁ, Warszawa, 1997 Literatura
Dziękuję za uwagę
Układy PLA
Typowy układ PLD zawiera setki milionów bramek. Niektóre technologie PLD mają bramki o dużej obciążalności wejściowej. Aby pokazać schemat logiczny takich technologii stosuje się specjalna symbolika do przedstawienia matrycy logicznej. Układy PLD Zamiast rysować wiele linii wejściowych bramki, rysujemy jedną linię poziomą do symbolu bramki, a linie wejściowe biegną prostopadle do niej i są selektywnie łączone z bramką. Jeśli na przecięciu dwóch linii znajduje się znak x, to połączenie istnieje. Jeśli nie, to dana linia wejściowa nie jest połączona z bramką.
I Pamięć PROM (Programmable ROM)
Aby móc stosować układy PAL i PLA trzeba mieć programator tych układów. Jest to urządzenie służące do przepalania bezpieczników. Wszystkie programatory są łączone z mikrokomputerem, który zawiera oprogramowanie niezbędne do uruchomienia i wykorzystania programatora. Struktury PAL i PLA