Module also offered within study programmes:
General information:
Name:
Projektowanie Systemów Cyfrowych
Course of study:
2016/2017
Code:
JFT-1-018-s
Faculty of:
Physics and Applied Computer Science
Study level:
First-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

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_K001 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, FT1A_K06 Report,
Execution of a project
M_K002 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, FT1A_K06 Report,
Execution of a project
Skills
M_U001 Student potrafi zbudować zarówno funkcjonalny jak i syntezowalny model sprzętu. Potrafi również przeprowadzić symulację zbudowanego modelu i analizować jej wyniki. FT1A_U11, FT1A_U08 Test,
Project,
Execution of a project,
Execution of laboratory classes
M_U002 Student potrafi stworzyć prostą aplikację sprzętową sterowania i/lub przetwarzania danych. FT1A_U11, FT1A_U08 Test,
Report,
Execution of a project,
Execution of laboratory classes
Knowledge
M_W001 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, FT1A_W07 Activity during classes,
Test,
Participation in a discussion
M_W002 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, FT1A_W07 Activity during classes,
Participation in a discussion
M_W003 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, FT1A_W07 Activity during classes,
Test,
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_K001 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_K002 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_U001 Student potrafi zbudować zarówno funkcjonalny jak i syntezowalny model sprzętu. Potrafi również przeprowadzić symulację zbudowanego modelu i analizować jej wyniki. + - + + - - - - - - -
M_U002 Student potrafi stworzyć prostą aplikację sprzętową sterowania i/lub przetwarzania danych. + - + + - - - - - - -
Knowledge
M_W001 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_W002 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_W003 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.

  3. Przebieg procesu projektowania układu cyfrowego.

    Opcej projektowe. Poziomy abstrakcji opisu sprzętu i procesy przekształceń pomiędzy nimi. Projektowanie układu do specjalnych zastosowań (ASIC) i układu programowlanego (FPGA, CPLD). Przebieg projektu w środowisku ISE firmy Xilinx.

  4. 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.

  5. Podstawy Verilog-a.

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

  6. 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.

  7. 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.

  8. Automat skończony i mikroprgramowanie.

    Rodzaje automatu (FSM): Moore’a i Mealy’ego. Style zapisu automatu w Verilogu. Kodowanie stanów automatu. Eliminacja stanów równoważnych. Automat ze ścieżką danych FSMD. Archiektura mikroprogramowana. Lista rozkazów i asembler.

  9. Inne konstrukcje Veriloga.

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

  10. Synteza logiczna i statyczna analiza czasowa.

    Lista konstrukcji syntetyzowalnych RTL. Biblioteki technologiczne komórek standardowych dla syntezy. Czasowe ograniczenia projektowe. Generacja i stosowanie przypisów czasowych SDF.

  11. 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.

  12. Podstawy VHDL-a

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

  13. Symulacja analogowa i cyfrowo-analogowa.

    Symulatory analogowe: SPICE, Verilog-A i cyfrowo-analogowe Verilog-AMS. Behawioralne modelowanie modułów analogowych.

  14. 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.

  15. Przegląd bloków funkcjonalnych elektroniki cyfrowej.

    Rekomendacje projektowe. Przykłady kodów w Verilog-u i VHDL-u przydatne przy syntezie i testowaniu modeli urządzeń cyfrowych.

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 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 147 h
Module ECTS credits 5 ECTS
Participation in lectures 30 h
Realization of independently performed tasks 40 h
Participation in laboratory classes 30 h
Participation in project classes 15 h
Examination or Final test 2 h
Preparation for classes 15 h
Completion of a project 15 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:

Additional scientific publications not specified

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. 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.