ΗΥ-220: Εργ. Ψηφιακών Κυκ.
Φθινόπωρο 2013
© Τμ. Επ. Υπολογιστών, Π. Κρήτης
[printer version - PDF]

ΗΥ-220  -  Εργαστήριο Ψηφιακών Κυκλωμάτων:
Περιγραφή του Μαθήματος

Στόχος και Δομή του Μαθήματος:

Το μάθημα αυτό --μάθημα επιλογής-- αποτελεί τη συνέχεια του βασικού μαθήματος κορμού "Ψηφιακή Σχεδίαση" (ΗΥ-120), και διδάσκει τα βασικά στοιχεία του σημερινού επαγγελματικού τρόπου σχεδίασης Ψηφιακών Κυκλωμάτων και Συστημάτων. Διδάσκεται η μεθοδολογία σχεδίασης (design flow) και τα εργαλεία σχεδίασης (design tools) που αποτελούν τη βάση του σημερινού τρόπου σχεδίασης ψηφιακών συστημάτων σε επαγγελματικό επίπεδο, παγκοσμίως.

Κεντρικής σημασίας στο μάθημα είναι η διδασκαλία της Γλώσσας Περιγραφής Υλικού (Hardware Description Language - HDL) "Verilog", που είναι σήμερα η γλώσσα που χρησιμοποιεί η συντριπτική πλειοψηφία των εταιρειών και της βιομηχανίας στο χώρο των υπολογιστών, τηλεπικοινωνιών, και εν γένει ψηφιακών συστημάτων γιά να περιγράφουν και σχεδιάζουν όλα αυτά τα συστήματα. Επίσης κεντρική είναι η διδασκαλία του τρόπου εκείνου περιγραφής των κυκλωμάτων σε Verilog που "καθοδηγεί" με ευνοϊκό τρόπο τα εργαλεία αυτόματης σύνθεσης των κυκλωμάτων στο να συνθέσουν αποδοτικά κυκλώματα με την επιθυμητή συμπεριφορά --αυτό που λέμε "Συνθέσιμη Verilog" (Synthesizable Verilog).

Το μάθημα εστιάζει στην τεχνολογία FPGA's (Field-Programmable Gate Arrays) γιά την κατασκευή ψηφιακών συστημάτων --κάτι που θα μεταφράζαμε "Παράταξη Πυλών Προγραμματιζόμενη στο Πεδίο", δηλαδή ψηφιακά κυκλώματα που μπορεί ο χρήστης να τα "αναδιατάξει" (configure) με μεθόδους "προγραμματιστικές", δηλαδή μετά την κατασκευή του chip, χωρίς υλική επέμβαση σε αυτό. Η κατηγορία αυτή ψηφιακών συστημάτων είναι αρκετά διαδεδομένη σήμερα ακόμα και γιά τελικά προϊόντα, αλλά επίσης χρησιμοποιείται ευρέως γιά την κατασκευή "πρωτοτύπων", δηλαδή της πρώτης μορφής οιουδήποτε νέου ψηφιακού συστήματος, με σκοπό την επαλήθευση και το debugging, πριν αυτό σχεδιαστεί στην τελική του μορφή σαν ASIC (Application-Specific Integrated Circuit) chip. Επειδή τα FPGA's είναι η απλούστερη μορφή (επαγγελματικών) ψηφιακών συστημάτων, αποτελούν ταυτόχρονα και ιδανικό εργαλείο γιά αυτό το πρώτο μάθημα επαγγελματικής ψηφιακής σχεδίασης, αλλά και κάτι πολύ χρήσιμο αυτό καθ'εαυτό γιά την επαγγεματική σταδιοδρομία. Όσοι θέλουν να μάθουν περισσότερα γιά τη μεθοδολογία και τα εργαλεία σχεδίασης των "κανονικών" ολοκληρωμένων κυκλωμάτων "ASIC chips", θα πρέπει να πάρουν το μάθημα ΗΥ-523 "Εργαστηριακή Σχεδίαση Ψηφιακών Κυκλωμάτων με Εργαλεία Ηλεκτρονικού Αυτοματισμού", ή/και το μάθημα ΗΥ-422 "Εισαγωγή στα Συστήματα VLSI", ή θα τα μάθουν "στην πράξη", στην μεταπτυχιακή ή στην επαγγελματική τους εργασία.

