ΗΥ220: Εργαστήριο Ψηφιακών Κυκλωμάτων (Εαρινό 2025)

Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης

Πρόγραμμα Διαλέξεων και Εργαστηρίων (Schedule)

Ώρες Διδασκαλίας: Δευτέρα 14.15 - 16:00 στην αίθουσα Α.125
Τετάρτη 14.15 - 16:00 στην αίθουσα Α.125
Ώρες Εργαστηρίων: (A) Τρίτη 12:00 - 14:00 στην αίθουσα Β.110
(B) Τρίτη 16:00 - 18:00 στην αίθουσα Β.110
(Γ) Τρίτη 18:00 - 20:00 στην αίθουσα Β.110
(Δ) Πέμπτη 16:00 - 18:00 στην αίθουσα Β.110
Ώρες Γραφείου: Κατόπιν συνεννόησης @ K319

Διδακτικό Προσωπικό (Course Staff)

Διδάσκοντες Βοηθοί
Βασίλης Παπαευσταθίου Σωτήρης Τοτόμης
Αλέξανδρος Φουρτούνης

Πληροφορίες Μαθήματος (Course Info)

Περιοχή: Υλικό και Συστήματα Υπολογιστών (Ε4)
Περιγραφή: Γλώσσες περιγραφής και προσομοίωσης υλικού, π.χ. Verilog. Επισκόπηση της τεχνολογίας FPGA, εργαλεία αυτόματης σύνθεσης κυκλωμάτων σε FPGA. Διαγράμματα χρονισμού, τεχνικές ελάττωσης καθυστέρησης. Αρτηρίες (δίαυλοι, λεωφόροι), πρωτόκολα χειραψίας, παραδείγματα εμπορικών αρτηριών. Μνήμες, π.χ. SRAM και SDRAM. Γέννηση ρολογιού, απόκλιση ρολογιού, χρήση PLL. Μεταστάθεια, σφάλμα συγχρονισμού, συγχρονιστές, ουρές και ελαστικοί ενταμιευτές, συγχρονισμός σημάτων άδειος/γεμάτος. Εργαστήριο: Ασκήσεις υλοποίησης μικρών έως μεσαίων εργασιών σε πλακέτες με FPGA, μετά από σχεδίαση και προσομοίωση σε Verilog.
ECTS: 6
Προαπαιτούμενα: ΗΥ120 - Ψηφιακή Σχεδίαση
Βαθμολόγηση: Εργαστήρια/Ασκήσεις: 65% (βαθμός > 4.5)
Τελική Εξέταση: 35% (βαθμός > 4.5)
Mailing-list: hy220-list at csd dot uoc dot gr

Πρόγραμμα και Υλικό Διαλέξεων (Schedule and Lecture Notes)

Ημερομηνία Περιγραφή Σημειώσεις/Παρουσιάσεις Επιπλέον Υλικό
10 Φεβ. Εισαγωγή Slides
12 Φεβ. Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές Slides
17 Φεβ. Verilog: Τα βασικά Slides
19 Φεβ. Verilog: Τα βασικά (συνέχεια...) Slides από 17 Φεβ.
24 Φεβ. Verilog: Τα βασικά (συνέχεια...) Slides από 17 Φεβ.
26 Φεβ. Verilog: Μια πιο κοντινή ματιά Slides
05 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog Slides
10 Μαρ. Vivado και Προσομοίωση #1 (Σ.Τοτόμης & Α.Φουρτούνης) Slides
12 Μαρ. Vivado και Προσομοίωση #2 (Α.Φουρτούνης & Σ.Τοτόμης) Slides από 10 Μαρ.
17 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 05 Μαρ.
19 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 05 Μαρ.
24 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 05 Μαρ.
26 Μαρ. SystemVerilog: Επιπλέον Χαρακτηριστικά Slides
31 Μαρ. Μηχανές Πεπερασμένων Καταστάσεων - FSM Slides
02 Απρ. Μηχανές Πεπερασμένων Καταστάσεων - FSM (συνέχεια...) Slides από 31 Μαρ.

