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

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

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

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

Διδακτικό Προσωπικό

Διδάσκοντες Βοηθοί
Γιώργος Καλοκαιρινός Παντελής Ξηρουχάκης
Βασίλης Παπαευσταθίου Θεοχάρης Βαβούρης
Μανόλης Κατεβαίνης

Πληροφορίες Μαθήματος

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

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

Ημερομηνία Περιγραφή Σημειώσεις/Παρουσιάσεις Επιπλέον Υλικό
25 Σεπ. 2017 Εισαγωγή Slides
25 Σεπ. 2017 Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές Slides
28 Σεπ. 2017 Verilog: Τα βασικά Slides
2 Οκτ. 2017 Verilog: Τα βασικά (συνέχεια...) Slides από 28 Σεπ.
5 Οκτ. 2017 Verilog: Μια πιο κοντινή ματιά Slides
9 Οκτ. 2017 Verilog: Μια πιο κοντινή ματιά (συνέχεια...) Slides από 5 Οκτ.
12 Οκτ. 2017 Xilinx Vivado και Προσομοίωση (Π. Ξηρουχάκης) Slides Example Code
16 Οκτ. 2017 Verilog: Στύλ Κώδικα και Synthesizable Verilog Slides
19 Οκτ. 2017 Verilog: Στύλ Κώδικα και Synthesizable Verilog (συνέχεια...) Slides από 16 Οκτ.
26 Οκτ. 2017 Μηχανές Πεπερασμένων Καταστάσεων - FSM Slides
30 Οκτ. 2017 Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές Slides
6 Νοε. 2017 Χρονισμός Σύγχρονων Κυκλωμάτων, Καταχωρητές και Μανταλωτές (συνέχεια...) Slides από 6 Νοε.
13 Νοε. 2017 Στατικές Μνήμες: SRAM Slides
20 Νοε. 2017 Δυναμικές Μνήμες: DRAM Slides
23 Νοε. 2017 Εξέταση Προόδου (20%) - Διαλέξεις μέχρι και 6 Νοε. 2017
27 Νοε. 2017 Ρολόγια και Χρονισμός Slides
4 Δεκ. 2017 Δίαυλοι: Πρωτόκολλο AXI Slides
14 Δεκ. 2017 Ροή Σχεδίασης και Εργαλεία CAD Slides
18 Δεκ. 2017 Συζήτηση στην Αίθουσα
16 Ιαν. 2018 Τελική Εξέταση (30%) - Τρίτη 16 Ιανουαρίου 2018: 9.00 - 12.00 στην αίθουσα Α.113

Σημειώσεις, Εγχειρίδια και Σύνδεσμοι

  • 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)

Ημερομηνία Περιγραφή Εκφώνηση/Υλικό Ημερομηνίες Εργαστηρίων
19 Οκτ. 2017 Εργαστηριo 0: Εξοικείωση με προσομοίωση, εργαλεία προγραμματισμού FPGA και την πλακέτα Εκφώνηση
Κώδικας
Εβδομάδα 23/10 έως 27/10
30 Οκτ. 2017 Εργαστηριo 1: Χρονισμός VGA Εκφώνηση
Κώδικας
Εβδομάδα 6/11 έως 10/11 και
Εβδομάδα 13/11 έως 17/11
20 Νοε. 2017 Εργαστηριo 2: Λαβύρινθος στη VGA Εκφώνηση
Κώδικας
Εβδομάδα 27/11 έως 01/12 και
Εβδομάδα 04/12 έως 08/12
5 Δεκ. 2017 Εργαστηριo 3: Μηχανή Ελέγχου για τον Λαβύρινθο Εκφώνηση
Κώδικας
Εβδομάδα 11/12 έως 15/12 και
Εβδομάδα 18/12 έως 22/12

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

Δευτέρα 14:00 - 16:00 (B.110) Τετάρτη 18:00 - 20:00 (B.110) Παρασκευή 14:00 - 16:00 (B.110)
csd3474 csd3458 gialamoud
csd3726 csd3123 csd3263
csd3721 ph4365 ph3575
csd3390 csd3703 csd3659
csd3440 labrakis csd3534
mavraki csd3849 csd3134
csd2771 csd3241 csd3578
csd3428 gurlemakis csd3614
csd3775 csd3640 csd3750
csd3862 csd3763 csd3665

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

Last update: 5 Jan. 2018 - by V. Papaefstathiou