WYKŁAD nr 3 - UKŁADY LOGICZNE
Technologie współczesnej mikroelektroniki
Przenikanie się oprogramowania i sprzętu tzw. Soft-Hardware
Zastosowanie metod komputerowego wspomagania projektowania złożonych układów (CAD - Computer Aided Design)
Korzystanie z języków specyfikacji sprzętu tzw. Hardware Description Language zamiast składaniu z dostępnych komponetnów
Tranzystor
Tranzystor unipolarny (FET) i bipolarny
Metal-Oxide-Semiconductor FET
Dren oraz źródło - silnie domieszkiwane obszary z doprowadzonymi kontaktami
Przepływ prądu pomiędzy źródłem, a drenem występuje po przez kanał
Sterowanie prądem następuje po przez zmiany napięcia bramka- źródło
Stany tranzystora:
Nasycony: UDS >= UDSsat
Nienasycony: UDS < UDSsat
UDSsat = UGS - UT
Tranzystory MOS
Tranzystory tego typu charakteryzują się:
małym poborem mocy,
odpornością na zakłócenia
dużą częstotliwością przełączania
Prostą konstrukcją - duże możliwości miniaturyzacji
CMOS - Complemenrtary MOS
Technologia półprzewodnikowa krzemowych układów scalonych
Układy zbudowane z tranzystorów MOS
Połączone w taki sposób, że w ustalonym stanie logicznym przewodzi tylko jeden
Układ nie pobiera w stanie jałowym prądu
Problem przy wysokich częstotliwościach - przeładowywanie pojemności
Bardzo tanie w realizacji
Zapewniają dużą gęstość tranzystorów - w nowoczesnych układach powierzchnia tranzystora to 1um
Niewystarczająca szybkość przełączania CMOS - zastępują je rozwiązania na arsenku galu
Miniaturyzacja układów
Minimalny wymiar charakterystyczny - głównym wyznacznikiem stopnia miniaturyzacji
Minimalny wymiar charakterystyczny definiowany jest przez rozdzielczość procesu litograficznego i procesu trawienia
MWC - przeważnie jest to wymiar pojedynczego tranzystora MOS
W drugiej połowie '90 powszechnie przemysłową technologią była 0,35um, przy średnicy podłoża 200 nm
Proces wytwarzania mikroprocesorów
Wykonanie monolitycznego krzemowego walca
Pozbawienie walca wszelkich zanieczyszczeń po przez proces odwirowywania
Cięcie walca na części - najczystsze są wewnętrzne części tzw. wafla (ang. silicon wafer)
Pokrycie wafla warstwami domieszek
Przeprowadzenie procesu litografii
Przykrycie warstwą miedzi, która będzie stanowiła serię wyprowadzeń
Cięcie wafla w celu uzyskania rdzeni procesorów
Proces litografii
Wyrysowanie na płytce krzemu pokrytej światłoczułym lakierem
Naświetloną część lakieru łatwo zmyć odkrywając części do wytrawienia
Maszyną do litografii jest skaner litograficzny
Wykorzystywany efekt przesunięcia fali
Prowadzone badania nad długościami fali światła pozwalające produkować tranzystory o 0,07 mikrona
Clean Room
Zachowanie wysokiej czystości
Norma ISO 14644-1: 2 cząsteczki wielkości 2um na 1 metr sześcienny
Żółty kolor oświetlenia utrzymywany ze względu na procesy litograficzne
Technologie układów programowalnych
Rozwój technologii pozwolił na budowę układów programowalnych przez użytkownika tzw. PLD/FPGA
Ulepszenie procesu technologicznego:
redukowaniu wymiarów elementów półprzewodnikowych
zwiększenie liczby warstw metalizowanych połączeń
powstanie nowych technik programowania
FPLD (Field Programmable Logic Devices) - układy z możliwością programowania i rekonfiguracji
Technologie wykorzystywane do tworzenia FPLD: pamięć SRAM, FLASH i ROM
Są to odpowiednio zorganizowane systemy pamięci pozwalające realizować zmienne funkcje przetwarzania
Aktualnie układy FPLD pozwalają realizować projekty o złożoności kliku milionów bramek
Możliwość rekonfiguracji statycznej i online pozwalającej zmienić strukturę w trakcie działania
FPGA w rzeczywistości
Cechy układów PLD/FPGA
Układy produkowane w dużych seriach: niska cena, wysoka jakość
Nie jest wymagane zamawianie ich u producenta (w przeciwieństwie do układów ASIC)
Układy nie realizują żadnej specyficznej funkcji
W porównaniu do procesorów układy te oferują: większą szybkość, niższy koszt i wyższą niezawodność
Słabo nadają się do realizacji bardzo złożonych systemów
Zastosowanie FPGA/PLD
Aparaty i urządzenia produkowane w małych seriach
Zastępowanie układów małej i średniej skali integracji
Zastosowanie wymagające wielokrotnego programowania:
Prototypy, emulatory, symulatory
Programowalne i rekonfigurowalne koprocesory, procesory specyficzne
Kontrolery wymagające adaptacji
Metody komputerowego wspomagania projektowania
Narzędzia te umożliwiają:
Modelowanie
Budowę wirtualnych prototypów
Symulację i analizę
Automatyczną syntezę
Wykorzystywanie gotowych projektów (desing reuse): rdzeni mikroprocesorów, mikrokontrolerów, procesorów sygnałowych, etc …
Przykłady ALTERA MAXII+
Komputerowe wspomaganie projektowania układów
Problem: gęstość upakowania elementów w najnowszych układach sięga 100 mln tranzystorów/10 mln bramek
Wykorzystanie komputerowych systemów projektowania
Stworzenie języków opisu sprzętu (Hardware Description Language)
Narzędzia te umożliwiają:
Modelowanie
Budowę wirtualnych prototypów
Symulację i analizę
Automatyczną syntezę
Wykorzystywanie gotowych projektów (desing reuse): rdzeni mikroprocesorów, mikrokontrolerów, procesorów sygnałowych, etc …
Hardware Description Langauge
Umożliwienie projektantowi układów scalonych opisywanie: funkcji, struktury i parametrów na wyższym poziomie abstrakcji
Specyfikacja powinna zapewniać opis:
zachowania systemu
ograniczeń strukturalnych i fizycznych
System powinien umożliwić symulację oraz animację modelowanego systemu w celu analizy lub weryfikacji różnych charakterystyk
Języki HDL znacznie bardziej skomplikowane niż języki programowania
Opis zawiera skomplikowane informacje na temat struktury i parametrów
Układy wykonują operacje współbieżne na bardzo niskim poziomie abstrakcji (w programowaniu dane w układach przetwarzane są szeregowo)
Postanie koncepcji produktu wirtualnego
Biblioteki funkcjonalne
Synteza układów
Specyfikacja układu w języku HDL
Kompilacja do opisu przesłań rejestrowych
Kompilacja do poziomu sieci logicznej
Synteza i optymalizacja logiczna
Odwzorowanie technologiczne
Synteza fizyczna lub programowanie układu
Układy kombinacyjne
Podstawowy układ logiczny umożliwiający realizacje funkcji boolowskich
Składa się z elementów logicznych
Jest elementem złożonych układów cyfrowych
Funkcja boolowska
Odwzorowanie zbioru wektorów (ciągów binarnych) z X w zbiór wektorów Y, gdzie X i Y są podzbiorami n-krotnego iloczynu kartezjańskiego B={0,1}
Funkcja boolowska
może być przedstawiona w postaci tablicy o n+1 kolumnach i 2n wierszach
W kolejnych wierszach zapisywane są wszystkie wartości ciągu x1, x2, … xn, czyli wszystkie wektory x
W ostatniej kolumnie podana jest wartość Y
Funkcję można zapisać podając zbiory wektorów dla których funkcja przyjmuje odpowiednie wartości
F={x: f(x)=1}
R={x: f(x)=0}
D={x: f(x)=-}
Funkcje boolowskie
Reprezentacja funkcji boolowskich w postaci formuł ułatwia realizację elementów logicznych (bramki logiczne)
Operatory: AND, OR, NOT
Przykład formuły
Synteza dwupoziomowa
Zaletą formuł boolowskich jest możliwość upraszczania wyrażeń, a co za tym idzie minimalizacji liczby wykorzystanych bramek
Upraszczanie zgodnie z prawami alegebry Bool'a
Możliwość reprezentacji funkcji za pomocą różnych wyrażeń boolowskich - reprezentacja formułami równoważnymi
Najprostszy sposób to:
Generacja implikantów
Slekecja implikantów prostych
Jest to jednak najbardziej złożony algorytm, gdyż należy do zbioru problmów NPZupełnych
Dekompozycja
Transformacja pojedynczego wyrażenia na zbiór kilku nowych wyrażeń
Układy sekwencyjne
Modelem układu sekwencyjnego jest automat.
Definicja automatu:
Zbiór liter wejściowych X i wyjściowych Y
Zbiór stanów wewnętrznych S
Funkcja przejść
Funkcja wyjść
Automaty Mealy'ego i Moore'a