Module also offered within study programmes:
General information:
Name:
Hardware Description Language
Course of study:
2018/2019
Code:
JFT-2-045-s
Faculty of:
Physics and Applied Computer Science
Study level:
Second-cycle studies
Specialty:
-
Field of study:
Technical Physics
Semester:
0
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Responsible teacher:
dr inż. Skoczeń Andrzej (skoczen@fis.agh.edu.pl)
Academic teachers:
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)
Module summary

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

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
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. FT2A_K01 Project,
Execution of a project
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ń. FT2A_K01 Project,
Report,
Execution of a project
Skills
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. FT2A_U05 Execution of a project,
Execution of laboratory classes
M_U004 Student potrafi stworzyć prostą aplikację sprzętową sterowania i/lub przetwarzania danych. FT2A_U05 Execution of a project,
Execution of laboratory classes
Knowledge
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ń FT2A_W02 Activity during classes,
Test,
Participation in a discussion,
Execution of a project
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. FT2A_W02 Activity during classes,
Test,
Participation in a discussion,
Execution of a project
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. FT2A_W02 Execution of a project,
Execution of laboratory classes
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
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ń. - - + + - - - - - - -
Skills
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. - - + + - - - - - - -
Knowledge
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. + - + - - - - - - - -
Module content
Lectures:
  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.

Laboratory classes:
  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.

Project classes:
  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ę.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 150 h
Module ECTS credits 6 ECTS
Participation in lectures 20 h
Realization of independently performed tasks 41 h
Participation in laboratory classes 22 h
Preparation for classes 10 h
Participation in project classes 15 h
Completion of a project 20 h
Preparation of a report, presentation, written work, etc. 20 h
Examination or Final test 2 h
Additional information
Method of calculating the final grade:

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

Prerequisites and additional requirements:

• 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

Recommended literature and teaching resources:

• 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

Scientific publications of module course instructors related to the topic of the module:

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

Additional information:

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.