Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Systemy rekonfigurowalne
Tok studiów:
2019/2020
Kod:
EAiR-1-608-s
Wydział:
Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Automatyka i Robotyka
Semestr:
6
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Stacjonarne
Strona www:
 
Prowadzący moduł:
prof. dr hab. inż. Gorgoń Marek (mago@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

W ramach kursu przedstawione zostaną podstawowe zagadnienia związane ze sprzętową implementacją algorytmów w układach rekonfigurowalnych (FPGA).

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 Zna budowę i rodzaje zasobów układu FPGA. AiR1A_W03 Egzamin,
Kolokwium,
Odpowiedź ustna
M_W002 Zna i rozumie jakimi cechami wyróżniają się algorytmy najbardziej efektywnie implementowane w układach FPGA. AiR1A_W03 Egzamin,
Kolokwium,
Odpowiedź ustna
M_W003 Potrafi wskazać kryteria doboru architektury systemu obliczeniowego dla wybranych grup aplikacji. AiR1A_W03 Kolokwium,
Egzamin,
Odpowiedź ustna
Umiejętności: potrafi
M_U001 Potrafi zaprojektować i uruchomić w układzie FPGA proste i umiarkowanie złożone moduły sprzętowe opisane w języku opisu sprzętu. AiR1A_U01, AiR1A_U09, AiR1A_U06, AiR1A_U07, AiR1A_U02 Wykonanie ćwiczeń laboratoryjnych,
Aktywność na zajęciach,
Kolokwium,
Zaliczenie laboratorium
M_U002 Potrafi zaprojektować i przeprowadzić symulację wykonanego modułu sprzętowego. AiR1A_U01, AiR1A_U09, AiR1A_U06, AiR1A_U07, AiR1A_U02 Wykonanie ćwiczeń laboratoryjnych,
Aktywność na zajęciach,
Kolokwium,
Zaliczenie laboratorium,
Odpowiedź ustna
M_U003 Potrafi skonfigurować mikroprocesor zbudowany z zasobów układu FPGA wraz z peryferiami. AiR1A_U01, AiR1A_U09, AiR1A_U06, AiR1A_U07, AiR1A_U02 Aktywność na zajęciach,
Kolokwium,
Zaliczenie laboratorium,
Wykonanie ćwiczeń laboratoryjnych
M_U004 Potrafi, w stopniu podstawowym, posługiwać się narzędziami do projektowania, syntezy, implementacji i weryfikacji logiki układow FPGA. AiR1A_U01, AiR1A_U09, AiR1A_U06, AiR1A_U07, AiR1A_U02 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Zaliczenie laboratorium
Kompetencje społeczne: jest gotów do
M_K001 Wie w jakich obszarach aplikacyjnych można zastosować układy FPGA we współczesnej gospodarce. AiR1A_K02, AiR1A_K01 Kolokwium
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
56 28 0 28 0 0 0 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 Zna budowę i rodzaje zasobów układu FPGA. + - - - - - - - - - -
M_W002 Zna i rozumie jakimi cechami wyróżniają się algorytmy najbardziej efektywnie implementowane w układach FPGA. + - - - - - - - - - -
M_W003 Potrafi wskazać kryteria doboru architektury systemu obliczeniowego dla wybranych grup aplikacji. + - - - - - - - - - -
Umiejętności
M_U001 Potrafi zaprojektować i uruchomić w układzie FPGA proste i umiarkowanie złożone moduły sprzętowe opisane w języku opisu sprzętu. - - + - - - - - - - -
M_U002 Potrafi zaprojektować i przeprowadzić symulację wykonanego modułu sprzętowego. - - + - - - - - - - -
M_U003 Potrafi skonfigurować mikroprocesor zbudowany z zasobów układu FPGA wraz z peryferiami. - - + - - - - - - - -
M_U004 Potrafi, w stopniu podstawowym, posługiwać się narzędziami do projektowania, syntezy, implementacji i weryfikacji logiki układow FPGA. - - + - - - - - - - -
Kompetencje społeczne
M_K001 Wie w jakich obszarach aplikacyjnych można zastosować układy FPGA we współczesnej gospodarce. + - - - - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 106 godz
Punkty ECTS za moduł 4 ECTS
Udział w zajęciach dydaktycznych/praktyka 56 godz
Przygotowanie do zajęć 20 godz
Samodzielne studiowanie tematyki zajęć 30 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Wykład (28h):
Program kursu

Program kursu obejmuje zagadnienia związane z systemami rekonfigurowalnymi. Zawiera podstawowe pojęcia dotyczące budowy i zastosowania układów reprogramowalnych FPGA, kryteria doboru platformy obliczeniowej, zapoznanie studenta z metodami modelowania, opisu, ko-symulacji, walidacji i weryfikacji systemów rekonfigurowalnych. Narzędzia programowe do projektowania sprzętu. Systemy obliczeniowe z heterogenicznymi elementami obliczeniowymi. Metodologia zrównoleglania algorytmów dla zasobów reprogramowalnych, Implementacja algorytmów przetwarzania, analizy i kompresji obrazów w ukladach FPGA. Przegląd typowych aplikacji implementowanych w systemach rekonfigurowalnych.

Ćwiczenia laboratoryjne (28h):
Tematyka laboratoriów:

1. Wstęp do programowania układów FPGA: język opisu sprzętu Verilog, środowisko Vivado, platforma sprzętowa Zybo.
2. Wstęp do projektowania struktury układów FPGA.
3. Metodologia weryfikacji i testowania projektu.
4. Tworzenie maszyn stanowych w języku Verilog.
5. Implementacja operacji arytmetycznych. Konwersja operacji zmiennoprzecinkowych na stałoprzecinkowe.
6. Potokowe przetwarzanie obrazów zrealizowane w układzie FPGA.
7. Segmentacja obszarów o kolorze skóry – przykładowa aplikacja, która wymaga realizacji: konwersji przestrzeni barw RGB do YCbCr, binaryzacji w przestrzeni YCbCr, wyznaczania środka ciężkości wykrytego obszaru.
8. Potokowa realizacja operacji kontekstowych na przykładzie filtracji medianowej.
9. Implementacja prostego procesora w języku Verilog.

Pozostałe informacje
Metody i techniki kształcenia:
  • Wykład: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Ćwiczenia laboratoryjne: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Na laboratorium obowiązywać będzie system punktowy. Ogólną sumę 100 punktów zaliczeniowych tworzą dwie części kolokwium zaliczeniowego (70 punktów) i punkty za realizację zadań domowych oraz aktywność (np. analiza artykułu naukowego) – maksymalnie (30 punktów). Na podstawie ogólnej sumy punktów zaliczeniowych wyliczana będzie ocena zgodnie z obowiązującym Regulaminem Studiów w AGH.

Kolokwia:

  • Wiedza w zakresie zagadnień prezentowanych na wykładzie i podczas laboratorium będzie podlegać sprawdzeniu w formie pisemnego kolokwium. Może zostać ono podzielone na dwie części (pierwsza część po ok. połowie laboratoriów, druga część pod koniec semestru) lub przeprowadzone łącznie pod koniec semestru, przy czym należy zaliczyć każdą z części kolokwium na co najmniej 50% możliwych do zdobycia punktów.
  • W przypadku uzyskania oceny negatywnej z całego kolokwium zaliczeniowego lub jego jednej części Studentowi przysługuje jeden termin poprawkowy obejmujący niezaliczone wcześniej zagadnienia pod koniec trwania zajęć semestru. Z każdej części poprawy kolokwium zaliczeniowego można dostać maksymalnie 50% punktów przewidzianych w terminie podstawowym.
    • Łączna punktacja z kolokwium będzie przeliczana na punkty zaliczeniowe według następującej zależności: 6.82842712474619* sqrt(x) + 1.7157287525381. Oznacza to, że uzyskując 50% punktów z kolokwium otrzyma się 50 punktów zaliczeniowych, a uzyskując 100% otrzyma się 70 punktów zaliczeniowych.
Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Nie
    – Zasady udziału w zajęciach: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Ćwiczenia laboratoryjne:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: *Przebieg laboratorium:* * Przed przystąpieniem do ćwiczenia Student jest zobowiązany zapoznać się z materiałami umieszczonymi na stronie kursu. * Przed rozpoczęciem ćwiczenia dopuszcza się przeprowadzenie krótkich sprawdzianów (ustnych lub pisemnych), których tematyka obejmować będzie przewidziane na dany dzień zagadnienia. W przypadku stwierdzenia nieprzygotowania Studenta, nie zostanie on dopuszczony do realizacji ćwiczenia w danym dniu. Ćwiczenie należy odrobić, w najbliższym możliwym terminie, po uprzednim zaliczeniu sprawdzianu. * O zaliczeniu ćwiczenia decyduje Prowadzący, po wykonaniu zadań określonych w instrukcji i zgłoszeniu tego faktu przez Studenta na 5 minut przed terminem zakończenia zajęć. * W przypadku nie zrealizowania wszystkich zadań określonych w ćwiczeniu, Prowadzący może nakazać przyjście w dodatkowym terminie (jeśli zaległość jest znaczna) lub dokończenie na następnych zajęciach (zaległość niewielka). * Do wybranych ćwiczeń laboratoryjnych proponowane będą zadania domowe i dodatkowe, stanowiące rozszerzenie i uzupełnienie materiału z ćwiczenia. * Zadania domowe i dodatkowe należy oddawać najpóźniej w terminie do tygodnia po zrealizowaniu ćwiczenia, którego dotyczą (tj. na następnych zajęciach). * Za rozwiązanie zadań domowych ew. inne formy aktywności (np. omówienie artykułu naukowego) można uzyskać maksymalnie 30 punktów zaliczeniowych. * Za rozwiązanie zadań dodatkowych można uzyskać maksymalnie 10 punktów zaliczeniowych (tj. podniesienie oceny o pół stopnia), które będą doliczane do sumy punktów za kolokwium i aktywność (zatem teoretycznie można zdobyć 110 punktów zaliczeniowych). * Zadania domowe i dodatkowe mogą być sprawdzane na okoliczność plagiatu. *Samodzielność pracy:* * Ćwiczenia laboratoryjne należy wykonywać samodzielnie. Dopuszcza się konsultacje koleżeńskie tj. pytanie się zespołów realizujących to samo ćwiczenie. Zaleca konsultowanie zadania i ewentualnych problemów z Prowadzącym. * Niedopuszczalne jest prezentowanie innych rozwiązań niż własne (np. ściągniętych z Internetu lub wykonanych wcześniej przez inną osobę). Dotyczy to zarówno zadań z laboratoriów, jak i domowych i dodatkowych. Jeżeli takie zachowanie zostanie wykryte to osoba automatycznie uzyskuje ocenę 2.0 z zaliczenia przedmiotu, bez możliwości poprawy.
Sposób obliczania oceny końcowej:

Ocena końcowa będzie wystawiona przez wykładowcę na podstawie oceny z laboratorium.

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:
  • Obecność na zajęciach jest obowiązkowa. W przypadku jednej nieobecności nieusprawiedliwionej student możne otrzymać maksymalnie ocenę 4.0 (niezależnie od liczby punktów zaliczeniowych). W przypadku dwóch nieobecności nieusprawiedliwionych student może otrzymać maksymalnie ocenę 3.0 (niezależnie od liczby punktów zaliczeniowych). W przypadku trzech lub więcej nieobecności nieusprawiedliwionych student nie otrzyma zaliczenia.
  • Dopuszcza się odrabianie zaległych laboratoriów. Należy to wykonać w najbliższym możliwym dodatkowym terminie (tj. w pierwszym tygodniu po nieobecności).
  • Odrabiać można w trakcie zajęć pozostałych grup na roku (w miarę wolnych stanowisk laboratoryjnych) lub w terminie wskazanym przez Prowadzącego zajęcia (nie dopuszcza się odrabiania zajęć “w domu” i prezentowania jedynie rezultatów końcowych).
Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :
  • Podstawy elektroniki cyfrowej,
  • Znajomość algorytmów przetwarzania obrazów – kurs Systemy wizyjne,
  • Podstawowa umiejętność programowania w języku wysokiego poziomu (C/C++, Python) – kursy: Wstęp do informatyki, Programowanie strukturalne i obiektowe, Zaawansowane programowanie obiektowe.
Zalecana literatura i pomoce naukowe:

1 Gorgoń M., Układy FPGA w rekonfigurowalnych systemach wizyjnych czasu rzeczywistego, Akademicka Oficyna Wydawnicza EXIT, Seria Automatyka i Informatyka, Warszawa, 2013.
2 Pasierbiński J. Zbysiński P., Układy programowalne w praktyce, WKŁ, Warszawa 2001.
3 Zwoliński M. Projektowanie układów cyfrowych z wykorzystaniem języka VHDL, WKŁ, Warszawa 2002.
4 Wiatr K., Akceleracja obliczeń w systemach wizyjnych, WNT, Warszawa 2003.

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Gorgoń M., Układy FPGA w rekonfigurowalnych systemach wizyjnych czasu rzeczywistego, Akademicka Oficyna Wydawnicza EXIT, Seria Automatyka i Informatyka, Warszawa, 2013.
T. Kryjak, M. Gorgon, “Real-time Implementation of Background Modelling Algorithms in FPGA Devices”, Scene Background Modeling and Initialization, Genova, 2015
M. Komorkiewicz , T. Kryjak, M. Gorgon, “Efficient hardware implementation of the Horn Schunck algorithm for high-resolution real-time dense optical flow sensor”, Sensors.; vol. 14, no. 2, pp. 2860-2891, 2014
T. Kryjak, M. Komorkiewicz, and M. Gorgon, “Hardware-software implementation of vehicle detection and counting using virtual detection lines”, Proceedings of the Conference on Design and Architectures for Signal and Image Processing (DASIP), Madrid, 2014
B. Bułat, T. Kryjak, M. Gorgon, “Implementation of Advanced Foreground Segmentation Algorithms GMM, ViBE and PBAS in FPGA and GPU – A Comparison”, Computer Vision and Graphics, Lecture Notes in Computer Science, International Conference, ICCVG 2014, Warsaw, Poland, September 15-17, 2014. Proceedings, pp. 124-131 (10.1007/978-3-319-11331-9_16)
T. Kryjak, M. Komorkiewicz, M. Gorgon, “Real-time background generation and foreground object segmentation for high-definition colour video stream in FPGA device,” Journal of Real-Time Image Processing, vol. 9, no. 1, pp. 61-77, 2014.
T. Kryjak, M. Komorkiewicz, M. Gorgon, “Real-time Foreground Object Detection Combining the PBAS Background Modelling Algorithm and Feedback from Scene Analysis Module”, International Journal of Electronics and Telecommunications, vol. 60, no. 1, pp. 61-72, 2014
T. Kryjak, M. Komorkiewicz, M. Gorgon, “Real-time Implementation of Foreground Object Detection From a Moving Camera Using the ViBE Algorithm”, Computer Science and Information Systems – DOI 10.2298/CSIS131218055K, 2014
T. Kryjak, M. Zun, and M. Gorgon, “Video surveillance algorithms implemented on the heterogeneous Zynq platform” presented at the Conference on Design and Architectures for Signal and Image Processing (DASIP) – Demonight, 2014
T. Kryjak, M. Komorkiewicz, and M. Gorgon, “Hardware implementation of the PBAS foreground detection method in FPGA,” presented at the MIXDES – 20th international conference on mixed design of integrated circuits and systems, Gdynia, 2013.
T. Kryjak, M. Komorkiewicz, “Hardware-software vision system for moving people counting based on 3D information”, Image Processing & Communications, vol. 18, no. 2-3 pp. 71-82, 2013
T. Kryjak and M. Komorkiewicz, “Real-time FPGA implementation of disparity map calculation for a 3D video stream (in polish) – Implementacja obliczania map dysparycji w czasie rzeczywistym dla strumienia wizyjnego 3D zrealizowana w układzie FPGA,” PAK – Pomiary Automatyka Kontrola, vol. 59, pp. 748-750, 2013.
T. Kryjak, M. Gorgon, “Hardware implementation of the ViBe background subtraction method in FPGA (in Polish) – Implementacja sprzętowa odejmowania tła metodą ViBe w układzie FPGA”, PAK Pomiary Automatyka Kontrola, vol. 59, no. 11, pp. 1191-1194, 2013
T. Kryjak and M. Gorgon, “Real-time implementation of the ViBe foreground object segmentation algorithm,” presented at the FedCSIS (Federated Conference on Computer Science and Information Systems) conference, 2013.
T. Kryjak, “Reconfigurable cryptographic accelerator (in Polish) – Rekonfigurowalny akcelerator kryptograficzny,” PAR Pomiary Automatyka Robotyka, vol. 5, pp. 75-85, 2013
T. Kryjak, M. Komorkiewicz, and M. Gorgon, “FPGA implementation of camera tamper detection in real-time,” presented at the Design and Architectures for Signal and Image Processing (DASIP), 2012 Conference on, 2012.
T. Kryjak, M. Komorkiewicz, and M. Gorgon, “FPGA implementation of real-time head-shoulder detection using local binary patterns, SVM and foreground object detection,” presented at the Design and Architectures for Signal and Image Processing (DASIP), 2012 Conference on, 2012.
T. Kryjak, M. Komorkiewicz, and M. Gorgon, “Is FPGA a suitable platform for advanced video surveillance systems?,” presented at the Design and Architectures for Signal and Image Processing (DASIP), 2012 Conference on, 2012.
T. Kryjak and M. Gorgon, “Pipeline implementation of Peer Group Filtering in FPGA,” Computing and Informatics, vol. 31, pp. 727-741, 2012
T. Kryjak, M. Komorkiewicz, and M. Gorgoń, “Reconfigurable video surveillance system for detecting intrusion into protected areas (in Polish) – Rekonfigurowalny system wizyjnego nadzoru do detekcji naruszenia obszarów chronionych,” PAK – Pomiary Automatyka Kontrola, vol. 7, pp. 584-586, 2012
T. Kryjak and M. Gorgon, “Accelerating computing tasks in video surveillance systems using FPGA,” presented at the KU KDM 2011 : fourth ACC Cyfronet AGH users’ conference, Zakopane, Poland, 2011.
T. Kryjak, M. Komorkiewicz, and M. Gorgon, “Implementation of a background generation algorithm with moving object detection and shadow suppressing in Spartan 6 series FPGA devices (in polish) – Implementacja algorytmu generacji tła wraz z modułem segmentacji obiektów ruchomych i eliminacji cieni w układach FPGA serii Spartan 6),” Automatyka : półrocznik Akademii Górniczo-Hutniczej im. Stanisława Staszica w Krakowie, vol. 15, pp. 197-217, 2011.
T. Kryjak, M. Gorgon, “Real-time implementation of moving object detection in video surveillance systems using FPGA,” Computer Science Journal, vol. 12, pp. 149-162, 2011 2011.
T. Kryjak, M. Komorkiewicz, and M. Gorgon, “Real-time moving object detection for video surveillance system in FPGA,” presented at the Design and Architectures for Signal and Image Processing (DASIP), 2011 Conference on, 2011.
T. Kryjak, M. Komorkiewicz, and M. Gorgon, “Single Low-Power FPGA Implementation of Moving Object Detection,” presented at the FPL2011 Workshop on Computer Vision on Low-Power Reconfigurable Architectures, Chania, Krete, Greece, 2011
T. Kryjak and M. Gorgon, “Parallel Implementation of Local Thresholding in Mitrion-C,” International Journal of T. Kryjak and M. Gorgon, “Parallel Implementation of Local Thresholding in Mitrion-C,” International Journal of Applied Mathematics and Computer Science, vol. 20, pp. 571-580, Sep 2010.

Informacje dodatkowe:

Brak