ΚΕΦΑΛΑΙΟ 3 ΘΕΜΑΤΑ ΨΗΦΙΑΚΗΣ ΣΧΕΔΙΑΣΗΣ



Σχετικά έγγραφα
Κεφάλαιο 5. Λογικά κυκλώματα

Ψηφιακά Κυκλώματα (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Γ2.1 Στοιχεία Αρχιτεκτονικής. Γ Λυκείου Κατεύθυνσης

K15 Ψηφιακή Λογική Σχεδίαση 6: Λογικές πύλες και λογικά κυκλώματα

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Απλοποίηση Συναρτήσεων Boole. Επιμέλεια Διαφανειών: Δ.

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Άλγεβρα Boole και Λογικές Πύλες 2. Επιμέλεια Διαφανειών: Δ.

4.1 Θεωρητική εισαγωγή

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3

9. OIΚΟΥΜΕΝΙΚΕΣ ΠΥΛΕΣ ΠΟΛΛΑΠΛΩΝ ΕΙΣΟ ΩΝ

3. Απλοποίηση Συναρτήσεων Boole

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

"My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch

Ελίνα Μακρή

Ψηφιακά Συστήματα. 6. Σχεδίαση Συνδυαστικών Κυκλωμάτων

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ. Κεφάλαιο 3

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

Κεφάλαιο 4. Λογική Σχεδίαση

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Δυαδικές συναρτήσεις Άλγεβρα Boole Λογικά διαγράμματα

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

Συνδυαστικά Λογικά Κυκλώματα

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Συνδυαστική Λογική. Επιμέλεια Διαφανειών: Δ.

Η κανονική μορφή της συνάρτησης που υλοποιείται με τον προηγούμενο πίνακα αληθείας σε μορφή ελαχιστόρων είναι η Q = [A].

Κεφάλαιο 6. Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα

σύνθεση και απλοποίησή τους θεωρήµατα της άλγεβρας Boole, αξιώµατα του Huntington, κλπ.

Ενότητα 4 ΛΟΓΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ ΔΥΟ ΕΠΙΠΕΔΩΝ

3. ΛΟΓΙΚΕΣ ΠΡΑΞΕΙΣ & ΛΟΓΙΚΕΣ ΠΥΛΕΣ

9 ο Μαθητικό Συνέδριο Πληροφορικής Κεντρικής Μακεδονίας. "My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch

Ενότητα 2 ΑΛΓΕΒΡΑ BOOLE ΛΟΓΙΚΕΣ ΠΥΛΕΣ

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΜΕΡΟΣ 1 ο : Δυαδικές συναρτήσεις Άλγεβρα Boole Λογικά διαγράμματα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 2 ο. ΑΛΓΕΒΡΑ Boole ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων

e-book ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΑΣΚΗΣΕΙΣ

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

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 2 ΛΟΓΙΚΕΣ ΠΥΛΕΣ OR, NOR, XOR

Ψηφιακά Συστήματα. 4. Άλγεβρα Boole & Τεχνικές Σχεδίασης Λογικών Κυκλωμάτων

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

K24 Ψηφιακά Ηλεκτρονικά 6: Πολυπλέκτες/Αποπολυπλέκτες

a -j a 5 a 4 a 3 a 2 a 1 a 0, a -1 a -2 a -3

ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ. ιδάσκων : ρ. Β. ΒΑΛΑΜΟΝΤΕΣ. Πύλες - Άλγεβρα Boole 1

Συνδυαστικά Κυκλώματα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Πράξεις με δυαδικούς αριθμούς

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

C D C D C D C D A B

Αθροιστές. Ημιαθροιστής

4. ΝΟΜΟΙ ΔΥΑΔΙΚΗΣ ΑΛΓΕΒΡΑΣ

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

K15 Ψηφιακή Λογική Σχεδίαση 4+5: Άλγεβρα Boole

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

3 η Θεµατική Ενότητα : Απλοποίηση Συναρτήσεων Boole. Επιµέλεια διαφανειών: Χρ. Καβουσιανός

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

K24 Ψηφιακά Ηλεκτρονικά 4: Σχεδίαση Συνδυαστικών Κυκλωμάτων

Πράξεις με δυαδικούς αριθμούς

Ενότητα 5 ΑΠΛΟΠΟΙΗΣΗ ΛΟΓΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ ΔΥΟ ΕΠΙΠΕΔΩΝ

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Ενότητα 8 Η ΠΥΛΗ XOR ΚΑΙ ΟΙ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΩΔΙΚΟΠΟΙΗΣΗ

Υ52 Σχεδίαση Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων. Δεληγιαννίδης Σταύρος Φυσικός, MsC in Microelectronic Design

Ελίνα Μακρή

Εισαγωγή στην πληροφορική

7. Ψηφιακά Ηλεκτρονικά

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Παράδειγμα αντιστοίχισης κυκλώματος σε FPGA

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ/ΙΟΥΝΙΟΥ 2014

Ύλη Λογικού Σχεδιασµού Ι

Ελίνα Μακρή

ΚΕΦΑΛΑΙΟ 3 ο Αλγεβρα BOOLE και Λογικές Πύλες

i Το τρανζίστορ αυτό είναι τύπου NMOS. Υπάρχει και το συμπληρωματικό PMOS. ; Τι συμβαίνει στο τρανζίστορ PMOS; Το τρανζίστορ MOS(FET)

Δυαδικό Σύστημα Αρίθμησης

f(x, y, z) = y z + xz

επανενεργοποιηθεί Βιομηχανικά Ηλεκτρονικά - Κ.Ι.Κυριακόπουλος Control Systems Laboratory

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

6. Σχεδίαση Κυκλωμάτων Λογικής Κόμβων (ΚΑΙ), (Η)

2. Άλγεβρα Boole και Λογικές Πύλες

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ.

Επανάληψη Βασικών Στοιχείων Ψηφιακής Λογικής

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα

Εισαγωγή στους Υπολογιστές

4 η Θεµατική Ενότητα : Συνδυαστική Λογική. Επιµέλεια διαφανειών: Χρ. Καβουσιανός

Λογική Σχεδίαση Ψηφιακών Συστημάτων

ΑΣΚΗΣΗ 1 ΛΟΓΙΚΕΣ ΠΥΛΕΣ

Ψηφιακά Συστήματα. 3. Λογικές Πράξεις & Λογικές Πύλες

Ψηφιακά Συστήματα. 5. Απλοποίηση με χάρτες Karnaugh

Κεφάλαιο 4 : Λογική και Κυκλώματα

Ψηφιακή Σχεδίαση Εργαστήριο Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜ. ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ

Transcript:

ΚΕΦΑΛΑΙΟ 3 ΘΕΜΑΤΑ ΨΗΦΙΑΚΗΣ ΣΧΕΔΙΑΣΗΣ

Στόχος αυτού του Κεφαλαίου είναι η γνωριμία με τον τρόπο με τον οποίο εκτελούνται οι πράξεις στο εσωτερικό του Υπολογιστή. Όπως ήδη έχει αναφερθεί, η Κεντρική Μονάδα Επεξεργασίας του Υπολογιστή είναι ένα ολοκληρωμένο κύκλωμα που περιλαμβάνει (εκτός των άλλων υποσυστημάτων) και μία αριθμητική και λογική μονάδα, η οποία είναι υπεύθυνη για την εκτέλεση των αντίστοιχων πράξεων. Οι πράξεις αυτές εκτελούνται με τη βοήθεια ψηφιακών κυκλωμάτων. Τα κυκλώματα αυτά περιλαμβάνουν στοιχεία τα οποία ονομάζονται λογικές πύλες, οι οποίες διασυνδέονται μεταξύ τους με τη βοήθεια αγωγών, σχηματίζονται έτσι κυκλώματα. Θα πρέπει να αναφερθεί ότι οι πύλες αυτές κατασκευάζονται με τη βοήθεια ημιαγωγών στοιχείων (transistors). Ωστόσο, η μελέτη αυτών των στοιχείων ανήκει περισσότερο στην επιστήμη της Ηλεκτρονικής και λιγότερο της Πληροφορικής, κατά συνέπεια δεν θα μας απασχολήσουν σε αυτό το βιβλίο. Έτσι, αρχικά θα παρουσιαστούν οι βασικές θεωρητικές έννοιες της ψηφιακής λογικής, της άλγεβρας Boole και των λογικών πυλών. Στη συνέχεια θα παρουσιαστεί ο τρόπος ανάλυσης ενός ψηφιακού κυκλώματος με τη δημιουργία του πίνακα αλήθειας του, καθώς και η εύρεση της λογικής συνάρτησης που υλοποιείται από αυτό το κύκλωμα. Κάποια ζητήματα απλοποίησης των συναρτήσεων αυτών θα συζητηθούν σε αλγεβρικό επίπεδο. Στη συνέχεια θα αναφερθεί η αντίστροφη διαδικασία, η εξαρχής δημιουργία δηλαδή ενός ψηφιακού κυκλώματος που εκτελεί μια συγκεκριμένη εργασία. Τέλος, θα αναφερθεί ο τρόπος με τον οποίο από ένα απλό ψηφιακό συνδυαστικό κύκλωμα, μπορούμε να περάσουμε σε ένα περισσότερο περίπλοκο ακολουθιακό ψηφιακό κύκλωμα. Μια σημαντική εφαρμογή των ακολουθιακών κυκλωμάτων είναι τα στοιχεία μνήμης (registers, RAM) κλπ., τα οποία θα αναφερθούν στο τέλος. 2

3. Ψηφιακή Λογική και Λογικές Πύλες Η Ψηφιακή Λογική (binary logic) ασχολείται με μεταβλητές που μπορούν να λάβουν μόνο δύο διαφορετικές τιμές και με λειτουργίες που έχουν λογικό νόημα. Οι τιμές των μεταβλητών μπορούν να έχουν οποιοδήποτε νόημα (αληθής ψευδής, μαύρο άσπρο κλπ), ωστόσο συνηθίζουμε να χρησιμοποιούμε τις τιμές και τις οποίες αντιστοιχίζουμε στα παραπάνω ονόματα. Κάθε λογική μεταβλητή λοιπόν έχει μια τιμη ( ή ) και μπορεί να έχει ένα όνομα, όπως A, B, C, Χ, Υ, Ζ, F, κλπ Υπάρχουν τρεις βασικές λογικές πράξεις που μπορούν να εφαρμοστούν σε λογικές μεταβλητές: η σύζευξη (ΚΑΙ), η διάζευξη (Ή) και η άρνηση (ΟΧΙ). Για λόγους ευκολίας, για τις πράξεις αυτές χρησιμοποιούμε συνήθως τον αντίστοιχο αγγλικό όρο (AND, OR και ΝΟΤ). Για κάθε μία από αυτές τις πράξεις, υπάρχει και ένα αντίστοιχο στοιχειώδες ηλεκτρονικό κύκλωμα που τις υλοποιεί. Τα κυκλώματα αυτά λέγονται λογικές (ή ψηφιακές) πύλες. Κάθε πύλη υλοποιείται με τα κατάλληλα transistors, ενώ έχει ένα μοναδικό γραφικό σύμβολο. Έτσι λοιπόν, έχουμε: Πράξη AND: Η πράξη αυτή απαιτεί δύο τελεσταίους, έστω Α και Β, και δίνει ένα αποτέλεσμα, έστω Ζ. Τα Α, Β και Ζ είναι φυσικά λογικές μεταβλητές, μπορούν δηλαδή να λάβουν τις τιμές ή. Για να αναπαραστήσουμε την πράξη γράφουμε Ζ = Α AND B, ή Ζ = Α Β είτε ακόμη Ζ = ΑΒ. Το αποτέλεσμα της πράξης ισούται με αν και μόνον αν Α= και Β=, διαφορετικά είναι. Το γραφικό σύμβολο της αντίστοιχης πύλης AND φαίνεται στη συνέχεια. Δίπλα στην πύλη αναγράφεται και ο πίνακας αλήθειας (truth table), ο οποίος περιλαμβάνει όλες τους πιθανούς συνδυασμούς τιμών που μπορούν να λάβουν οι είσοδοι Α και Β και την αντίστοιχη έξοδο Ζ. Α Β Ζ=Α Β A Z = A AND B B ή Ζ = Α Β ή Ζ=ΑΒ Πράξη OR: Η πράξη αυτή απαιτεί επίσης δύο τελεσταίους, έστω Α και Β, και δίνει ένα αποτέλεσμα, έστω Ζ. Για να αναπαραστήσουμε την πράξη γράφουμε Ζ = Α OR B, ή Ζ = Α + B. Το αποτέλεσμα της πράξης ισούται με αν τουλάχιστον ένα από τα Α ή Β είναι. Το γραφικό σύμβολο της αντίστοιχης πύλης OR καθώς και ο πίνακας αλήθειας της, φαίνονται στη συνέχεια. Α Β Ζ=Α+Β A B Z = A OR B ή Ζ = Α+Β 3

Πράξη ΝΟΤ: Η πράξη αυτή απαιτεί έναν τελεσταίο, έστω Α, και δίνει ένα αποτέλεσμα, έστω Ζ. Για να αναπαραστήσουμε την πράξη γράφουμε Ζ = ΝΟΤ(Α) ή Ζ = Α (ή και A ). Το αποτέλεσμα της πράξης ισούται με αν τουλάχιστον ένα από τα Α είναι και αν το Α είναι. Η πράξη αυτή λειτουργεί δηλαδή ως αντιστροφέας της τιμής εισόδου. Το γραφικό σύμβολο της αντίστοιχης πύλης ΝΟΤ, καθώς και ο πίνακας αλήθειας της, φαίνονται στη συνέχεια. Α Ζ=Α A Z = NOT(A) ή Ζ = Α Όταν ασχολούμαστε με πύλες θα πρέπει να έχουμε πάντα υπόψη ότι αυτές υλοποιούν λογικές πράξεις σε λογικές μεταβλητές. Μπορεί κανείς να θεωρήσει ότι κάθε είσοδος ή έξοδος (κάθε γραμμή στα παραπάνω σχήματα) μεταφέρει ένα ηλεκτρικό σήμα που αντιστοιχεί στο λογικό και το λογικό. Το σήμα αυτό φυσικά αντιστοιχεί σε κάποια φυσική ποσότητα, όπως την τάση που εφαρμόζεται στα άκρα του, ωστόσο αυτή η τάση δεν είναι απαραίτητο να είναι ακριβώς ή volts. Στην πραγματικότητα, τα κυκλώματα αυτά χρησιμοποιούν ένα αποδεκτό εύρος τάσης για κάθε λογική τιμή, όπως φαίνεται στο Σχήμα. Volts 5 4 3 2 Λογικό Λογικό Σχήμα 3. Επιπλέον, θα πρέπει να είναι ξεκάθαρο ότι οι λογικές πράξεις δεν είναι αριθμητικές πράξεις. Έτσι, δεν θα πρέπει να συγχέεται το σύμβολο +, το οποίο σημαίνει λογικό «OR» με το σύμβολο της πρόσθεσης δύο δυαδικών ψηφίων. Ωστόσο, δεν υπάρχει περίπτωση αμφισημίας, καθώς δεν είναι δυνατόν σε μια έκφραση να υπάρχουν λογικές και αριθμητικές πράξεις μαζί. Ας αναφερθεί επίσης ότι οι πύλες AND και OR μπορούν να έχουν περισσότερες από δύο εισόδους (πάντα όμως θα έχουν μία έξοδο). Έτσι, σε περίπτωση μίας AND με τρεις εισόδους, η έξοδος της πύλης θα είναι όταν και οι τρεις είσοδοι είναι και σε κάθε άλλη περίπτωση. Αντίστοιχα, σε μια OR με τέσσερις εισόδους, η έξοδος θα είναι εάν τουλάχιστον μία είσοδος είναι. Σε μία τέτοια OR, η έξοδος θα είναι αν και μόνο αν όλες οι είσοδοι είναι. Ένα ψηφιακό κύκλωμα (digital circuit) αποτελείται από μια συλλογή λογικών πυλών οι οποίες είναι συνδεδεμένες μεταξύ τους έτσι ώστε οι έξοδοι κάποιων πυλών να είναι είσοδοι σε άλλες πύλες. Ο τρόπος διασύνδεσης εξυπηρετεί πάντα ένα 4

συγκεκριμένο στόχο, ο οποίος συσχετίζει τις εισόδους στο κύκλωμα με την/τις εξόδους του κυκλώματος. Η πλήρης περιγραφή των ψηφιακών κυκλωμάτων γίνεται με τη βοήθεια της άλγεβρας boole (Boolean algebra), οι βασικές αρχές της οποίας περιγράφονται στην επόμενη παράγραφο. 3.2 Άλγεβρα BOOLE 3.2. Εισαγωγικά πίνακες αλήθειας Η άλγεβρα boole περιλαμβάνει ψηφιακές μεταβλητές και λογικές πράξεις. Για να αναπαραστήσουμε τις μεταβλητές χρησιμοποιούμε κεφαλαία γράμματα και για να αναπαραστήσουμε τις λογικές πράξεις χρησιμοποιούμε τα σύμβολά τους, όπως είδαμε στην προηγούμενη παράγραφο. Μία συνάρτηση boole είναι μια ακολουθία από ψηφιακές μεταβλητές, σύμβολα ψηφιακών πράξεων, τις τιμές ή και ένα σύμβολο = (ίσον). Για κάθε συνδυασμό τιμών των λογικών μεταβλητών, η συνάρτηση έχει μία τιμή, η οποία είναι επίσης ψηφιακή ( ή ). Στη συζήτηση που ακολουθεί, θεωρούμε ότι η προτεραιότητα των λογικών πράξεων υπακούει στους ακόλουθους κανόνες, εκτός εάν υπάρχουν παρενθέσεις οι οποίες προηγούνται:. Πρώτα γίνονται οι αντιστροφές 2. Ακολουθούν οι πράξεις AND 3. Ακολουθούν οι πράξεις OR 4. Εάν υπάρχουν πράξεις ίδιας προτεραιότητας, ο υπολογισμός τους γίνεται από αριστερά προς τα δεξιά. Έστω, για παράδειγμα η συνάρτηση: F = A + BC Οι μεταβλητές A, B και C ονομάζονται και είσοδοι (inputs) στη συνάρτηση, ενώ η τιμή της F είναι η έξοδος (output) της συνάρτησης. Ο υπολογισμός της εξόδου της συνάρτησης γίνεται λαμβάνοντας όλους τους διαφορετικούς συνδυασμούς τιμών των μεταβλητών Α, Β και C και εφαρμόζοντας σε κάθε συνδυασμό τις λογικές πράξεις που συμπεριλαμβάνονται στη συνάρτηση. Η καταγραφή αυτών των συνδυασμών συμπληρώνεται σε έναν πίνακα, τον πίνακα αλήθειας (truth table) της συνάρτησης. Έτσι, για τη συνάρτηση F που μελετάμε, ο πίνακας τιμών φαίνεται αμέσως παρακάτω: Είσοδοι Ενδιάμεσα αποτελέσματα Έξοδος A B C A (not A) BC (B and C) F = A +BC 5

Πίνακας 3. Ο πίνακας αλήθειας της F αποτελείται από τρεις περιοχές: την περιοχή των εισόδων (οι τρεις πρώτες στήλες) την περιοχή των ενδιάμεσων αποτελεσμάτων (οι δύο επόμενες στήλες) και την έξοδο (η τελευταία στήλη). Η συμπλήρωση ενός τέτοιου πίνακα δεν γίνεται κατά γραμμή, αλλά κατά περιοχή, ξεκινώντας από τις εισόδους και καταλήγοντας στην έξοδο. Έτσι: Είσοδοι: Εφόσον οι ψηφιακές είσοδοι είναι τρεις, οι πιθανοί συνδυασμοί τους είναι 23=8, οπότε συμπληρώνονται οι τρεις πρώτες στήλες σύμφωνα με όσα έχουν ήδη αναλυθεί σε προηγούμενο κεφάλαιο. Ενδιάμεσα αποτελέσματα: Εφόσον για να υπολογιστεί η F απαιτείται το Α καταγράφουμε μία στήλη με αυτές τις τιμές αλλάζοντας κάθε σε και αντίστροφα κάθε τιμή της στήλης Α. Επιπλέον απαιτείται και ο υπολογισμός της BC, οπότε καταγράφουμε ακόμη μία στήλη συμπληρώνοντας σε κάθε γραμμή το αποτέλεσμα του and ανάμεσα στα B και C. Έξοδος: Σε αυτή την περίπτωση, συμπληρώνουμε κάθε γραμμή της εξόδου εφαρμόζοντας το λογικό or ανάμεσα στις δύο των ενδιάμεσων αποτελεσμάτων. Σε έναν πίνακα αλήθειας, το πλήθος των εισόδων είναι συγκεκριμένο, καθώς είναι το πλήθος των διαφορετικών λογικών μεταβλητών που χρησιμοποιούνται στη συνάρτηση. Έτσι, μια συνάρτηση με (έστω) 4 μεταβλητές, απαιτεί 4 στήλες, μία για κάθε μεταβλητή, και 24=6 γραμμές στον πίνακα αλήθειας. Το πλήθος των στηλών των ενδιάμεσων αποτελεσμάτων δεν είναι συγκεκριμένο, αλλά εξαρτάται από τις ενδιάμεσες πράξεις που πρέπει να υπολογιστούν πριν μπορέσουμε να υπολογίσουμε την έξοδο. Για παράδειγμα, μια συνάρτηση G=A+B+C, πρακτικά δεν χρειάζεται κανέναν ενδιάμεσο υπολογισμό, ενώ μια συνάρτηση H=A +AB+AB, παρότι έχει μόνο δύο εισόδους, απαιτεί 4 ενδιάμεσες στήλες (από μία για το Α, το Β, το ΑΒ και το ΑΒ ). Πάντως, με την απόκτηση εμπειρίας, μπορεί κανείς να παραβλέπει κάποια ενδιάμεσα αποτελέσματα. Παρατηρώντας τον πίνακα αλήθειας προκύπτει πως η F ισούται με όταν το Α είναι (οπότε το Α θα είναι ), κάτι που συμβαίνει στις τέσσερις πρώτες γραμμές ή όταν το Β και το C είναι ταυτόχρονα (η τελευταία γραμμή) ή όταν ισχύουν και οι δύο περιπτώσεις (η τέταρτη γραμμή). Σε περίπλοκες συναρτήσεις, είναι απαραίτητη η δημιουργία του πίνακα αλήθειας, καθώς είναι ο μοναδικός τρόπος να βρούμε πως συμπεριφέρεται η συγκεκριμένη συνάρτηση. Ωστόσο, σε απλές συναρτήσεις όπως αυτή του παραδείγματός μας, θα αρκούσε κανείς να μελετήσει προσεκτικά την ίδια τη συνάρτηση και να καταλήξει στο ίδιο συμπέρασμα χωρίς την κατασκευή του πίνακα. Είναι φανερό ότι στην F=A +BC, το αποτέλεσμα προκύπτει από ένα λογικό or ανάμεσα στο Α και στο BC. Άρα η F θα έχει έξοδο είτε όταν το Α είναι είτε όταν το BC είναι (είτε όταν και τα δύο είναι ). Ωστόσο, για περισσότερη ασφάλεια, η κατασκευή του πίνακα αλήθειας είναι χρήσιμη. 6

3.3.2 Λογικά κυκλώματα Κάθε συνάρτηση boole αντιστοιχεί σε έναν και μοναδικό πίνακα αλήθειας. Εάν όμως χρησιμοποιήσουμε τα γραφικά σύμβολα των πράξεων, μπορούμε για κάθε συνάρτηση που είναι σε αλγεβρική μορφή να δημιουργήσουμε ένα λογικό κύκλωμα (logic circuit) το οποίο να αποτελείται από λογικές πύλες και συνδέσεις μεταξύ τους. Τα λογικά κυκλώματα έχουν μεγάλη πρακτική αξία, καθώς είναι ο τρόπος με τον οποίο υλοποιούνται σε πραγματικά κυκλώματα οι συναρτήσεις. Στα κυκλώματα αυτά υπάρχουν γεννήτριες ψηφιακών σημάτων και γραμμές μεταφοράς (που μπορούμε να τα φανταζόμαστε ως σύρματα ή καλώδια) αυτών των σημάτων από τις εισόδους στις πύλες και από εκεί στην έξοδο. Η κατασκευή του κυκλώματος θα ακολουθήσει τη λογική που υπάρχει στη συνάρτηση. Έτσι, πρώτα θα πρέπει να υλοποιηθούν οι πράξεις με τη μεγαλύτερη προτεραιότητα και στη συνέχεια τα αποτελέσματά τους θα πρέπει να διασυνδεθούν κατάλληλα. Η διαδικασία αυτή προχωρά «από τα αριστερά προς τα δεξιά» έως ότου παραχθεί η έξοδος. Παράδειγμα 3. Για να κατασκευάσουμε ένα λογικό κύκλωμα για τη συνάρτηση F=A +BC, ξεκινούμε σχεδιάζοντας τόσες γραμμές εισόδου όσες και οι διαφορετικές μεταβλητές εισόδου και μία γραμμή για την έξοδο, όπως στο Σχήμα 3.2. Στο Σχήμα αυτό υποθέτουμε ότι αριστερά από κάθε είσοδο υπάρχει ένας μηχανισμός που παράγει ψηφιακά σήματα, ενώ η περιοχή ανάμεσα στις εισόδους και την έξοδο περιλαμβάνει την παραγωγή των ενδιάμεσων αποτελεσμάτων. Σχήμα 3.2 Όπως είναι φανερό, αμέσως μετά τον καθορισμό των εισόδων, το επόμενο βήμα είναι η διασύνδεση των πυλών που θα υλοποιήσουν τις λογικές πράξεις που έχουν τη μεγαλύτερη προτεραιότητα. Για την F=A +BC, φαίνεται ότι θα πρέπει πρώτα να αντιστραφεί η είσοδος Α. Επίσης, μπορεί να υλοποιηθεί και το λογικό AND ανάμεσα στις Β και C. Αφού ολοκληρωθούν αυτές οι τοποθετήσεις και οι διασυνδέσεις, το λογικό κύκλωμα που υλοποιεί την F είναι αυτό που φαίνεται στο Σχήμα 3.2. Παράδειγμα 3.2 Έστω η συνάρτηση F = A B+AB+AB. Θα κατασκευάσουμε το λογικό κύκλωμα που την υλοποιεί. Στη συνάρτηση αυτή υπάρχουν δύο διαφορετικές είσοδοι. Και οι δύο είσοδοι χρειάζεται να αντιστραφούν αφού σε διαφορετικούς όρους χρειάζονται τα συμπληρώματα του Α και του Β. Ωστόσο, θα χρειαστούμε και τις αρχικές τιμές των Α και Β. Αφού 7

λοιπόν υλοποιηθούν τα Α Β, ΑΒ και ΑΒ, και τα τρία θα μπουν σε μία πύλη OR τριών εισόδων, όπως στο Σχήμα 3.3 Σχήμα 3.3 Στο Σχήμα 3.3 χρησιμοποιούμε επιπλέον κάποιες διακλαδώσεις (οι έντονες τελείες), οι οποίες μεταφέρουν το ίδιο σήμα εισόδου. Στην είσοδο Α υπάρχουν δύο τέτοιες διακλαδώσεις, μία για να μεταφέρει το Α στον αντιστροφέα και μία για να το μεταφέρει στην πύλη ΑΒ. Επιπλέον, στα σημεία όπου οι γραμμές που μεταφέρουν διαφορετικά σήματα διασταυρώνονται, σχεδιάζεται μια μικρή καμπύλη που έχει το ρόλο της γέφυρας. Παράδειγμα 3.3 Σε αυτό το παράδειγμα θα ξεκινήσουμε από μία συνάρτηση, για την οποία θα κατασκευάσουμε και τον πίνακα αλήθειας αλλά και το λογικό κύκλωμα, κάνοντας έτσι μια ολοκληρωμένη μελέτη. Έστω λοιπόν η συνάρτηση F=(AB+AC).(A C+ΑΒ). Μια πρώτη παρατήρηση είναι ότι ενώ στα δύο προηγούμενα παραδείγματα η συνάρτηση ήταν ένα «άθροισμα γινομένων», εδώ είναι ένα «γινόμενο αθροισμάτων». Η κατασκευή του πίνακα αλήθεια θα πρέπει να περιλαμβάνει τρεις εισόδους, επτά ενδιάμεσα αποτελέσματα και την έξοδο. Για λόγους ευκολίας στο λογικό κύκλωμα, θα αντιστοιχίσουμε ένα σύμβολο (K, L, M, N, P και Q) σε κάθε ενδιάμεσο αποτέλεσμα, όπως φαίνεται στον ακόλουθο πίνακα αλήθειας: Είσοδοι Ενδιάμεσα αποτελέσματα Έξοδος Α Β C K=AB L=AC M=K+L N=M A P=A C Q=P+K F=NQ Πίνακας 3.2 Το λογικό κύκλωμα για την F φαίνεται στο Σχήμα 3.4 που ακολουθεί: 8

K A B M C N F L Q A P Σχήμα 3.4 Κάθε λογική συνάρτηση αντιστοιχίζεται σε ένα και μοναδικό πίνακα αλήθειας. Ωστόσο δε συμβαίνει το ίδιο και με τα λογικά κυκλώματα. Πράγματι, το λογικό κύκλωμα του Σχήματος 3.4 προέκυψε από τη συνάρτηση F=(AB+AC).(A C+ΑΒ). Ωστόσο, για την ίδια συνάρτηση μπορούμε να κατασκευάσουμε ένα πολύ απλούστερο λογικό κύκλωμα, λαμβάνοντας υπόψη μόνο τις εισόδους και την έξοδο του πίνακα αλήθειας και συνθέτοντας το κύκλωμα με τη λογική που υπάρχει μέσα στον πίνακα. Έτσι, ο ακόλουθος Πίνακας 3.3 περιλαμβάνει μόνο τις στήλες των εισόδων και της εξόδου της F: Είσοδοι Έξοδος Α Β C F Πίνακας 3.3 Πότε ακριβώς η έξοδος είναι ; Είτε στη γραμμή 2 είτε στη γραμμή 4 του πίνακα αυτού. Προσέξτε ότι η φράση αυτή εμπεριέχει το λογικό OR, θα μπορούσαμε δηλαδή να πούμε ότι F=(γραμμή2 + γραμμη4). Στη γραμμή 2 οι είσοδοι Α και Β είναι ενώ η C είναι την ίδια στιγμή. Εδώ εμπεριέχεται το λογικό AND ανάμεσα στις τρεις εισόδους. Μπορούμε δηλαδή να πούμε ότι γραμμή2 = Α Β C Στη γραμμή 4 το Α είναι ενώ τα B και C είναι, έχουμε λοιπόν γραμμή4=α BC. Συνθέτοντας τα παραπάνω, προκύπτει ότι F=Α Β C+A BC. Κατά συνέπεια, μπορούμε να κατασκευάσουμε ένα πολύ απλούστερο λογικό κύκλωμα, όπως στο Σχήμα 3.5 9

που θα συμπεριφέρεται ακριβώς όπως το κύκλωμα του Σχήματος 3.4 για κάθε συνδυασμό εισόδων! Σχήμα 3.5 Τα κυκλώματα των Σχημάτων 3.4 και 3.5, υλοποιούν ακριβώς την ίδια λειτουργία, είναι δηλαδή ισοδύναμα. Είναι προφανές ότι θα πρέπει να επιζητούμε πάντα την ελαχιστοποίηση των πυλών που χρησιμοποιούνται σε ένα οποιοδήποτε κύκλωμα. Ο τρόπος που περιγράφηκε είναι ο απλούστερος, ωστόσο θα μπορούσαμε να οδηγηθούμε σε παρόμοια απλούστευση χωρίς την κατασκευή του πίνακα αλήθειας αλλά με τη χρήση αλγεβρικών απλουστεύσεων. Για το λόγο αυτό θα πρέπει να αναφερθούν και οι βασικές ταυτότητες της άλγεβρας boole. 3.3.3 Βασικές ταυτότητες άλγεβρας boole Στην παράγραφο αυτή θα αναφερθούμε στις ταυτότητες της άλγεβρας boole και στον τρόπο χρήσης τους έτσι ώστε να απλοποιούνται οι λογικές συναρτήσεις. Όπως ήδη αναφέρθηκε, η απλοποίηση των συναρτήσεων οδηγεί σε απλούστερα κυκλώματα, κάτι που σημαίνει μικρότερο κόστος κατασκευής ψηφιακών κυκλωμάτων. Πολλές από τις ταυτότητες μοιάζουν με αυτές που γνωρίζουμε από την κανονική άλγεβρα, ωστόσο άλλες όχι. Δεν πρέπει να συγχέουμε τις δύο άλγεβρες παρά τις οποιεσδήποτε ομοιότητες. Για παράδειγμα, όπως φαίνεται από τον Πίνακα 3.4 που ακολουθεί, μόνο οι ταυτότητες έως 5 μοιάζουν με αυτές της γνωστής άλγεβρας ενώ οι υπόλοιπες όχι. 3 5 7 9 2 4 6 Χ+=Χ Χ+= Χ+Χ=Χ Χ+Χ = (Χ ) =Χ Χ+Υ=Υ+Χ Χ+(Υ+Ζ)=(Χ+Υ)+Ζ Χ.(Υ+Ζ)=Χ.Υ+Χ.Ζ (Χ+Υ) =Χ.Υ Χ.=Χ Χ.= Χ.Χ=Χ Χ.Χ = (δεν υπάρχει δυική) Χ.Υ=Υ.Χ 3 Χ.(Υ.Ζ)=(Χ.Υ).Ζ 5 Χ+Υ.Ζ=(Χ+Υ).(Χ+Ζ) 7 (Χ.Υ) =Χ +Υ Πίνακας 3.4 2 4 6 8 Μεταθετική Προσεταιριστική Επιμεριστική De Morgan

Θα πρέπει επίσης να πούμε ότι στην άλγεβρα boole ισχύει ένα είδος δυισμού (duality). Για κάθε συνάρτηση boole η δυική της προκύπτει αλλάζοντας τα AND σε OR και τα σε και αντίστροφα. Στον Πίνακα 3.4, οι ταυτότητες τοποθετούνται σε δύο στήλες, έτσι ώστε κάθε ταυτότητα να εμφανίζεται δίπλα στη δυική της. Όλες οι ταυτότητες μπορούν με ευκολία να επαληθευθούν, κατασκευάζοντας τους πίνακες αλήθειας τους. Για παράδειγμα, ο Πίνακας 3.5.α περιλαμβάνει τον πίνακα αλήθειας για την ταυτότητα 2, ο πίνακας 3.5.β για την ταυτότητα 5 και ο πίνακας 3.γ για την ταυτότητα 7. Χ Υ Ζ Χ+Υ Υ+Ζ (Χ+Υ)+Ζ Χ+(Υ+Ζ) Πίνακας 3.5.α Χ Υ Ζ Υ.Ζ Χ+Υ Χ+Ζ Χ+Υ.Ζ (Χ+Υ).(Χ+Ζ) Πίνακας 3.5.β Χ Υ Χ.Υ Χ Υ (Χ.Υ) Χ +Υ Πίνακας 3.5.γ

3.3.4 Αλγεβρικοί μετασχηματισμοί Στην παράγραφο αυτή θα δούμε πώς μπορούμε να απλοποιήσουμε λογικές συναρτήσεις με τη βοήθεια των ταυτοτήτων της άλγεβρας boole. Για το σκοπό αυτό θα χρησιμοποιήσουμε τη συνάρτηση F=(AB+AC).(A C+ΑΒ) του Παραδείγματος 3.3. Για λόγους ευκολίας μπορούμε να αντικαθιστούμε έναν οποιονδήποτε όρο με μία μεταβλητή. Για παράδειγμα, αντικαθιστώντας το ΑΒ με Χ το ΑC με Υ και το Α C με Ζ, η συνάρτηση γίνεται F= (X+Y) (Z+X) = (X+Y) (X+Z) (μεταθετική) = Χ Υ (Χ+Ζ) (de morgan) = Χ ΧΥ +Χ Υ Ζ (επιμεριστική και μεταθετική) = Υ +Χ Υ Ζ (ταυτότητα 8) = +Χ Υ Ζ (ταυτότητα 4) = Χ Υ Ζ (ταυτότητα ) = (AB) (AC) (A C) (αντικατάσταση) =(Α +Β )(Α +C )(A C) (de morgan) = (A +B )(A A C+C A C) (επιμεριστική) =(Α +Β )(Α C+A ) (ταυτότητες 6 και 8) =(A +B )(A C) (ταυτότητες 4 και ) =Α Α C+B A C (επιμεριστική) =Α C+A B C (ταυτότητα 6 και μεταθετική) =A C(+C) (επιμεριστική) =Α C (ταυτότητα 3 και μετά ταυτότητα 2) Στο παράδειγμα αυτό, η αρχική συνάρτηση απλοποιήθηκε σε μια πολύ απλούστερη, κάνοντας εκτεταμένη χρήση των ταυτοτήτων. Φυσικά θα μπορούσαμε να οδηγηθούμε στο ίδιο αποτέλεσμα ακολουθώντας διαφορετικό (και ενδεχομένως πολύ απλούστερο) δρόμο εφαρμογής των ταυτοτήτων, ωστόσο το παράδειγμα είναι χρήσιμο ακριβώς για διδακτικούς λόγους. Ενδιαφέρον είναι να παρατηρηθεί ότι η είσοδος Β έχει απλοποιηθεί εντελώς, καθώς δεν εμφανίζεται πουθενά στην F=A C. Θα πρέπει επίσης να σημειωθεί ότι η μορφή αυτή της συνάρτησης δεν είναι διαφορετική από αυτή που προέκυψε από την απευθείας παρατήρηση του πίνακα αλήθειας στο Παράδειγμα 3.3 (Σχήμα 3.4). Πράγματι, αν απλοποιήσουμε την F=A B C+A BC θα οδηγηθούμε στο ίδιο αποτέλεσμα: F = A B C+A BC = A (B +B)C = A C = A C Στο ίδιο συμπέρασμα θα μπορούσαμε να οδηγηθούμε και με μια περισσότερο προσεκτική μελέτη του Πίνακα αλήθειας 3.3 της F, ο οποίος επαναλαμβάνεται παρακάτω: 2

Α Είσοδοι Β C Έξοδος F Πίνακας 3.3 (επαναληπτικά) Όπως είναι πλέον φανερό από αυτό τον πίνακα, η F είναι όταν το Α είναι και το C είναι, οποιαδήποτε τιμή και αν έχει το Β! Ολοκληρώνοντας τη συζήτηση αυτή, σημειώνεται ότι οι αλγεβρικοί μετασχηματισμοί μπορούν να χρησιμοποιούνται για την απλοποίηση σχετικά μικρών λογικών συναρτήσεων. Στη βιβλιογραφία περιγράφονται και άλλοι, πιο τυπικοί τρόποι, όπως οι χάρτες Καρνώ (karnaugh), που χρησιμοποιούνται για το σκοπό αυτό. Η περιγραφή τους ξεφεύγει ωστόσο από τους σκοπούς αυτού του βιβλίου. 3.4 Πύλες NAND, NOR, XOR και XNOR Οι πύλες AND, OR και ΝΟΤ, μπορούν να υλοποιήσουν οποιαδήποτε λογικό κύκλωμα, εφόσον όλες οι λογικές συναρτήσεις κατασκευάζονται με τις αντίστοιχες λογικές πράξεις. Ωστόσο, δεν είναι οι μοναδικές πύλες που υπάρχουν. Η κατασκευή νέων πυλών που υλοποιούν διαφορετική λογική, μπορεί να είναι ευκολότερο να κατασκευαστούν σε μεγάλη κλίμακα ή να βολεύουν στη δημιουργία λογικών κυκλωμάτων, περισσότερο από τις βασικές λογικές πύλες. Ένα τέτοιο παράδειγμα είναι οι πύλες ΝΑND, NOR, ΧΟR και ΧΝΟR, τις οποίες περιγράφουμε στη συνέχεια: Πύλη NAND: Το όνομα της πύλης αυτής προκύπτει από τη σύντμηση του NOT και του AND. Πρόκειται για μία πύλη AND που υλοποιεί το λογικό ΚΑΙ ανάμεσα στις εισόδους, ακολουθούμενη από έναν αντιστροφέα ο οποίος αντιστρέφει την έξοδο της AND. Εάν Α και Β είναι οι είσοδοι, τότε μια πύλη NAND υλοποιεί την πράξη Z = A NAND B = (A.B). Σχηματικά σχεδιάζεται όπως η AND με την προσθήκη ενός μικρού κύκλου στην έξοδό της, ενώ δεν έχει κάποιο ιδιαίτερο αλγεβρικό σύμβολο 3

A B Z = A NAND B ή Ζ = (Α Β) Α Β Ζ=Α NAND Β Πύλη NOR: Το όνομα της πύλης αυτής προκύπτει από τη σύντμηση του NOT και του OR. Πρόκειται για μία πύλη OR που υλοποιεί το λογικό H ανάμεσα στις εισόδους, ακολουθούμενη από έναν αντιστροφέα ο οποίος αντιστρέφει την έξοδο της OR. Εάν Α και Β είναι οι είσοδοι, τότε μια πύλη NOR υλοποιεί την πράξη Z = A NOR B = (A+B). Σχηματικά σχεδιάζεται όπως η OR με την προσθήκη ενός μικρού κύκλου στην έξοδό της. Και η πύλη ΝΟR δεν έχει αλγεβρικό σύμβολο. Α Β Ζ=Α NOR Β A B Z = A NOR B ή Ζ = (Α+Β) Πύλη ΧOR: Το όνομα της πύλης αυτής προκύπτει από τη σύντμηση του Exclusive (αποκλειστικό) και του OR. Η λογική που υλοποιεί περιορίζει την OR αφού η έξοδός της είναι ΜΟΝΟ εάν μία από τις εισόδους είναι και η άλλη. Εναλλακτικά μπορεί κανείς να θεωρεί ότι η XOR σηματοδοτεί την αλλαγή από σε και αντίστροφα. Εάν Α και Β είναι οι είσοδοι, τότε μια πύλη ΧOR υλοποιεί την πράξη Z = A XOR B = A B. Χρησιμοποιώντας τον πίνακα αλήθειας, μπορούμε να αναλύσουμε αλγεβρικά την XOR ως: Ζ=Α Β=Α Β+ΑΒ. Σχηματικά σχεδιάζεται όπως η OR με την προσθήκη ενός μικρού κυκλικού τόξου στην είσοδό της. Α Β Ζ=Α Β A B Z = A XOR B Πύλη ΧNOR: Το όνομα της πύλης αυτής προκύπτει από τη σύντμηση του ΝΟΤ και του ΧOR. Πρόκειται δηλαδή για μια XOR με έναν αντιστροφέα στην έξοδο. Εάν Α και Β είναι οι είσοδοι, τότε μια πύλη ΧΝOR υλοποιεί την πράξη Z = A XOR B. Η XNOR είναι όταν και οι δύο είσοδοι είναι ή και οι δύο είναι, όταν δηλαδή έχουν την ίδια τιμή. Η αλγεβρική πράξη που υλοποιεί, όπως φαίνεται από τον πίνακα αλήθειας της είναι η Ζ=Ζ ΧΝΟR Β =(Α Β) = Α Β +ΑΒ. Σχηματικά σχεδιάζεται όπως η XOR με την προσθήκη ενός μικρού κύκλου (αντιστροφέα) στην έξοδό της. 4

A B Z = A XNOR B Α Β Ζ=Α ΧΝΟR Β Η κατασκευή κυκλωμάτων με τη χρήση των πυλών αυτών ακολουθεί τους ίδιους ακριβώς κανόνες που έχουν αναφερθεί σε προηγούμενη παράγραφο. Έτσι από μια συνάρτηση που περιλαμβάνει πράξεις NAND, NOR, XOR ή XNOR, μπορούμε κάνοντας χρήση των κανόνων προτεραιότητας να σχεδιάσουμε ένα οποιοδήποτε ψηφιακό κύκλωμα. Επιπλέον μπορούμε αναλύοντας τις λογικές πράξεις αλγεβρικά μπορούμε να τις απλοποιήσουμε κατάλληλα έτσι ώστε να κατασκευαστούν απλούστερα κυκλώματα. Ωστόσο, αυτές οι πύλες χρησιμοποιούνται περισσότερο για άλλους λόγους, όπως θα δούμε στη συνέχεια. 3.5 Οικουμενικές πύλες Κάθε μία από τις υπόλοιπες πύλες μπορεί να κατασκευαστεί με τη χρήση μόνο NAND πυλών. Η ιδιότητα αυτή της οικουμενικότητας της πύλης NAND έχει ιδιαίτερη πρακτική σημασία, αφού με αυτόν τον τρόπο η βιομηχανία ημιαγωγών μπορεί να ασχολείται με την κατασκευή και βελτίωση κυκλωμάτων που περιέχουν μόνο ένα είδος πυλών, κάτι που με τη σειρά του σημαίνει χαμηλό κόστος κατασκευής και μεγάλη ολοκλήρωση. Στο Σχήμα 3.6 που ακολουθεί, φαίνεται ο τρόπος με τον οποίο κάθε μία από τις βασικές πύλες AND, OR και ΝΟΤ μπορεί να υλοποιηθεί αποκλειστικά με πύλες ΝΑΝD. Σχήμα 3.6 Η απλή αντιστροφή (NOT) είναι προφανές ότι μπορεί να υλοποιηθεί με μία NAND. Η πύλη ΑND υλοποιείται με μία NAND την έξοδο της οποίας αντιστρέφουμε. Τέλος η πύλη OR επιτυγχάνεται με την αντιστροφή των εισόδων και την είσοδο των συ- 5

μπληρωμάτων σε μία NAND. Ειδικά για την OR προσέξτε ότι Α ΝΑΝD B = (A.B ) = A+B (de morgan). Έχοντας τα παραπάνω υπόψη μπορούμε να μετατρέψουμε κάθε ψηφιακό κύκλωμα που περιλαμβάνει τις βασικές πύλες σε κύκλωμα που περιέχει μόνο πύλες NAND. Ο τρόπος αυτός είναι άμεσος, απλώς χρησιμοποιούμε τις αντιστοιχίσεις του Σχήματος 3.6. Ένας ακόμη ευκολότερος τρόπος για μια τέτοια μετατροπή, όταν η συνάρτησή μας είναι σε μορφή αθροίσματος γινομένων, περιγράφεται στη συνέχεια με τη βοήθεια του παραδείγματος 3.5 που ακολουθεί: Παράδειγμα 3.5: Έστω η συνάρτηση F=AB + CD. Το κύκλωμα που υλοποιεί τη συνάρτηση με πύλες AND και OR φαίνεται στο Σχήμα 3.7.α. Στο Σχήμα 3.7.β ωστόσο, προσθέσαμε στην έξοδο κάθε AND που οδηγεί στην είσοδο της OR από μια αντιστοφή (ο μικρός κύκλος). Είναι προφανές ότι επειδή σε κάθε γραμμή υπάρχουν δύο αντιστροφές, το σήμα που μεταφέρεται είναι ακριβώς το ίδιο, καθώς (Χ ) =Χ. Σε αυτό το σημείο όπως φαίνεται, οι πύλες AND έχουν ήδη μετατραπεί σε NAND, ενώ η OR περιλαμβάνει δύο εισόδους με αντιστροφέα. Σχήμα 3.7.α Σχήμα 3.7.β Ωστόσο, η πράξη Χ +Υ ισούται με (ΧΥ) (de morgan), οπότε η πύλη OR με τους αντιστροφείς στην είσοδο μπορεί να μετατραπεί σε ΝΑΝD, όπως φαίνεται στο τελικό σχήμα 3.7.γ Σχήμα 3.7.γ Η διαδικασία μπορεί να τυποποιηθεί και να χρησιμοποιηθεί και σε περισσότερο περίπλοκες συναρτήσεις, που συμπεριλαμβάνουν περισσότερα επίπεδα υλοποίησης. Θα πρέπει να αναφερθεί ότι η πύλη NOR είναι η δυική της NAND. Κατά συνέπεια, η περιγραφή που κάναμε παραπάνω μπορεί να εφαρμοστεί και για τις πύλες NOR. Στο Σχήμα 3.7, φαίνονται οι τρόποι με τους οποίους κάθε βασική πύλη μπορεί 6

να μετατραπεί σε NOR (κατ αντιστοιχία με το Σχήμα 3.6). Έχοντας αυτό υπόψη η πύλη NOR θεωρείται μαζί με την πύλη ΝΑΝD ως οικουμενικές (universal) πύλες: Σχήμα 3.8 Το γεγονός ότι οι πύλες ΝΑND και NOR κατέχουν την ιδιότητα της οικουμενικότητας, είναι ιδιαίτερα σημαντικό για την κατασκευή περίπλοκων λογικών κυκλωμάτων. Έτσι, αντί να κατασκευάζονται κυκλώματα με διαφορετικά είδη πυλών, η βιομηχανία κατασκευάζει κυκλώματα κάνοντας χρήση μόνο ενός είδους οικουμενικής πύλης, γεγονός που όπως είναι φυσικό απλοποιεί τη μαζική παραγωγή και ρίχνει δραματικά το κόστος της. 3.6 Πύλες με περιττή (odd) λειτουργία Όπως έχει ήδη αναφερθεί, η πύλη XOR υλοποιεί την πράξηα Β = Α Β+ΑΒ. Η έξοδός της είναι όταν μόνο μία από τις εισόδους της είναι. Η ΧΝΟR υλοποιεί τη συνάρτηση ΧΥ+(ΧΥ), κάτι που προκύπτει είτε από τον πίνακα αλήθειας της είτε από την αντιστροφή της αντίστοιχης XOR. Για την XOR ισχύουν οι ταυτότητες του Πίνακα 3.7 που ακολουθεί: 3 5 7 Χ =X X X= X Y =(X Y) Χ Υ=Υ Χ 2 4 6 8 Χ =X X X = X Y=(X Y) Χ (Υ Ζ)=(Χ Υ) Ζ=Χ Υ Υ Πίνακας 3.7 Όλες οι ταυτότητες αυτές μπορούν να επαληθευτούν με τη χρήση είτε πινάκων αλήθειας είτε αλγεβρικών πράξεων. Ωστόσο, αν και η φυσική σημασία της XOR είναι φανερή για δύο εισόδους, δεν συμβαίνει το ίδιο για μια XOR με τρεις εισόδους. Στην περίπτωση αυτή θα μετατρέψουμε τις XOR όπως ακολούθως: Χ Υ Ζ =(ΧΥ +Χ Υ) Ζ+(ΧΥ +Χ Υ)Ζ =(ΧΥ+Χ Υ )Ζ+(ΧΥ +Χ Υ)Ζ 7

=ΧΥΖ+Χ Υ Ζ+ΧΥ Ζ +Χ ΥΖ Παρατηρώντας προσεκτικά την τελική συνάρτηση, προκύπτει ότι αυτή θα έχει έξοδο είτε όταν μία μόνο από τις εισόδους είναι και οι άλλες, είτε όταν και οι τρεις είσοδοι είναι. Με άλλα λόγια, η έξοδός της είναι όταν των πλήθος των στην είσοδο είναι περιττό ( ή 3). Η ίδια παρατήρηση θα προκύψει και στην περίπτωση περισσότερων (τεσσάρων ή και παραπάνω) εισόδων. Για αυτό το λόγο η πύλη XOR λέγεται ότι έχει περιττη (odd) λειτουργία. Μια άμεση εφαρμογή αυτής της ιδιότητας ακολουθεί στο Παράδειγμα 3.6 που ακολουθεί: Παράδειγμα 3.6 Κατά την αποστολή ενός ψηφιακού μηνύματος, είναι πιθανόν κάποια δεδομένα να χαθούν λόγω θορύβου. Για αυτό το λόγο συχνά χρησιμοποιούμε ένα επιπλέον σήμα για έλεγχο, το οποίο αποστέλλουμε μαζί με το αρχικό σήμα. Όταν το νέο σήμα φτάνει στον προορισμό, τότε ελέγχεται και πάλι με τη βοήθεια του σήματος ελέγχου, και εάν υπάρχει κάποιο πρόβλημα κάνουμε τις απαραίτητες ενέργειες για τη διόρθωση του σφάλματος. Η πιο απλή μορφή ενός τέτοιου σήματος ελέγχου είναι με τη χρήση του bit ισοτιμίας (parity bit), που μπορεί να είναι είτε άρτια είτε περιττή. Στην περίπτωση της άρτιας ισοτιμίας, το bit αυτό προστίθεται στο αρχικό σήμα και λαμβάνει την τιμή ή έτσι ώστε ο συνολικός αριθμός των στο νέο σήμα να είναι άρτιος αριθμός. Στον προορισμό, εάν το πλήθος των είναι άρτιο, τότε υποθέτουμε ότι η μετάδοση έγινε σωστά, ενώ εάν το πλήθος είναι περιττό, τότε η μετάδοση έχει σίγουρα κάποιο σφάλμα. Αντίστοιχα εργαζόμαστε και στην περιττή ισοτιμία. Σημειώνεται βέβαια ότι εάν συμβούν λάθη σε δύο σημεία του μηνύματος, τότε ο έλεγχος της ισοτιμίας δεν θα λειτουργήσει σωστά (η μέθοδος αυτή είναι αρκετά πρωτόγονη). Στο παράδειγμα αυτό θα κατασκευάσουμε ένα κύκλωμα που να δημιουργεί ένα bit άρτιας ισοτιμίας για ένα ψηφιακό σήμα τριών bits. Για την κατασκευή του κυκλώματος θα ακολουθήσουμε πρώτα το κλασικό τρόπο κατασκευής, κάνοντας πρώτα τον πίνακα αλήθειας και υλοποιώντας τον με τη χρήση πυλών ΑΝD, OR και ΝΟΤ. Στη συνέχεια, θα χρησιμοποιήσουμε την περιττή λογική της XOR για να παρουσιάσουμε ένα πολύ απλούστερο κύκλωμα που επιτελεί την ίδια λειτουργία. Ο πίνακας αλήθειας 3.8 της γεννήτριας άρτιας ισοτιμίας φαίνεται στη συνέχεια: Μήνυμα Bit άρτιας ισοτιμίας Χ Υ Ζ P 8

Πίνακας 3.8 Από τον πίνακα αλήθειας, προκύπτει ότι: P=X Y Z+X YZ +XY Z +XYZ Όπως είναι φανερό, η συνάρτηση βρίσκεται ήδη σε αρκετά απλοποιημένη μορφή, κατά συνέπεια οι επιπλέον αλγεβρικές πράξεις δεν θα προσφέρουν ιδιαίτερη βοήθεια. Το κύκλωμα του Σχήματος 3.9 υλοποιεί τη συνάρτηση Ρ με τις κλασικές πύλες: Σχήμα 3.9.α Μολονότι θα μπορούσαμε να τοποθετήσουμε διαφορετικά τις πύλες και τις συνδέσεις, το κύκλωμα που προκύπτει είναι αρκετά περίπλοκο, ιδιαίτερα στη συνδεσμολογία του. Ωστόσο, μια δεύτερη ματιά στον Πίνακα 3.8, έχει ως αποτέλεσμα την παρατήρηση ότι η Ρ έχει ως αποτέλεσμα το μόνο όταν το πλήθος των των εισόδων είναι περιττό. Αυτό σημαίνει βέβαια ότι η Ρ μπορεί να υλοποιηθεί ως Ρ=Χ Υ Ζ, όπως στο Σχήμα 3.9.β X Y P Z Σχήμα 3.9.β Όταν το σήμα φτάσει στον προορισμό του, αποτελείται από 4 bits (τρεις είσοδοι και ένα bit ισοτιμίας). Τώρα, ένα νέο κύκλωμα θα ελέγξει το πλήθος των. Η έξοδός του PC θα είναι εάν συμβεί λάθος, εάν δηλαδή το σήμα που λαμβάνεται έχει περιττό πλήθος bits. Και πάλι, έχοντας τον ίδιο τρόπο σκέψης, είναι προφανές ότι η συνάρτη- 9

ση PC θα αναλύεται ως PC = X Y Z P, οπότε η κατασκευή του κυκλώματος ελέγχου θα είναι επίσης πολύ απλή. Παράδειγμα 3.7 Στο παράδειγμα αυτό, θα κατασκευάσουμε ένα κύκλωμα που θα προσθέτει δύο δυαδικά ψηφία, θα είναι δηλαδή ένας ψηφιακός αθροιστής. Το πλήθος των εισόδων θα είναι φυσικά δύο (έστω Α και Β). Ωστόσο, όπως έχουμε ήδη μελετήσει σε προηγούμενο κεφάλαιο, η πρόσθεση δύο bits έχει τα αποτελέσματα του Πίνακα 3.9 (όπου για την πρόσθεση χρησιμοποιούμε τη λέξη συν και όχι το σύμβολο): Α Β F=A (συν) Β C (Κρατούμενο) Πίνακας 3.9 Το ενδιαφέρον σε αυτή την περίπτωση είναι ότι υπάρχουν περισσότερες από μία έξοδοι. Έτσι, ενώ στις τρεις πρώτες γραμμές του Πίνακα 3.9 υπάρχει πλήρες αποτέλεσμα με μία έξοδο, στην τελευταία γραμμή του πίνακα το άθροισμα των και θα δώσει ως αποτέλεσμα για την F και για το κρατούμενο. Το κρατούμενο δεν μπορεί να χαθεί, κατά συνέπεια του αντιστοιχίζουμε μία ακόμη έξοδο, τη C. Οι λογικές συναρτήσεις που προκύπτουν από τον πίνακα είναι αρκετά απλές. Πράγματι: F = A B+AB = A B και C = AB Το κύκλωμα που προκύπτει είναι εξίσου απλό και φαίνεται στο Σχήμα 3. A B F C Σχήμα 3. Το κύκλωμα αυτό είναι γνωστό και ως ημιαθροιστής (half adder). 3.7 Ανάλυση συνδυαστικών κυκλωμάτων Ένα συνδυαστικό κύκλωμα αποτελείται από ένα σύνολο από ψηφιακές εισόδους, ένα σύνολο από διασυνδεδεμένες πύλες και ένα σύνολο ψηφιακών εξόδων. 2

Όπως φαίνεται στο Σχήμα 3., το κύκλωμα δέχεται τα σήματα των εισόδων, οι πύλες τα συνδυάζουν και τα αποτελέσματα φαίνονται στις εξόδους, οι οποίες μπορούν να είναι περισσότερες από μία. Όπως γνωρίζουμε, οι Ν είσοδοι μπορούν να έχουν 2Ν διαφορετικούς συνδυασμούς. Για κάθε έναν από τους συνδυασμούς εισόδων θα υπάρχει ένας και μόνο συνδυασμός των Μ εξόδων. Υπό την έννοια αυτή, κάθε έξοδος μπορεί να θεωρηθεί ως διαφορετική συνάρτηση boole και όλο το κύκλωμα μπορεί να θεωρηθεί ως ένα σύστημα συναρτήσεων boole. N είσοδοι...... κύκλωμα Μ έξοδοι...... Σχήμα 3. Η ανάλυση του κυκλώματος συνίσταται στην εύρεση της εργασίας που επιτελεί. Σημαντικό βήμα προς το στόχο αυτό είναι ο υπολογισμός των συναρτήσεων που υλοποιεί. Για το σκοπό αυτό μπορεί να χρησιμοποιηθεί ο πίνακας αλήθειας του κυκλώματος, ή (εφόσον το κύκλωμα είναι αρκετά απλό) η προσεκτική παρατήρηση και καταγραφή των ενδιάμεσων εξόδων. Θα πρέπει βέβαια να σημειωθεί ότι το τελικό συμπέρασμα του τι ακριβώς κάνει ένα κύκλωμα είναι μια αρκετά δύσκολη υπόθεση, όπως και κάθε πράξη αντίστροφης μηχανικής (reverse engineering). Στο παράδειγμα 3.8 που ακολουθεί, κατασκευάζουμε τις συναρτήσεις απευθείας από την παρατήρηση του λογικού κυκλώματος, ενώ στο παράδειγμα 3.9 κατασκευάζουμε τον πίνακα αλήθειας ενός άλλου κυκλώματος. Παράδειγμα 3.8 Δίνεται το κύκλωμα του Σχήματος 3.2.α. Το κύκλωμα αυτό δεν επιτελεί κάποια ιδιαίτερη λειτουργία και σχεδιάζεται μόνο για λόγους διδακτικούς. Να καταγραφούν οι συναρτήσεις των εξόδων του. Σχήμα 3.2.α Το πρώτο βήμα είναι η αντιστοίχηση κάθε ενδιάμεσης εξόδου με ένα αυθαίρετο σύμβολο, όπως στο Σχήμα 3..β. 2

Σχήμα 3.2.β Από την αντιστοίχηση αυτή προκύπτει ότι: K=A L=AB M=C+D N=L M F=(K+N) Z=MD Έχοντας τα παραπάνω υπόψη, ξεκινούμε από τις εξόδους προς τις εισόδους (από δεξιά προς τα αριστερά) αντικαθιστώντας κάθε φορά τα ενδιάμεσα σύμβολα. Έτσι: F = (Κ + N) = (A + (L M)) = (A +((AB) (C+D))) Στο σημείο αυτό, έχουμε εκφράσει την F ως συνάρτηση αποκλειστικά των εισόδων. Τώρα, μπορούμε να απλοποιήσουμε την F με αλγεβρικούς μετασχηματισμούς ή άλλες μεθόδους. Η έξοδος Ζ=MD μετασχηματίζεται γρηγορότερα ως εξής: Ζ = ΜD = (C+D)D = CD+D =C 3.8 Μία εφαρμογή ο Πλήρης Αθροιστής Στην παράγραφο αυτή, εξετάζουμε ένα δημοφιλές κύκλωμα, το πλήρη αθροιστή. Θα ξεκινήσουμε αναλύοντας ένα έτοιμο κύκλωμα και στη συνέχεια θα προχωρήσουμε τη μελέτη σε αθροιστές πολλών δυαδικών ψηφίων. Ξεκινώντας, ας θεωρήσουμε το κύκλωμα του Σχήματος 3.3. Θα κατασκευάσουμε τον πίνακα αλήθεια του και θα προσπαθήσουμε να εξηγήσουμε τη λειτουργία του. 22

Σχήμα 3.3 Στο κύκλωμα του Σχήματος 3.3 έχουμε ήδη σημειώσει τις επτά ενδιάμεσες εξόδους των πυλών με τα σύμβολα Κ, L, M, N, R, Q και R. Το κύκλωμα έχει τρεις εισόδους, άρα θα έχει 23=8 γραμμές, και δύο εξόδους. Κάθε είσοδος, κάθε ενδιάμεση έξοδος και κάθε έξοδος θα έχει τη δική της στήλη στον πίνακα αλήθειας (Πίνακας 3.). A B C K L M N P Πίνακας 3. G Q R F Είναι προφανές ότι η σειρά με την οποία καταγράφονται οι στήλες εξαρτάται από τη λογική σειρά που ακολουθείται στο κύκλωμα. Έτσι, για παράδειγμα πρώτα θα καταγράψουμε και θα συμπληρώσουμε την Ρ και μετά την R. Όμοια, η μία από τις εξόδους (G) θα καταγραφεί και θα συμπληρωθεί πριν την R, καθώς η R προκύπτει από ένα AND της P και του συμπληρώματος της G. Η συζήτηση για το τι ακριβώς επιτελεί αυτό το κύκλωμα είναι περισσότερο περίπλοκη και απαιτεί προσεκτική μελέτη των εξόδων σε συνδυασμό με τις εισόδους τους. Η διαδικασία αυτή δεν είναι τυποποιημένη και έγκειται περισσότερο στην παρατηρητικότητα και την εμπειρία του αναλυτή. Στον Πίνακα 3. που ακολουθεί, επαναλαμβάνουμε τον Πίνακα 3., χωρίς τις ενδιάμεσες εξόδους: A B C G F 23

Πίνακας 3. Παρατηρώντας προσεκτικά κάθε γραμμή του πίνακα, μπορούμε να διακρίνουμε ότι εάν θεωρήσουμε οτι προσθέτουμε τις τιμές των εισόδων, τότε η έξοδος F θα είναι το άθροισμα των A, B και C, ενώ η έξοδος G μπορεί να θεωρηθεί ως το κρατούμενο αυτής της πρόσθεσης. Για παράδειγμα, στην 6η γραμμή του πίνακα, το άθροισμα ++ είναι και κρατούμενο, ενώ στην 8η γραμμή του πίνακα το άθροισμα ++ είναι και κρατούμενο. Κατά συνέπεια, το κύκλωμα που αντιστοιχεί στον πίνακα αυτόν είναι και πάλι ένας αθροιστής. Ο πλήρης αθροιστής Ο αθροιστής που περιγράφουμε λέγεται πλήρης αθροιστής (full adder). Σε έναν πλήρη αθροιστή, οι βασικές είσοδοι είναι δύο και αντιστοιχίζονται στα δύο σημαντικά bits που προστίθενται, ενώ η τρίτη είσοδος αφορά σε ένα κρατούμενο από μία προηγούμενη πράξη. Οι έξοδοι είναι φυσικά δύο, καθώς το μεγαλύτερο άθροισμα αντιστοιχεί στον αριθμό 3 = 2. Έχοντας υπόψη τον πίνακα αλήθειας 3., μπορούμε να βρούμε τις αντίστοιχες αλγεβρικές αναπαραστάσεις για τις δύο εξόδους, που είναι οι εξής: F = A B C+A BC +AB C +ABC και G = A BC+AB C+ABC +ABC, το οποίο αλγεβρικά μπορεί να μετατραπεί σε G=AB+AC+BC. Η κατασκευή του κυκλώματος, θα οδηγήσει σε ένα κύκλωμα παρόμοιο (αλλά όχι ίδιο) με το κύκλωμα του Σχήματος 3.3. Ωστόσο, ο πλήρης αθροιστής μπορεί να κατασκευαστεί και με απλούστερο τρόπο. Όπως φαίνεται στο Σχήμα 3.4, μπορεί να κατασκευαστεί με το συνδυασμό δύο ημιαθροιστών και μιας πύλης OR. Σχήμα 3.4 24

Από το Σχήμα 3.4, προκύπτουν και οι τελικές συναρτήσεις για τον πλήρη αθροιστή: F = A B C και G = AB+C(A B) Επέκταση σε μεγαλύτερους αριθμούς Στο παράδειγμα αυτό θα κατασκευάσουμε έναν αθροιστή για δύο δυαδικούς αριθμούς των 4 bits. Ο αθροιστής θα χρησιμοποιεί το κύκλωμα του πλήρη αθροιστή που ήδη περιγράψαμε στο Σχήμα 3.4, με τη διαφορά ότι θα θεωρήσουμε τον πλήρη αθροιστή ως ένα κλειστό, ολοκληρωμένο κύκλωμα. Αυτό σημαίνει ότι δε μας απασχολεί πλέον η διάταξη των πυλών στο εσωτερικό του πλήρη αθροιστή, αλλά η γενική λειτουργία που επιτελεί, εξετάζοντάς την ένα επίπεδο πιο πάνω από το επίπεδο των πυλών. Στο Σχήμα 3.5, φαίνεται ο πλήρης αθροιστής (FA) ως «κλειστό» κουτί, το οποίο έχει τρεις εισόδους και δύο εξόδους. Για λόγους ομοιομορφίας, θα ονομάσουμε τις δύο εισόδους των δεδομένων ως Χ και Υ και την είσοδο που αφορά στο προηγούμενο κρατούμενο ως Cin (carry in). Οι έξοδοι θα ονομαστούν S (sum) για το άθροισμα και Cout (carry out) για το κρατούμενο εξόδου. Χ Υ S Cout FA Cin Σχήμα 3.5 Θα αναπαραστήσουμε τους δύο αριθμούς των 4 bits ως Χ3Χ2ΧΧ και Υ3Υ2ΥΥ. Το άθροισμά τους θα είναι ο αριθμός S3S2SS. Το ψηφίο με δείκτη είναι το λιγότερο σημαντικό ψηφίο των αριθμών ενώ το ψηφίο με δείκτη 3 είναι το περισσότερο σημαντικό ψηφίο τους. Κατά την πρόσθεση δύο δυαδικών αριθμών, όπως έχουμε περιγράψει και σε προηγούμενο κεφάλαιο, ξεκινούμε προσθέτοντας τα λιγότερο σημαντικά ψηφία και, εφόσον προκύψει κρατούμενο, το προσθέτουμε και αυτό στα ψηφία της αμέσως μεγαλύτερης σημαντικής θέσης. Κατά συνέπεια, αρχικά θα πρέπει να προσθέσουμε τα ψηφία Χ και Υ, από τα οποία θα προκύψει το S. Από την πρόσθεση αυτή θα προκύψει το κρατούμενο Cout, (η τιμή του οποίου θα είναι είτε είτε ), το οποίο θα εισαχθεί ως κρατούμενο εισόδου στην επόμενη πρόσθεση που θα αφορά στα ψηφία Χ και Υ. Η διαδικασία θα συνεχίσει έως ότου προστεθούν τα ψηφία Χ3 και Υ3 μαζί με το κρατούμενο Cout2. Προσέξτε ότι εάν υπάρχει υπερχείλιση κατά την πρόσθεση, θα μεταφέρεται από το τελικό κρατούμενο Cout3. Η συνολική διαδικασία φαίνεται στο Σχήμα 3.6. Το σχήμα αυτό μελετάται από δεξιά προς τα αριστερά, αν και μπορεί να τοποθετηθεί με οποιονδήποτε τρόπο. Ο κάθε αθροιστής ονομάζεται σύμφωνα με τα ψηφία που προσθέτει, ενώ κατά την πρόσθεση των ψηφίων X και Υ, το κρατούμενο εισόδου Cin είναι προφανώς σταθερά. 25

Χ2 Υ2 Χ3 Υ3 S3 Cout3 FA3 S2 Cin3=Cout2 FA2 Χ Υ Χ Υ S FA Cin2=Cout S FA Cin= Cin=Cout Σχήμα 3.6 Είναι προφανές ότι ο αθροιστής αυτός μπορεί να μεγαλώσει όσο χρειάζεται για να προσθέτει αριθμούς οσοδήποτε μεγάλους. Η λογική που χρησιμοποιήσαμε, μπορεί να χρησιμοποιηθεί και σε κυκλώματα που κάνουν διαφορετικές λειτουργίες. Έτσι, θα μπορούσαμε να κατασκευάσουμε έναν αφαιρέτη αριθμών με περισσότερα από 2 bits, ένα κύκλωμα σύγκρισης αριθμών κ.ο.κ., χρησιμοποιώντας πάντα απλούστερα κυκλώματα και όχι σχεδιάζοντας από την αρχή το κατάλληλο κύκλωμα. Άλλα πολύ σημαντικά τέτοια κυκλώματα είναι οι πολυπλέκτες και αποκωδικοποιητές, η περιγραφή των οποίων εύκολα βρίσκεται στη βιβλιογραφία. 3.9 Ακολουθιακά κυκλώματα Τα ψηφιακά κυκλώματα ανήκουν σε δύο μεγάλες κατηγορίες: τα συνδυαστικά (combinatorial) και τα ακολουθιακά (sequential). Και τα δύο είδη κυκλωμάτων αποτελούνται από πύλες και συνδέσεις, ωστόσο η διαφορά μεταξύ τους σχετίζεται με τη συμπεριφορά τους κατά τη διάρκεια του χρόνου. Έτσι: Στα συνδυαστικά κυκλώματα οι έξοδοι των πυλών εξαρτώνται αποκλειστικά από τις παρούσες εισόδους τους στη δεδομένη χρονική στιγμή. Στα ακολουθιακά κυκλώματα εμπεριέχονται και στοιχεία μνήμης. Αυτό σημαίνει ότι οι έξοδοι δεν εξαρτώνται μόνο από τις εισόδους σε μια δεδομένη χρονική στιγμή, αλλά και από τις προηγούμενες τιμές που έχουν ήδη αποθηκευτεί σε αυτά τα στοιχεία μνήμης. Δεδομένου ενός ψηφιακού κυκλώματος, είναι εύκολο να διακρίνουμε σε ποια από τις δύο κατηγορίες ανήκει: τα συνδυαστικά κυκλώματα δεν περιέχουν στοιχεία ανάδρασης (επανατροφοδότησης ενός σήματος εξόδου μίας πύλης προς την είσοδο της ίδιας της πύλης) ούτε στοιχεία μνήμης. Η μορφή ενός ακολουθιακού κυκλώματος φαίνεται στο Σχήμα 3.6 που ακολουθεί. Συνδυαστικό κύκλωμα Στοιχείο μνήμης Σχήμα 3.7 26

Μολονότι η σχεδίαση και ανάλυση των ακολουθιακών κυκλωμάτων έχει ιδιαίτερο ενδιαφέρον, η πλήρης και αναλυτική περιγραφή τους ξεφεύγει κατά πολύ από τους σκοπούς μας. Ωστόσο, στην παράγραφο αυτή θα περιγράψουμε τη λειτουργία ενός πολύ σημαντικού τέτοιου, του μανδαλωτή, καθώς χρησιμοποιείται στην κατασκευή άλλων ακολουθιακών κυκλωμάτων. 3.9. Ο Μανδαλωτής (SR-latch) Το βασικό κύκλωμα μανδαλωτή (SR-latch), αποτελείται από δύο πύλες NAND ή δύο πύλες NOR, δύο εισόδους και δύο εξόδους. Οι δύο είσοδοι ονομάζονται S και R (set-θέση και reset-) αντίστοιχα. Οι δύο έξοδοι ονομάζονται Q και Q, πρόκειται δηλαδή ουσιαστικά για ένα σήμα και το συμπλήρωμά του. Η πλήρης περιγραφή του μανδαλωτή φαίνεται στη συνέχεια στο κύκλωμα του Σχήματος 3.8. (α) Υλοποίηση με NOR (β) Υλοποίηση με NAND Σχήμα 3.8 Όπως φαίνεται στο Σχήμα 3.8, και στις δύο περιπτώσεις της υλοποίησης του μανδαλωτή, είναι φανερή η ανατροφοδότηση των σημάτων. Έτσι, στην περίπτωση του αριστερού σχήματος (α), το σήμα από την έξοδο Q οδηγείται στην είσοδο όπου εισάγεται και η S, ενώ το σήμα από την έξοδο της Q οδηγείται ξανά μαζί με την είσοδο R. Κάτι ανάλογο συμβαίνει και στο Σχήμα (β). Όπως είναι φανερό η μελέτη της λειτουργία αυτού του κυκλώματος δεν μπορεί να μελετηθεί όπως στην περίπτωση των συνδυαστικών κυκλωμάτων. Στην περίπτωση του μανδαλωτή σημασία έχει η σειρά με την οποία αλλάζουν οι είσοδοι. Για την περιγραφή της λειτουργίας αυτής χρησιμοποιείται ένας πίνακας λειτουργίας (function table), και όχι πίνακας αλήθειας. Στον Πίνακα 3.2.α φαίνεται η λειτουργία του κυκλώματος υλοποίησης με NOR, ενώ στον Πίνακα 3.2.β φαίνεται η λειτουργία με πύλες NAND. S R Q Q Κατάσταση Θέση (set) S Επαναφορά (reset) Απροσδιόριστη Πίνακας 3.2.α R Q Q κατάσταση Θέση (set) Επαναφορά (reset) Απροσδιόριστη Πίνακας 3.2.β 27

Ο μανδαλωτής (υλοποίηση με NOR) έχει δύο εισόδους, την S (set θέση) και την R (reset επαναφορά). Επιπλέον, λέμε ότι το κύκλωμα βρίσκεται σε δύο πιθανές καταστάσεις, την κατάσταση Θέσης και την κατάσταση Επαναφοράς. Όταν οι έξοδοι Q και Q έχουν τις τιμές και αντίστοιχα, τότε ο μανδαλωτής βρίσκεται σε κατάσταση Θέσης. Όταν οι Q και Q έχουν τις τιμές και αντίστοιχα, τότε το κύκλωμα βρίσκεται σε κατάσταση επαναφοράς. Όπως είναι φανερό, οι έξοδοι Q και Q είναι συνήθως διαφορετικές (η μία είναι το συμπλήρωμα της άλλης). Όταν συμβεί οι δύο έξοδοι να έχουν την ίδια τιμή ( και στον Πίνακα 3.2.α), τότε το κύκλωμα βρίσκεται σε απροσδιόριστη κατάσταση. Υπό κανονικές συνθήκες λειτουργίας, οι δύο είσοδοι παραμένουν ίσες με το. Τα σήματα των εισόδων μπορούν να αλλάξουν όταν θέλουμε ο μανδαλωτής να αλλάξει κατάσταση. Για παράδειγμα, μία στιγμιαία εφαρμογή ενός στην είσοδο S θα έχει ως αποτέλεσμα το κύκλωμα να έρθει σε κατάσταση θέσης. Το σήμα στην S θα επιστρέψει στο σχεδόν αμέσως και οπωσδήποτε πριν συμβεί οποιαδήποτε άλλη αλλαγή. Κάθε εφαρμογή μιας τιμής σε οποιαδήποτε από τις εισόδους θα πρέπει να είναι στιγμιαία και αμέσως μετά η τιμή εισόδου θα πρέπει να επιστρέφει στο. Όπως φαίνεται από τον πίνακα λειτουργίας 3.2.α, ο μανδαλωτής μπορεί να βρίσκεται είτε σε κατάσταση θέσης είτε σε κατάσταση επαναφοράς. Για να προκύψει η κατάσταση θέσης, θα πρέπει να ισχύουν και οι δύο παρακάτω προϋποθέσεις:. Να εφαρμοστεί ένα στιγμιαίο στην είσοδο S. Αυτή η εφαρμογή θα έχει ως αποτέλεσμα το κύκλωμα να έρθει σε κατάσταση θέσης. 2. Να αφαιρεθεί το από την είσοδο S. Εφόσον το κύκλωμα είναι σε κατάσταση θέσης, αυτή η κατάσταση θα εξακολουθήσει να ισχύει μέχρι την επόμενη αλλαγή. Με παρόμοιο τρόπο, για να φέρουμε το κύκλωμα σε κατάσταση επαναφοράς, θα πρέπει να εφαρμόσουμε ένα στιγμιαίο στην είσοδο R. Αφαιρώντας το από την R το κύκλωμα θα παραμείνει σε κατάσταση επαναφοράς. Έχοντας υπόψη την ανάλυση που προηγήθηκε, προκύπτει ότι εάν οι δύο είσοδοι έχουν την τιμή, τότε για να γνωρίζουμε την κατάσταση του μανδαλωτή θα πρέπει οπωσδήποτε να γνωρίζουμε σε ποια είσοδο εφαρμόστηκε στην προηγούμενη χρονική περίοδο. Διαφορετικά είναι αδύνατον να αντιληφθούμε εάν οι μανδαλωτής είναι σε κατάστασης θέσης ή σε κατάσταση επαναφοράς. Εάν και στις δύο εισόδους εφαρμοστεί, τότε και οι δύο έξοδοι θα γίνουν. Το φαινόμενο αυτό έρχεται σε αντίθεση με την προϋπόθεση οι δύο έξοδοι να είναι συμπληρωματικές. Επιπλέον, δεν είναι ξεκάθαρο το σε ποια κατάσταση θα έρθει το κύκλωμα όταν και οι δύο είσοδοι θα επιστρέψουν στο. Κατά συνέπεια, η περίπτωση αυτή θα πρέπει να αποφεύγεται ή και να απαγορεύεται εντελώς, κάτι που μπορεί να γίνει με την προσθήκη κάποιου επιπλέον κυκλώματος πριν την είσοδο. Στην υλοποίηση με πύλες NAND η λειτουργία είναι παρόμοια, με τη διαφορά ότι η αλλαγή κατάστασης υλοποιείται με την εφαρμογή ενός στιγμιαίου σε μια από τις εισόδους. 28

3.9.2 Ελεγχόμενος μανδαλωτής D-latch Η λειτουργία του απλού μανδαλωτή μπορεί να βελτιωθεί με την προσθήκη μιας επιπλέον εισόδου η οποία θα καθορίζει το πότε είναι εφικτή η αλλαγή κατάστασης. Στο Σχήμα 3.9 και στον Πίνακα 3.3 φαίνεται το βελτιωμένο κύκλωμα, μαζί με τον πίνακα λειτουργίας του. Σχήμα 3.9 C S - R - Επόμενη κατάσταση του Q Καμία αλλαγή Καμία αλλαγή Q=, κατάσταση επαναφοράς Q=, κατάσταση θέσης Απροσδιόριστο Πίνακας 3.3 Όταν η είσοδος C είναι, τότε οι δύο αρχικές NAND δίνουν οπωσδήποτε. Αυτό σημαίνει ότι οποιοδήποτε και να είναι το σήμα των S και R, δεν πρόκειται να φτάσει στο δεύτερο επίπεδο των πυλών. Κατά συνέπεια, σε αυτή την περίπτωση η είσοδος C λειτουργεί ως διακόπτης που απαγορεύει τη λειτουργία του μανδαλωτή. Όταν όμως το C γίνει, τότε ο μανδαλωτής θα λειτουργήσει κανονικά σύμφωνα με τον πίνακα λειτουργίας του. Η κατάσταση θέσης θα συμβεί όταν C=, S= και R=. Η κατάσταση επαναφοράς θα συμβεί όταν C=, S= και R=. Σε κάθε περίπτωση, όταν το C επιστρέψει στο δεν θα συμβεί καμία αλλαγή στις εξόδους. Επιπρόσθετα, όταν C=, S= και R= οι έξοδοι δεν θα αλλάξουν. Ωστόσο, η περίπτωση C=, S=, R= και πάλι οδηγεί σε απροσδιόριστη κατάσταση, καθώς οι δύο πρώτες NAND θα δώσουν στην έξοδό τους. Τότε, σύμφωνα με τον Πίνακα 3.2.β, δεν μπορούμε να γνωρίζουμε την επόμενη κατάσταση, καθώς αυτό θα εξαρτηθεί από το ποια από τις εισόδους θα επανέλθει από το στο γρηγορότερα. Ένας τρόπος για να αποφύγουμε αυτή την περίπτωση, περιγράφεται στο Σχήμα 3.2 και τον Πίνακα 3.4. Σε αυτόν τον μανδαλωτή, ουσιαστικά απαγορεύουμε στις εισόδους να έχουν την ίδια τιμή, με την προσθήκη μιας επιπλέον NAND που παίζει το ρόλο του αντιστροφέα. 29

Σχήμα 3.2 C D - Επόμενη κατάσταση του Q Καμία αλλαγή Q=, επαναφορά Q=, θέση Πίνακας 3.4 Σημειώνεται ότι σε αυτόν τον μανδαλωτή υπάρχει μόνο μία είσοδος, η είσοδος D και μία είσοδος ελέγχου. Ο μανδαλωτής αυτός λειτουργεί όταν C= και τίθεται σε κατάσταση θέσης όταν D=, ενώ τίθεται σε κατάσταση επαναφοράς όταν D=. Ο μανδαλωτής αυτός ονομάζεται D-latch, όπου το D προέρχεται από τη λέξη DATA (δεδομένα). Αυτό το κύκλωμα έχει την ιδιότητα να κρατά ένα δεδομένο, οπότε μπορεί να λειτουργήσει ως στοιχείο μνήμης, το οποίο αποθηκεύει ακριβώς bit πληροφορίας. Το κύκλωμα αλλάζει κατάσταση όταν C=, ωστόσο όταν το C γίνει, η προηγούμενη κατάσταση θα διατηρηθεί. Έχοντας υπόψη την παραπάνω ανάλυση, θα μπορούσαμε να δημιουργήσουμε μία συστοιχία από τέτοιους μανδαλωτές και να κατασκευάσουμε έτσι ένα καταχωρητή, μία λέξη στη μνήμη τυχαίας προσπέλασης κ.ο.κ. Σε μια τέτοια συστοιχία, η είσοδος C σε όλους τους μανδαλωτές μπορεί να πυροδοτείται από ένα κύκλωμα χρονισμού (ρολόι) το οποίο δημιουργεί παλμούς. Ωστόσο, κάποια προβλήματα στο χρονισμό τέτοιων συστοιχιών δεν επιτρέπουν τη χρήση των D-μανδαλωτών για τη δημιουργία ακολουθιακών κυκλωμάτων. Τα προβλήματα αυτά λύνονται με τη χρήση άλλων κυκλωμάτων, των flip-flops, στα οποία ειδικές διατάξεις επιλύουν το πρόβλημα του κοινού χρονισμού. Η μελέτη ωστόσο των flip-flops, ξεφεύγει από τους στόχους αυτού του κεφαλαίου και μπορεί εύκολα να αναζητηθεί στη βιβλιογραφία. 3. Ολοκλήρωση ψηφιακών κυκλωμάτων Η φιλοσοφία της δημιουργίας περίπλοκων κυκλωμάτων με τη χρήση απλούστερων, που περιγράφηκε στις προηγούμενες παραγράφους, ή με τη χρήση μόνο οικουμενικών πυλών, είναι εξαιρετικά σημαντική, καθώς επιταχύνει ιδιαίτερα και τον σχεδιασμό αλλά και την κατασκευή τους. Επιπλέον, το κόστος κατασκευής είναι πο- 3

λύ συχνά μικρότερο καθώς η βιομηχανία μπορεί να κατασκευάζει μεγάλους αριθμούς από απλά κυκλώματα φθηνά και γρήγορα. Η ιδέα αυτή, συνδυασμένη με τις κατάλληλες τεχνολογίες οι οποίες μειώνουν συνεχώς το μέγεθος των κυκλωμάτων και την ισχύ που καταναλώνουν, ονομάζεται ολοκλήρωση (integration). Ο σκοπός της διαδικασίας της ολοκλήρωσης είναι η δημιουργία ολοκληρωμένων κυκλωμάτων ή μικροτσιπ (integrated circuits - microchips). Ένα τέτοιο κύκλωμα είναι ένα ηλεκτρονικό κύκλωμα που έχει σμικρυνθεί και έχει κατασκευαστεί πάνω σε ένα λεπτό στρώμα ημιαγωγού υλικού πάνω σε μια επιφάνεια πυριτίου. Αποτελείται από ημιαγωγούς αλλά και άλλα, παθητικά στοιχεία. Το ολοκληρωμένο κύκλωμα περικλείεται από σκληρό πλαστικό κάλυμμα και φέρει ακροδέκτες με τους οποίους επιτυγχάνεται η τροφοδοσία, η γείωση αλλά και η μεταφορά ψηφιακών σημάτων προς και από το κύκλωμα (Εικόνα 3.). Εικόνα 3.: Μία EPROM Η κατασκευή ολοκληρωμένων κυκλωμάτων έγινε δυνατή ύστερα από κάποιες σημαντικές τεχνολογικές ανακαλύψεις, στα μέσα της δεκαετίας του 95. Η θεωρητική σύλληψη ανήκει στon G. Dummer, ο οποίος εργαζόταν στο Βρετανικό Υπουργείο Άμνυνας, ενώ οι πρώτες κατασκευές έγιναν από τους J. Kilby και R. Noyce, ο πρώτος από τους οποίους έλαβε το βραβείο Nobel φυσικής για το έτος 2 για τη συμβολή του σε αυτή την ανακάλυψη. Η αυτοματοποιημένη τοποθέτηση μεγάλων αριθμών από μικρά τρανσίστορς πάνω σε μια λεπτή επιφάνεια ήταν μια τεράστια εξέλιξη σε σύγκριση με την τοποθέτηση «με το χέρι» διαφόρων κυκλωμάτων πάνω σε πλακέτες. Οι παλιές μέθοδοι κατασκευής ηλεκτρονικών κυκλωμάτων πέρασαν γρήγορα σε αχρηστία, λόγω της πολύ μεγαλύτερης ταχύτητας κατασκευής, της μαζικής παρασκευής, της αξιοπιστίας, καθώς και της δυνατότητας χρήσης των ολοκληρωμένων κυκλωμάτων ως κομματιών ενός μεγαλύτερου συστήματος. Τα δυο μεγαλύτερα όμως πλεονεκτήματα των ολοκληρωμένων κυκλωμάτων είναι το πολύ μικρό κόστος και η πολύ καλή απόδοση. Το κόστος είναι τόσο μικρό, διότι ένα ολοκληρωμένο κύκλωμα με όλα τα υποσυστήματά του δεν κατασκευάζεται με κλασικούς τρόπους αλλά εκτυπώνεται με τη χρήση της φωτολιθογραφίας. Επιπλέον, το υλικό που χρησιμοποιείται είναι πολύ μικρού πραγματικού κόστους, καθώς 3

πρόκειται για κατασκευές ελάχιστης μάζας. Η καλή απόδοση των ολοκληρωμένων κυκλωμάτων, οφείλεται στην πολύ μεγάλη ταχύτητα λειτουργίας τους και στις χαμηλές ανάγκες τροφοδοσίας, καθώς όλα τα υποσυστήματα είναι πολύ μικρά και πολύ κοντά μεταξύ τους. Από το 26 και μετά σε ένα τετραγωνικό χιλιοστό επιφάνειας μπορούσαν να κατασκευαστούν πάνω από 6 transistors, ενώ η συνολική επιφάνεια που καλύπτει ένα ολοκληρωμένο κύκλωμα κυμαίνεται από μερικά τετραγωνικά χιλιοστά έως περίπου 3,5 εκατοστά. 3.. Γενιές Ολοκληρωμένων κυκλωμάτων Τα πρώτα ολοκληρωμένα κυκλώματα περιείχαν μόνο μερικά τρανσίστορς, το πλήθος των οποίων ήταν μερικές δεκάδες. Ανήκουν στη γενιά SSI (small scale integration) πολύ μικρής ολοκλήρωσης. Παρά τις μικρές δυνατότητές τους, χρησιμοποιήθηκαν κατά κόρον σε πολύ σημαντικές εφαρμογές, όπως στα διαστημόπλοια του προγράμματος Apollo ή στους πυραύλους minuteman. Η ευρεία χρήση τους σε τέτοιες εφαρμογές είχε και το αντίστροφο αποτέλεσμα, έδωσε δηλαδή την ευκαιρία για τη μαζικοποίηση της παραγωγής τους. Φυσικά, προς το τέλος της δεκαετίας του 96, εφαρμόστηκαν και σε άλλες συσκευές μαζικής χρήσης, όπως σε τηλεοράσεις και στερεοφωνικά υψηλής πιστότητας. Η επόμενη γενιά αποκαλείται ΜSI (medium scale integration) μέσης κλίμακας ολοκλήρωση και εμφανίζεται στο τέλος της δεκαετίας του 96. Αυτά τα ολοκληρωμένα κυκλώματα αποτελούνται πλέον από μερικές εκατοντάδες ή λίγες χιλιάδες τρανσίστορς, ενώ η εμφάνισή τους συνοδεύτηκε από μεγάλη εμπορική επιτυχία, καθώς με πολύ λίγο επιπλέον κόστος από τα MSI μπορούσαν να επιτελούν πολύ πιο περίπλοκες εργασίες. Στα μέσα της δεκαετίας του 97, εμφανίστηκε η γενικά LSI (large scale integration) μεγάλης κλίμακας ολοκλήρωση, όπου το πλήθος των τρανσίστορς σε ένα ολοκληρωμένο κύκλωμα μετράται σε κάποιες δεκάδες χιλιάδων. Έτσι, το 974, οι μικροεπεξεργαστές αποτελούνταν από περίπου τρανσίστορς. Η επόμενη μεγάλη τεχνολογική πρόοδος ξεκίνησε από το 98 και ουσιαστικά συνεχίζεται έως σήμερα. Πρόκειται για τα VLSI (very large scale integration) πολύ μεγάλης κλίμακας ολοκλήρωση. Οι αριθμοί πλέον είναι πολύ μεγαλύτεροι από τις προηγούμενες γενιές, καθώς ξεκινούν από μερικές εκατοντάδες χιλιάδων στις αρχές της δεκαετίας του 98 και φτάνουν σήμερα σε αρκετά δισεκατομμύρια τρανσίστορς ανά ολοκληρωμένο κύκλωμα. Τέλος, έχει προταθεί και ο όρος ULSI (ultra large scale integration) για ολοκληρωμένα με πλήθος μεγαλύτερο του ενός δισεκατομμυρίου τρανσίστορς. Επιπλέον προς τις παραπάνω κατηγορίες, υπάρχουν και άλλες κατηγορίες ολοκληρωμένων κυκλωμάτων, όπως τα WSI (wafer scale integration), SOC (system on a chip - Εικόνα 3.2) και τα 3D-IC (3 dimensional integrated circuits). Τα WSI αναπτύσσονται σε ένα ολόκληρο λεπτό τεμάχιο (wafer) πυριτίου, ενώ τα SOC είναι ολοκληρωμένα κυκλώματα που περιλαμβάνουν όλα τα υποσυστήματα ενός Υπολογιστή σε ένα ολοκληρωμένο κύκλωμα. Τέλος ένα τρισδιάστατο ολοκληρωμένο κύκλωμα αποτελείται όχι από ένα αλλά από περισσότερα επίπεδα από τρανσιστορς, τα ο- 32

ποία ολοκληρώνονται και διασυνδέονται όχι μόνο οριζόντια αλλά και κατακόρυφα. Σε κάθε περίπτωση, σε τέτοιες υλοποιήσεις το κόστος σχεδιασμού αυξάνεται, ενώ μπορεί να μειωθεί και η απόδοση κάποιων από τα επιμέρους τμήματα, ωστόσο βελτιώνεται κατά πολύ η συνολική ισχύς που απαιτεί το κύκλωμα, καθώς οι αποστάσεις ανάμεσα στα ενεργά στοιχεία είναι εξαιρετικά μικρές. Εικόνα 3.2: Το ολοκληρωμένο κύκλωμα στο εσωτερικό ενός Intel 8742, ένας 8-bit microcontroller που περιλαμβάνει μία CPU στα 2 MHz, 28 bytes RAM, 248 bytes EPROM, και I/O στο ίδιο chip. Θα πρέπει να σημειωθεί ότι η πρόοδος που περιγράφεται πιο πάνω, δεν οφείλεται σε κάποια εξαιρετικά μεγάλη και επαναστατική εφεύρεση. Πρόκειται για μια διαδικασία συνεχούς βελτίωσης στο σχεδιασμό (με τη χρήση λογισμικού που σχεδιάζει, τοποθετεί στο χώρο και ελέγχει την καλή λειτουργία ενός ολοκληρωμένου) αλλά και στην παραγωγή, με τη βελτίωση των συνθηκών καθαριότητας και την ελαχιστοποίηση των αιωρούμενων σωματιδίων μέσα στις γραμμές παραγωγής. Επιπλέον, κάποιες σημαντικές επιλογές στην τεχνολογία κατασκευής ημιαγωγών (όπως η προτίμηση της τεχνολογίας CMOS έναντι των τεχνολογιών PMOS και NMOS), βοήθησαν στην μείωση της κατανάλωσης ενέργειας. Όπως προαναφέρθηκε, το κόστος αρχικού σχεδιασμού ενός ολοκληρωμένου κυκλώματος μπορεί να είναι αρκετά μεγάλο, ενώ η μαζική κατασκευή του είναι αρκετά φθηνή. Ωστόσο, το γεγονός ότι ένα τέτοιο ολοκληρωμένο μπορεί να χρησιμοποιηθεί σε εκατοντάδες χιλιάδων διαφορετικές συσκευές (από ηλεκτρονικούς υπολογιστές έως κινητά τηλέφωνα), επιμερίζουν αυτό το κόστος σχεδιασμού σε πολλά μικρά τμήματα. Η τάση της σμίκρυνσης των ολοκληρωμένων κυκλωμάτων, μαζί με την τοποθέτηση όλο και περισσότερων ενεργών στοιχείων μέσα σε ένα ολοκληρωμένο κύκλωμα έχει αποδειχθεί ότι είναι ιδιαίτερα σταθερή και συνεχής. Έχει δε κωδικοποιηθεί και με το γνωστό νόμο του Moore, σύμφωνα με τον οποίο το πλήθος των τρανσίστορς σε ένα ολοκληρωμένο κύκλωμα διπλασιάζεται κάθε δύο χρόνια. Στην πραγματικότητα, όταν το μέγεθος μικραίνει, όλες οι άλλες παράμετροι βελτιώνονται: το κόστος κατασκευής πέφτει, η κατανάλωση ενέργειας μειώνεται και η ταχύτητα αυξάνεται. 33