Εισαγωγή στην Ψηφιακή Σχεδίαση υαδικό σύστηµα Η εσωτερική λειτουργία ενός υπολογιστή, ή γενικότερα µιας συσκευής ψηφιακής τεχνολογίας, αποτελεί ένα "µυστήριο" για την µεγάλη πλειονότητα των χρηστών τέτοιων συσκευών. Εντούτοις, η κατανόηση των βασικών αρχών πάνω στις οποίες γίνεται η σχεδίαση µιαςψηφιακήςσυσκευήςαπόάποψηυλικού (hardware) δεν είναι τόσο δυσνόητη όσο φαίνεται από πρώτη µατιά. Στις επόµενες σελίδες επιχειρούµε να εξηγήσουµε, µε τρόποαπλό, τις αρχές αυτές, ώστε η πρώτη επαφή µας µε την πληροφορική να µη µείνει στο επίπεδο του λογισµικού (software) µόνο. Θα εστιάσουµεσ' ένα πρόβληµα πολύ απλούστερο από την κατανόηση της λειτουγίας ενός υπολογιστή. Σκοπός µας είναι να εξηγήσουµε πώς λειτουργεί µια υποθετική αριθµοµηχανή που εκτελεί πρόσθεση ή πολλαπλασιασµό µεταξύ φυσικών αριθµών. Παρά τη σχετική απλότητά του, το πρόβληµα αυτό εµπεριέχει τις βασικότερες παραµέτρους που απαιτούνται για την κατανόηση των αρχών της ψηφιακής σχεδίασης. Στη συνέχεια θα γενικεύσουµε τη γνώση µας και σε πολυπλοκότερα ψηφιακά συστήµατα. Είναι αρκετά γνωστό ότι ένα ψηφιακό σύστηµα εργάζεται µε τοδυαδικό σύστηµα. Το δυαδικό σύστηµα είναι ένας τρόπος αναπαράστασης µιας πληροφορίας χρησιµοποιώντας µόνο δύο σύµβολα: το 0 και το 1. Το γεγονός ότι χρειαζόµαστε µόνο δύο σύµβολα είναι πολύ βολικό από άποψη "υλικού", διότι σ' ένα ψηφιακό κύκλωµα η αναπαράσταση του 0 και του 1 γίνεται κατά τρόπο άµεσο: ως 1 εκλαµβάνεται µία σχετικά υψηλή τάση, ενώ ως µηδέν µία χαµηλή τάση. Σε πολλά ολοκληρωµένα κυκλώµατα που κυκλοφορούν στο εµπόριο ηπρότυπητιµή τάσης που αντιπροσωπεύει το ψηφίο 1 είναι 5Volt,ενώ η πρότυπη τιµή τάσης για το ψηφίο 0 είναι 0 Volt. Ετσι, πρακτικά, στο εσωτερικό µιας ψηφιακής συσκευής, τα διάφορα ολοκληρωµένα κυκλώµατα που συµµετέχουν ανταλλάσσουν και επεξεργάζονται την πληροφορία ως µία διαρκή εναλλαγή της τιµής της τάσης στα άκρα τους από 0 σε 5Voltήαντίστροφα. Σε µία υποθετική αριθµοµηχανή φυσικών αριθµών, η ενδιαφέρουσα πληροφορία είναι η αναπαράσταση ενός φυσικού αριθµού στο δυαδικό σύστηµα. Στρέφουµε τώρα την προσοχή µας στο θέµα αυτό. Το δεκαδικό σύστηµα, που χρησιµοποιεί κατά κανόνα ο άνθρωπος, ονοµάζεται έτσι διότι βασίζεται σε δέκα διαφορετικά σύµβολα, τα ψηφία 0,1,2,3,4,5,6,7,8,9. Είναι φανερό ότι διαθέτοντας 10 διαφορετικά σύµβολα, µπορούµε να αναπαραστήσουµε ως µονοψήφιους αριθµούς τους 10 πρώτους φυσικούς αριθµούς. Οι αριθµοί αυτόι είναι οι αριθµοί από το µηδές ως το εννέα. Στη συνέχεια µας τελειώνουν τα σύµβολα! Έποµένως, για να αναπαραστήσουµε τον ενδέκατο φυσικό (τον αριθµό δέκα), χωρίς να εισαγάγουµε κάποιο καινούργιο σύµβολο, καταφεύγουµε στο εξής τέχνασµα: χρησιµοποιούµε δύο ψηφία. Στην πραγµατικότητα, κάθε φορά που αλάζουµε δεκάδα, αυξάνουµε το αριστερό ψηφίο κατά ένα, ενώ το δεξιό ψηφίο, που δείχνει τις µονάδες αρχίζει και µετράει ξανά από το µηδέν. Με τον τρόπο αυτό µπορούµε να έχουµε τους πρώτους εκατό φυσικούς αριθµούς, δηλαδή τους αριθµούς από µηδέν ώς ενενήντα εννέα. Στη συνέχεια, αν θέλουµε τον εκατοστό πρώτο αριθµό, χρειαζόµαστε και τρίτο ψηφίο, το οποίο αυξάνει κατά ένα κάθε φορά που αλλάζουµε εκατοντάδα, και ούτω καθ'εξής. Η εικόνα είναι όπως δείχνει η επόµενη ακολουθία 000 001 002 003 004 005 006 007 008
009 010 <----- δεύτερο ψηφίο αυξάνει κατά ένα, πρώτο µετράει από το µηδέν 011 012... 019 020 <----- δεύτερο ψηφίο αυξάνει κατά ένα, πρώτο µετράει από το µηδέν 021... 098 099 100 <----- τρίτο ψηφίο αυξάνει κατά ένα, πρώτο-δύτερο µετρούν από το µηδέν 101 102... 109 110 <----- δεύτερο ψηφίο αυξάνει κατά ένα, πρώτο µετράει από το µηδέν 111 112... 198 199 200 <----- τρίτο ψηφίο αυξάνει κατά ένα, πρώτο-δύτερο µετρούν από το µηδέν 201 202 κ.λ.π. Είναι φανερό ότι η ίδια ακριβώς αρχή απαρίθµησης, µε την προσθήκη ενός επιπλέον ψηφίου, µπορεί να χρησιµοποιηθεί σε αριθµητικό σύστηµα µε οποιαδήποτε βάση, εποµένως και στο δυαδικό σύστηµα. Στο δυαδικό σύστηµα, ως µονοψήφιοι αριθµοί µπορούν να αναπαρασταθούν µόνο οι δύο πρώτοι φυσικοί αριθµοί (δηλ. ο µηδέν και ο ένα). Στη συνέχεια, µας τελειώνουν τα σύµβολα. Αρα, προκειµένου να αναπαρασταθεί ο τρίτος φυσικός αριθµός (ο δύο) χρειαζόµαστε δύο ψηφία, όπου το δεύτερο ψηφίο θα γίνει 1 ενώ το πρώτο ψηφίο θα µετράει από το µηδέν. Με τον τρόπο αυτό µπορούµε να αναπαραστήσουµε µέχρι και τον τέταρτο φυσικό αριθµό (τον αριθµό 3). Στη συνέχεια χρειαζόµαστε και τρίτο ψηφίο, κ.ο.κ..η εικόνα έχει όπως φαίνεται στην επόµενη ακολουθία εκαδικός αριθµός υαδικός αριθµός 0 000000 1 000001 2 000010 <-- 2ο ψηφίο αυξάνει κατά ένα, 1ο µετράει από το µηδέν 3 000011 4 000100 <-- 3ο ψηφίο αυξάνει κατά ένα, 1ο -2ο µετρούν από µηδέν 5 000101 6 000110 <-- 2ο ψηφίο αυξάνει κατά ένα, 1ο µετράει από το µηδέν 7 000111 8 001000 <-- 4ο ψηφίο αυξάνει κατά ένα, λοιπά από το µηδέν 9 001001 10 001010 <-- 2ο ψηφίο αυξάνει κατά ένα, 1ο µετράει από το µηδέν 11 001011 12 001100 <-- 3ο ψηφίο αυξάνει κατά ένα, λοιπά από το µηδέν 13 001101 14 001110 <-- 2ο ψηφίο αυξάνει κατά ένα, 1ο µετράει από το µηδέν 15 001111 16 010000 <-- 5ο ψηφίο αυξάνει κατά ένα, λοιπά από το µηδέν 17 010001 18 010010
19 010011...... 30 011110 31 011111 32 010000 33 010001 κ.λ.π Αν µας δώσουν ένα τυχαίο δυαδικό αριθµό, π.χ. τον αριθµό 010110, τότε για να τον µετατρέψουµε στο δεκαδικό σύστηµα βασιζόµαστε σε µία απλή παρατήρηση που αφορά κάθε αριθµητικό σύστηµα. Στο δεκαδικό σύστηµα, τοπρώτοψηφίοαπόαριστεράδίνειτοπλήθοςτωνµονάδων (10 0 ), το δέυτερο ψηφίο δίνει το πλήθος των δεκάδων (10 1 ), το τρίτο ψηφίο δίνει το πλήθος των εκατοντάδων (10 2 ), και γενικά το ν- οστό ψηφίο αντιστοιχεί στη ν-οστή πλην ένα δύναµη τουδέκα(10 ν-1 ). Ο ίδιος κανόνας ισχύει και στο δυαδικό σύστηµα, µε τη µόνη διαφορά ότι το το ν-οστό ψηφίο αντιστοιχεί εδώ στη ν-οστή πλην ένα δύναµη τουδύο (2 ν-1 ), αντί του 10. Πράγµατι, από την προηγούµενη ακολουθία βλέπουµε ότιοαριθµός 000001 (µόνοτοπρώτοψηφίοείναι1) αντιστοιχεί στον δεκαδικό 1=2 0, οαριθµός 000010 (µόνοτοδεύτεροψηφίοείναι1) αντιστοιχεί στον δεκαδικό 2=2 1, οαριθµός 000100 (µόνοτοτρίτο ψηφίο είναι 1) αντιστοιχεί στον δεκαδικό 4=2 2, ο αριθµός 001000 (µόνο το τέταρτο ψηφίο είναι 1) αντιστοιχεί στον δεκαδικό 8=2 3, κ.ο.κ.. Η παρατήρηση αυτή µας οδηγεί στον εξής απλό τρόπο µετατροπής από δυαδικό σε δεκαδικό: µε δεδοµένο το δυαδικό, ο αντίστοιχος δεκαδικός προκύπτει προσθέτοντας όλες τις δυνάµεις 2 i-1 για τις οποίες το i-ψηφίο τουδυαδικούαριθµού είναι 1, ενώ αγνοούµε τιςδυνάµεις του δύο για τις οποίες το αντίστοιχο ψηφίο του δυαδικού αριθµού είναι µηδέν. Παραδείγµατα υαδικό εκαδικό 010110 = 2 (5-1) + 2 (3-1) + 2 (2-1) = 2 4 + 2 2 + 2 1 = 22 101001 = 2 (6-1) + 2 (4-1) + 2 (1-1) = 2 5 + 2 3 + 2 0 = 41 Τη µέθοδο αυτή µπορούµε να τη µάθουµε σχεδόν όπως µαθαίνουµε τους δεκαδικούς στο δηµοτικό σχολείο. Οπως λέµε δηλαδή για τον δεκαδικό 834: "834 = οκτώ εκατοντάδες και τρεις δεκάδες και τέσσερες µονάδες" έτσι το πρώτο ψηφίο ενός δυαδικού αριθµού δίνει τις µονάδες, το δεύτερο τις διάδες, το τρίτο τις τετράδες, το τέταρτο τις οκτάδες, το πέµπτο τις δεκαεξάδες, το έκτο τις τριανταδιάδες κ.ο.κ.! ηλαδή, για τον δυαδικό 101001 θα πούµε "101001 = µία τριανταδιάδα και µία οκτάδα και µία µονάδα =32+8+1=41" ενώ για τον δυαδικό 010110 θα πούµε "010110 = µία δεκαεξάδα και µία τετράδα και µία διάδα = 16+4+2=22" Με µικρή εξάσκηση µπορούµε σύντοµα νακάνουµε τηµετατροπή σχεδόν αυτόµατα.
Πρόσθεση στο δυαδικό σύστηµα. Λογικές πράξεις Η πρόσθεση δύο αριθµών στο δυαδικό σύστηµα γίνεται ακριβώς όπως και στο δεκαδικό. Ας θυµηθούµε τον αλγόριθµο της πρόσθεσης στο δεκαδικό σύστηµα µε το εξής παράδειγµα 1254 2761 + ---- 4015 Οαλγόριθµος της πρόσθεσης αναλύεται ως εξής: τέσσερα και ένα ίσον πέντε, γράφουµε 5 και µηδέν το κρατούµενο, µηδέν και πέντε και έξι ίσον έντεκα, γράφουµε 1 και ένα το κρατούµενο, ένα και επτά και δύο ίσον δέκα, γράφουµε 0 και ένα το κρατούµενο, ένα και δύο και ένα = τέσσερα, γράφουµε 4 και µηδέν το κρατούµενο. Οαλγόριθµος αναπαρίσταται από τον ακόλουθο πίνακα: 1ος προσ/τεος + 2ος προσ/τέος + κρατ/νο αποτέλεσµα νέο κρατ/νο 4 1 0 5 0 5 6 0 1 1 2 7 1 0 1 1 2 1 4 0 Εποµένως, σε κάθε βήµα της πρόσθεσης προστίθεται η τρέχουσα τιµή του κρατούµενου µε ένα ψηφίο του 1ου προσθετέου και µε ένα ψηφίο του 2ου προσθετέου. Το πρώτο ψηφίο της µερικής αυτής πρόσθεσης δίνει το αντίστοιχο ψηφίο της ολικής πρόσθεσης. Αν το δέυτερο ψηφίο είναι µηδέν (δηλαδή η πρόσθεση δίνει µερικό άθροισµα κάτω από δέκα), τότε το νέο κρατούµενο είναι µηδέν, ενώ αν το δέυτερο ψηφίο είναι ένα (δηλαδήηπρόσθεσηδίνειµερικό άθροισµα πάνωαπόδέκα), τότε το νέο κρατούµενο είναι επίσης ένα. Με ακριβώς τον ίδιο τρόπο γίνεται η πρόσθεση στο δυαδικό σύστηµα, προσθέτοντας ψηφίο µε ψηφίο τους δύο προσθετέους. Εδώ, σε ότι αφορά το κρατούµενο, η µόνη περίπτωση να έχουµε κρατούµενο είναι όταν προστίθενται τα ψηφία 1 + 1 = 10( = δύο στο δεκαδικό σύστηµα), οπότε το αποτέλεσµα τηςπρόσθεσης1+1 είναι "µηδέν και ένα το κρατούµενο". Εχουµε δηλαδή τον εξής συνοπτικό κανόνα Κανόνας πρόσθεσης δύο ψηφίων στο δυαδικό σύστηµα µηδέν συν µηδέν ίσον µηδέν και µηδέν το κατούµενο µηδέν συν ένα ίσον ένα και µηδέν το κρατούµενο ένα συν µηδέν ίσον ένα και µηδέν το κρατούµενο ένα συν ένα ίσον µηδέν και ένα το κρατούµενο Ας δούµε λοιπόν πως υλοποιείται η πρόσθεση δύο πολυψήφιων δυαδικών αριθµών µε βάση τον προηγούµενο κανόνα. Θα προσθέσουµε τους αριθµούς 010010 (=18 στο δεκαδικό σύστηµα) και 100111 (=39 στοδεκαδικόσύστηµα). 010010 100111 + ------ 111001 Ας "διαβάσουµε" βήµα βήµα τοναλγόριθµο της παραπάνω πρόσθεσης ένα συν µηδέν ίσον ένα (γράφουµε 1) και µηδέν το κρατούµενο µηδέν το κρατούµενο συν ένα ίσον ένα συν ένα ίσον µηδέν (γράφουµε 0) και ένα το κρατούµενο ένα το κρατούµενο συν ένα συν µηδέν ίσον µηδέν (γράφουµε 0) και ένα το κρατούµενο ένα το κρατούµενο συν µηδέν συν µηδέν ίσον ένα (γράφουµε 1) και µηδέν το κρατούµενο
µηδέν το κρατούµενο συν µηδέν συν ένα ίσον ένα (γράφουµε 1) και µηδέν το κρατούµενο µηδέν το κρατούµενο συν ένα συν µηδέν ίσον ένα (γράφουµε 1) και µηδέν το κρατούµενο Αν το τελευταίο κρατούµενο έβγαινε ίσο µε ένα, θα προσθέταµε ένα ακόµη ψηφίο ίσο µε ένα στο τελικό άθροισµα. Το άθροισµα που προκύπτει στο παραπάνω παράδειγµα είναι ο δεκαδικός 111001, ίσος µε το δεκαδικό αριθµό 57, που είναι πράγµατι το άθροισµα των δεκαδικών 18+39. Και τώρα φτάνουµε στην ουσία του θέµατος. Ας ξαναγράψουµε το στοιχειώδη κανόνα πρόσθεσης δύο ψηφίων στο δυαδικό σύστηµα, µε βάση τον οποίο µπορεί να πραγµατοποιηθεί οποιαδήποτε πρόσθεση πολυψήφιων αριθµών Κανόνας πρόσθεσης δύο ψηφίων στο δυαδικό σύστηµα µηδέν συν µηδέν ίσον µηδέν και µηδέν το κατούµενο µηδέν συν ένα ίσον ένα και µηδέν το κρατούµενο ένα συν µηδέν ίσον ένα και µηδέν το κρατούµενο ένα συν ένα ίσον µηδέν και ένα το κρατούµενο Για λόγους που θα γίνουν κατανοητοί αµέσως παρακάτω, ξαναγράφουµε τον προηγούµενο κανόνα σε πίνακα: Κανόνας πρόσθεσης δύο ψηφίων στο δυαδικό σύστηµα 1ο ψηφίο 2ο ψηφίο µερικό κρατούµενο άθροισµα 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Θεωρήστε τώρα µία ένα προς ένα αντιστοιχία µεταξύ του ψηφίου 0 και της λογικής τιµής "Ψευδές" και του ψηφίου 1 και της λογικής τιµής "Αληθές" Τότε, κάνοντας την αντικατάσταση 0 µε Ψκαι1 µε Α, παίρνουµε τονπίνακα Κανόνας πρόσθεσης δύο ψηφίων στο δυαδικό σύστηµα 1ο ψηφίο 2ο ψηφίο µερικό κρατούµενο άθροισµα Ψ Ψ Ψ Ψ Ψ Α Α Ψ Α Ψ Α Ψ Α Α Ψ Α Παρατηρούµε τότε ότι η πράξη του µερικού αθροίσµατος και του κρατούµενου µπορούν να αναχθούν σε λογικές πράξεις µεταξύ του πρώτου και του δεύτερου ψηφίου. Στην πραγµατικότητα, µε λίγη παρατηρητικότητα διαπιστώνουµε ότι το κρατούµενο αντιστοιχεί ακριβώς στη λογική πράξη της σύζευξης. Πράγµατι, ο λογικός πίνακας της σύζευξης, όπως έχουµε ήδη αναλύσει, είναι:
p q r=pkai q Ψ Ψ Ψ Ψ Α Ψ Α Ψ Ψ Α Α Α και υπάρχει αντιστοιχία µία προς µία των στηλών του πίνακα αυτού µε την 1η, 2η και 4η στήλη του προηγούµενου πίνακα. Αυτή η ένα προς ένα αντιστοιχία µεταξύ των συµβόλων 0 και 1 και των λογικών τιµών Α και Ψ, και η συνακόλουθη διασύνδεση των αριθµητικών και των λογικών πράξεων, είναι αποκλειστικό προνόµιο του δυαδικού συστήµατος και αποτελεί το θεµελιώδη λόγο για τον οποίο η ψηφιακή σχεδίαση οποιουδήποτε συστήµατος πληροφοριακής και επικοινωνιακής τεχνολογίας βασίζεται στο δυαδικό σύστηµα. Με µία φιλοσοφική διάθεση, θα µπορούσε να πει κανείς ότι η αρχή του "αποκλειόµενου τρίτου" του Αριστοτέλη, ότι δηλαδή "µία λογική πρόταση είναι είτε αληθής είτε ψευδής", χωρίς να υπάρχει τρίτη δυνατότητα, αποτελεί τον πυρήνα πάνω στον οποίο κτίζεται όλη η ψηφιακή τεχνολογία. (Εντούτοις ας σηµειώσουµε ότι η αρχή αυτή αµφισβητείται στα επίπεδο του θεωρητικού προτασιακού λογισµού λόγω του περίφηµου θεωρήµατος του Godel). Το µερικό άθροισµα δύο ψηφίων(3η στήλη του πίνακα κανόνα πρόσθεσης δύο ψηφίων) αντιστοιχεί επίσης σε µία λογική πράξη την οποία δεν έχουµε συζητήσει: την πράξη της αποκλειστικής διάζευξης (Exclusive OR ή XOR), r = p XOR q, ηοποίαείναιαληθήςανείτε η p είτε η q είναι αληθής, ενώ είναι ψευδείς όταν οι επιµέρους προτάσεις είναι αµφότερες αληθείς ή αµφότερες ψευδείς. Πάντως, η λογική πράξη της αποκλειστικής διάζευξης δεν είναι θεµελιώδης, αλλά προκύπτει, όπως θα δούµε, από συνδυασµό των θεµελιωδών πράξεων (δηλαδή της άρνησης, της σύζευξης και της διάζευξης). Για να γίνει πλήρης η κατανόηση της αντιστοιχίας, ας ξαναγράψουµε τους πίνακες των θεµελιωδών λογικών πράξεων χρησιµοποιώντας τα σύµβολα 0 και 1 αντί των Ψ και Α. Αρνηση p p' = ΝΟΤ p 1 0 0 1 Σύζευξη p q r=p AND q 0 0 0 0 1 0 1 0 0 1 1 1 ιάζευξη p q r=por q 0 0 0 0 1 1 1 0 1 1 1 1
Ηλεκτρονική υλοποίηση των λογικών πράξεων. Πύλες Από τα προηγούµενα έγινε σαφές ότι για να υλοποιήσουµε σε επίπεδο"υλικού", δηλαδή ηλεκτρονικού κυκλώµατος, τον αλγόριθµο της πρόσθεσης, χρειαζόµαστε κάποιο είδος ηλεκτρονικών συσκευών που να υλοποιούν τις στοιχειώδεις λογικές πράξεις. Μία τέτοια συσκευή ονοµάζεται πύλη, και διατίθεται στο εµπόριο µε τη µορφή ολοκληρωµένου κυκλώµατος (τσιπ). Η τεχνολογία των πυλών βασίζεται στη φυσική των ηµιαγωγών και δεν θα την αναλύσουµε περαιτέρω. Θα δώσουµε απλώς κάποια βασικά στοιχεία που αφορούν τον τρόπο µε τον οποίο συνδυάζονται οι πύλες προκειµένου να παράγουν τη µία ή την άλλη λογική πράξη. Πύλη ΝΟΤ Ας φανταστούµε µια πύλη που υλοποιεί τη λογική πράξη NOT (άρνηση). Κάθε πύλη σχεδιάζεται στα ηλεκτρονικά κυκλώµατα µε αντίστοιχο σύµβολο, όπως ακριβώς έχουµε ένα σύµβολο για να υποδηλώσουµε µια αντίσταση, έναν πυκνωτή ή ένα πηνίο. ΗπύληNOT αποδίδεται µε τοσύµβολο: Αριστερά έχουµε µία απλή είσοδο, που παίρνει την τιµή της µεταβλητής p, και δεξιά έχουµε την έξοδο, που επιστρέφει την τιµή της µεταβλητής p' = NOT p. Σε επίπεδο ηλεκτρονικού κυκλώµατος, αυτό σηµαίνει ότι όταν στην είσοδο εφαρµόζεται υψηλή τάση (5V), τότε στην έξοδο παίρνουµε χαµηλή τάση (0V), ενώ όταν στην είσοδο εφαρµόζεται χαµηλή τάση (0V), τότε στην έξοδο παίρνουµε υψηλή τάση(5v). Ετσι η πύλη υλοποιεί ηλεκτρονικά το λογικό πίνακα p p' = ΝΟΤ p 1 0 0 1 Πύλη AND ΗπύληAND συµβολίζεται Παρατηρείστε ότι έχει δύο εισόδους και µία έξοδο. Αυτό συµβαίνει διότι η λογική πράξη της σύζευξης ενεργεί µεταξύ δύο προτάσεων p AND q. Η πύλη υλοποιεί ηλεκτρονικά τον λογικό πίνακα της σύζευξης Σύζευξη p q r=p AND q 0 0 0 0 1 0 1 0 0 1 1 1 δηλαδή η έξοδος επιστρέφει τάση 0 ή 5V, ανάλογα µε τις τάσεις που εφαρµόζονται στις δύο εισόδους, συµφωνα µε τονπίνακα:
Πύλη AND p q r=p AND q 0V 0V 0V 0V 5V 0V 5V 0V 0V 5V 5V 5V Πύλη OR ΗπύληOR συµβολίζεται Παρατηρείστε ότι έχει επίσης δύο εισόδους και µία έξοδο. Αυτό συµβαίνει διότι η λογική πράξη της διάζευξης ενεργεί µεταξύ δύο προτάσεων porq.η πύλη υλοποιεί ηλεκτρονικά τον λογικό πίνακα της διάζευξης ιάζευξη p q r=por q 0 0 0 0 1 1 1 0 1 1 1 1 δηλαδή η έξοδος επιστρέφει τάση 0 ή 5V, ανάλογα µε τις τάσεις που εφαρµόζονται στις δύο εισόδους, συµφωνα µε τονπίνακα: Πύλη OR p q r=por q 0V 0V 0V 0V 5V 5V 5V 0V 5V 5V 5V 5V Αλλες πύλες Οι πύλες που παρουσιάσαµε προηγουµένως αντιστοιχούν στις στοιχειώδεις λογικές πράξεις. Ωστόσο, υπάρχουν και πολλά άλλα είδη πυλών που αντιστοιχούν σε παράγωγες πράξεις. Παραδείγµατος χάριν, οι πύλες NAND υλοποιούν τη λογική πράξη p NAND q = NOT(p AND q). Επίσης, οι πύλες NOR υλοποιούν τη λογική πράξη pnorq=not(porq). Οι λογικές αυτές πράξεις είναι σύνθετες και ο πίνακας αλήθειας τους προκύπτει µε τη γνωστή µέθοδο του συνδυασµού των πινάκων αληθείας των θεµελιωδών πράξεων. Ετσι, για την πύλη NAND έχουµε το λογικό πίνακα p q p AND q p ΝAND q 0 0 0 1
0 1 0 1 1 0 0 1 1 1 1 0 ενώ για την πύλη NOR έχουµετολογικόπίνακα p q por q pνor q 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 Οι πύλες NAND και NOR είναι ιδιαίτερα σηµαντικές διότι µπορεί να αποδειχθεί ότι οποιαδήποτε από τις θεµελιώδεις λογικές πράξεις µπορεί να υλοποιηθεί µε συνδυασµό είτε αποκλειστικά πυλών NAND, είτε αποκλειστικά πυλών NOR..(Η απόδειξη παραλείπεται). Παραγωγή οποιουδήποτε λογικού πίνακα µε βάση τις θεµελιώδεις λογικές πράξεις Από τα προηγούµενα πρέπει να έχει γίνει σαφές ότι η ψηφιακή σχεδίαση µιας αριθµοµηχανής που πραγµατοποιεί πρόσθεση µεταξύ φυσικών αριθµών στο δυαδικό σύστηµα θα προκύψει από την κατάλληλη συνδεσµολογία ενός συνόλου πυλών που υλοποιούν, για κάθε προστιθέµενο ψηφίο, το λογικό πίνακα της πρόσθεσης δύο ψηφίων Λογικός πίνακας πρόσθεσης δύο ψηφίων στο δυαδικό σύστηµα p q r=µερικό c=κρατούµενο άθροισµα 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Είδαµε επίσης ότι το κρατούµενο προκύπτει από τη λογική πράξη c = p AND q Ωστόσο, δεν έχουµε δώσειακόµη απάντησηστοερώτηµα: ποια λογική πράξη µεταξύ των p και q έχει πίνακα αληθείας τον πίνακα της άλλης µεταβλητής r, που δίνει το µερικό άθροισµα τωνp και q. Πράγµατι µια τέτοια λογική πράξη υπάρχει και είναι η r= (p'and q) OR (p AND q') όπως µπορεί να φανεί αµέσως από τον λογικό πίνακα p q p' q' p' AND q p AND q' (p' AND q) OR (p' AND q) 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 0 0 0
όπου φαίνεται ότι η τελευταία στήλη δίνει το επιθυµητό µερικό άθροισµα τωνp και q. Το ερώτηµα που τίθεται τώρα είναι: αν αντί της συγκεκριµένης πράξης r είχαµε µια άλλη πράξη, µε διαφορετικό λογικό πίνακα, θα µπορούσαµε πάντα να βρούµε ένα συνδυασµό των θεµελιωδών πράξεων που να µας δίνει το συγκεκριµένο πίνακα; Το ερώτηµα αυτό είναι θεµελιώδες, διότι µόνο αν η απάντηση είναι καταφατική θα είναι δυνατό να υλοποιηθεί ηλεκτρονικά ο λογικός πίνακας µε κατάλληλο συνδυασµόπυλών, δηλαδή θα είναι εφικτή µία ψηφιακή σχεδίαση που να υλοποιεί ηλεκτρονικά το λογικό µας πρόβληµα. Πράγµατι, µπορούµε να αποδείξουµε ότι κάθε αυθαίρετος λογικός πίνακας µεταξύ δύο µεταβλητών µπορεί να αποδοθεί από µία σύνθετη πράξη µεταξύ των µεταβλητών, που ανάγεται στις θεµελιώδεις λογικές πράξεις. Η απόδειξη είναι πολύ απλή. Θεωρούµε τον πίνακα των στοιχειωδών πράξεων p q p' q' p' AND q' p' AND q p AND q' p AND q 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 Παρατηρούµε ότι οι τέσσερεις τελευταίες στήλες δίνουν τη λογική πράξη AND για κάθε δυνατό συνδυασµό της µεταβλητής p ή της άρνησής της p', µε τη µεταβλητή q ή την άρνησή της q'. Περαιτέρω, παρατηρούµε ότι κάθε µία από τις τέσσερεις στοιχειώδεις πράξεις δίνει 1 µόνο σε µία, διαφορετική κάθε φορά, θέση του πίνακα, ενώ σε όλες τις άλλες θέσεις δίνει 0. Ετσι π.χ. ηπράξηp' AND q δίνει 1 µόνο στη δεύτερη γραµµή, (δηλαδή για p=0, q=1), ενώ η πράξη p AND q' δίνει 1 µόνο στην τρίτη γραµµή (δηλαδή για p=1, q=0). Εποµένως, συνδυάζοντας µε OR µερικές από τις στοιχειώδεις πράξεις του προηγούµενου πίνακα, µπορούµε να δηµιουργήσουµε µια νέα σύνθετη πράξη, της οποίας ο λογικός πίνακας θα δίνει 1 σε όποια γραµµή εµείς θέλουµε! Π.χ., γιαναυλοποιήσουµε το µερικό άθροισµα των µεταβλητών p και q, θέλουµε όπωςείδαµε τολογικό πίνακα p q r=µερικό άθροισµα 0 0 0 0 1 1 1 0 1 1 1 0 Παρατηρούµε ότιηεπιθυµητή πράξη έχει ένα στη δεύτερη και τρίτη γραµµή, ενώ έχει µηδέν στην πρώτη και τέταρτη γραµµή. Κοιτάζοντας τώρα τον προηγούµενο πίνακα των στοιχειωδών πράξεων, παρατηρούµε ότι η πράξη p' AND q δίνει 1 µόνο στη δεύτερη γραµµή, ενώ η πράξη p AND q' δίνει 1 µόνο στην τρίτη γραµµή. Αρα θα έχουµε την ισότητα r= (p'and q) OR (p AND q') τηςοποίαςτηνισχύπράγµατι ελέγξαµε στην αρχή της παραγράφου. Αλλο παράδειγµα Εστω ότι σε µία ψηφιακή εφαρµογή χρειάζεται να υλοποιήσουµε µε πύλες τον ακόλουθο λογικό πίνακα: p q r 0 0 1
0 1 0 1 0 1 1 1 1 Παρατηρούµε ότι το ψηφίο 1 εµφανίζεται στην 1η, 3ηκαι4η γραµµή. Κοιτάζοντας τον πίνακα των στοιχειωδών πράξεων, διαπιστώνουµε ότι οι πράξεις που δίνουν 1 στην 1η, 3ηκαι4η γραµµή είναιοιp' AND q', p AND q' και p AND q αντίστοιχα. Εποµένως, θα έχουµε την ισότητα r = (p' AND q') OR (p AND q') OR (p AND q) η οποία εύκολα αποδεικνύεται ότι απλοποιείται στη µορφή r = (p' AND q') OR p Το συµπέρασµα από τα παραπάνω είναι ότι µε τη χρήση λογικών πυλών µπορούµε να υλοποιήσουµε σε επίπεδο ηλεκτρονικού ψηφιακού κυκλώµατος οποιοδήποτε αριθµητικό ή λογικό πρόβληµα του δυαδικού συστήµατος. Με την ίδια ακριβώς λογική προχωρούµε στην ψηφιακή σχεδίαση οποιουδήποτε περίπλοκου συστήµατος, το οποίο ανάγεται πάντα σε απλούστερα µέρη των οποίων η ψηφιακή σχεδίαση υπακούει τις απλές αρχές που εκθέσαµε ωςτώρα. Πολλαπλασιασµός στο δυαδικό σύστηµα Ας δούµε τώρα και τον αλγόριθµο του πολλαπλασιασµού στο δυαδικό σύστηµα, ώστε να ολοκληρωθεί η συζήτηση περί της υποθετικής µας αριθµοµηχανής φυσικών αριθµών. Εδώ χρειαζόµαστε τον ακόλουθο απλό κανόνα πολλαπλασιασµού δύο ψηφίων µηδέν επί µηδέν ίσον µηδέν µηδέν επί ένα ίσον µηδέν ένα επί µηδέν ίσον µηδέν ένα επί ένα ίσον ένα Ο παραπάνω κανόνας πραγµατοποιείται µετολογικόπίνακα p q r=µερικό γινόµενο 0 0 0 0 1 0 1 0 0 1 1 1 όπου διαπιστώνουµε ότι η πράξη του γινοµένου είναι απλά η λογική σύζευξη! r = p AND q Παρατηρούµε επίσης ότι στην πράξη του πολλαπλασιασµού στο δυαδικό σύστηµα δεν εµφανίζεται ποτέ κρατούµενο. Για να πολλαπλασιάσουµε δύο δυαδικούς αριθµούς, ακολουθούµε ακριβώς τον ίδιο αλγόριθµο που ακολουθούµε και στο δεκαδικό σύστηµα, όπως φαίνεται από το ακόλουθο παράδειγµα που πολλαπλασιάζει τους αριθµούς 1001 (=9) επί 1100 (=12).
1100 1001 ---- 1100 0000 0000 1100 ------- 1101100 που δίνει πράγµατι το σωστό αποτέλεσµα 1101100 (= 108 = 9 Χ 12). Οαλγοριθµός προκύπτει από την πρόσθεση των µερικών γινοµένων κάθε ψηφίου του πολλαπλασιαστή µε όλα τα ψηφία του πολλαπλασιαστέου, όπου επιπλέον, το µερικό γινόµενο του i ψηφίου του πολλαπλασιαστή µε τον πολλαπλασιαστέο "ολισθαίνει" i-1 θέσεις αριστερά. Ετσι το µερικό γινόµενο του δεύτερου ψηφίου του πολλαπλασιαστή µε τον πολλαπλασιαστέο πρέπει να ολισθήσει µία θέση αριστερά, το µερικό γινόµενο του τρίτου ψηφίου του πολλαπλασιαστή µε τον πολλαπλασιαστέο πρέπει να ολισθήσει δύο θέσεις αριστερά, κ.ο.κ.. Ετσι ο πολλαπλασιασµός στο δυαδικό σύστηµα υλοποιείται ψηφιακά µε συνδυασµό πρόσθεσης και "ολίσθησης", µιας πράξης για την οποία διατίθεται στο εµπόριο η αντίστοιχη πύλη που την υλοποιεί. Ψηφιακή Σχεδίαση ενός Υπολογιστή Οπωσδήποτε το θέµα αυτό είναι τόσο φιλόδοξο ώστε απαιτούνται τουλάχιστον 4 χρόνια ειδικών σπουδών ώστε κάποιος να αρχίσει να το καταλαβαίνει σε βάθος. Πάντως, κάθε ψηφιακό σύστηµα είναι ένα ηλεκτρονικό κύκλωµα πουβασίζεταισεολοκληρωµένα κυκλώµατα. Τα ολοκληρωµένα αυτά κυκλώµατα περιέχουν από δεκάδες ώς εκατοµύρια λογικές πύλες χαραγµένες πάνω τους µε τις µεθόδους της µικροηλεκτρονικής, και µπορούν να εκτελέσουν ένα µεγάλο πλήθος τωνίδιωνλογικώνπράξεων, όπως αυτές που περιγράψαµε προηγουµένως, µεταξύ πολλών λογικών µεταβλητών. Υπάρχουν επίσης ολοκληρωµένα κυκλώµατα που αναλαµβάνουν να διατηρούν στο εσωτερικό τους ένα ρεύµα που ανακυκλώνεται και που αντιστοιχεί σε ένα bit πληροφορίας. Το ρεύµα θαέχειυψηλή, ήχαµηλή τιµή, ανάλογα µε το αν το bit που αποθηκεύεται είναι 1 ή 0. Ενα παράδειγµα τέτοιου ολοκληρωµένου κυκλώµατος είναι το ακολουθιακό κύκλωµα flip-flop. Συνδυασµοί πολλών τέτοιων κυκλωµάτων δηµιουργούν τη "µνήµη" ενός ψηφιακού συστήµατος. Τέλος, µία αρτηρία, που απαρτίζεται από ένα σύνολο ηλεκτρικών αγωγών, αναλαµβάνειτοέργοτηςµεταφοράς της πληροφορίας στην ψηφιακή της µορφή από τα κυκλώµατα µνήµης στα κυκλώµατα λογικής επεξεργασίας του ψηφιακού συστήµατος.