Πρώτο Κεφάλαιο Εισαγωγή στα Ψηφιακά Συστήματα 1.1 Αναλογικά και Ψηφιακά Σήματα και Συστήματα... 1 1.2 Βασικά Ψηφιακά Κυκλώματα... 3 1.3 Ολοκληρωμένα κυκλώματα... 4 1.4 Τυπωμένα κυκλώματα... 7 1.5 Εργαλεία για Ψηφιακή Σχεδίαση... 8 Δεύτερο Κεφάλαιο Αριθμητικά Συστήματα Κώδικες 2.1 Αριθμητικά συστήματα θέσεως... 11 2.1.1 Δυαδικό σύστημα... 14 2.1.2 Οκταδικό σύστημα... 15 2.1.3 Δεκαεξαδικό σύστημα... 15 2.2 Μετατροπή παραστάσεων μεταξύ αριθμητικών συστημάτων... 16 2.2.1 Μετατροπή αριθμού από το δεκαδικό στο δυαδικό σύστημα... 16 2.2.2 Μετατροπή από το δυαδικό στο οκταδικό σύστημα και αντίστροφα.. 19 2.2.3 Μετατροπή από το δυαδικό στο δεκαεξαδικό σύστημα και αντίστροφα... 20 2.2.4 Μετατροπή από το δεκαδικό στο οκταδικό σύστημα... 21 2.2.5 Μετατροπή από το δεκαδικό στο δεκαεξαδικό σύστημα... 22 2.2.6 Μετατροπή από οποιοδήποτε σύστημα στο δεκαδικό... 23 2.3 Πράξεις στο δυαδικό σύστημα... 23 2.3.1 Πρόσθεση μη προσημασμένων δυαδικών αριθμών... 23 2.3.2 Αφαίρεση μη προσημασμένων δυαδικών αριθμών... 25 2.3.3 Πολλαπλασιασμός μη προσημασμένων δυαδικών αριθμών... 26 2.3.4 Διαίρεση μη προσημασμένων δυαδικών αριθμών... 27 2.4 Παράσταση προσημασμένων αριθμών στο δυαδικό σύστημα... 28
vi Ψηφιακή Σχεδίαση 2.4.1 Σύστημα προσημασμένου μέτρου... 29 2.4.2 Αριθμητικά Συστήματα Συμπληρώματος... 29 2.5 Πρόσθεση αριθμών στα συστήματα συμπληρωμάτων... 35 2.5.1 Υπερχείλιση... 37 2.6 Αφαίρεση αριθμών στα συστήματα συμπληρωμάτων... 37 2.7 Συμπληρώματα βάσης... 38 2.8 Δυαδική κωδικοποίηση των δεκαδικών αριθμών... 39 2.8.1 Κώδικας BCD (Binary Coded Decimal) ή 8421... 39 2.8.2 Κώδικας 2421... 40 2.8.3 Κώδικας XS3... 41 2.8.4 Biquinary Code... 42 2.8.5 Κώδικας 1-out-of-10... 43 2.9 Κώδικας GRAY... 44 2.10 Κώδικες Χαρακτήρων... 47 2.10.1 Κώδικας ASCII... 47 2.11 Κώδικες ανίχνευσης και διόρθωσης λαθών... 50 2.11.1 Κώδικες Ανίχνευσης Απλών Λαθών... 50 2.11.2 Κώδικες Διόρθωσης Λαθών και Ανίχνευσης Πολλαπλών Λαθών... 51 2.11.3 Κώδικες Hamming... 52 Ασκήσεις... 58 Τρίτο Κεφάλαιο Βασικές Αρχές Λογικής Σχεδίασης 3.1 Εισαγωγή... 63 3.2 Άλγεβρα Boole... 63 3.2.1 Δυισμός... 64 3.2.2 Βασικά Θεωρήματα της Άλγεβρας Boole... 65 3.2.3 Θεωρήματα της Άλγεβρας Boole για πολλές μεταβλητές... 66 3.2.4 Αποδείξεις ορισμένων θεωρημάτων της Άλγεβρας Boole... 66 3.2.5 Άλγεβρα Διακοπτών... 68 3.3 Λογικές Συναρτήσεις... 69 3.3.1 Παραστάσεις Λογικών Συναρτήσεων... 69 3.3.2 Λογικές Παραστάσεις και Λογικές Πύλες... 72 3.3.3 Άθροισμα Γινομένων και Άθροισμα Ελαχίστων Όρων... 73 3.3.4 Γινόμενο Αθροισμάτων και Γινόμενο Μεγίστων Όρων... 76 3.3.5 Ισοδύναμες λογικές παραστάσεις... 80
vii 3.3.6 Μετατροπή λογικής παράστασης σε κανονική... 80 3.3.7 Θεωρήματα για τις λογικές συναρτήσεις... 82 3.4 Υλοποίηση Λογικών Συναρτήσεων... 83 3.4.1 Απλοποίηση Λογικών Συναρτήσεων με χάρτες Karnaugh... 84 3.4.2 Γενική μέθοδος απλοποίησης λογικών συναρτήσεων... 92 3.5 Υλοποίηση Λογικών Παραστάσεων με Λογικές Πύλες... 93 3.5.1 Υλοποίηση με πύλες {AND, OR, NOT}... 94 3.5.2. Υλοποίηση λογικών παραστάσεων με πύλες NAND... 95 3.5.3. Υλοποίηση με πύλες NOR... 96 3.5.4. Δομές ΑΝD-NOR, OR-NAND... 96 3.6. Οι συναρτήσεις XOR (Exclusive-OR) και XNOR (Exclusive-NOR)... 97 3.7 Κυκλώματα με πολυπλέκτες δύο εισόδων... 101 Ασκήσεις... 105 Τέταρτο Κεφάλαιο Τεχνολογίες Υλοποίησης 4.1 Εισαγωγή... 113 4.2 Αναπαράσταση δυαδικών τιμών στα ψηφιακά κυκλώματα... 113 4.3 Τρανζίστορ MOS... 114 4.4 Λογικές πύλες τεχνολογίας CMOS... 118 4.4.1 Αντιστροφέας CMOS... 118 4.4.2 Πύλες NAND και NOR... 120 4.4.3 Μη αντιστρέφουσες πύλες... 123 4.4.4 Σύνθετες Λογικές Πύλες τεχνολογίας CMOS... 125 4.4.5 Πύλες μετάδοσης, πύλες XOR και πολυπλέκτες δύο εισόδων... 126 4.5 Επίπεδα λογικών σημάτων και περιθώρια θορύβου... 128 4.6 Δυναμική λειτουργία των λογικών πυλών... 130 4.6.1 Χρόνοι μετάπτωσης... 130 4.6.2 Καθυστέρηση διάδοσης... 130 4.6.3 Fanout... 131 4.6.4 Κατανάλωση ισχύος... 131 4.7 Τυπικά ολοκληρωμένα κυκλώματα λογικών πυλών... 132 Ασκήσεις... 135
viii Ψηφιακή Σχεδίαση Πέμπτο Κεφάλαιο Διαδεδομένα Συνδυαστικά Κυκλώματα 5.1 Εισαγωγή... 139 5.2 Ανάλυση Συνδυαστικών Κυκλωμάτων... 140 5.3 Σύνθεση Συνδυαστικών Κυκλωμάτων... 141 5.4 Αποκωδικοποιητές... 144 5.4.1 Δίκτυα αποκωδικοποιητών... 147 5.4.2 Σχεδίαση συνδυαστικών κυκλωμάτων με αποκωδικοποιητές και πύλες OR... 153 5.4.3 Αποκωδικοποιητές με πύλες NAND... 154 5.4.4 Ολοκληρωμένα κυκλώματα αποκωδικοποιητών... 155 5.5 Κωδικοποιητές... 157 5.6 Κωδικοποιητές προτεραιότητος... 160 5.7 Πολυπλέκτες... 164 5.7.1 Δίκτυα πολυπλεκτών... 169 5.7.2 Υλοποίηση Λογικών Συναρτήσεων με Πολυπλέκτες... 170 5.7.3 Υλοποίηση πολυπλεκτων με απομονωτές τριών καταστάσεων... 172 5.7.4 Ολοκληρωμένα κυκλώματα με πολυπλέκτες... 174 5.8 Αποπολυπλέκτες... 176 5.9 Κυκλώματα πρόσθεσης μη προσημασμένων δυαδικών αριθμών... 178 5.9.1 Προσθετές με διάδοση κρατουμένου... 180 5.9.2 Πλήρης Αθροιστής... 180 5.9.3 Ημιαθροιστής... 184 5.9.4 Προσθετής προσημασμένων αριθμών σε σύστημα συμπληρώματος του 2.. 186 5.9.4. Κύκλωμα αφαίρεσης σε σύστημα συμπληρώματος του 2... 188 5.10 Συγκριτές Μεγέθους... 188 Ασκήσεις... 193 Έκτο Κεφάλαιο Βασικά Ακολουθιακά Κυκλώματα 6.1 Εισαγωγή... 197 6.2 Συστήματα πεπερασμένων καταστάσεων... 198 6.3 Δομή των ακολουθιακών κυκλωμάτων... 198
ix 6.4 Μανδαλωτές και φλιπ-φλοπ... 201 6.4.1 Βασικός μανδαλωτής... 201 6.4.2 SR φλιπ-φλοπ... 204 6.4.3 Φλιπ-φλοπ τύπου D... 206 6.4.4 JK φλιπ-φλοπ... 208 6.4.5 Τ φλιπ-φλοπ... 211 6.5 Ακμοπυροδοτούμενα φλιπ-φλοπ... 213 6.5.1 Ακμοπυροδοτούμενα D φλιπ-φλοπ... 214 6.5.2 Ακμοπυροδοτούμενα JK και T φλιπ-φλοπ... 216 6.5.3 Χρόνοι Setup και Hold... 218 6.6 Ασύγχρονοι είσοδοι των φλιπ-φλοπ... 219 6.7 Ολοκληρωμένα κυκλώματα με φλιπ-φλοπ... 222 Ασκήσεις... 225 Έβδομο Κεφάλαιο Σύγχρονα Ακολουθιακά Κυκλώματα 7.1. Εισαγωγή... 229 7.2. Ανάλυση Σύγχρονων Ακολουθιακών Κυκλωμάτων... 231 7.2.1. Σύγχρονα ακολουθιακά κυκλώματα χωρίς εξωτερικές εισόδους και με εξόδους της εξόδους των φλιπ-φλοπ... 232 7.2.2. Σύγχρονα Ακολουθιακά Κυκλώματα με Εξωτερικές Εισόδους... 235 7.2.3. Σύγχρονα ακολουθιακά κυκλώματα με εξωτερικές εισόδους και εξόδους... 237 7.3. Σύνθεση Σύγχρονων Ακολουθιακών Κυκλωμάτων... 240 7.3.1. Σχεδίαση Σύγχρονων Ακολουθιακών Κυκλωμάτων με Αδιάφορες Καταστάσεις... 246 Ασκήσεις... 257 Όγδοο Κεφάλαιο Καταχωρητές Απαριθμητές 8.1 Καταχωρητές... 259 8.1.1 Ολοκληρωμένα κυκλώματα καταχωρητών... 261 8.2 Καταχωρητές ολίσθησης... 263
x Ψηφιακή Σχεδίαση 8.2.1. Καταχωρητές ολίσθησης σειριακής-εισόδου-σειριακής-εξόδου... 264 8.2.2. Καταχωρητές σειριακής-εισόδου/παράλληλης-εξόδου... 266 8.2.3 Καταχωρητές ολίσθησης παράλληλη εισόδου-σειριακής εξόδου... 266 8.2.4 Καταχωρητής ολίσθησης δύο κατευθύνσεων με παράλληλη είσοδο και έξοδο... 267 8.2.5 Δίκτυα ολισθητών... 269 8.2.6 Ολοκληρωμένα κυκλώματα ολισθητών... 270 8.3 Απαριθμητές... 271 8.3.1 Ασύγχρονοι Απαριθμητές... 273 8.3.2 Σύγχρονοι Απαριθμητές... 277 8.3.3 Διαιρέτες συχνότητος... 287 8.3.4 Δίκτυα απαριθμητών... 287 8.3.5 Απαριθμητές με παράλληλη φόρτωση... 289 8.3.6 Ολοκληρωμένα κυκλώματα απαριθμητών... 291 8.3.7 Εναλλακτική σχεδίαση σύγχρονων μη-δυαδικών απαριθμητών... 292 8.4 Κυκλικοί καταχωρητές... 295 8.4.1 Απαριθμητές δακτυλίου... 295 8.4.2 Απαριθμητές Johnson... 296 Ασκήσεις... 300 Ένατο Κεφάλαιο Ημιαγωγικές Μνήμες 9.1 Εισαγωγή... 303 9.2 Μνήμες Ανάγνωσης/Εγγραφής... 304 9.3 Στατικές RAM... 305 9.3.1 Είσοδοι και έξοδοι των SRAM... 305 9.3.2 Μνήμες SRAM με δίαυλο διπλής κατεύθυνσης... 307 9.3.3 Εσωτερική δομή των SRAM... 309 9.3.4 Κύτταρο αποθήκευσης των σύγχρονων SRAM... 313 9.4 Δυναμικές RAM... 315 9.4.1 Δομή των DRAM... 317 9.5 Μνήμες ROM... 319 9.5.1 Τύποι ROM... 320 9.6. Επέκταση του μήκους λέξης μιας μνήμης... 328 9.7 Επέκταση του αριθμού θέσεων μιας μνήμης... 328 Ασκήσεις... 331
xi Δέκατο Κεφάλαιο Περιγραφή Ψηφιακών Κυκλωμάτων με την Γλώσσα VHDL 10.1 Εισαγωγή... 343 10.2 Εργαλεία σχεδίασης... 343 10.3 Γλώσσες Περιγραφής υλικού... 345 10.4 Περιγραφή απλών συνδυαστικών κυκλωμάτων με την γλώσσα VHDL... 347 10.5. Σχεδίαση Αριθμητικών Κυκλωμάτων με την γλώσσα VHDL... 350 10.6 Εντολές αντιστοίχησης της γλώσσας VHDL... 356 10.7 Περιγραφή Βασικών Συνδυαστικών Κυκλωμάτων με την VHDL... 356 10.7.1 Περιγραφή με την VHDL του 2 1 πολυπλέκτη... 357 10.7.2 Περιγραφή του 4 1 πολυπλέκτη... 360 10.7.3 Περιγραφή με την VHDL του 2 4 αποκωδικοποιητή... 361 10.7.4 Περιγραφή με την VHDL του κωδικοποιητή προτεραιότητος... 363 10.8 Περιγραφή ακολουθιακών κυκλωμάτων με την γλώσσα VHDL... 364 10.8.1 Περιγραφή με την γλώσσα VHDL των φλιπ-φλοπ... 365 10.8.2 Περιγραφή με την VHDL των βασικών ακολουθιακών κυκλωμάτων... 370 Βιβλιογραφία... 379