Pełny opis: |
Nowoczesna technologia mikroelektroniczna umożliwia realizację bardzo złożonych systemów cyfrowych w pojedynczym układzie scalony. Celem przedmiotu jest przedstawienie metod syntezy i weryfikacji układów i systemów cyfrowych realizowanych w nowoczesnych technologiach, a w szczególności opanowanie podstaw posługiwania się językami opisu sprzętu HDL w komputerowych systemach projektowania układów cyfrowych.
Treść wykładu Informacje wstępne (1h)
Podstawowe informacje dotyczące wykładu: organizację, sposób zaliczania, literaturę.
Układy cyfrowe - rola i zastosowanie (2h)
Rozwój technologii cyfrowej i jej wpływ na dziedziny życia. Rola i znaczenie układów cyfrowych we współczesnym świecie. Układy cyfrowe w przetwarzaniu informacji i sygnałów. Style projektowania układów cyfrowych. Klasyfikacja układów cyfrowych. Układy katalogowe, układy specjalizowane (ASIC), układy programowalne przez użytkownika (FPLD). Etapy procesu projektowego.
Specyfika projektowania układów cyfrowych (2h)
Przykład syntezy układu cyfrowego realizującego prosty algorytm. Porównanie metodologii projektowania układu cyfrowego z projektowaniem oprogramowania realizującego to samo zadanie. Synteza strukturalna. Blok wykonawczy i sterujący. Komputerowe projektowanie. Możliwości narzędzi CAD.
Metody reprezentacji systemów cyfrowych (4h)
Sposoby opisu i modelowania systemów cyfrowych. Diagram "Y". Cyfrowe kombinacyjne i sekwencyjne bloki funkcjonalne wykorzystywane w syntezie strukturalnej układów cyfrowych. Sposoby reprezentacji liczb w zapisie binarnym (NKB, U2, zapis stałopozycyjny oraz zmiennopozycyjny). Podstawowe działania arytmetyczne na liczbach przedstawionych binarnie.
Zasady specyfikacji układów cyfrowych - języki opisu sprzętu (3h)
Ograniczenia tradycyjnych języków programowania. Zastosowania języków HDL (Hardware Description Language). Cechy języków HDL. Podstawowe koncepcje na przykładzie języka VHDL. Opis SOP (Sum-Of-Product). Opis strukturalny. Opis behawioralny. Testbench. Konfiguracja. Elementy języka VHDL. Omówienie różnych sposobów opisu projektowanego systemu.
Realizacja logiki kombinacyjnej (3h)
Sposoby realizacji logiki kombinacyjnej z wykorzystaniem struktur języka VHDL. Sposoby implementacji podstawowych kombinacyjnych bloków funkcjonalnych, tj. multipleksery dekodery, moduły opisane tablicą prawdy i równaniami boolowskimi. Parametry czasowe układów kombinacyjnych. Pojęcie ścieżki krytycznej (topologicznej, rzeczywistej, fałszywej).
Realizacja logiki sekwencyjnej (3h)
Wykorzystanie elementów pamięciowych. Model układu sekwencyjnego. Sposoby opisu sekwencyjnych bloków funkcjonalnych. Automat Mealy`ego. Automat Moore`a. Kodowanie stanów. Liczniki. Sposoby realizacji logiki sekwencyjnej z wykorzystaniem struktur języka VHDL. Sposoby implementacji podstawowych sekwencyjnych bloków funkcjonalnych, tj. rejestry, automaty, liczniki.
Projektowanie układów synchronicznych z wykorzystaniem FSM i ASM (4h)
Zastosowanie automatów FSM i diagramów ASM do projektowania synchronicznych układów cyfrowych. Pojęcia: ripple and/or gated clocks, clock skew, clock enable. Dystrybucja sygnału zegara. Synchronizacja międzysymbolowa. Synchronizacja międzyramkowa. Generacja sekwencji. Sposoby współdziałania automatów w systemie cyfrowym. Obsługa portów dwukierunkowych. Wykorzystanie specjalizowanych bloków na przykładzie pamięci RAM. Domeny zegarowe i komunikacja między nimi.
Projektowanie hierarchiczne i zaawansowane zagadnienia syntezy układów cyfrowych (4h)
Przedstawienie metodologii projektowania hierarchicznego (bottom-up i top-down). Moduły parametryzowane. Wykorzystanie pakietów. Kodowanie stanów automatu. Minimalizacja automatu. Zaawansowane metody syntezy FSM: dekompozycja, wykorzystanie pamięci ROM, układy modyfikacji adresu. Zjawisko wyścigów krytycznych - "szpilki".
Zaawansowane metody projektowania (4h)
Różne sposoby projektowania układów cyfrowych. Strukturalna realizacja przepływu danych. Rozwijanie pętli (loop unrolling). Układ sterujący - układ operacyjny. Diagramy ASM. Diagramy ASMD. Operacje RT realizowane w trybie Mealy`ego. Współdzielenie zasobów. Potokowanie. Zastosowanie zaawansowanej syntezy logicznej.
Uwaga: plansze do wykładów dostępne w Internecie
http://www.zpt.tele.pw.edu.pl/pomoce.htm
Zakres laboratorium Zapoznanie z komputerowymi systemami projektowania CAD. Realizacja kombinacyjnych i sekwencyjnych bloków funkcjonalnych z uwzględnieniem technologii standard-cells i FPLD. Zaawansowane procedury syntezy logicznej (dekompozycja, minimalizacja stanów automatu, kodowanie stanów automatu, synteza układów sekwencyjnych w strukturach FPGA z blokami EAB, układy modyfikacji adresu). Tworzenie złożonych projektów o strukturze wielopoziomowej z wykorzystaniem mieszanej formy specyfikacji i elementów wszystkich dostępnych bibliotek funkcji, makro i megafunkcji. Zastosowanie zaawansowanych metodologii projektowania z wykorzystaniem diagramów ASM i ASMD. Rozwijanie pętli, potokowanie, współdzielenie zasobów.
Laboratorium obejmuje 10 terminów po 3 godz. lekcyjne począwszy od 5 tygodnia semestru w ramach których wykonanych będzie 8 ćwiczeń laboratoryjnych.
Wykład wprowadzający IMIO, IRE, IT
Ćwiczenie 1. IMIO
Synteza układów kombinacyjnych w technologii GA i S.C.
Realizacja podstawowych kombinacyjnych bloków funkcjonalnych.
Realizacja układów arytmetycznych: sumatory, komparatory.
Ćwiczenie 2. IMIO
Synteza układów sekwencyjnych w technologii GA i S.C.
Realizacja uniwersalnych rejestrów.
Realizacja automatów FSM. Minimalizacja i kodowanie stanów.
Realizacja liczników (różne tryby pracy, liczniki modulo n, itp.).
Ćwiczenie 3. IRE
Synteza układów kombinacyjnych w technologii PLD/FPGA.
Realizacja podstawowych kombinacyjnych bloków funkcjonalnych.
Realizacja układów arytmetycznych: sumatory, komparatory.
Ćwiczenie 4. IRE
Synteza układów sekwencyjnych w technologii PLD/FPGA.
Realizacja uniwersalnych rejestrów.
Realizacja automatów FSM. Minimalizacja i kodowanie stanów.
Realizacja liczników (różne tryby pracy, liczniki modulo n, itp.).
Ćwiczenie 5. IT
Synteza strukturalna, behawioralna i logiczna konwertera BIN2BCD.
Wykorzystanie algorytmicznych maszyn stanów ASM i algorytmicznych maszyn stanów ze ścieżką przepływu danych ASMD w projektowaniu układów cyfrowych.
Wykorzystanie operacji realizowanych w trybie Mealy`ego i Moore`a.
Wykorzystanie koncepcji współdzielenia zasobów.
Ćwiczenie 6. IT
Zaawansowane procedury syntezy logicznej w projektowaniu układów cyfrowych.
Zastosowanie wielopoziomowej dekompozycji funkcjonalnej i redukcji argumentów w realizacji układów kombinacyjnych.
Zastosowanie układów modyfikacji adresu i symbolicznej dekompozycji funkcjonalnej w realizacji automatów.
Ćwiczenie 7. IT
Projektowanie układów DSP.
Realizacji filtrów cyfrowych w strukturze szeregowej i metodą arytmetyki rozproszonej.
Wykorzystanie specjalizowanych modułów wbudowanych DSP.
Wykorzystanie koncepcji zrównoleglenia obliczeń.
Ćwiczenie 8. IT
Projektowanie układów kryptograficznych.
Realizacja typowych przekształceń dla algorytmów kryptograficznych takich jak permutacje i funkcje S-box
Wykorzystanie metody rozwijania pętli i koncepcji potokowości w realizacji układów cyfrowych.
Termin rezerwowy.
Poprzedniki
|
Literatura: |
- Materiały pomocnicze do wykładu na stronie internetowej:
www.zpt.tele.pw.edu.pl w katalogu Wykłady/Plansze i materiały pomocnicze do wykładów
- Łuba T.(red.), Rawski M., Tomaszewicz P., Zbierzchowski B.:
Programowalne Układy Przetwarzania Sygnałów i Informacji, WKŁ, Warszawa 2008.
- Łuba T.: Synteza układów logicznych, Oficyna Wydawnicza
Politechniki Warszawskiej, Warszawa 2005.
- Łuba T., Zbierzchowski B.: Komputerowe projektowanie układów
cyfrowych. WKŁ, Warszawa 2000.
- Tyszer J., Mrugalski G.: Układy cyfrowe. Zbór zadań z
rozwiązaniami. Wyd. Politechniki Poznańskiej, Poznań 2002.
- Skahill K.: Język VHDL. Projektowanie programowalnych układów
logicznych. Wyd. Naukowo-Techniczne, Warszawa 2001.
- De Micheli G.: Synteza i optymalizacja układów cyfrowych. WNT,
Warszawa 1998.
- Brown S, Vranesic Z.: Fundamentals of Digital Logic with VHDL
Design. McGraw Hill, Boston 1998.
- Meyer-Baese U. : Digital Signal Processing with FPGAs. Springer
Berlin 2007.
- Zwoliński M.: Projektowanie układów cyfrowych z wykorzystaniem
języka VHDL. WKŁ. Warszawa 2002.
- Parchi K. K., Nishitani T.: Digital Signal Processing for
Multimedia Systems, Marcel Dekker, Inc. New York 1999.
- Zieliński C.: Podstawy projektowania układów cyfrowych, PWN,
Warszawa 2003.
|