Σημειώσεις, Εγχειρίδια και Σύνδεσμοι (Notes, Manuals and Links)

  • Verilog Coding Guidelines:

    HY220 SystemVerilog Coding Styles
  • Web-based Verilog/SystemVerilog Simulation Tools (for small experiments):

    EDA Playground  [also Waves (beta) with EPWave]
    TutorialPoints Verilog
  • Open-Source Verilog/SystemVerilog Simulators: Updated

    Verilator (Linux, MacOS)
    Icarus Verilog (iverilog) (Linux, MacOS)

    Σε πολλές διανομές Linux (π.χ. Ubuntu, Debian, κτλ) ο Verilator και ο Icarus Verilog υπάρχουν στα έτοιμα πακέτα που μπορούν να εγκατασταθούν:
    sudo apt-get install verilator
    sudo apt-get install iverilog
    Σε MacOS μπορείτε να το εγκαταστήσετε χειροκίνητα ή με package managers όπως το Homebrew:
    brew install verilator
    brew install icarus-verilog
    Για προσομοίωση με τον Verilator θα πρέπει να έχετε έκδοση >= 5.012, ιδανικά έκδοση >= 5.020 (παλαιότερες εκδόσεις δεν είναι κατάλληλες για το μάθημα).
    Για προσομοίωση με τον Icarus Verilog θα πρέπει να έχετε έκδοση >= 11, ιδανικά έκδοση >= 12 (παλαιότερες εκδόσεις δεν είναι κατάλληλες για το μάθημα).

  • Open-Source VCD Waveform Viewers:

    GTKWave (Linux, MacOS, Win)

    Σε πολλές διανομές Linux (π.χ. Ubuntu, Debian, κτλ) το GTKwave υπάρχει στα έτοιμα πακέτα που μπορούν να εγκατασταθούν:
    sudo apt-get install gtkwave
    Σε MacOS μπορείτε να το εγκαταστήσετε χειροκίνητα ή με package managers όπως το Homebrew:
    brew install gtkwave
    Για να δείτε κυματομορφές από προσομοιώσεις θα πρέπει να γεννήσει η προσομοίωση αρχεία τύπου VCD (Value Change Dump).
    Για να γεννηθούν VCD αρχεία θα πρέπει απλά να προσθέσετε στο testbench σας τις παρακάτω γραμμές στην αρχή του initial block (αν δεν υπάρχουν ήδη):
    initial begin
      $dumpfile("tb_waves.vcd");
      $dumpvars;
      
      // your other code below
      
      ...
      
    end

  • Προσομοιώσεις Verilog/SystemVerilog στα μηχανήματα του Τμήματος New

    Υποστηρίζονται τα εξής εργαλεία:
    • Verilator (v5.020)
    • Icarus Verilog (v12)
    • Xilinx/AMD Vivado (v2018.3)
    • GTKWave (v3.3.117)
    Σύντομος Οδηγός:
    cp -r ~hy220/tools/example .
    cd example
    source setup.sh
    export HY220_SIMULATOR=verilator
    Για περισσότερες λεπτομέρειες δείτε το README.txt που υπάρχει στο φάκελο example.
    Προσομοίωση σε command line:
    make
    Κυματομορφές μετά απο command line προσομοίωση:
    make gwaves

Ασκήσεις και Εργαστήρια (Exercises and Labs)

Ημερομηνία Περιγραφή Εκφώνηση/Υλικό Προθεσμία
16 Μαρ. Εργαστηριo 0: Εξοικείωση με προσομοίωση, εργαλεία προγραμματισμού FPGA και την πλακέτα Εκφώνηση Εβδομάδα 17/03 έως 21/03
21 Μαρ. Εργαστηριo 1: Χρονισμός VGA Εκφώνηση Από 24/03 έως 08/04 αναλόγως το Γκρουπ.

Εργαστηριακά Τμήματα και Ώρες (Lab Sessions)

PC (Γκρουπ Α)
Τρίτη 12:00 - 14:00
(Γκρουπ Β)
Τρίτη 16:00 - 18:00
(Γκρουπ Γ)
Τρίτη 18:00 - 20:00
(Γκρουπ Δ)
Πέμπτη 16:00 - 18:00
PC3 csd5448 csd4902 csd4934 csd4647
PC5 csd5450 csd4648 csd5016 csd4466
PC7 csd5420 csd5676 csd4986 csd5452
PC9 csd4764 csd4673 csd4739 csd5516
PC11 csd5449 csd4605 csd5020 csd4795
PC13 csd5318 csd5376 csd5075 csd5159
PC15 csd4892 csd5087 csd5236 csd5206
PC17 csd5555 csd4322 csd4497 csd5166
PC19 csd5280 csd4831 csd4610 csd5162
PC21 csd4190 ------- csd5050 csd5363

Σελίδες Παλαιοτέρων Ετών (Websites from Previous Years)

Last update: 02 Apr. 2025 - by V. Papaefstathiou