Ψηφιακή Σχεδίαση

Πανεπιστήμιο Κρήτης

Τμήμα Επιστήμης Υπολογιστών

Έτος: 2013-2014

Διδάσκων: Μανόλης Γ.Η. Κατεβαίνης, Βασίλης Παπαευσταθίου

Περιγραφή Μαθήματος

Οι υπολογιστές (τόσο οι αυτόνομοι όσο και οι ενσωματωμένοι σε άλλες μηχανές, όπως αυτοκίνητα, τηλεοράσεις, κλπ), τα δίκτυα (όπως το Internet), και οι τηλεπικοινωνίες (τηλέφωνα, κινητά, ασύρματοι, κλπ) είναι όλα κατασκευασμένα, σήμερα πια, από μικροηλεκτρονικά chips που στην συντριπτική τους πλειοψηφία είναι ψηφιακά. Αυτό το μάθημα μιλάει για τα ψηφιακά συστήματα, για τη βάση δηλαδή όλης της σύγχρονης τεχνολογίας της πληροφορίας. Ο στόχος του μαθήματος είναι να διδάξει στη νέα φοιτήτρια και το νέο φοιτητή των υπολογιστών το τι είναι ψηφιακό κύκλωμα, τις βασικές και απαραίτητες έννοιες και στοιχεία της ψηφιακής σχεδίασης, και πώς με αυτά μπορεί να φτιάξει κανείς ένα σημαντικό και κεντρικό παράδειγμα ψηφιακού κυκλώματος: έναν απλούστατο υπολογιστή. Βέβαια, ο υπολογιστής που θα φτιάξουμε θα είναι υπεραπλουστευμένος (γι' αυτό και εξαιρετικά αργός) αλλά παρ' όλα αυτά θα είναι ένας υπολογιστής. Επίσης, στόχος του μαθήματος είναι η εργαστηριακή εξοικείωση του φοιτητή με τα ψηφιακά κυκλώματα αυτά καθ' εαυτά: το μάθημα περιλαμβάνει εβδομαδιαίες δίωρες εργαστηριακές ασκήσεις με χρήση breadboard, διακοπτών, LED, ηλεκτρονόμων, chips (TTL, CMOS), και ενός απλού datapath ενός υπολογιστή τύπου συσσωρευτή με δύο χωριστές μνήμες (εντολών, δεδομένων) και πλήθος ενδεικτικών λυχνιών 7-segment για την παρακολούθηση της κατάστασής του, το οποίο οι φοιτητές μετατρέπουν σε στοιχειώδη υπολογιστή υλοποιώντας τον έλεγχό του στο breadboard.

Video-Διαλέξεις

Διάλεξη 01: Εισαγωγή (2013-10-07)

Επανάληψη περί ηλεκτρικών κυκλωμάτων, γνωριμία με breadboard, LED, και διακόπτες.

Διάλεξη 02: Λογική με διακόπτες, Πολυπλέκτες, Μνήμη ROM (2013-10-16)

1. Πίνακες Αληθείας, Σύνθετες Πράξεις, Αποκλειστικό-Ή, Κώδικες Ανίχνευσης Σφαλμάτων 2. Πολύπλεξη: Επιλογή Πληροφορίας μεταξύ Πολλαπλών Εισόδων 3. Πολύπλεξη: Επιλογή Πληροφορίας μεταξύ Πολλαπλών Εισόδων 4. Πολύπλεξη σαν το Λογικό Ή πολλαπλών ΚΑΙ 5. Ανάγνωση από μνήμη με χρήση πολυπλεκτών 6. Μνήμη Χειροκίνητης Εγγραφής και Ηλεκτρονικής Ανάγνωσης

Διάλεξη 03: Αποκωδικοποιητές και διευθύνσεις μνήμης, ηλεκτρονόμοι, κωδικοποίηση και συνδυασμοί (2013-10-18)

1. Δένδρα Αποφάσεων 2. Δένδρα Αποφάσεων 3. Πλακέτα Αποκωδικοποιητή 3-σε-8 4. Διευθύνσεις Μνήμης και Αποκωδικοποιητής Διευθύνσεων 5. ROM, AND-OR, Κωδικοποίηση Μηνυμάτων 6. Πλήθος Συνδυασμών (Μηνυμάτων) των n bits 7. Ηλεκτρονόμοι (Relays) 8. Ηλεκτρονόμοι και Αποκωδικοποιητές 9. Συνδέσεις με την Πλακέτα Εισόδων/Εξόδων 10. Αναλογικά και Ψηφιακά Ηλεκτρονικά Συστήματα

Διάλεξη 04: Πολυπλέκτες-αποκωδικοποιητές, ανάδραση-ταλαντωτές-στοιχεία μνήμης, λογικές πύλες, transistors&chips (2013-10-23)

1. Κωδικοποιημένα Σήματα Επιλογής: Πολυπλέκτης με Αποκωδικοποιητή 2. Ανάδραση: Ευσταθή, Ασταθή, και Δισταθή Συστήματα 3. Ταλαντωτής με Ηλεκτρονόμο 4. Μνήμη "RS Flip-Flop" με Ηλεκτρονόμο 5. Λογικές Πύλες: Συνθέσιμα, Μονόδρομα Κυκλώματα 6. Σύνθεση Συνδιαστικών Κυκλωμάτων από τον Πίνακα Αληθείας τους 7. Λογικές Πύλες σε Τεχνολογία CMOS 8. Λογικές Πύλες σε Τεχνολογία CMOS (συνέχεια προημούμενου μαθήματος) 9. Λογικές Πύλες σε Τεχνολογία CMOS 10. Λογικές Πύλες σε Τεχνολογία CMOS 11. Πώς να ΜΗΝ καταστρέψετε ή κάψετε τα Chips σας

Διάλεξη 05: Χάρτες Karnaugh, άλγεβρα Boole, μνήμη RAM (2013-11-01)

1. Διαγράμματα Venn Δύο Μεταβλητών, Χάρτες Karnaugh 2. Διαγράμματα Venn & Χάρτες Karnaugh Τριών Μεταβλητών 3. Διαγράμματα Venn & Χάρτες Karnaugh Τεσσάρων Μεταβλητών 4. Συνθήκες Αδιαφορίας (Don't Care Conditions) 5. Αποκωδικοποιητές με Πύλες 6. Πολυπλέκτες με Πύλες 7. Μνήμη Τυχαίας Προσπέλασης (RAM) 8. Μεθοδολογία Αποσφαλμάτωσης (Debugging) Κυκλωμάτων

Διάλεξη 06: Άλγεβρα Boole & δυαδική αρίθμηση, αθροιστές (2013-11-06)

1. Άλγεβρα Boole (Θεώρημα DeMorgan) 2. Άλγεβρα Boole (Επιμεριστική Ιδιότητα) 3. Άλλη μορφή επιμεριστικής ιδιότητας και Δυϊσμός 4. Άλλες ταυτότητες στην Άλγεβρα Boole 5. Δυαδική Αρίθμιση 6. Δεκαεξαδική Αρίθμιση 7. Μετατροπή από το Δεκαδικό στο Δυαδικό 8. Πρόσθεση Δυαδικών 9. Ψηφιακός Αθροιστής 10. Πρόσθεση πολλών αριθμών 11. Μετρητής Πλήθους πατημένων Διακοπτών

Διάλεξη 07: Προσημασμένοι ακέραιοι, προσθαφαιρέτες, Flip-Flops (2013-11-15)

1. Πολλαπλασιασμός, Διαίρεση και Υπόλοιπο με δυνάμεις του 2 2. Συστροφή Αναπαράστασης αριθμών με n bits 3. Συστροφή Αναπαράστασης αριθμών με n bits (επανάληψη) 4. Κώδικας signed 4-bit 5. Ορισμός n-bit 2's complement 6. Παράδειγμα 7. Εναλλακτική διατύπωση 8. Πρόσθεση signed (Πρόσθεση Προσημασμένων Ακέραιων σε Συμπλήρωμα-2 9. Αποδείξεις 10. Επανάληψη Προσημασμένων με άλλα λόγια... 11. Παραδείγματα 12. Αφαιρέτες 13. Προσθαφαιρέτες 14. Η στοιχειώδης Ιδέα του Flip-Flop

Διάλεξη 08: Μανταλωτές, καταχωρητές, διφασικά ρολόγια (2013-11-20)

1. O βασικός Μανταλωτής (Latch, Flip-Flop) τύπου RS 2. O Μανταλωτής (Latch) τύπου D 3. Διαγράμματα χρονισμού 4. Μανταλωτές Πολλαπλών Bits (Καταχωρητές - Registers) 5. Αποθήκευση προηγούμενης εισόδου 6. Μνήμη σε Βρόχο ανάδρασης - Διφασικά ρολόγια 7. Διάγραμμα χρονισμού 8. Καταχωρητής Ολίσθησης

Διάλεξη 09: Μετρητής με αθροιστή & καταχωρητή, ακμοπυροδότηση (2013-11-27)

1. Γενικά περί μετρητών 2. Πολύμπιτοι Πολυπλέκτες 3. Μετρητής από Αθροιστές, Καταχωρητές, και Πολυπλέκτες 4. Λίγα για το εργαστήριο... 5. Ακμοπυροδότηση 6. Εξασφαλίζεται η χρήση όπως με φ1 και φ2? 7. Καθαρισμός Παλμών Διακόπτη (Switch Debouncing)

Διάλεξη 10: Τρικατάστατοι οδηγητές, λεωφόροι, μνήμες SRAM (2013-12-04)

1. Κεντρικοποιημένη & Κατανεμημένη Πολύπλεξη 2. Τρικατάστατος διακόπτης σε CMOS 3. Κανόνες λειτουργίας Τρικατάστατης Λεωφόρου 4. Πολύμπιτες Τρικατάστατες Λεωφόροι (Buses) 5. Αμφίδρομα Pins Δεδομένων 6. Σύγχρονες τάσεις Επικοινωνίας μεταξύ Chips 7. Εσωτερική Οργάνωση Μνημών SRAM: Ανάγνωση 8. Εσωτερική Οργάνωση Μνημών SRAM: Εγγραφή 9. Εσωτερική Οργάνωση Μνημών SRAM: Κοινός Αποκωδικοποιητής Διευθύνσεων 10. Μνήμες πολλαπλών Chips 11. Αμφίδρομα Pins Δεδομένων

Διάλεξη 11: Μηχανές πεπερασμένων καταστάσεων (2013-12-11)

1. Μηχανές Πεπερασμένων Καταστάσεων 2. Φώτα Κυκλοφορίας σε Διασταύρωση Οδών (εισαγωγή) 3. Κλασσικά φανάρια, χωρίς ανιχνευτές, με αναλογία 1 προς 1 4. Κλασσικά φανάρια, χωρίς ανιχνευτές, με αναλογία 2 προς 1 5. Συνδυαστικό κύκλωμα σταθερής προτεραιότητας 6. Διάγραμμα κατάστασης και επιδόσεις 7. Επανάληψη 8. Υλοποίηση κυκλώματος FSM 9. Προσαρμοστικός Έλεγχος 10. Άσκηση υλοποίησης 11. Κώδικες Μεταβλητού Μήκους (Κωδικοποίηση Huffman) 12. Διφορούμενοι κώδικες (Ambiguous) 13. FSM Αποκωδικοποίησης Huffman 14. Κωδικοποίηση Καταστάσεων "One-Hot"

Διάλεξη 12: Ένας απλός υπολογιστής: datapath & εντολές πράξεων (2013-12-16)

1. Mία απλή Αριθμητική/Λογική Μονάδα (ALU) - Μέρος 1ο 2. Mία απλή Αριθμητική/Λογική Μονάδα (ALU) - Μέρος 2ο 3. Πράξεις ALU σ΄ έναν Επεξεργαστή Τύπου Συσσωρευτή (Accumulator) 4. Πρόγραμμα και Εντολές: οι Οδηγίες για τις Πράξεις 5. Ανάγνωση & Εκτέλεση Εντολών (Μέρος 1ο) 6. Ανάγνωση & Εκτέλεση Εντολών (Μέρος 2ο) 7. Παράδειγμα πιο πολύπλοκου υπολογισμού με Συσσωρευτή (ACC) 8. Άλμα (Jump): Συνέχιση Εκτέλεσης σε άλλο Σημείο 9. Καταχωρητές με Επίτρεψη Φόρτωσης (Load Enable) 10. Αποκωδικοποίηση Εντολών - Κύκλωμα Ελέγχου 11. Mία απλή Αριθμητική/Λογική Μονάδα (ALU) - Μέρος 1ο 12. Mία απλή Αριθμητική/Λογική Μονάδα (ALU) - Μέρος 2ο 13. Πράξεις ALU σ΄ έναν Επεξεργαστή Τύπου Συσσωρευτή (Accumulator) 14. Πρόγραμμα και Εντολές: οι Οδηγίες για τις Πράξεις 15. Ανάγνωση & Εκτέλεση Εντολών (Μέρος 1ο) 16. Ανάγνωση & Εκτέλεση Εντολών (Μέρος 2ο) 17. Παράδειγμα πιο πολύπλοκου υπολογισμού με Συσσωρευτή (ACC) 18. Άλμα (Jump): Συνέχιση Εκτέλεσης σε άλλο Σημείο 19. Καταχωρητές με Επίτρεψη Φόρτωσης (Load Enable)

Διάλεξη 13: Διακλαδώσεις, έμμεσες προσπελάσεις (pointers), ταχύτητα και κατανάλωση ενέργειας των κυκλωμάτων CMOS (2014-01-13)

1. Επανάληψη - Η Διεύθυνση της επόμενης εντολής 2. Παράδειγμα Βρόχου και Διακλαδώσεις υπό συνθήκη 3. Datapath για διακλαδώσεις 4. Λογική ελέγχου για διακλαδώσεις 5. If - then - else 6. Eπιστροφή από διαδικασία: Άλματα σε Μεταβλητές Διευθύνσεις 7. Η υλοποίηση της Jump Index 8. Η υλοποίηση του "Indirection" 9. Δομές Δεδομένων - Μεταβλητές Διευθύνσεις Μνήμης - Παράδειγμα με πίνακα 10. Επανάληψη του 12.5 11. Υλοποίηση Εντολών Indexed 12. Δύο κύκλοι Ρολογιού - FSM Ελέγχου 13. Η εξίσωση της καθυστέρησης: Δt = C • ΔV / I 14. Συνέπειες της εξίσωση για Fan-out, Fan-in πυλών 15. Κατανάλωση ενέργειας

Διάλεξη 14: Επαναληπτικό Μάθημα (2014-01-24)

1. Επανάληψη του πρώτου μισού μαθήματος 2. Επανάληψη στα Flip-Flops 3. Επανάληψη στις Μνήμες 4. Σύστημα Μνήμης από πολλά Chips 5. Απλός Υπολογιστής 6. Επανάληψη Αναλογικών - Ψηφιακών 7. Επανάληψη Μηχανών Πεπερασμένων Καταστάσεων 8. FSM - Παράδειγμα μηχανής Πώλησης 9. Επανάληψη των Προσημασμένων Αριθμών 10. Διαγράμματα Χρονισμού