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

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

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

Ώρες Διδασκαλίας: Δευτέρα 13.15 - 15:00 στην αίθουσα Α.117
Τετάρτη 13.15 - 15:00 στην αίθουσα Α.117
Ώρες Εργαστηρίων: Θα ανακοινωθούν.
Ώρες Γραφείου: Κατόπιν συνεννόησης @ K319

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

Διδάσκοντες Βοηθοί
Βασίλης Παπαευσταθίου Σωτήρης Τοτόμης
Κωνσταντίνος Σαριόγλου

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

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

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

Ημερομηνία Περιγραφή Σημειώσεις/Παρουσιάσεις Επιπλέον Υλικό
09 Φεβ. Εισαγωγή Slides
11 Φεβ. Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές Slides
 
 

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

    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 στα μηχανήματα του Τμήματος

    Υποστηρίζονται τα εξής εργαλεία:
    • 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)

Ημερομηνία Περιγραφή Εκφώνηση/Υλικό Προθεσμία
TBA Εργαστηριo 0: Εξοικείωση με προσομοίωση, εργαλεία προγραμματισμού FPGA και την πλακέτα TBA

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

TBA

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

Last update: 11 Feb 2026 - by V. Papaefstathiou