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

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

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

Ώρες Διδασκαλίας: Δευτέρα 14.15 - 16:00 στην αίθουσα Α.125
Τετάρτη 14.15 - 16:00 στην αίθουσα Α.125
Ώρες Εργαστηρίων: (A) Δευτέρα 16:00 - 17:00 στην αίθουσα Β.110
(B) Δευτέρα 17:00 - 18:00 στην αίθουσα Β.110
(Γ) Πέμπτη 16:00 - 17:00 στην αίθουσα Β.110
(Δ) Πέμπτη 17:00 - 18:00 στην αίθουσα Β.110
(E) Πέμπτη 18:00 - 19: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)

Ημερομηνία Περιγραφή Σημειώσεις/Παρουσιάσεις Επιπλέον Υλικό
05 Φεβ. Εισαγωγή Slides
07 Φεβ. Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές Slides
14 Φεβ. Verilog: Τα βασικά Slides
19 Φεβ. Verilog: Τα βασικά (συνέχεια...) Slides από 14 Φεβ.
21 Φεβ. Vivado και Προσομοίωση (Σ.Τοτόμης) Slides
26 Φεβ. Verilog: Μια πιο κοντινή ματιά Slides
28 Φεβ. Verilog: Μια πιο κοντινή ματιά (συνέχεια...) Slides από 26 Φεβ.
04 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog Slides
06 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 04 Μαρ.
11 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 04 Μαρ.
13 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 04 Μαρ.
20 Μαρ. Μηχανές Πεπερασμένων Καταστάσεων - FSM Slides
27 Μαρ. Μηχανές Πεπερασμένων Καταστάσεων - FSM (συνέχεια...) Slides από 20 Μαρ.
01 Απρ. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές Slides
03 Απρ. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές (συνέχεια...) Slides από 01 Απρ.
08 Απρ. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές (συνέχεια...) Slides από 01 Απρ.
10 Απρ. Στατικές Μνήμες: SRAM Slides
15 Απρ. Στατικές Μνήμες: SRAM (συνέχεια...) Slides απο 10 Απρ.
17 Απρ. Δυναμικές Μνήμες: DRAM Slides
22 Απρ. Δυναμικές Μνήμες: DRAM (συνέχεια...) Slides απο 17 Απρ.
24 Απρ. Ροή Σχεδίασης και Εργαλεία CAD Slides
13 Μαι. Ροή Σχεδίασης και Εργαλεία CAD (συνέχεια...) Slides απο 08 Μαι.
15 Μαι. Ρολόγια και Χρονισμός Slides
12 Ιουν. Τελική Εξέταση (35%) - Τετάρτη 12 Ιουνίου 2024: 13.30 - 16.30 στο Αμφ. ΣΟ

Σημειώσεις, Εγχειρίδια και Σύνδεσμοι (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 και την πλακέτα Εκφώνηση
Κώδικας
Εβδομάδα 19/03 έως 22/03 και
Εβδομάδα 26/03 έως 29/03
26 Μαρ. Εργαστηριo 1: Χρονισμός VGA Εκφώνηση
Κώδικας
Εβδομάδα 01/04 έως 05/04 και
Εβδομάδα 08/04 έως 12/04
09 Απρ. Εργαστηριo 2: Λαβύρινθος στη VGA Εκφώνηση
Κώδικας
Εβδομάδα 15/04 έως 19/04 και
Εβδομάδα 22/04 έως 26/04
24 Απρ. Εργαστηριo 3: Μηχανή Ελέγχου για τον Λαβύρινθο Εκφώνηση
Κώδικας
Εβδομάδα 13/05 έως 17/05 και
Εβδομάδα 20/05 έως 24/05

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

(Γκρουπ Α)
Δευτέρα 16:00 - 17:00
(Γκρουπ Β)
Δευτέρα 17:00 - 18:00
(Γκρουπ Γ)
Πέμπτη 16:00 - 17:00
(Γκρουπ Δ)
Πέμπτη 17:00 - 18:00
(Γκρουπ Ε)
Πέμπτη 18:00 - 19:00
4653 4642 5124 4579 5050
3791 4917 3949 5036 4680
5205 5067 5109 4257 4402
4897 4464 3665 4647 4366
5002 4582 5031 4487 4800
4704 4720 4661 3384 ----
5061 4617 4803 4541 ----
4542 3632 4281 4621 ----

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

Last update: 01 June 2024 - by V. Papaefstathiou