Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Języki opisu sprzętu
Tok studiów:
2018/2019
Kod:
JFT-1-016-s
Wydział:
Fizyki i Informatyki Stosowanej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Fizyka Techniczna
Semestr:
0
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Osoba odpowiedzialna:
dr inż. Skoczeń Andrzej (skoczen@fis.agh.edu.pl)
Osoby prowadzące:
dr hab. inż. Mindur Bartosz (mindur@agh.edu.pl)
dr inż. Skoczeń Andrzej (skoczen@fis.agh.edu.pl)
dr inż. Świentek Krzysztof (swientek@agh.edu.pl)
Krótka charakterystyka modułu

Przedmiot wprowadza słuchaczy w zagadnienia projektowania układów cyfrowych z zastosowaniem technologii programowalnych układów logicznych FPGA (Field Programmable Gate Array).

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W004 Student biegle zna syntaktykę języka Verilog i zadowalająco języka VHDL. Rozumie znaczenie wymienionych i innych języków opisu sprzętu w przebiegu projektowania urządzeń FT1A_W02 Aktywność na zajęciach,
Kolokwium,
Udział w dyskusji,
Wykonanie projektu
M_W005 Student zna i rozumie podstawowe pojęcia omawiane w ramach wykładu dotyczące analizy i syntezy kombinacyjnych i sekwencyjnych układów cyfrowych. Zna również podstawowe sprzętowe architektury układów sterowania i ścieżki przetwarzania danych. FT1A_W02 Aktywność na zajęciach,
Kolokwium,
Udział w dyskusji,
Wykonanie projektu
M_W006 Student dysponuje aktualną wiedzą na temat technologii produkcji cyfrowych układów scalonych wielkiej skali integracji ASIC i FPGA (CPLD). Zna również strukturę bibliotek komórek standardowych stosowanych w projektowaniu urządzeń cyfrowych. FT1A_W02 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
Umiejętności
M_U003 Student potrafi zbudować zarówno funkcjonalny jak i syntezowalny model sprzętu. Potrafi również przeprowadzić symulację zbudowanego modelu i analizować jej wyniki. FT1A_U04, FT1A_U03 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U004 Student potrafi stworzyć prostą aplikację sprzętową sterowania i/lub przetwarzania danych. FT1A_U04, FT1A_U03 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne
M_K003 Student potrafi pracować w zespole projektowym. Potrafi samodzielnie zdobyć odpowiednią wiedzę i umiejętności niezbędne do realizacji jego części zadania zespołowego. FT1A_K01 Projekt,
Wykonanie projektu
M_K004 Student umie przedstawić wykonany projekt w sposób komunikatywnej prezentacji. Potrafi także wskazać obszary zastosowań tworzonych aplikacji i ekonomiczne aspekty zastosowanych rozwiązań. FT1A_K01 Projekt,
Sprawozdanie,
Wykonanie projektu
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W004 Student biegle zna syntaktykę języka Verilog i zadowalająco języka VHDL. Rozumie znaczenie wymienionych i innych języków opisu sprzętu w przebiegu projektowania urządzeń + - + + - - - - - - -
M_W005 Student zna i rozumie podstawowe pojęcia omawiane w ramach wykładu dotyczące analizy i syntezy kombinacyjnych i sekwencyjnych układów cyfrowych. Zna również podstawowe sprzętowe architektury układów sterowania i ścieżki przetwarzania danych. + - - - - - - - - - -
M_W006 Student dysponuje aktualną wiedzą na temat technologii produkcji cyfrowych układów scalonych wielkiej skali integracji ASIC i FPGA (CPLD). Zna również strukturę bibliotek komórek standardowych stosowanych w projektowaniu urządzeń cyfrowych. + - + - - - - - - - -
Umiejętności
M_U003 Student potrafi zbudować zarówno funkcjonalny jak i syntezowalny model sprzętu. Potrafi również przeprowadzić symulację zbudowanego modelu i analizować jej wyniki. + - + + - - - - - - -
M_U004 Student potrafi stworzyć prostą aplikację sprzętową sterowania i/lub przetwarzania danych. - - + + - - - - - - -
Kompetencje społeczne
M_K003 Student potrafi pracować w zespole projektowym. Potrafi samodzielnie zdobyć odpowiednią wiedzę i umiejętności niezbędne do realizacji jego części zadania zespołowego. - - + + - - - - - - -
M_K004 Student umie przedstawić wykonany projekt w sposób komunikatywnej prezentacji. Potrafi także wskazać obszary zastosowań tworzonych aplikacji i ekonomiczne aspekty zastosowanych rozwiązań. - - + + - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
  1. Język opisu sprzętu – narzędzie projektowania w mikroelektronice.

    Różne języki opisu i weryfikacji sprzętu oraz obszary ich zastosowań: HDL: Verilog, VHDL, Abel, AHDL; HDVL: SystemVerilog; SLDL: SystemC, Gezel; HVL: e, OpenVera, Sugar, ForSpec, PSL. Specyfika i porównanie z językami programowania. Automatyzacja procesu projektowania sprzętu elektronicznego. Obecne trendy.

  2. Mikroelektronika i układy programowalne

    Mikroelektronika: historia i przyszłość. Prawo Moore’a. Sukces technologii CMOS. Pojęcie maski i warstw technologicznych. Obecy stan rozwoju i wyzwania przed technologią CMOS. Technologia układów programowalnych PLD. Proces projektowania układu cyfrowego.

  3. Teoretyczne podstawy układów logicznych

    Algebra Boole’a, funkcje logiczne i ich reprezentacje, metody minimalizacji (metoda Quine’a-McKluskeya, metoda ESSPRESSO). Synteza logiczna a synteza wysokiego poziomu. Automat skończony i mikroprgramowanie.

  4. Podstawy Verilog-a

    Konwencje językowe, typy danych, moduły, porty, konkretyzacja modułu, zadania, funkcje, dyrektywy kompilatora, typy bramek. Zadania i funkcje systemowe.

  5. Modelowanie behavioralne w Verilog-u

    Blok sekwencyjny i równoległy, przypisanie proceduralne blokujące i nieblokujące, sterowanie przebiegów czasowych, instrukcja warunkowa, rozgałęzienia, pętle. Przygotowanie modułu testującego.

  6. Modelowanie RTL w Verilog-u

    Modelowanie przeplywu danych w Verilogu: przypisania ciągłe, opóźnienia, operatory. Modele symulacyjne a modele syntezowalne. Styl kodowania prowadzący do poprawnych wyników syntezy.

  7. Inne konstrukcje Veriloga

    Modelowanie na poziomie kluczy. Dynamiczna analiza czasowa. Symulacyjna biblioteka komórek standardowych.

  8. Wprowadzenie do VHDL-a

    Jednostka projektowa: interfejs, architektura. Porty lokalne, formalne i rzeczywiste, Definiowanie typów danych. Pakiety i ich standaryzacja. Biblioteki. Funkcje i procedury.

  9. Podstawy VHDL-a

    Operatory, przypisania transportowe i inercyjne, instrukcje warunkowe, rozgałęzione i pętle. Przykłady syntezowalnego kodu RTL w VHDL-u.

  10. Układy programowalne

    Struktury PLD: ROM, PLA, PAL. Modelowanie PLD w Verilogu. Technologia połączeń programowalnych. Porównanie CPLD i FPGA. Architektura układów rodziny Spartan-3x firmy Xilinx. Podstawowe bloki funkcjonalne, ich budowa i parametry.

