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

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

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

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

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

Διδάσκοντες Βοηθοί
Δρ. Βασίλης Παπαευσταθίου Παντελής Ξηρουχάκης

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

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

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

Ημερομηνία Περιγραφή Σημειώσεις/Παρουσιάσεις Επιπλέον Υλικό
24 Σεπ. Εισαγωγή Slides
27 Σεπ. Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές Slides
1 Οκτ. Verilog: Τα βασικά Slides
4 Οκτ. Verilog: Τα βασικά (συνέχεια...) Slides από 1 Οκτ.
8 Οκτ. Verilog: Μια πιο κοντινή ματιά Slides
11 Οκτ. Verilog: Μια πιο κοντινή ματιά (συνέχεια...) Slides από 8 Οκτ.
15 Οκτ. Xilinx Vivado και Προσομοίωση (Π. Ξηρουχάκης) Slides Example Code
18 Οκτ. Verilog: Στύλ Κώδικα και Synthesizable Verilog Slides
22 Οκτ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 18 Οκτ.
25 Οκτ. Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 18. Οκτ.
01 Νοε. Εργαστήριο 1: Παρουσίαση Εκφώνηση
05 Νοε. Μηχανές Πεπερασμένων Καταστάσεων - FSM Slides
08 Νοε. Μηχανές Πεπερασμένων Καταστάσεων - FSM (συνέχεια...) Slides από 05. Νοε.
12 Νοε. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές Slides
15 Νοε. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές (συνέχεια...) Slides από 12 Νοε.
19 Νοε. Εργαστήριο 2: Παρουσίαση Εκφώνηση
22 Νοε. Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές (συνέχεια...) Slides από 12 Νοε.
26 Νοε. Στατικές Μνήμες: SRAM Slides
29 Νοε. Στατικές Μνήμες: SRAM (συνέχεια...) + Εργαστήριο 3: Παρουσίαση Slides απο 26 Νοε. Εκφώνηση
03 Δεκ. Εξέταση Προόδου (15%) - Διαλέξεις μέχρι και "Χρονισμός Σύγχρονων Κυκλωμάτων"
06 Δεκ. Δυναμικές Μνήμες: DRAM Slides
10 Δεκ. Ροή Σχεδίασης και Εργαλεία CAD Slides
13 Δεκ. Ρολόγια και Χρονισμός Slides
17 Δεκ. Δίαυλοι: Πρωτόκολλο AXI Slides
09 Ιαν. 2019 Τελική Εξέταση (25%) - Τετάρτη 09 Ιανουαρίου 2019: 13.00 - 16.00 στις αίθουσες Α.113 και Α.121

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

Ημερομηνία Περιγραφή Εκφώνηση/Υλικό Ημερομηνίες Εργαστηρίων
27 Οκτ. Εργαστηριo 0: Εξοικείωση με προσομοίωση, εργαλεία προγραμματισμού FPGA και την πλακέτα Εκφώνηση
Κώδικας
Εβδομάδα 29/10 έως 02/11
27 Οκτ. Εργαστηριo 1: Χρονισμός VGA Εκφώνηση
Κώδικας
Εβδομάδα 05/11 έως 09/11 και
Εβδομάδα 12/11 έως 16/11
16 Νοε. Εργαστηριo 2: Λαβύρινθος στη VGA Εκφώνηση
Κώδικας
Εβδομάδα 19/11 έως 23/11 και
Εβδομάδα 26/11 έως 30/11
30 Νοε. Εργαστηριo 3: Μηχανή Ελέγχου για τον Λαβύρινθο Εκφώνηση
Κώδικας
Εβδομάδα 03/12 έως 07/12 και
Εβδομάδα 10/12 έως 14/12

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

TBA

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

Last update: 13 Dec. 2018 - by V. Papaefstathiou