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

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

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

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

Ημερομηνία Περιγραφή Σημειώσεις/Παρουσιάσεις Επιπλέον Υλικό
06 Φεβ. Εισαγωγή Slides
08 Φεβ. Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές Slides
13 Φεβ. Verilog: Τα βασικά Slides
15 Φεβ. Verilog: Τα βασικά (συνέχεια...) Slides από 13 Φεβ.
20 Φεβ. Verilog: Τα βασικά (συνέχεια...) Slides από 13 Φεβ.
22 Φεβ. Verilog: Μια πιο κοντινή ματιά Slides
01 Μαρ. Verilog: Μια πιο κοντινή ματιά (συνέχεια...) Slides από 22 Φεβ.
06 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog Slides
08 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 06 Μαρ.
13 Μαρ. Vivado και Προσομοίωση (Σ.Τοτόμης) Slides
15 Μαρ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 06 Μαρ.
20 Μαρ. Μηχανές Πεπερασμένων Καταστάσεων - FSM Slides
22 Μαρ. Μηχανές Πεπερασμένων Καταστάσεων - FSM (συνέχεια...) Slides από 20 Μαρ.
27 Μαρ. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές Slides
29 Μαρ. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές (συνέχεια...) Slides από 27 Μαρ.
03 Απρ. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές (συνέχεια...) Slides από 27 Μαρ.
05 Απρ. Στατικές Μνήμες: SRAM Slides
24 Απρ. Στατικές Μνήμες: SRAM (συνέχεια...) Slides απο 05 Απρ.
26 Απρ. Δυναμικές Μνήμες: DRAM Slides
03 Μαι. Δυναμικές Μνήμες: DRAM (συνέχεια...) Slides απο 26 Απρ.
08 Μαι. Ροή Σχεδίασης και Εργαλεία CAD Slides
15 Μαι. Ροή Σχεδίασης και Εργαλεία CAD (συνέχεια...) Slides απο 08 Μαι.
17 Μαι. Ρολόγια και Χρονισμός Slides
31 Μαι. 2023 Τελική Εξέταση (35%) - Τετάρτη 31 Μαϊου 2023: 09.30 - 12.30 στο Αμφ. ΣΟ

Σημειώσεις, Εγχειρίδια και Σύνδεσμοι (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

  • Vivado στα μηχανήματα του Τμήματος (Quick Guide)
    cp -r ~hy220/tools/example .
    cd example
    source setup.sh
    Για περισσότερες λεπτομέρειες δείτε το README.txt που υπάρχει στο φάκελο example.
    Προσομοίωση σε command line:
    make
    Κυματομορφές μετά απο command line προσομοίωση:
    make waves
    Προσομοίωση και κυματομορφές με το γραφικό περιβάλλον:
    make gui

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

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

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

(Α) Πέμπτη 15:00 - 16:00 (Β) Πέμπτη 16:00 - 17:00 (Γ) Πέμπτη 17:00 - 18:00 (Δ) Παρασκευή 16:00 - 17:00 (Ε) Παρασκευή 17:00 - 18:00
4742 4492 4783 4987 4081
3022 4278 4773 4426 4789
---- 3918 4848 4997 4814
---- 4603 4769 3766 4709
---- 4335 4186 4805 4738
---- 4134 3630 5013 4555
---- 3814 4677 5076 4804
---- 3967 4604 4322 4692

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

Last update: 25 August 2023 - by V. Papaefstathiou