Ćwiczenia laboratoryjne:
  1. Symulacja behawioralna w Verilog-u

    Efekty kształcenia:
    - student potrafi zapisać w Verilogu funkcjonalność urządzenia cyfrowego
    - student potrafi posługiwać się środowiskiem projektowym ISE w stopniu pozwalającym na symulację modelu prostego cyfrowego bloku funkcjonalnego,
    - student potrafi przygotować moduł testujący w Verilogu i interpretować symulacyjnie uzyskane przebiegi czasowe.

  2. Synteza w oparciu o kod RTL w Verilogu i symulacja po syntezie

    Efekty kształcenia:
    - student potrafi zapisać w Verilog-u syntezowalny model urządzenia cyfrowego,
    - student potrafi w środowisku ISE przeprowadzić syntezę i symulację uzyskanego modelu strukturalnego.

  3. Symulacja i synteza za pomocą języka VHDL

    Efekty kształcenia:
    - student potrafi zapisać w VHDL-u syntezowalny model urządzenia cyfrowego
    - student potrafi w środowisku ISE przeprowadzić syntezę i symulację uzyskanego modelu strukturalnego

  4. Implementacja automatu skończonego w układzie Spartan-3AN

    Efekty kształcenia:
    - student potrafi stworzyć model RTL automatu skończonego, przeprowadzić jego symulacyjną weryfikację, syntezę i implementację w układzie Spartan-3AN, tak by poprawność pracy automatu dała się sprawdzić za pomocą pokrętła, przycisków, przełączników, diod LED dostępnych na module ćwiczeniowym.

  5. Implementacja sterownika wyświetlacza LCD

    Efekty kształcenia:
    - student potrafi zapisać syntezowalny model sterownika wyświetlacza LCD (typu HD44780) według zadanych diagramów,
    - student potrafi przeprowadzić syntezę i implementację tego urządzenia.

  6. Implementacja modułu asynchronicznej transmisji szeregowej UART

    Efekty kształcenia:
    - student potrafi zapisać syntezowalny model modułu asynchronicznej transmisji szeregowej UART według zadanych diagramów,
    - student potrafi przeprowadzić syntezę i implementację tego urządzenia.