Το μάθημα αυτό δεν προϋποθέτει την "Οργάνωση Υπολογιστών" (ΗΥ-225), δηλαδή οι φοιτητές μπορούν να πάρουν αυτό το μάθημα είτε πριν είτε μετά (ή και ταυτόχρονά με) το ΗΥ-225. Γιά το λόγο αυτό, οι ασκήσεις αυτού του μαθήματος δεν χρησιμοποιούν επεξεργαστές, αλλά μόνον απλούστερα στοιχεία, που έχουν διδαχτεί στην Ψηφιακή Σχεδίαση (ΗΥ-120): πολυπλέκτες, μνήμες, μετρητές, FSM, κλπ. Έτσι, το κύριο θέμα των ασκήσεων αυτού του μαθήματος είναι οι αναγνώσεις και εγγραφές "πακέτων" (blocks) δεδομένων από/σε μνήμες, οι μεταφορές (αντιγραφές) αυτών από μνήμη σε μνήμη (Direct Memory Access - DMA), καθώς και η μεταγωγή και δρομολόγηση αυτών (switching and routing) μέσα από συστοιχείες πολυπλεκτών, δηλαδή δικτυακούς μεταγωγείς/δρομολογητές (network switches/routers). Φυσικά, όποιος έχει περάσει αυτό το μάθημα και έχει περάσει και την Οργάνωση Υπολογιστών (ΗΥ-225), θα μπορεί με τις μεθόδους αυτού του μαθήματος να σχεδιάζει και επεξεργαστές --και ακόμα καλύτερα, αφού περάσει και την Αρχιτεκτονική Υπολογιστών (ΗΥ-425), τότε θα μπορεί να σχεδιάζει και κανονικούς, πραγματικούς επεξεργαστές. Ιδιαίτερο ενδιαφέρον θα έχει η χρήση, φέτος, γιά το εργαστήριο του μαθήματος, της πλακέτας "Zedboard" (zedboard.org) που κυκλοφόρησε μόλις πέρισυ διεθνώς, και αποτελεί την τελευταία λέξη της τεχνολογίας σε FPGA's, καθώς περιλαμβάνει και έναν dual-core ARM A9 processor, μέσα στην FPGA. Παρ' ότι σε αυτό το μάθημα δεν θα χρησιμοποιηθεί αυτός ο διπύρηνος επεξεργαστής (αφού η Οργάνωση Υπολογιστών δεν είναι προαπαιτούμενο του μαθήματος), εντούτοις οι φοιτητές θα αποκτήσουν εμπειρία με κάτι πολύ κοντά στην τελευταία λέξη της διεθνούς τεχνολογίας στους επεξεργαστές εξοικονόμησης ενεργείας γιά φορητές συσκευές --αλλά πιθανότατα και γιά τα Data Centers της επόμενης γενιάς (οι ίδιες FPGA's θα χρησιμοποιηθούν και στο Ευρωπαϊκό ερευνητικό έργο "EuroServer" που θα αναπτύξει servers γιά Data Centers εξοικονόμησης ενέργειας, και στο οποίο συμμετέχει και το ΙΠ του ΙΤΕ).

Το μάθημα αυτό έχει έντονο Εγραστηριακό χαρακτήρα: οι φοιτητές μαθαίνουν "επί το έργον" (learn by doing), σχεδιάζοντας πραγματικά κυκλώματα και ελέγχοντας τη σωστή λειτουργία τους στην πράξη. Από τη μιά, αυτό απαιτεί τη φυσική παρουσία των φοιτητών στις διαλέξεις και στο Εργαστήριο, δηλαδή δεν είναι μάθημα που διαβάζεται και περνιέται "εξ αποστάσεως". Από την άλλη όμως, το πλεονέκτημα του μαθήματος είναι ότι μαθαίνεται "επί τόπου", στις διαλέξεις και στο εργαστήριο, κι έτσι απαιτεί σημαντικά λιγότερο διάβασμα στο σπίτι, και πολύ λίγο διάβασμα την περίοδο των εξετάσεων. Επίσης, η ύλη και οι ασκήσεις θα οργανωθούν έτσι ώστε η περισσότερη δουλειά να γίνει το πρώτο μισό του εξαμήνου (μέχρι τις αρχές Νοέμβρη), και ο φόρτος του μαθήματος να είναι ελαττωμένος μετά, το Νοέμβριο και Δεκέμβριο. Αυτό πιστεύεται ότι θα βοηθήσει τους φοιτητές στην ισοκατανομή φόρτου, αφού πολλά άλλα μαθήματα έχουν αντίστροφα μικρό φόρτο στην αρχή και μεγάλο κατά το δεύτερο μέρος του εξαμήνου.

Συνέπεια του εργαστηριακού χαρακτήρα είναι και το ωρολόγιο πρόγραμμα. Το μάθημα έχει μόνον μία τρίωρη διάλεξη τη βδομάδα (Τρίτες 5-8), η οποία μάλιστα στο δεύτερο μισό του εξαμήνου θα γίνει μάλλον δίωρη, τις περισσότερες βδομάδες του Νοεμβρίου και Δεκεμβρίου (Τρίτες 5-7). Από την άλλη, ο κάθε φοιτητής θα πρέπει να εργάζεται και ένα τρίωρο κάθε βδομάδα στο Εργαστήριο. Θα υπάρχουν 4 εργαστηριακά τμήματα (Τε-Πε-Πα-Δε. 5-8), και ο κάθε φοιτητής θα πρέπει να παρευρίσκεται και εργάζεται σε ένα από αυτά. Το κάθε εργαστηριακό τμήμα χωρά 16 φοιτητές, άρα όλο το μάθημα χωράει 64 φοιτητές. Πιστεύουμε (βάσει και των στατιστικών των προηγουμένων ετών) ότι δεν θα θελήσουν να πάρουν το μάθημα περισσότεροι από 64 φοιτητές --εάν θελήσουν, τότε θα πρέπει καθένας τους να σκεφτεί πολύ καλά πόσο σοβαρός είναι στην απόφασή του να πάρει το μάθημα μέχρι τέλους και όχι να το παρατήσει στη μέση όπως δυστυχώς πολλοί κάνουν σε άλλα μαθήματα.

Επίσης συνέπεια του εργαστηριακού χαρακτήρα είναι και ο τρόπος βαθμολόγησης του μαθήματος: το 70% του βαθμού του μαθήματος θα προέλθει από τα Εργαστήρια, και το 30% από τρείς μικρές εξετάσεις --δύο εξετάσεις Προόδου (γύρω στα τέλη Οκτώβρη και τέλη Νοέμβρη), από 10% καθεμία, και μία μικρή τελική εξέταση γιά το υπόλοιπο 10% του βαθμού. Επομένως, (α) είναι απαραίτητο οι φοιτητές να έρχονται και να εργάζονται συνειδητά στα εργαστήρια, αλλά και (β) όσοι έρχονται και να εργάζονται συνειδητά στα εργαστήρια (και στο μάθημα!) θα είναι "αδύνατον να μη μάθουν" και άρα "αδύνατον" και να μην περάσουν το μάθημα.... Ο βαθμός εργαστηρίων (το 70% του βαθμού μαθήματος) θα προέλθει από τα 11 καλύτερα μεταξύ των 12 εργαστηρίων, άρα τυχόν απουσία σε ένα εργαστήριο γιά λόγους ανωτέρας βίας δεν θα έχει αρνητικές βαθμολογικές συνέπειες.

Περιεχόμενο του Μαθήματος:

Περιεχόμενο: Η Γλώσσα Περιγραφής Υλικού Verilog (Hardware Description Language - HDL). Εργαλεία και μεθοδολογία προσομοίωσης ψηφιακών κυκλωμάτων περιγραμμένων σε Verilog, οπτικοποίηση της συμπεριφοράς τους και debugging. Κανόνες και μεθοδολογία δομημένης, τεκμηριωμένης, και συνθέσιμης περιγραφής υλικού σε Verilog. Επισκόπηση της τεχνολογίας FPGA. Εργαλεία αυτόματης σύνθεσης κυκλωμάτων σε FPGA. Διαγράμματα χρονισμού, τεχνικές ελάττωσης καθυστέρησης.
Μέσω των εργαστηριακών ασκήσεων, έμφαση σε: μνήμες SRAM, πρωτόκολα χειραψίας και διαιτησίας, μετατροπές παράλληλου-σειριακού, μετρητές και FSM, πολυπλέκτες-μεταγωγή-δρομολόγηση.
Ταχύτερη επισκόπηση πιό προχωρημένων θεμάτων: Γέννηση ρολογιού, απόκλιση ρολογιού, χρήση PLL. Σειριακή μετάδοση και λήψη, ανάκτηση ρολογιού και πλαισίου. Μεταστάθεια, σφάλμα συγχρονισμού, συγχρονιστές, ουρές και ελαστικοί ενταμιευτές, συγχρονισμός σημάτων άδειος/γεμάτος. Μνήμες DRAM.

Εργαστήριο: Το μάθημα βασίζεται κεντρικά στο εργαστηριακό του μέρος, όπως περιγράφηκε εκτενώς παραπάνω, στην ενότητα "Στόχος και Δομή του Μαθήματος". Κάθε φοιτητής πρέπει να συμμετέχει σε ένα τρίωρο τμήμα εργαστηρίου κάθε βδομάδα. Οι ασκήσεις είναι ατομικές --κάθε φοιτητής εργάζεται μόνος-- όμως υπάρχουν και αρκετές ασκήσεις που δοκιμάζονται και πρέπει να δουλέψουν κατά ομάδες, σύμφωνα με προδιαγεγραμμένες διεπαφές. Κάθε εργαστηριακό τμήμα περιλαμβάνει έως 16 φοιτητές και εποπτεύεται και βαθμολογείται από ένα βοηθό (μεταπτυχιακό φοιτητή), με σποραδική παρουσία και του διδάσκοντα. Υπάρχουν 4 εργαστηριακά τμήματα.

Βιβλία:

Οι εγγεγραμμένοι φοιτητές του μαθήματος έχουν τη δυνατότητα επιλογής ανάμεσα στα εξής δύο βιβλία: Παρ' ότι κανενός από τα δύο βιβλία η έμφαση δεν είναι στα θέματα που μας απασχολούν ιδιαίτερα σε αυτό το μάθημα, εντούτοις το πρώτο βιβλίο (του Mano) έχει το πλεονέκτημα ότι χρησιμοποιεί την ίδια γλώσσα Verilog που χρησιμοποιούμε και εμείς εδώ, έναντι της γλώσσας VHDL του δεύτερου.

Ωρολόγιο Πρόγραμμα:

Βαθμολογία:

Διδάσκοντες, Βοηθοί:

Ηλεκτρονική Επικοινωνία:


Home Page of CS-220
 
© copyright University of Crete, Greece.
last updated: 15 Sep. 2013, by M. Katevenis.