Περιεχόµενα Πρόλογος 11 Σκοπός αυτού του βιβλίου 11 Σε ποιους απευθύνεται αυτό το βιβλίο 12 Βασικά χαρακτηριστικά του βιβλίου 12 Κάλυψη συστηµάτων CAD 14 Εργαστηριακή υποστήριξη 14 Συνοπτική παρουσίαση των κεφαλαίων 15 Προτεινόµενα προγράµµατα διδασκαλίας 18 Ευχαριστίες 19 0 Εισαγωγή 21 0.1 Ιστορία των υπολογιστών 21 0.1.1 Η αρχή: Μηχανικοί υπολογιστές 21 0.1.2 Οι πρώτοι ηλεκτρονικοί υπολογιστές 22 0.1.3 Οι πρώτες τέσσερις γενιές υπολογιστών 23 0.1.4 Η πέµπτη γενιά και η συνέχεια 24 0.2 Ψηφιακά συστήµατα 25 0.2.1 Ψηφιακά και αναλογικά συστήµατα 25 0.2.2 Ιεραρχία της σχεδίασης ψηφιακών συστηµάτων 26 0.3 Οργάνωση ενός ψηφιακού υπολογιστή αποθηκευµένου προγράµµατος 34 0.3.1 Εντολές υπολογιστών 35 0.3.2 Παράσταση πληροφοριών σε υπολογιστές 36 0.3.3 Υλικό ψηφιακών υπολογιστών 38 0.3.4 Λογισµικό ψηφιακών υπολογιστών 40 0.4 Ανακεφαλαίωση 43 ΒΙΒΛΙΟΓΡΑΦΙΑ 44
2 Περιεχόµενα 1 Συστήµατα αρίθµησης και κώδικες 47 1.1 Συστήµατα αρίθµησης 47 1.1.1 Θεσιακή αναπαράσταση αριθµών 47 1.1.2 Συνηθισµένα συστήµατα αρίθµησης 49 1.2 Αριθµητικές πράξεις 50 1.2.1 υαδική αριθµητική 51 1.2.2 Οκταδική αριθµητική 55 1.2.3 εκαεξαδική αριθµητική 57 1.3 Αλλαγή συστήµατος αρίθµησης 59 1.3.1 Μέθοδοι µετατροπής 59 1.3.2 Γενικοί αλγόριθµοι µετατροπής 64 1.3.3 Μετατροπή όταν Β = Αk 66 1.4 Αναπαράσταση αριθµών µε πρόσηµο 67 1.4.1 Παράσταση της απόλυτης τιµής 68 1.4.2 Συµπληρωµατική αναπαράσταση αριθµών 69 1.5 Κώδικες υπολογιστών 90 1.5.1 Αριθµητικοί κώδικες 91 1.5.2 Αλφαριθµητικοί και άλλοι κώδικες 96 1.5.3 Κώδικες ανίχνευσης και διόρθωσης σφαλµάτων 101 1.6 Ανακεφαλαίωση 112 ΒΙΒΛΙΟΓΡΑΦΙΑ 112 ΠΡΟΒΛΗΜΑΤΑ 113 2 Αλγεβρικές µέθοδοι ανάλυσης και σύνθεσης λογικών κυκλωµάτων 119 2.1 Βασικές έννοιες της άλγεβρας του Boole 119 2.1.1 Βασικά αξιώµατα 119 2.1.2 ιαγράµµατα του Venn για τα αξιώµατα 121 2.1.3 υϊκότητα 123 2.1.4 Θεµελιώδη θεωρήµατα της άλγεβρας Boole 124 2.2 Λογικές συναρτήσεις 133 2.2.1 Πίνακες αληθείας 135 2.2.2 Αλγεβρικές µορφές λογικών συναρτήσεων 136 2.2.3 Υπολογισµός των κανονικών µορφών 145 2.2.4 Μερικά καθορισµένες συναρτήσεις 147 2.3 Κυκλώµατα διακοπτών 149 2.3.1 Ηλεκτρονικές λογικές πύλες 150 2.3.2 Βασικά λειτουργικά στοιχεία 154 2.4 Ανάλυση συνδυαστικών κυκλωµάτων 167 2.4.1 Αλγεβρική µέθοδος 167 2.4.2 Ανάλυση διαγραµµάτων χρονισµού 170
Περιεχόµενα 3 2.5 Σύνθεση συνδυαστικών κυκλωµάτων 177 2.5.1 Κυκλώµατα AND-OR και NAND 177 2.5.2 Κυκλώµατα OR-AND και NOR 179 2.5.3 Κυκλώµατα δυο επιπέδων 180 2.5.4 Κυκλώµατα AND-OR-αντιστροφής (AOI) 183 2.5.5 Παραγοντοποίηση 185 2.6 Εφαρµογές 187 2.7 Σχεδίαση λογικών κυκλωµάτων µε τη βοήθεια υπολογιστή 191 2.7.1 Ο κύκλος της σχεδίασης 191 2.7.2 Μοντελοποίηση ψηφιακών κυκλωµάτων 193 2.7.3 Σύνθεση σχεδίου και εργαλεία σχεδίασης 200 2.7.4 Λογική προσοµοίωση 206 2.8 Ανακεφαλαίωση 223 ΒΙΒΛΙΟΓΡΑΦΙΑ 223 ΠΡΟΒΛΗΜΑΤΑ 224 3 Απλοποίηση λογικών συναρτήσεων 233 3.1 Στόχοι της απλοποίησης 233 3.2 Χαρακτηριστικά των µεθόδων απλοποίησης 234 3.3 Χάρτες Karnaugh 236 3.3.1 Σχέση µεταξύ πινάκων αληθείας και διαγραµµάτων Venn 237 3.3.2 Χάρτες Karnaugh τεσσάρων ή περισσότερων µεταβλητών 239 3.4 Κανονική µορφή συνάρτησης σε χάρτη Karnaugh 240 3.5 Απλοποίηση συναρτήσεων µε χάρτες Karnaugh 247 3.5.1 Βασικές αρχές για την απλοποίηση λογικών συναρτήσεων µε χάρτες Karnaugh 249 3.5.2 Γενική ορολογία για την απλοποίηση λογικών συναρτήσεων 249 3.5.3 Αλγόριθµοι υπολογισµού του ελάχιστου αθροίσµατος γινοµένων από χάρτη Karnaugh 251 3.6 Γινόµενα αθροισµάτων και χάρτες Karnaugh 261 3.6.1 Γενική ορολογία για την απλοποίηση γινοµένου αθροισµάτων 261 3.6.2 Αλγόριθµοι υπολογισµού του ελάχιστου γινοµένου αθροισµάτων από χάρτη Karnaugh 262 3.7 Ατελώς καθορισµένες συναρτήσεις 270 3.8 Χάρτες Karnaugh και πρόληψη ανωµαλιών χρονισµού 273
4 Περιεχόµενα 3.9 Ελαχιστοποίηση µε πίνακες Quine McCluskey 279 3.9.1 ιαδικασία κάλυψης 284 3.9.2 Ατελώς καθορισµένες συναρτήσεις 288 3.9.3 Συστήµατα µε πολλαπλές εξόδους 289 3.10 Αλγόριθµος του Petrick 292 3.11 Ελαχιστοποίηση µε τη βοήθεια υπολογιστή 295 3.11.1 Παράσταση λογικών συναρτήσεων µε τη µορφή κύβων 298 3.11.2 Αλγεβρικές µέθοδοι για τον καθορισµό των πρωτευόντων υπερσυνόλων 300 3.11.3 Αναγνώριση των ουσιωδών πρωτευόντων υπερσυνόλων 303 3.11.4 Συµπλήρωση µιας ελάχιστης κάλυψης 304 3.11.5 Άλλοι αλγόριθµοι ελαχιστοποίησης 307 3.12 Ανακεφαλαίωση 308 ΒΙΒΛΙΟΓΡΑΦΙΑ 309 ΠΡΟΒΛΗΜΑΤΑ 310 4 Αρθρωτή σχεδίαση κυκλωµάτων 323 4.1 Ιεραρχική σχεδίαση 323 4.2 Αποκωδικοποιητές 326 4.2.1 οµές κυκλωµάτων αποκωδικοποιητή 327 4.2.2 Υλοποίηση λογικών συναρτήσεων µε αποκωδικοποιητές 329 4.2.3 Σήµατα ελέγχου (enable) 332 4.2.4 Τυποποιηµένοι αποκωδικοποιητές MSI 333 4.2.5 Εφαρµογές αποκωδικοποιητών 337 4.3 Κωδικοποιητές 343 4.3.1 οµές κυκλωµάτων κωδικοποιητή 344 4.3.2 4.3.2 Τυποποιηµένοι κωδικοποιητές MSI 349 4.4 Πολυπλέκτες / επιλογείς δεδοµένων 351 4.4.1 οµές κυκλωµάτων πολυπλέκτη 351 4.4.2 Τυποποιηµένοι πολυπλέκτες MSI 355 4.4.3 Εφαρµογές πολυπλεκτών 361 4.5 Αποπολυπλέκτες / διανοµείς δεδοµένων 364 4.6 Στοιχεία δυαδικής αριθµητικής 367 4.6.1 Βασικά κυκλώµατα δυαδικού αθροιστή 367 4.6.2 Τυποποιηµένα κυκλώµατα αθροιστών MSI 370 4.6.3 Αθροιστές υψηλής ταχύτητας 374 4.6.4 Κυκλώµατα δυαδικής αφαίρεσης 378 4.6.5 Ανίχνευση αριθµητικής υπερχείλισης 381 4.7 Συγκριτές 384 4.8 Παράδειγµα: αριθµητική-λογική µονάδα υπολογιστή 389
Περιεχόµενα 5 4.9 Σχεδίαση αρθρωτών κυκλωµάτων µε τη βοήθεια υπολογιστή 399 4.9.1 Βιβλιοθήκες σχεδίων 399 4.9.2 Σχεδίαση ιεραρχικών διαγραµµάτων 401 4.10 Προσοµοίωση ιεραρχικών συστηµάτων 405 4.11 Ανακεφαλαίωση 407 ΒΙΒΛΙΟΓΡΑΦΙΑ 407 ΠΡΟΒΛΗΜΑΤΑ 407 5 Σχεδίαση συνδυαστικών κυκλωµάτων µε συσκευές προγραµµατιζόµενης λογικής 419 5.1 Ηµιτυποποιηµένες λογικές συσκευές 419 5.2 Κυκλώµατα λογικών διατάξεων 421 5.2.1 ίοδοι σε ψηφιακά κυκλώµατα 421 5.2.2 Λογικές διατάξεις AND και OR 423 5.2.3 Λογικές διατάξεις AND OR δυο επιπέδων 425 5.2.4 Προγραµµατιζόµενες διατάξεις πεδίου AND OR 431 5.2.5 Πολικότητα σηµάτων εξόδου 433 5.2.6 Αµφίδροµοι ακροδέκτες και γραµµές ανατροφοδότησης 435 5.2.7 Εµπορικές συσκευές PLA 438 5.3 Προγραµµατιζόµενες λογικές διατάξεις πεδίου (FPLA) 439 5.3.1 οµές κυκλωµάτων FPLA 439 5.3.2 Υλοποίηση λογικών συναρτήσεων µε FPLA 442 5.4 Προγραµµατιζόµενη µνήµη µόνο για ανάγνωση PROM 445 5.4.1 οµές κυκλωµάτων PROM 445 5.4.2 Υλοποίηση λογικών συναρτήσεων µε PROM 447 5.4.3 Πίνακες αντιστοίχισης 450 5.4.4 Γενικές εφαρµογές µνήµης ROM 453 5.4.5 Τεχνολογίες µνήµης ROM 454 5.5 Προγραµµατιζόµενες διατάξεις λογικής (PAL) 457 5.5.1 οµές κυκλωµάτων PAL 457 5.5.2 Υλοποίηση λογικών συναρτήσεων µε PAL 458 5.5.3 Πολικότητα εξόδου και ανατροφοδότηση συσκευών PAL 461 5.6 Σχεδίαση PLD µε τη βοήθεια υπολογιστή 466 5.6.1 Περιγραφή σχεδίων στη γλώσσα PDL 468 5.6.2 Επεξεργασία ενός σχεδίου σε γλώσσα PDL 474 5.7 Ανακεφαλαίωση 476 ΒΙΒΛΙΟΓΡΑΦΙΑ 476 ΠΡΟΒΛΗΜΑΤΑ 477
6 Περιεχόµενα 6 Εισαγωγή στις ακολουθιακές συσκευές 481 6.1 Μοντέλα ακολουθιακών κυκλωµάτων 481 6.1.1 Σχηµατική παράσταση 482 6.1.2 Πίνακες καταστάσεων και διαγράµµατα 483 6.2 Συσκευές µνήµης 486 6.3 Μάνδαλα 489 6.3.1 Μάνδαλο SR ή διπλής κατεύθυνσης (set-reset latch) 489 6.3.2 Φυλασσόµενο µάνδαλο SR (gated SR latch) 497 6.3.3 Μάνδαλο καθυστέρησης (delay latch) 499 6.4 Φλιπ-φλοπ 506 6.4.1 Φλιπ-φλοπ SR δυο επιπέδων (master-slave) 508 6.4.2 Φλιπ-φλοπ D δυο επιπέδων (master-slave) 510 6.4.3 Φλιπ-φλοπ JK δυο επιπέδων (master-slave) 512 6.4.4 Φλιπ-φλοπ D οδηγούµενο από τις αλλαγές του ρολογιού (edge-triggered) 514 6.4.5 Φλιπ-φλοπ JK οδηγούµενο από τις αλλαγές του ρολογιού (edge-triggered) 519 6.4.6 Φλιπ-φλοπ τύπου T 521 6.4.7 Ανακεφαλαίωση µανδάλων και φλιπ-φλοπ 523 6.5 Άλλες συσκευές µνήµης 524 6.6 Κυκλώµατα χρονισµού 525 6.6.1 Κυκλώµατα χρονοκαθυστέρησης (one-shot) 525 6.6.2 Κύκλωµα χρονοµέτρησης 555 525 6.7 Σχεδίαση πρωτότυπων ακολουθιακών κυκλωµάτων 529 6.8 Ανακεφαλαίωση 533 ΒΙΒΛΙΟΓΡΑΦΙΑ 533 ΠΡΟΒΛΗΜΑΤΑ 534 7 οµικά στοιχεία ακολουθιακών κυκλωµάτων 543 7.1 Καταχωρητές ολίσθησης (shift register) 543 7.1.1 Γενικός καταχωρητής ολίσθησης 545 7.1.2 Τυποποιηµένοι καταχωρητές ολίσθησης TTL 546 7.2 Παραδείγµατα σχεδίασης µε καταχωρητές 560 7.2.1 Μονάδα σειριακού αθροιστή 560 7.2.2 Σειριακοί συσσωρευτές 562 7.2.3 Παράλληλοι συσσωρευτές 563 7.3 Μετρητές 564 7.3.1 Σύγχρονοι δυαδικοί µετρητές 564 7.3.2 Ασύγχρονοι δυαδικοί µετρητές 570 7.3.3 Μετρητές µείωσης 575 7.3.4 Μετρητές αύξησης/µείωσης 576
Περιεχόµενα 7 7.4 Μετρητές MODULO-N 579 7.4.1 Σύγχρονοι µετρητές BCD 579 7.4.2 Ασύγχρονοι µετρητές BCD 582 7.4.3 Μετρητές MODULO-6 και MODULO-12 586 7.4.4 Μετρητές MODULO-N µε ασύγχρονη επαναφορά 591 7.4.5 Μετρητές MODULO-N µε σύγχρονη επαναφορά 592 7.5 Καταχωρητές ολίσθησης ως µετρητές 594 7.5.1 Κυκλικοί µετρητές 594 7.5.2 Ανεστραµµένοι κυκλικοί µετρητές 600 7.6 Μετρητές πολλαπλής ακολουθίας 606 7.7 Πολλαπλασιαστές κλασµατικής συχνότητας 606 7.7.1 Συσκευές TTL 609 7.7.2 Αλυσιδωτή σύνδεση πολλαπλασιαστών κλασµατικής συχνότητας 613 7.8 Ανακεφαλαίωση 615 ΒΙΒΛΙΟΓΡΑΦΙΑ 615 ΠΡΟΒΛΗΜΑΤΑ 615 8 Ανάλυση και σύνθεση σύγχρονων ακολουθιακών κυκλωµάτων 621 8.1 Μοντέλα σύγχρονων ακολουθιακών κυκλωµάτων 621 8.1.1 Μοντέλο Mealy 622 8.1.2 Μοντέλο Moore 624 8.2 Ανάλυση ακολουθιακών κυκλωµάτων 626 8.2.1 Ανάλυση διαγράµµατος καταστάσεων 626 8.2.2 Ανάλυση σχηµατικού διαγράµµατος 627 8.2.3 Ανακεφαλαίωση της ανάλυσης ακολουθιακών κυκλωµάτων 639 8.3 Σύνθεση ακολουθιακών κυκλωµάτων 639 8.3.1 ιαδικασία σύνθεσης 640 8.3.2 Πίνακες εισόδων φλιπ-φλοπ 642 8.3.3 Μέθοδος της χαρακτηριστικής εξίσωσης για φλιπ-φλοπ JK 645 8.3.4 Παραδείγµατα σχεδίασης 647 8.3.5 Αλγοριθµικά διαγράµµατα 669 8.3.6 Ένα φλιπ-φλοπ ανά κατάσταση 677 8.4 Ατελώς καθορισµένα κυκλώµατα 680 8.4.1 Ανάθεση καταστάσεων και υλοποίηση του ατελώς καθορισµένου κυκλώµατος 682 8.5 Σχεδίαση ακολουθιακών κυκλωµάτων µε τη βοήθεια υπολογιστή 684 8.5.1 Σχεδίαση και σύνθεση 684 8.5.2 Ανάλυση και επαλήθευση 691
8 Περιεχόµενα 8.6 Ανακεφαλαίωση 695 ΒΙΒΛΙΟΓΡΑΦΙΑ 696 ΠΡΟΒΛΗΜΑΤΑ 697 9 Απλοποίηση ακολουθιακών κυκλωµάτων 709 9.1 Πλεονάζουσες καταστάσεις 709 9.1.1 Ισοδυναµία καταστάσεων 709 9.1.2 Σχέσεις ισοδυναµίας και σχέσεις συµβατότητας 712 9.2 Ελαχιστοποίηση πλήρως ορισµένων κυκλωµάτων 712 9.2.1 ιπλές καταστάσεις 713 9.2.2 ιαµερισµός 714 9.2.3 Πίνακας συνεπαγωγής 718 9.3 Ελαχιστοποίηση ατελώς καθορισµένων κυκλωµάτων 723 9.3.1 Συµβατότητα καταστάσεων 724 9.3.2 ιαδικασία ελαχιστοποίησης 730 9.4 Βελτιστοποίηση της ανάθεσης καταστάσεων 739 9.4.1 Μοναδικές αναθέσεις καταστάσεων 741 9.4.2 Κριτήρια ανάθεσης καταστάσεων 744 9.4.3 ιαµερισµός 756 9.4.4 Βέλτιστη ανάθεση καταστάσεων 761 9.5 Ανακεφαλαίωση 762 ΒΙΒΛΙΟΓΡΑΦΙΑ 762 ΠΡΟΒΛΗΜΑΤΑ 764 10 Ασύγχρονα ακολουθιακά κυκλώµατα 769 10.1 Τύποι ασύγχρονων κυκλωµάτων 769 10.2 Ανάλυση παλµοκίνητων ασύγχρονων κυκλωµάτων 771 10.3 Σύνθεση παλµοκίνητων ασύγχρονων κυκλωµάτων 778 10.3.1 ιαδικασία σχεδίασης παλµοκίνητων ασύγχρονων κυκλωµάτων 778 10.4 Ανάλυση θεµελιωδών ασύγχρονων κυκλωµάτων 786 10.4.1 Εισαγωγή 788 10.4.2 Πινακοποιηµένη παράσταση 790 10.4.3 ιαδικασία ανάλυσης 792 10.5 Σύνθεση θεµελιωδών ασύγχρονων κυκλωµάτων 795 10.5.1 ιαδικασία σύνθεσης 795 10.6 Ανταγωνισµός, κύκλος και ανωµαλίες χρονισµού 808 10.6.1 Ανταγωνισµός και κύκλος 810 10.6.2 Αποφυγή συνθηκών ανταγωνισµού 815 10.6.3 υαδική κωδικοποίηση καταστάσεων για την αποφυγή κρίσιµων συνθηκών ανταγωνισµού 817 10.6.4 Ανωµαλίες χρονισµού 826 10.6.5 Ανάλυση 828
Περιεχόµενα 9 10.7 Ανακεφαλαίωση 828 ΒΙΒΛΙΟΓΡΑΦΙΑ 829 ΠΡΟΒΛΗΜΑΤΑ 830 11 Ακολουθιακά κυκλώµατα µε συσκευές προγραµµατιζόµενης λογικής 845 11.1 Ακολουθιακές συσκευές προγραµµατιζόµενης λογικής 845 11.1.1 FPLS 851 11.1.2 Ακολουθιακές συσκευές PAL 857 11.1.3 Προγραµµατιζόµενες µακροσυσκευές 860 11.2 Προγραµµατιζόµενες διατάξεις λογικών πυλών 867 11.2.1 Συσκευές LCA 867 11.2.2 Συσκευές ACT 874 11.3 Σχεδίαση ακολουθιακών κυκλωµάτων µε PLD 877 11.4 Παραδείγµατα σχεδίασης ακολουθιακών κυκλωµάτων µε PLD 879 11.5 Σχεδίαση ακολουθιακών PLD µε τη βοήθεια υπολογιστή 884 11.5.1 Παράσταση ακολουθιακών κυκλωµάτων στη γλώσσα PDL 886 11.5.2 Επεξεργασία ενός σχεδίου σε γλώσσα PDL 893 11.6 Ανακεφαλαίωση 895 ΒΙΒΛΙΟΓΡΑΦΙΑ 896 ΠΡΟΒΛΗΜΑΤΑ 896 12 Σχεδίαση λογικών κυκλωµάτων για ελεγξιµότητα 907 12.1 Έλεγχος κυκλωµάτων ψηφιακής λογικής 907 12.2 Μοντέλα σφαλµάτων 909 12.3 Έλεγχος κυκλωµάτων συνδυαστικής λογικής 911 12.3.1 Παραγωγή ελέγχων 912 12.3.2 Μη ελέγξιµα σφάλµατα 923 12.3.3 Κυκλώµατα πολλαπλών εξόδων 924 12.3.4 FDTS 926 12.3.5 Εντοπισµός και διάγνωση σφαλµάτων 931 12.3.6 Τυχαίος έλεγχος 932 12.4 Έλεγχος ακολουθιακών κυκλωµάτων 934 12.5 Σχεδίαση για ελεγξιµότητα 939 12.5.1 Σχεδίαση διαδροµής σάρωσης 939
10 Περιεχόµενα 12.6 Ενσωµατωµένος αυτο-έλεγχος 944 12.6.1 Ψευδοτυχαία διανύσµατα ελέγχου 945 12.6.2 Ανάλυση υπογραφής 949 12.6.3 BILBO 954 12.7 Έλεγχος σύνθετων συσκευών και συστηµάτων 956 12.8 Ανακεφαλαίωση 961 ΒΙΒΛΙΟΓΡΑΦΙΑ 961 ΠΡΟΒΛΗΜΑΤΑ 963 13 Παραδείγµατα σχεδίασης 971 13.1 Ηλεκτρονικός κουλοχέρης 971 13.1.1 Ορισµός του προβλήµατος 971 13.1.2 Απαιτήσεις του συστήµατος και σχέδιο λύσης 972 13.1.3 Λογική σχεδίαση 974 13.2 Αυτοκίνητο που ξεκλειδώνει χωρίς κλειδιά 984 13.2.1 Ορισµός του προβλήµατος 984 13.2.2 Απαιτήσεις του συστήµατος 985 13.2.3 Σχεδίαση 988 13.3 Ελεγκτής αµφίδροµης κυκλοφορίας σε µια λωρίδα 996 13.3.1 Απαιτήσεις του συστήµατος 997 13.3.2 Σχεδίαση 1000 13.3 Ταµειακή µηχανή 1008 13.4.1 Απαιτήσεις του συστήµατος 1008 13.4.2 Σχεδίαση 1010