Ćwiczenia projektowe:
  1. Projektowanie modułów arytmetycznych

    Studenci w dwuosobowych zespołach realizują
    Efekty kształcenia:
    - student potrafi zinterpretować specyfikację modułu,
    - student potrafi przeprowadzić podział potrzebnego sprzętu na część sterującą i ścieżkę danych,
    - student potrafi zbudować syntezowalny model i przeprowadzić jego weryfikację i syntezę.

  2. Projekt z układem Spartan-3AN

    Studenci w dwuosobowych zespołach realizują projekty. Każdy zespół otrzymuje do wykonania inny, przydzielony losowo projekt. Punktem wyjścia dla studentów są dostarczone założenia i wskazówki projektowe. W ramach projektu należy w opraciu o zasoby sprzętowe dostępne na module ćwiczeniowym z układem Spartan-3AN stworzyć działające urządzenie oraz dokumentację wykonania projektu.
    Efekty kształcenia:
    - student potrafi zinterpretować specyfikację urządzenia w celu zbudowania go za pomocą dostępnych narzędzi programowych,
    - student potrafi efektywnie wykorzystać podstawowe narzędzia projektowe dostępne w środowisku ISE Xilinx do stworzenia prostej aplikacji sprzętowej na module ćwiczeniowym z ukladem Spartan-3AN,
    - student potrafi współpracować w grupie realizując swoją część zadania,
    - student potrafi zademonstrować funkcjonalność zbudowanego urządzenia zgodną z zadaną specyfikacją i przygotować dokumentację.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 150 godz
Punkty ECTS za moduł 6 ECTS
Udział w wykładach 20 godz
Samodzielne studiowanie tematyki zajęć 41 godz
Udział w ćwiczeniach laboratoryjnych 22 godz
Przygotowanie do zajęć 10 godz
Udział w ćwiczeniach projektowych 15 godz
Wykonanie projektu 20 godz
Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. 20 godz
Egzamin lub kolokwium zaliczeniowe 2 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Ocena końcowa O z modułu obliczana jest jako średnia ważona oceny z kartkówek w laboratorium OL, kolokwium zaliczeniowego OK, i projektu OP:
O = 0.3∙OL + 0.35∙OK + 0.35∙OP

