Elementy cyfrowe i układy logiczne Wykład 5 Legenda Procedura projektowania Podział układów VLSI 2 1
Procedura projektowania Specyfikacja Napisz, jeśli jeszcze nie istnieje, specyfikację układu. Opracowanie opisu formalnego Wygeneruj tablicę prawdy lub początkowy zestaw równań boolowskich, które definiują wymagane zależności między wejściami a wyjściami układu. Wybór i realizacja w technologii Przekształć schemat logiczny lub listę połączeń w nowy schemat lub nową listę połączeń zgodnie z wymaganiami dostępnej technologii implementacji układu. Optymalizacja Wykonaj dwupoziomową lub wielopoziomową optymalizację. Narysuj schemat lub dostarcz listę połączeń układu z wykorzystaniem bramek AND, OR, NOT. Weryfikacja Sprawdź poprawność końcowego projektu. 3 Wyświetlacz segmentowy Przykład: Projekt dekodera kodu BCD na kod wyświetlacza 7-segmentowego Specyfikacja: Wyświetlacz diodowy zbudowany z 7 segmentów LED (dioda elektroluminescencyjna). Każdy segment może zostać podświetlony za pomocą sygnału cyfrowego. Dekoder BCD na podstawie cyfry dziesiętnej w kodzie BCD generuje sygnały wyjściowe dla poszczególnych segmentów wyświetlacza. 4 2
Wyświetlacz segmentowy Opracowanie opisu formalnego: Wejście BCD Dekoder 7-segmentowy A B C D a b c d e f g 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 Wszystkie pozostałe 0 0 0 0 0 0 0 5 Wyświetlacz segmentowy Optymalizacja: CD AB 00 01 11 10 00 01 11 10 1 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 b = AB + ACD + ACD + ABC c = AB + AD + BCD + ABC d = ACD + ABC + BCD + ABC + ABCD e = ACD + BCD f = ABC + ACD + ABD + ABC g = ACD + ABC + ABC + ABC a = ABC + ABD + AC + ABD 6 3
Wyświetlacz segmentowy Optymalizacja: Niezależna implementacja: AND 27, OR 20 Wspólne iloczyny: AND 14 Przykład kończymy na optymalizacji dwupoziomowej. Można jeszcze zredukować liczbę wejść bramkowych dzięki zastosowaniu optymalizacji wielopoziomowej. 7 VLSI 8 4
Podział układów VLSI VLSI wielkie standardy ASIC full-custom semi-custom PLD (EPROM) standard-cells gate-array 9 Podział układów Wielkie standardy - układy produkowane głównie z inicjatywy producenta. Są to rodziny układów mikroprocesorowych i układów pamięciowych. ASIC- (application specific integrated circuits) - to układy produkowane na zamówienie klienta. 10 5
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. Ze względu na wysokie koszty, metoda ta jest uzasadniona dla układów gęsto upakowanych, szybkich i sprzedawanych w wielkich ilościach. układy na zamówienie z ograniczonym (niepełnym) 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) Wymaga mniejszych nakładów finansowych; układ o mniejszej gęstości upakowania, wolniejszy od układów full-custom. układy programowane przez użytkownika: a) programowalne układy logiczne (programmable logic devices- PLD) b) mikroprocesory jednoukładowe z pamięcią reprogramowalną EPROM 11 Komórki W przypadku technologii z niepełnym cyklem projektowania i technologii opartych na matrycach bramkowych układy są konstruowane przez połączenie komórek. Biblioteka komórek zbiór komórek dostępnych dla danej technologii implementacji. Każda komórka jest dokładnie opisana. Biblioteka opisanych komórek stanowi fundament procesu wyboru i realizacji układów w określonej technologii (ang. technology- mapping). 12 6
Specyfikacja komórek Schemat logiczny funkcji realizowanej przez komórkę. Wymagania dotyczące powierzchni zajmowanej przez komórkę, często znormalizowanej względem powierzchni małej komórki (np. inwertera). Obciążenie wejściowe, wyrażone w obciążeniach standardowych. Opóźnienia sygnału z każdego wejścia komórki do każdego wyjścia komórki. Jeden lub wiele przykładowych zastosowań komórki. Jeden lub wiele modeli komórki w postaci opisów w HDL. A także (opcjonalnie, jeśli narzędzie automatycznie generuje rozmieszczenie elementów układu): Rozmieszczenie elementów układu scalonego dla komórki. Plan rozmieszczenia wejść, wyjść oraz połączeń zasilania i masy komórki. 13 Przykład biblioteki komórek 14 7
Przykład biblioteki komórek 15 Procedura konwersji AND-OR do NAND (NOR) Krok 1: Zastąp każdą bramkę AND i OR bramką NAND (lub NOR) i inwerterem: Krok 2: Wyeliminuj wszystkie pary inwerterów. 16 8
Procedura konwersji AND-OR do NAND (NOR) Krok 3: Nie zmieniając funkcji logicznej: (a) przepchnij wszystkie inwertery leżące między wejściem układu lub sterującym wyjściem bramki NAND (NOR) a sterowanymi wejściami bramek NAND (NOR) w kierunku sterowanych wejść bramki NAND (NOR); po wykonaniu tej operacji, jeżeli to możliwe, usuń wszystkie pary szeregowych inwerterów; X = X 17 Procedura konwersji AND-OR do NAND (NOR) (b) zastąp inwertery połączone równolegle jednym inwerterem, który przejmie wszystkie wyjścia inwerterów równoległych; (c) powtarzaj kroki (a) i (b), dopóki między wejściem układu lub sterującym wyjściem bramki NAND (NOR) a sterowanymi wejściami bramek NAND (NOR) nie pozostanie co najwyżej jeden inwerter. 18 9
Przykład NAND ( AB) C + ( AB) D E F = AB + + K b =12; 3 poziomy 19 Przykład NOR ( AB) C + ( AB) D E F = AB + + Inwerter nr 1 przepchnąć za pkt. X K b =14; 5 poziomów 20 10
Koniec Dziękuję za uwagę 21 11