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

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

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

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

Ημερομηνία Περιγραφή Σημειώσεις/Παρουσιάσεις Επιπλέον Υλικό
14 Φεβ. Εισαγωγή Slides
16 Φεβ. Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές Slides
21 Φεβ. Verilog: Τα βασικά Slides
23 Φεβ. Verilog: Τα βασικά (συνέχεια...) Slides από 21 Φεβ.
28 Φεβ. Verilog: Τα βασικά (συνέχεια...) Slides από 21 Φεβ.
02 Μαρ. Verilog: Μια πιο κοντινή ματιά Slides
09 Μαρ. Verilog: Μια πιο κοντινή ματιά (συνέχεια...) Slides από 02 Μαρ.
14 Μαρ. Xilinx Vivado και Προσομοίωση (Σ.Τοτόμης & Γ. Ματζουράνης) Slides
16 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog Slides
21 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 16 Μαρ.
23 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 16 Μαρ.
28 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 16 Μαρ.
30 Μαρ. Παρουσίαση Εργαστηρίου 1: Χρονισμός VGA (Σ.Τοτόμης & Γ. Ματζουράνης) Εκφώνηση
04 Απρ. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές Slides
06 Απρ. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές (συνέχεια...) Slides από 04 Απρ.
11 Απρ. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές (συνέχεια...) Slides από 04 Απρ.
13 Απρ. Μηχανές Πεπερασμένων Καταστάσεων - FSM Slides
04 Μαι. Μηχανές Πεπερασμένων Καταστάσεων - FSM (συνέχεια...) Slides από 13 Απρ.
09 Μαι. Στατικές Μνήμες: SRAM Slides
11 Μαι. Στατικές Μνήμες: SRAM (συνέχεια...) Slides απο 09 Μαι.
16 Μαι. Δυναμικές Μνήμες: DRAM Slides
23 Μαι. Ροή Σχεδίασης και Εργαλεία CAD Slides
25 Μαι. Ρολόγια και Χρονισμός Slides

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

  • Web-based Verilog Simulation Tools (for small experiments):
    EDA Playground  [also Waves (beta) with EPWave]
    TutorialPoints Verilog
  • Open-Source Simulator: Icarus Verilog (iverilog) (Linux, MacOS)
    Σε πολλές διανομές Linux (π.χ. Ubuntu, Debian, κτλ) το Icarus Verilog υπάρχει στα έτοιμα πακέτα που μπορούν να εγκατασταθούν:
    sudo apt-get install verilog
    Σε MacOS μπορείτε να το εγκαταστήσετε χειροκίνητα ή με package managers όπως το Homebrew:
    brew install icarus-verilog

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

Εργαστηριακές Ασκήσεις (Laboratory Exercises)

Ημερομηνία Περιγραφή Εκφώνηση/Υλικό Προθεσμία
23 Μαρ. Εργαστηριo 0: Εξοικείωση με προσομοίωση, εργαλεία προγραμματισμού FPGA και την πλακέτα Εκφώνηση
Κώδικας
Εβδομάδα 28/03 έως 01/04
23 Μαρ. Εργαστηριo 1: Χρονισμός VGA Εκφώνηση
Κώδικας
Εβδομάδα 04/04 έως 08/04 και
Εβδομάδα 11/04 έως 15/04
13 Απρ. Εργαστηριo 2: Λαβύρινθος στη VGA Εκφώνηση
Κώδικας
Εβδομάδα 02/05 έως 06/05 και
Εβδομάδα 09/05 έως 13/05
04 Μαι. Εργαστηριo 3: Μηχανή Ελέγχου για τον Λαβύρινθο Εκφώνηση
Κώδικας
Εβδομάδα 16/05 έως 20/05 και
Εβδομάδα 23/05 έως 27/05

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

(A) Τρίτη 12:00 - 14:00 (Β) Τρίτη 18:00 - 20:00 (Γ) Πέμπτη 12:00 - 14:00 (Δ) Πέμπτη 18:00 - 20:00
4257 3303 2289 3871
3684 4058 4485 4276
4694 3574 4383 ----
4637 3588 3991 ----
4309 ---- 4437 ----
4232 ---- 3596 ----
4805 ---- 4166 ----
4374 ---- 4225 ----

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

Last update: 25 May 2022 - by V. Papaefstathiou