Wymagania wstępne i dodatkowe:

• Znajomość podstaw algebry Boole’a
• Znajomość podstaw elektroniki cyfrowej
• Podstawowa wiedza o strukturze języków programowania
• Przydatna jest znajomośc składni języka C

Zalecana literatura i pomoce naukowe:

• Materiały z wykładu dostępne na stronie przedmiotu: http://www.fis.agh.edu.pl/~skoczen/hdl
• Z. Hajduk, “Wprowadzenie do języka Verilog”, Wydawnictwo BTC, 2009
• J. Majewski, P. Zbysiński, “Układy FPGA w przykładach”, Wydawnictwo BTC, 2007
• IEEE Standard Verilog Hardware Description Language, IEEE Std 1364-2001,
http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=00954909
• IEEE Standard VHDL Language Reference Manual, IEEE Std 1076-2008,
http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4772740

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

J.Steckert, A.Skoczeń “Design of FPGA-based radiation tolerant quench detectors for LHC”, 2017 JINST 12 T04005
P. Hottowy, A. Skoczeń, D.E. Gunning, S. Kachiguine, K. Mathieson, A. Sher , P. Wiącek, A.M. Litke, W. Dąbrowski “Properties and application of a multichannel integrated circuit for low-artifact, patterned electrical stimulation of neural tissue”, Journal of Neural Engineering 9 (2012), 066005

Informacje dodatkowe:

Sposób i tryb wyrównania zaległości powstałych wskutek nieobecności studenta na zajęciach:
Pod koniec semestru przewidziany jest dodatkowy termin ćwiczeń (ogłaszany 2 tygodnie wcześniej na stronie internetowej przedmiotu i przez prowadzących), w którym można wykonać pomiary, których student z przyczyn losowych nie mógł wykonać w pierwotnym terminie. Studenci mogą wówczas odrabiać ćwiczenia po uprzednim uzyskaniu zgody prowadzącego zajęcia w jego grupie oraz odpowiedzi z części teoretycznej, potwierdzonej wpisem do protokołu.
Obecność na wykładzie: zgodnie z Regulaminem Studiów AGH.

Zasady zaliczania zajęć:
W ramach laboratorium komputerowo-elektronicznego studenci pracując w dwuosobowych zespołach wykonują szereg ćwiczeń, które traktowane są jako niezbędne przygotowanie do wykonania projektu. Każde spotkanie w laboratorium rozpoczyna się od krótkiej kartkówki. Ocena, z tych kartkówek OL stanowi pierwszy składnik oceny końcowej O.
Ostatnie spotkanie w laboratorium przeznaczone jest na komputerowe kolokwium zaliczeniowe polegające na samodzielnym zrealizowaniu prostego zadania projektowego: budowa modelu syntezowalnego, symulacja i synteza. Ocena OK stanowi drugi składnik oceny końcowej O.
Projekt oceniany jest w oparciu o procent zrealizowanych założeń projektowych i/lub ocenę niezawodności działania stworzonego urządzenia. Dodatkowo oceniany jest sposób zaprezentowania informacji technicznych zawartych w opracowanej dokumentacji. Ocena OP stanowi trzeci składnik oceny końcowej O.
Zaliczenie laboratorium komputerowo-elektronicznego wymaga zaliczenia:
- wszystkich kartkówek,
- wszystkich projektów,
- kolokwium zaliczeniowego.
Warunkiem uzyskania zaliczenia z pojedynczego projektu jest:
- pomyślna prezentacja działania układu,
- poprawnie wykonane pomiary,
- zaliczone sprawozdanie – dokumentacja projektu.