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: 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_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_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: 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_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_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: