- Nazwa przedmiotu:
- Projektowanie programowalnych układów scalonych
- Koordynator przedmiotu:
- Tadeusz ŁUBA
- Status przedmiotu:
- Fakultatywny ograniczonego wyboru
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Elektronika
- Grupa przedmiotów:
- Przedmioty techniczne
- Kod przedmiotu:
- PRUS
- Semestr nominalny:
- 7 / rok ak. 2019/2020
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 108
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium0h
- Projekt15h
- Lekcje komputerowe0h
- Wymagania wstępne:
- - podstawowe wiadomości z teorii układów logicznych
- podstawowe wiadomości z techniki cyfrowej dotyczące bloków funkcjonalnych, specyfikacji oraz opisu działania
- podstawowe wiadomości z techniki testowania układów cyfrowych
- Limit liczby studentów:
- 60
- Cel przedmiotu:
- - zapoznanie studentów z metodami projektowania podstawowych układów cyfrowego przetwarzania sygnałów i informacji z uwzględnieniem ich realizacji w architekturze układów reprogramowalnych CPLD/FPGA
- zapoznanie studentów z podstawowymi technikami optymalizacji działania układów i systemów cyfrowych
- ukształtowanie podstawowych umiejętności w zakresie projektowania układów i systemów cyfrowych przetwarzania informacji, z uwzględnieniem cech układów reprogramowalnych przez użytkownika
- Treści kształcenia:
- Charakterystyka układów reprogramowalnych CPLD i FPGA, przegląd najnowszych rozwiązań i standardów technologicznych, architektur logicznych wyposażonych w pamięci, funkcje tzw. hardcores - specjalizowane wirtualne bloki CPU, DSP itp. oraz megafunkcji parametryzowanych, umożliwiających konstruowanie zintegrowanych systemów cyfrowych (system on chip) pod kątem zastosowania do obliczeń równoległych, przetwarzania sygnału i przekształceń kryptograficznych.
Prezentacja języka opisu sprzętu VerilogHDL na różnych poziomach abstrakcji: możliwości modelowania i syntezy; podstawowe konstrukcje leksykalne i reguły tworzenia złożonych struktur hierarchicznych; systematyczne wprowadzenie do opisu układów cyfrowych w języku HDL - od elementarnych funkcji kombinacyjnych i sekwencyjnych, poprzez standardowe bloki średniej wielkości do złożonych układów i systemów (realizujących np. algorytmy obliczeniowe i kombinatoryczne); wykorzystywanie gotowych modułów bibliotecznych i tworzenie własnych bibliotek makrofunkcji;
Zasady specyfikacji bloków funkcjonalnych w środowisku projektowania i weryfikacji układów cyfrowych reprogramowalnych. Techniki programowania układów FPGA.
Układy sumujące i ich specyfikacje: FA (Full Adder), RCA (Ripple-Carry Adder), zastosowanie potoku, użycie parametryzowanej funkcji bibliotecznej.
Układy mnożące i ich specyfikacje: mnożenie sekwencyjne, mnożenie macierzowe, blok CSA (Carry Save Adder), drzewo Wallece'a, mnożenie tablicowe z wykorzystaniem pamięci ROM, zastosowanie potoku, użycie parametryzowanej funkcji bibliotecznej.
Projekt układu i jego weryfikacja na przykładzie syntetyzera częstotliwości.
Projektowanie cyfrowych filtrów o skończonej odpowiedzi impulsowej FIR: filtr o programowalnych współczynnikach, weryfikacja opis filtru w programie Matlab, filtr o stałych współczynnikach, filtr symetryczny, kodowanie CSD (Canonic Signed Digit), zastosowanie potoku, filtr o strukturze transponowanej, algorytm zredukowanego grafu sumatorów RAG (Reduced Adder Graph), faktoryzacja współczynników.
Charakterystyka sprzętowych realizacji algorytmów kryptograficznych, z uwzględnieniem zwiększonych wymagań takich jak złożoność, efektywność (szybkość przetwarzania, przepustowość), możliwość przetwarzania równoległego i potokowego;
Analiza i optymalizacja podstawowych funkcji i operacji stosowanych w algorytmach kryptograficznych w wybranych strukturach programowalnych; ogólny model sprzętowej implementacji symetrycznych szyfrów blokowych; główne czynniki efektywności rozwiązań sprzętowych - kryteria oceny i miary ich jakości; realizacje wybranych algorytmów kryptograficznych w architekturach iteracyjnych i rozwiniętych; wybór struktur programowalnych pod kątem optymalizacji parametrów i efektywności obliczeniowej implementowanych algorytmów.
Projektowanie układów kryptograficznych z użyciem rejestrów z liniowym sprzężeniem zwrotnym LFSR (Linear Feedback Shift Register), funkcja modulo, rodzaje rejestrów LFSR, własności rejestrów LFSR, rejestr LFSR w postaci automatu (n-bitowe słowo kodowe), łączenie rejestrów LFSR (algorytm Berlekamp-Massey'a, generator progowy, generator stop-and-go),
- Metody oceny:
- - ocenę wiedzy i umiejętności związanych z realizacją zadań projektowych – ocenę sprawozdań z realizacji projektu (poszczególnych zadań projektowych),
- ocenę wiedzy i umiejętności wykazanych na kolokwium i egzaminie pisemnym o charakterze problemowym (na kolokwium i egzaminie student może korzystać z dowolnych materiałów dydaktycznych oraz komputera) oraz – w przypadkach wątpliwości co do oceny – na egzaminie ustnym
- Egzamin:
- tak
- Literatura:
- - Parhi K.K., Nishitani T.: Digital Signal Processing for Multimedia Systems. Marcel Dekker, Inc. New York 1999.
- Meyer-Baese U.: Digital Signal Processing with Field Programmable Gate Arrays, Springer Verlag, Berlin 2001.
- Wiatr K.: Sprzętowe implementacje algorytmów przetwarzania obrazów w systemach wizyjnych czasu rzeczywistego. AGH, Kraków 2002.
- Łuba T., Jasiński K., Zbierzchowski B.: Programowalne układy przetwarzania sygnałów i informacji - technika cyfrowa w multimediach i kryptografii. Referat plenarny KST'2003, Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, zeszyt 8-9'2003.
- Łuba T.(red.), Rawski M., Tomaszewicz P., Zbierzchowski B.: Synteza układów cyfrowych, Wydawnictwa Komunikacji i Łączności, Warszawa 2003.
- Łuba T.(red.), Rawski M., Tomaszewicz P., Zbierzchowski B.: Programowalne układy przetwarzania informacji, Wydawnictwa Komunikacji i Łączności, Warszawa 2008.
- Ashenden P.: Digital Design: An Embedded Systems Approach Using Verilog, MK, 2008.
- Materiały w formie elektronicznej na stronie internetowej ZPT IT.
- Witryna www przedmiotu:
- http://www.zpt.tele.pw.edu.pl/didactics.html
- Uwagi:
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka prus_w04
- potrafi: zamodelować projekt w języku opisu sprzętu HDL
Weryfikacja: kolokwium, projekt
Powiązane charakterystyki kierunkowe:
K_W12
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_w04
- potrafi: zaprojektować i przetestować poprawność realizacji systemu cyfrowego z filtrem cyfrowym
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_W09
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_w05
- potrafi: wskazać możliwość użycia wbudowanych bloków funkcjonalnych (pamięć, mnożarka, sygnały przeniesień,…)
Weryfikacja: kolokwium, projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_W12
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_w05
- potrafi: zaprojektować system mikroprocesorowy typu SoPC i wskazać ograniczenia
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_W12
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_w06
- potrafi: opisać założenia projektowe systemu cyfrowego z uwzględnieniem techniki projektowania w układach reprogramowalnych przez użytkownika cpld/fpga
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_W09
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_w06
- potrafi: ocenić łatwość i czas realizacji projektu z użyciem układów cpld/fpga i narzędzi wspomagających projektowanie cad
Weryfikacja: kolokwium, projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_W12
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_w07
- potrafi: zaprojektować program testujący weryfikujący założenia projektowe
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_w07
- potrafi: wskazać ograniczenia w algorytmach przetwarzania informacji i zaproponować realizację w układach reprogramowalnych
Weryfikacja: kolokwium, projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_W12
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_w07
- potraf: ocenić jakość realizacji programu dla systemu wbudowanego typu SoPC
Weryfikacja: kolokwium, projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_W12
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_w07
- potrafi: wskazać metody zwiększania wydajności systemu wbudowanego – zrównoleglenie, instrukcje i komponenty użytkownika
Weryfikacja: kolokwium, egzamin
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_w08
- potrafi: ocenić jakość realizacji projektu w układzie reprogramowalnym cpld/fgpa
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_W12
Powiązane charakterystyki obszarowe:
Profil ogólnoakademicki - umiejętności
- Charakterystyka prus_u08
- potrafi: zaprojektować i przetestować poprawność realizacji systemu cyfrowego z filtrem cyfrowym
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_U11
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_u08
- potrafi: zamodelować projekt w języku opisu sprzętu HDL
Weryfikacja: kolokwium, projekt
Powiązane charakterystyki kierunkowe:
K_U10
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_u08
- potrafi: zaprojektować program testujący weryfikujący założenia projektowe
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_U10
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_u08
- potrafi: wskazać możliwość użycia wbudowanych bloków funkcjonalnych (pamięć, mnożarka, sygnały przeniesień,…)
Weryfikacja: kolokwium, projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_U11
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_u08
- potrafi: ocenić jakość realizacji projektu w układzie reprogramowalnym cpld/fgpa
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_U11
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_u08
- potrafi: zaprojektować system mikroprocesorowy typu SoPC i wskazać ograniczenia
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_U17
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_u08
- potraf: ocenić jakość realizacji programu dla systemu wbudowanego typu SoPC
Weryfikacja: kolokwium, projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_U11
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_u08
- potrafi: wskazać metody zwiększania wydajności systemu wbudowanego – zrównoleglenie, instrukcje i komponenty użytkownika
Weryfikacja: kolokwium, egzamin
Powiązane charakterystyki kierunkowe:
K_U17
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_u09
- potrafi: wskazać ograniczenia w algorytmach przetwarzania informacji i zaproponować realizację w układach reprogramowalnych
Weryfikacja: kolokwium, projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_U10
Powiązane charakterystyki obszarowe:
Profil ogólnoakademicki - kompetencje społeczne
- Charakterystyka prus_k02
- potrafi: opisać założenia projektowe systemu cyfrowego z uwzględnieniem techniki projektowania w układach reprogramowalnych przez użytkownika cpld/fpga
Weryfikacja: projekt
Powiązane charakterystyki kierunkowe:
K_K06
Powiązane charakterystyki obszarowe:
- Charakterystyka prus_k03
- potrafi: pracować indywidualnie i w zespole
Weryfikacja: kolokwium, projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_K03
Powiązane charakterystyki obszarowe: