Elementy cyfrowe i układy logiczne Wykład № 6 Dr Galina Cariowa
Legenda Procedura projektowania układów kombinacyjnych. Podział układów VLSI.
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 Optymalizacja Wykonaj dwupoziomową lub wielopoziomową optymalizację. Narysuj schemat lub dostarcz listę połączeń układu z wykorzystaniem bramek AND, OR i NOT. Wybór i realizacja w technologii Przekształć schemat logiczny lub listę połączeń w nowy schemat lub w nową listę połączeń zgodnie z wymaganiami dostępnej technologii implementacji układu Weryfikacja Sprawdź poprawność końcowego projektu
Wyświetlacz segmentowy (specyfikacja) Przykład. Projekt dekodera kodu BCD na kod wyświetlacza 7 – segmentowego. Każda cyfra wyświetlacza diodowego jest zbudowana 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, aby wyświetlił on tę cyfrę .
Wyświetlacz segmentowy (specyfikacja) Siedem wyjść dekodera (a, b, c, d, e, f, g) odpowiada określonym segmentom wyświetlacza.
Wyświetlacz segmentowy (specyfikacja) Dekoder kodu BCD ma cztery wejścia oznaczone symbolami A, B, C, D, które odpowiadają cyfrze kodu BCD, i siedem wyjść, a, b, c, d, e, f, g, które sterują poszczególnymi segmentami wyświetlacza.
Wyświetlacz segmentowy (opracowanie opisu formalnego) Każda cyfra BCD powoduje zapalenie odpowiednich segmentów wyświetlacza. (np.0101 odpowiada 5, która jest wyświetlana za pomocą segmentów a, c, d, f oraz g). Tablica prawdy układu kombinacyjnego: Tablica prawdy zakłada, że sygnał odpowiadający logicznej 1włącza dany segment, a sygnał odpowiadający logicznemu 0 go wyłącza. Nieużywanym kombinacjom binarnym przypisujemy stan wyłączenia wszystkich segmentów.
Wyświetlacz segmentowy (Optymalizacja) Informację z tablicy prawdy przenosimy do siedmiu tablic Karnaugha.
Wyświetlacz segmentowy Niezależna implementacja: AND – 27, OR – 7. Wspólne iloczyny – 14.
Wybór i realizacja w technologii
Podział układów ze względu na stopień scalenia
Podstawowe metody projektowania układów VLSI
Podstawowe metody projektowania układów VLSI układy zamawiane przez użytkownika (full-custom) układy projektowane przez użytkownika (semi-custom) układy programowane przez użytkownika Gate Array Standard Cell Design PLD FPGA PAL PLA MAX TLU MUX Gates
Podział układów VLSI Wielkie standardy – układy produkowane głównie z inicjatywy producenta. ASIC – (application specific inegrated circuits) - to układy na zamówienie klienta.
Wielkie standardy Standardowe układy – uniwersalne elementy o strukturze niemodyfikowalnej po wyprodukowaniu. bramki i układy funkcjonalne rodzin TTL, ECL, MOS, mikroprocesory, pamięci.
Podział układów ASIC W zależności od technologii i techniki projektowania specjalizowane układy scalone klasyfikujemy w następujących kategoriach: Układy na zamówienie z pełnym cyklem projektowania (full-custom); Układy na zamówienie z ograniczonym (niepełnym) cyklem projektowania ( semi-custom); Układy programowane przez użytkownika (PLD).
Układy ASIC
Układy na zamówienie z pełnym cyklem projektowania (full-custom): W tej metodzie wykonuje się cały projekt układu, wykonuje się „ręcznie” projektowanie każdego elementu układu, wzajemnego rozmieszczenia elementów i połączeń między nimi. Ze względu na wysokie koszty, metoda ta jest uzasadniona dla układów gęsto upakowanych, szybkich i sprzedawanych w wielkich ilościach.
Zalety metody full-custom: 1.Największa uniwersalność. 2.Możliwość minimalizacji powierzchni układu. 3. Pełna swoboda projektanta. Wady metody full-custom: 1. Wysoki koszty. 2.Czasochłonna. 3.Skomplikowana. 4. Raz wyprodukowany układ nie może zmienić swojej funkcji.
Układy semi-custom W grupie układów projektowanych przez użytkownika wyróżnić można: układy wykorzystujące komórki standardowe (standard cell design); b) układy na płytkach wstępnie przygotowanych jak matryce bramek AND (gate arrays).
Metoda semi-custom Cechą charakterystyczną układów Semi - custom jest wielokrotne wykorzystywanie raz zaprojektowanych bloków funkcjonalnych, które są przechowywane w bibliotece. Bloki takie są zwane komórkami bibliotecznymi. Wielkości struktur scalonych oraz ich parametry elektryczne są z góry narzucone.
Metoda standard-cells Projektant ma do dyspozycji bibliotekę gotowych już wcześniej zaprojektowanych bramek logicznych, z których składa układ. Te części projektu są łączone ze sobą tworząc projekt układu scalonego.
Układy standard - cells Projektowanie matryc komórek polega na składaniu układu z gotowych bramek, multiplekserów, liczników, itp., a następnie przesłaniu tak zaprojektowanego układu do producenta, który korzystając z biblioteki masek wytwarza zamówione układy
Zalety metody standard - cells: Mniejsze nakłady finansowe Wady: 1.Mniejsza gęstość upakowania. 2.Układy standard cells są wolniejsze od układów full-custom.
Metoda Gate arrays Projektant ma gotowe płytki dla każdego nowego projektu i wykonuje jedynie połączenia pomiędzy elementami logicznymi znajdującymi na gotowej matrycy bramek o określonych rozmiarach. Wiele czynności składających się na proces wytwarzania jest wspólnych, więc mogą być wykonany w wielu projektach.
Zalety metody gate arrays (semi-custom): 1.Możliwość wcześniejszego wyprodukowania płytek zawierających matryce komórek bez połączeń. 2.Mniejszy czas projektowania układu od rozpoczęcia projektu do otrzymania gotowego ukladu. 3.Najtańsza metoda. Wada: Marnotrawstwo powierzchni układu –wiele komórek zwykle pozostaje niewykorzystanych.
Układy FPLD Czas potrzebny do otrzymania prototypów nowo zaprojektowanego układu w stylu Full-custom lub Semi-custom jest rzędu co najmniej kilku tygodni. W przypadku małych serii układów specjalizowanych (do kilku tysięcy) najbardziej opłacalne jest zastosowanie przez użytkownika układów programowanych FPLD - Field Programmable Logic Devices, (programowalne moduły logiczne).
Układy programowane przez użytkownika (PLD): Układy programowalne to układy typu matrycowego lub komórkowego, jednak z możliwością programowania połączeń elektrycznych. Producent dostarcza „prefabrykaty” projektantowi, który może je zaprogramować u siebie „na biurku”.
Układy programowane przez użytkownika (PLD): Układy PLD - gotowe wyprodukowane układy scalone, których właściwości funkcjonalne są definiowane nie przez producenta, lecz przez końcowego użytkownika. Najważniejsza cecha układów PLD: Możliwość nadawania układom przez programowanie określonych przez użytkownika cech funkcjonalnych.
Zalety metody PLD: Wady metody PLD: 1.Krótki czas opracowania prototypu; 2.Łatwość jego modyfikacji; 3.Dostępne są „z półki”; 4.Szybkość działania; 5.Doskonałe parametry pojemności. 6. Jedyne rozwiązanie dla urządzeń unikatowych. Wady metody PLD: Duży koszt jednostkowy.
Wykres zależności pomiędzy metodami projektowania, a czasem projektowania, kosztem i prawdopodobieństwem sukcesu (tj. poprawnego działania pierwszej zaprojektowanej wersji układu bez przeróbek i poprawek)
Ukłądy ASIC charakteryzuje: 1. Wyższa niezawodność 2.Mniejsza pracochłonność 3. Mniejszy koszt 4. Nowe funkcje 5. Lepsze parametry 6. Ochrona myśli technicznej
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)
Biblioteka komórek Biblioteki komórek mogą składać się: 1) z bramek jednego typu, takich jak bramki typu NAND; 2) z bramek wielu typów. Komórki w określonej technologii projektowania są zorganizowane w postaci jednej lub kilku bibliotek.
Biblioteka komórek Układ, który początkowo składa się z bramek AND, OR i NOT, w trakcie etapu wyboru technologii jest przekształcany w taki układ, w którym występują tylko komórki z zastosowanej biblioteki.
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 w implementacjach. Jeden lub wiele modeli komórki w postaci opisów w HDL.
Specyfikacja komórek c.d. 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.
Przykład biblioteki komórek, wykorzystywanej w procesie wyboru technologii
Przykład biblioteki komórek c.d.
Obliczanie opóźnienia komórki (wpływ obciążenia na opóźnienie komórki) Wyjście komórki 2NAND steruje komórkami: inwerterem, 4NAND, 4NOR. Suma obciążeń standartowych wejściowych: Opóźnienie komórki 2NAND, sterującej komórkami inwerter, 4NAND, 4NOR:
Techniki wyboru i realizacji w określonej technolocii Przekształcenie projektu układu z użyciem bramek typu AND, OR oraz inwerterów w projekty oparte na stosowaniu komórek dostępnych w technologiach realizacji układu.
Procedura konwersji AND (OR) do NAND (NOR) Generacja układu zbudowanego z bramek NAND (lub NOR) o nieograniczonej liczbie wejść.
Procedura konwersji AND(OR) do NAND (NOR) Krok 3: Nie zmieniając funkcji logicznej: Reguła przepychania inwertera przez węzeł układu
Procedura konwersji AND-OR do NAND (NOR)
Przykład 1. Zrealizować funkcję za pomocą układu zawierającego tylko bramki NAND. Inwerter 5 zostaje przepchnięty za węzeł x Usuwamy pary inwerterów (1,2) i (3,4)
Przykład 2. Zrealizować funkcję za pomocą układu zawierającego tylko bramki NOR. Usuwamy pary inwerterów (1,2) i (1,3). Usuwamy pary inwerterów na wejściu D
Procedura konwersji AND (OR) do NAND (NOR) 1. W pierwszym przykładzie koszt wejść bramkowych zaimplementowanego układu wynosi 12, a w drugim -14. 2. W pierwszym przykładzie maksymalna liczba szeregowo połączonych bramek wynosi 3 bramki , natomiast w drugim- aż 5. Z tego wynika że maksymalne opóźnienie między zmianą sygnału na wejściu a zmianą na wyjściu jest najprawdopodobniej większe. implementacja z użyciem bramek NAND jest mniej kosztowna
Procedura projektowania układu Ręczna analiza układu logicznego Symulacja komputerowa Weryfikacja funkcjonalna układu Weryfikacja ma wykazać, czy końcowy układ jest zgodny z początkowej specyfikacją. Weryfikacja ma za zadanie zapobiegać wytwarzaniu i praktycznemu stosowaniu błędnie zaprojektowanych układów.
Dziękuję za uwagę