Download as pdf or txt
Download as pdf or txt
You are on page 1of 241

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΨΗΦΙΑΚΗ ΣΧΕ∆ΙΑΣΗ ΙΙ

Α. Ν. ΣΚΟ∆ΡΑΣ
Καθηγητής
Σχολής Θετικών Επιστηµών και Τεχνολογίας
ΕΑΠ

ΓΙΑ ΤΗ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ


«Ψηφιακά Συστήµατα»
ΠΛΗ 21

ΠΑΤΡΑ 2003
ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Ψηφιακή Σχεδίαση ΙΙ
Copyright © 2003
Για την Ελλάδα και όλο τον κόσµο
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Οδός Παπαφλέσσα & Υψηλάντη, 26222 Πάτρα
Τηλ: (2610) 314094, 314206 / Φαξ:(6610) 317244

ΣΥΝΤΕΛΕΣΤΕΣ ΤΟΥ ∆Ι∆ΑΚΤΙΚΟΥ ΥΛΙΚΟΥ


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

Συγγραφή
ΑΝΑΣΤΑΣΙΟΣ ΣΚΟ∆ΡΑΣ
Καθηγητής Σχολής Θετικών Επιστηµών και Τεχνολογίας ΕΑΠ

Κριτική Ανάγνωση
ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΑΛΑΤΣΗΣ
Καθηγητής τµήµατος Πληροφορικής και Τηλεπικοινωνιών
Πανεπιστηµίου Αθηνών

Ακαδηµαϊκός Υπεύθυνος για την επιστηµονική επιµέλεια του υλικού


ΣΩΚΡΑΤΗΣ ΚΑΤΣΙΚΑΣ
Καθηγητής τµήµατος Μηχανικών Πληροφοριακών και
Επικοινωνιακών Συστηµάτων Πανεπιστηµίου Αιγαίου

Επιµέλεια στη µέθοδο της εκπαίδευσης από απόσταση


ΓΕΡΑΣΙΜΟΣ ΜΩΡΑΪΤΗΣ

Γλωσσική Επιµέλεια
ΕΛΠΙ∆Α ΒΑΚΑΛΟΓΛΟΥ

Συντονισµός ανάπτυξης εκπαιδευτικού υλικού


και γενική επιµέλεια των εκδόσεων
ΟΜΑ∆Α ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ/1997-2003

Σύµφωνα µε το Ν. 2121/1993,
απαγορεύεται η συνολική ή αποσπασµατική
αναδηµοσίευση του βιβλίου αυτού ή η αναπαραγωγή του
µε οποιοδήποτε µέσο, χωρίς την άδεια του εκδότη.
Ε ΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ


ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ∆ΩΝ

Πληροφορική

ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ

Ψηφιακά Συστήµατα

ΨΗΦΙΑΚΗ ΣΧΕ∆ΙΑΣΗ ΙΙ

ΠΑΤΡΑ 2003
1

ΚΕΦΑΛΑΙΟ 1 ΒΑΣΙΚΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ............................................................................................................ 3

ΕΝΟΤΗΤΑ 1.1. FLIP-FLOPS .................................................................................................................. 6


1.1.1. ΤΟ ΒΑΣΙΚΟ FLIP-FLOP .................................................................................................................. 6
1.1.2. ΧΡΟΝΙΖΟΜΕΝΑ FF ΤΥΠΟΥ SR .................................................................................................. 10
1.1.3. FF ΤΥΠΟΥ D ................................................................................................................................. 13
1.1.4. JK FLIP-FLOP................................................................................................................................ 14
1.1.5. Τ FLIP-FLOP.................................................................................................................................. 15
ΕΝΟΤΗΤΑ 1.2. ΠΥΡΟ∆ΟΤΗΣΗ ΤΩΝ FLIP-FLOPS............................................................................ 17
1.2.1. ΚΥΡΙΟ - ΕΞΑΡΤΗΜΕΝΟ JK FLIP-FLOP..................................................................................... 17
1.2.2. ΑΚΜΟΠΥΡΟ∆ΟΤΟΥΜΕΝΑ FLIP-FLOPS................................................................................. 21
1.2.3. ΚΥΚΛΩΜΑΤΑ ΑΝΙΧΝΕΥΣΗΣ ΑΚΜΩΝ ................................................................................... 26
ΕΝΟΤΗΤΑ 1.3. ΑΣΥΓΧΡΟΝΟΙ ΕΙΣΟ∆ΟΙ ΤΩΝ FLIP-FLOPS ............................................................ 29

ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ .......................................................................................................................... 33

ΒΙΒΛΙΟΓΡΑΦΙΑ ......................................................................................................................................... 34

ΑΠΑΝΤΗΣΕΙΣ ΤΩΝ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ................................................................ 35


ΑΠΟ∆ΟΣΗ ΑΓΓΛΙΚΩΝ ΟΡΩΝ ΣΤΗΝ ΕΛΛΗΝΙΚΗ.............................................................................. 40
2

ΚΕΦΑΛΑΙΟ 1 ΒΑΣΙΚΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

Στόχος του παρόντος κεφαλαίου είναι η εισαγωγή και γνωριµία του βασικού κυττάρου
µνήµης, που είναι το flip-flop. Το flip-flop αποτελεί το ουσιώδες δοµικό στοιχείο των
ακολουθιακών κυκλωµάτων, ακριβώς όπως η πύλη NAND είναι το ουσιώδες δοµικό
στοιχείο των συνδυαστικών κυκλωµάτων. Η εξοικείωση µε τους διαφορετικούς τύπους
των flip-flops και η κατανόηση του τρόπου λειτουργίας τους είναι απολύτως απαραίτητα
για τη µελέτη των ακολουθιακών κυκλωµάτων.

Μετά τη µελέτη του παρόντος κεφαλαίου, θα είστε σε θέση να:


• διακρίνετε τα ακολουθιακά από τα συνδυαστικά κυκλώµατα
• σχεδιάζετε και να εξηγείτε τη λειτουργία των flip-flops
• σχεδιάζετε διαγράµµατα χρονισµού απλών κυκλωµάτων µε flip-flops
• αναλύετε απλά ακολουθιακά κυκλώµατα αποτελούµενα από πύλες
• διακρίνετε µεταξύ των flip-flops, που ενεργοποιούνται κατά την αλλαγή
στάθµης ή κατά τη διάρκεια του παλµού
• σχεδιάζετε κυκλώµατα αποθήκευσης ενός δυαδικού ψηφίου (bit).

Έννοιες – κλειδιά
• Flip-flops • Μανταλωτής (Latch)
• Σύγχρονα Ακολουθιακά Κυκλώµατα • Ακµοπυροδότηση
• Ασύγχρονα Ακολουθιακά Κυκλώµατα • ∆ισταθής Πολυδονητής
3

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ

Τα ψηφιακά κυκλώµατα, που µελετήσαµε στο βιβλίο της "Ψηφιακής Σχεδίασης Ι",
ήταν σ υ ν δ υ α σ τ ι κ ά κ υ κ λ ώ µ α τ α (combinational circuits). Στα συνδυαστικά
κυκλώµατα οι έξοδοι σε κάθε χρονική στιγµή εξαρτώνται αποκλειστικά και µόνο από τις
εισόδους, οι οποίες εφαρµόζονται τη συγκεκριµένη εκείνη στιγµή. ∆εν εξαρτώνται ούτε
από τη σειρά, µε την οποία αυτές οι είσοδοι εφαρµόσθηκαν, ούτε από την κατάσταση του
κυκλώµατος, πριν αυτές εφαρµοσθούν. Όµως, ανεξάρτητα από το µέγεθος ή την
πολυπλοκότητα ενός ψηφιακού κυκλώµατος, η χρονική σειρά (ακολουθία) των
γεγονότων είναι πολλές φορές καθοριστικής σηµασίας και πρέπει να ληφθεί υπόψη στο
σχεδιασµό του ψηφιακού κυκλώµατος. Για να γίνει σαφής η ανάγκη αυτή, ας
επιχειρήσουµε να λύσουµε το ακόλουθο απλό πρόβληµα.

Να σχεδιασθεί ψηφιακό σύστηµα, το οποίο να επιτρέπει την εκκίνηση της µηχανής


του αυτοκινήτου, µόνον εφόσον ο οδηγός καθίσει και δέσει τη ζώνη ασφαλείας του

Σχήµα 1.1 Η εκκίνηση της µηχανής του αυτοκινήτου µπορεί να γίνει µόνον, αφού ο οδηγός καθίσει και
δέσει τη ζώνη του.

καθίσµατός του (Σχήµα 1.1). Εξυπακούεται ότι ο κατασκευαστής του αυτοκινήτου έχει
τοποθετήσει τους αντίστοιχους αισθητήρες-διακόπτες στο κάθισµα και στη ζώνη του
οδηγού. Από µια πρώτη άποψη, η λύση του προβλήµατος φαίνεται εξαιρετικά απλή. Μία
πύλη AND θα ήταν αρκετή. Αν δηλαδή ο οδηγός είναι καθισµένος ΚΑΙ (AND) η ζώνη
δεµένη, τότε η µηχανή µπορεί να ξεκινήσει, χωρίς τον ενοχλητικό θόρυβο του βοµβητή
προειδοποίησης. Όµως, τι γίνεται στην περίπτωση του οδηγού, ο οποίος "ενοχλείται" από
τη ζώνη ασφαλείας, και έτσι πρώτα τη δένει και µετά κάθεται πάνω σ' αυτή;
∆ιαπιστώνουµε λοιπόν, ότι το κύκλωµα, που θα σχεδιασθεί, θα πρέπει να είναι σε θέση
να παρακολουθεί τη χρονική αλληλουχία των γεγονότων: n ο οδηγός κάθεται, o η ζώνη
προσδένεται, δηλαδή: ο οδηγός πρέπει να είναι καθισµένος, πριν προσδεθεί η ζώνη.
4

Γίνεται φανερό, εποµένως, ότι τα συνδυαστικά κυκλώµατα, που µελετήσαµε µέχρι


τώρα, δεν είναι αρκετά, για να µας λύσουν προβλήµατα αυτής της κατηγορίας. Ένα
βασικό στοιχείο, που µας λείπει, είναι εκείνο της µνήµης. ∆εν έχουµε µάθει να
σχεδιάζουµε κυκλώµατα, τα οποία να µπορούν να "θυµούνται" κάποια προηγούµενη
κατάσταση (όπως χρειάσθηκε στην περίπτωση του προβλήµατος, που µόλις αναφέραµε).
Έτσι, στο κεφάλαιο αυτό θα ασχοληθούµε αποκλειστικά µε την εισαγωγή και κατανόηση
των βασικών ακολουθιακών κυκλωµάτων, των f l i p - f l o p s , τα οποία και αποτελούν το
βασικό κύτταρο µνήµης του ενός bit.
Τα κυκλώµατα του παρόντος κεφαλαίου ονοµάζονται α κ ο λ ο υ θ ι α κ ά (sequential).
Στα ακολουθιακά κυκλώµατα οι έξοδοι σε κάθε χρονική στιγµή εξαρτώνται όχι µόνον
από τις τιµές των εισόδων τη χρονική εκείνη στιγµή, αλλά και από τις τιµές των εξόδων
των στοιχείων µνήµης του κυκλώµατος την προηγούµενη χρονική στιγµή. Τα
ακολουθιακά κυκλώµατα χωρίζονται σε δύο µεγάλες κατηγορίες, στα σ ύ γ χ ρ ο ν α
(synchronous) και στα α σ ύ γ χ ρ ο ν α (asynchronous), ανάλογα µε το εάν αυτά
επηρεάζονται σε συγκεκριµένες χρονικές στιγµές ή όχι. Αυτό σηµαίνει ότι τα σύγχρονα
ακολουθιακά κυκλώµατα λειτουργούν σύµφωνα µε κάποιο παλµό χρονισµού (ρολόι,
clock). Οποιεσδήποτε αλλαγές στην έξοδο (κατάσταση) ενός σύγχρονου ακολουθιακού
κυκλώµατος συµβαίνουν σε συγκεκριµένες (διακριτές) χρονικές στιγµές. Αποτέλεσµα
αυτού είναι ότι τα σύγχρονα ακολουθιακά κυκλώµατα δεν παρουσιάζουν προβλήµατα
αστάθειας και ο χρονισµός τους µπορεί εύκολα να αναλυθεί σε ανεξάρτητα διακριτά
βήµατα, όπως θα δούµε και στο Κεφάλαιο 2. Αντίθετα, η συµπεριφορά ενός ασύγχρονου
ακολουθιακού κυκλώµατος εξαρτάται από τη σειρά, µε την οποία αλλάζουν οι παλµοί
εισόδου του και µπορεί να επηρεασθεί σε οποιαδήποτε χρονική στιγµή. Ένα συνδυαστικό
κύκλωµα µε ανατροφοδότηση (feedback) αποτελεί ουσιαστικά ένα ασύγχρονο
ακολουθιακό κύκλωµα. Εξαιτίας ακριβώς της ανατροφοδότησης, ένα τέτοιο κύκλωµα
µπορεί να γίνει εύκολα ασταθές (unstable). Οι ορισµοί και τα βασικά χαρακτηριστικά
των ακολουθιακών κυκλωµάτων παρατίθενται στον Πίνακα 1.1.
Στην ενότητα 1.1 µελετάµε το πλέον βασικό FF, το οποίο δεν είναι τίποτε άλλο από
δύο πύλες NOR ή NAND, στις οποίες η έξοδος της µιας τροφοδοτεί την είσοδο της
άλλης, διαπιστώνοντας έτσι τον καταλυτικό ρόλο της ανα-τροφοδότησης στη λειτουργία
των κυκλωµάτων. Στη συνέχεια, αφού µελετήσουµε τους τέσσερις διαφορετικούς τύπους
FF, αναλύουµε τους δυνατούς τρόπους ενεργοποίησής τους µε βάση τους παλµούς του
ρολογιού, που εφαρµόζεται σ’ αυτά (ενότητα 1.2). Τέλος, η όλη παρουσίαση των FF
5

ολοκληρώνεται µε την εξέταση των πρόσθετων εισόδων, που συνήθως αυτά διαθέτουν,
για τον άµεσο έλεγχο των εξόδων τους (ενότητα 1.3).

ΠΙΝΑΚΑΣ 1.1
Κύρια χαρακτηριστικά των σύγχρονων και ασύγχρονων ακολουθιακών κυκλωµάτων

ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

ΣΥΓΧΡΟΝΑ ΑΣΥΓΧΡΟΝΑ

• Η λειτουργία ενός σύγχρονου • Η λειτουργία ενός ασύγχρονου


ακολουθιακού κυκλώµατος ακολουθιακού κυκλώµατος εξαρτάται
περιγράφεται πλήρως από τις τιµές των από τη σειρά µε την οποία αλλάζουν οι
σηµάτων του σε συγκεκριµένες τιµές των σηµάτων εισόδου του και
(διακριτές) χρονικές στιγµές. µπορεί να επηρεασθεί σε κάθε χρονική
στιγµή.

• Ο συγχρονισµός τους επιτυγχάνεται • Ένα συνδυαστικό κύκλωµα µε


µέσω ενός ρολογιού (clock), το οποίο ανατροφοδότηση αποτελεί ουσιαστικά
τροφοδοτεί το όλο κύκλωµα µε µια ένα ασύγχρονο ακολουθιακό κύκλωµα.
περιοδική παλµοσειρά (clock pulses).

• ∆εν παρουσιάζουν προβλήµατα • Παρουσιάζουν προβλήµατα αστάθειας


αστάθειας και ο χρονισµός τους µπορεί λόγω της υπάρχουσας
εύκολα να αναλυθεί σε διακριτά ανατροφοδότησης (feedback).
βήµατα.
6

ΕΝΟΤΗΤΑ 1.1. FLIP-FLOPS

Για να µπορέσουµε να παρακολουθήσουµε την αλληλουχία κάποιων γεγονότων, θα


πρέπει να έχουµε ένα κύκλωµα, το οποίο να µπορεί να "θυµάται", δηλαδή να έχει µνήµη
(memory). Το απλούστερο και πιο διαδεδοµένο κύτταρο µνήµης είναι ο δισταθής
πολυδονητής (bistable multivibrator), ο οποίος ονοµάζεται flip-flop (FF). Ας δούµε λοιπόν
πώς κατασκευάζεται ένα τέτοιο κύκλωµα, χρησιµοποιώντας τις γνωστές µας πύλες NOR
και NAND.

1.1.1. ΤΟ ΒΑΣΙΚΟ FLIP-FLOP


Flip-flop µε πύλες NOR

Vcc
S
Y Q S

(α) Q Χρόνος
t0 t1 t2
Από εδώ και µετά
'Εναρξη το Q "θυµάται" ότι
τροφοδοσίας το S είχε γίνει ON
(power on)
(β)
Σχήµα 1.2 (α) Το κύκλωµα flip, (β) Τα διάγραµµα χρονισµού του.

Ας αρχίσουµε από το απλό κύκλωµα του Σχήµατος 1.2, το οποίο έχει θετική
ανατροφοδότηση (ανάδραση). Ας θεωρήσουµε ότι, θέτοντας το κύκλωµα στην
τροφοδοσία (power on), ο διακόπτης είναι γειωµένος (S=0) και η έξοδος Q=0. Η έξοδος
της πύλης NOR είναι σε κατάσταση HIGH (Y=1). Το κύκλωµα ηρεµεί στην κατάσταση
αυτή µέχρι τη χρονική στιγµή t1, που ο διακόπτης εισόδου αλλάζει θέση και γίνεται S=1.
Τότε γίνεται Y=0 και Q=1. Η νέα κατάσταση του κυκλώµατος είναι πλέον και η µόνιµη
κατάστασή του. Ακόµη και αν επαναφέρουµε το διακόπτη στην αρχική του θέση S=0 (τη
χρονική στιγµή t2), η έξοδος παραµένει στην κατάσταση Q=1, γιατί το Q αυτό
επανατροφοδοτείται στη µία από τις δύο εισόδους της πύλης NOR, κρατώντας την έξοδό
της στο λογικό 0 (Υ=0). Με άλλα λόγια, το λογικό αυτό κύκλωµα "θυµάται" ότι η
είσοδος S έγινε κάποτε "1" (ΟΝ). Το πρόβληµά του, όµως, είναι ότι παραµένει στην
κατάσταση αυτή για όσο χρόνο είναι στην τροφοδοσία. Το κύκλωµα άλλαξε κατάσταση
7

(flip) µε την αλλαγή της θέσης του διακόπτη, αλλά δεν επανέρχεται. Πρόκειται για απλό
κύκλωµα, που ονοµάζεται "flip" λόγω του τρόπου λειτουργίας του, µε περιορισµένες
όµως δυνατότητες χρήσης. Το διάγραµµα χρονισµού του δίνεται στο Σχήµα 1.2(β).
Ας αντικαταστήσουµε τον αντιστροφέα του προηγούµενου σχήµατος µε µία πύλη
NOR, όπως δείχνεται στο Σχήµα 1.3(α). Το κύκλωµα έχει τώρα δύο εισόδους, τις S και
R, όπως φαίνεται και στο Σχήµα 1.3(β), και ονοµάζεται SR flip-flop ή πιο σωστά SR
µανταλωτής (SR latch). Όπως θα δούµε αναλυτικά στη συνέχεια, ο µανταλωτής είναι ένας
τύπος flip-flop χωρίς ρολόι ή µε ρολόι, το οποίο είναι ευαίσθητο στη διάρκεια του παλµού
(level-sensitive clock). Οι είσοδοι S και R πήραν την ονοµασία τους από τα αρχικά
γράµµατα των λέξεων SET και RESET αντίστοιχα. Η απόδοση της λέξης SET στην
ελληνική γλώσσα θα είναι "ενεργοποίηση" ή "καθορισµός της εξόδου στο λογικό 1", ενώ
εκείνη της λέξης RESET θα είναι "απενεργοποίηση" ή "εκκαθάριση" ή "µηδενισµός" ή
"επαναφορά" της εξόδου. Με τη λέξη έξοδο εννοούµε την Q η οποία αποτελεί και την
κατάσταση (state) του FF, ενώ η έξοδος Q’ είναι συµπληρωµατική της Q.

R (RESET)
Q

Q'
S (SET)

(α) (β)
Σχήµα 1.3 SR µανταλωτής κατασκευασµένος µε πύλες NOR.

R
S R Q Q'
1 Q
1 0 1 0 S Q
0 0 1 0 FF
0 1 0 1
R Q'
0 0 0 1
1 1 0 0
2 Q'
S 0 0 απροσδιόριστη

(α) (β) (γ)

Σχήµα 1.4 SR µανταλωτής µε πύλες NOR: (α) λογικό διάγραµµα, (β) πίνακας αλήθειας, (γ) σύµβολο.

Ας παρακολουθήσουµε, όµως, τη λειτουργία του κυκλώµατος του Σχήµατος 1.3. Για


λόγους καλύτερης κατανόησης, το κύκλωµα αυτό επαναλαµβάνεται στο Σχήµα 1.4 µαζί
µε τον πίνακα αλήθειας και το απλοποιηµένο σύµβολό του. Έστω S=1 και R=0. Τότε η
8

έξοδος Q' της πύλης 2 είναι 0, ανεξάρτητα από την τιµή της άλλης εισόδου της πύλης
αυτής. Συνεπώς, η πύλη 1 έχει και τις δύο εισόδους της στο λογικό 0 και άρα Q=1,
δηλαδή, για S=1, R=0 πήραµε Q=1 (και Q'=0). Με άλλα λόγια, ενεργοποιήσαµε το FF ή
καθορίσαµε την κατάσταση του FF να γίνει 1 (SET). Αν τώρα αλλάξουµε την τιµή της
εισόδου S και την κάνουµε 0 (S=0), αυτή η αλλαγή δεν επηρεάζει την κατάσταση του FF,
η οποία παραµένει στο λογικό 1 (2η γραµµή του πίνακα αλήθειας του Σχήµατος 1.4(β)).
Αυτό συµβαίνει, διότι η άλλη είσοδος της πύλης 2 εξακολουθεί να είναι στο λογικό 1.
Μπορούµε, εποµένως, να πούµε ότι το FF "θυµάται" την προηγούµενη κατάσταση.
(Σηµειώνεται εδώ ότι οι τιµές του πίνακα εφαρµόζονται µε τη σειρά που δείχνονται στο
Σχήµα 1.4(β). Αυτό υποδεικνύεται και από τη φορά της διαχωριστικής γραµµής µεταξύ
των τιµών εισόδου και εξόδου του πίνακα).
Ας συνεχίσουµε την ανάλυσή µας, αλλάζοντας αυτή τη φορά την τιµή της εισόδου R
και θέτοντας αυτή στο λογικό 1, δηλαδή R=1 και S=0. Για R=1 η έξοδος της πύλης 1
γίνεται 0 (Q=0) και κατά συνέπεια η έξοδος της πύλης 2 γίνεται 1 (Q'=1), αφού και στις
δύο εισόδους της εφαρµόζεται το λογικό 0. Άρα, για S=0 και R=1 επιτύχαµε την
"εκκαθάριση" ή "µηδενισµό" (RESET) του FF. Αν επαναφέρουµε την είσοδο R στο
λογικό 0, οπότε S=0 και R=0, η κατάσταση του FF δεν αλλάζει, δηλαδή Q=0 και Q'=1.
Άρα και πάλι µπορούµε να πούµε ότι το FF "θυµάται" την προηγούµενη κατάστασή του.
Συνοψίζοντας µέχρι το σηµείο αυτό, θα µπορούσαµε να ισχυριστούµε ότι έχουµε
καταφέρει να σχεδιάσουµε ένα βασικό στοιχείο µνήµης, στο οποίο έχουµε τη δυνατότητα
να αποθηκεύσουµε ένα δυαδικό ψηφίο 1 ή 0, ανάλογα αν S=1 και R=0 ή S=0 και R=1.
Στην κανονική του λειτουργία και οι δύο είσοδοι S και R είναι στο λογικό 0. Αλλάζουµε
κάποια από τις δύο εισόδους, µόνο όταν θέλουµε να αποθηκεύσουµε ένα νέο δεδοµένο.
Μετά την είσοδο του νέου δεδοµένου, οι είσοδοι S και R επαναφέρονται στο λογικό 0.
Με άλλα λόγια, όταν και οι δύο είσοδοι του FF είναι στο λογικό 0, τότε αυτό "θυµάται"
ποια από τις δύο άλλαξε τελευταία.
Τι θα συµβεί, όµως, εάν και οι δύο είσοδοι S και R γίνουν 1 (S=1, R=1); Στην
περίπτωση αυτή και οι δύο έξοδοι των πυλών 1 και 2 γίνονται 0 (Q=0, Q'=0). Αυτές οι
τιµές εξόδου αντιφάσκουν µε το γεγονός της συµπληρωµατικότητάς τους, δηλαδή ότι η
µία (Q) να είναι συµπληρωµατική της άλλης (Q'). Εάν µάλιστα συνεχίσουµε,
επαναφέροντας τις εισόδους στο λογικό 0 (S=0, R=0, τελευταία γραµµή του πίνακα
αλήθειας του Σχήµατος 1.4(β)), τότε η κατάσταση (έξοδος) του FF θα είναι
απροσδιόριστη. Εάν η είσοδος S γίνει 0, αφού ήδη έχει γίνει 0 η είσοδος R, τότε η
9

έξοδος θα γίνει 1 (Q=1). Αν όµως η είσοδος R καθυστερήσει περισσότερο από την S να


µεταβεί στο λογικό 0 (οπότε στιγµιαία θα έχουµε S=0 και R=1), τότε η έξοδος Q θα
παραµείνει στο λογικό 0 (Q=0). Είναι φανερό ότι η περίπτωση S=R=1 του πίνακα
αλήθειας πρέπει να αποφεύγεται.

Παράδειγµα 1 / Κεφάλαιο 1
Ας σχεδιάσουµε την κυµατοµορφή της εξόδου Q του SR µανταλωτή του Σχήµατος
1.4, όταν στις εισόδους του εφαρµόζονται οι παλµοσειρές του Σχήµατος 1.5.

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10

Σχήµα 1.5 ∆ιάγραµµα χρονισµού του SR µανταλωτή του Παραδείγµατος 1 / Κεφάλαιο 1.

Η κυµατοµορφή της εξόδου Q δείχνεται στο ίδιο το Σχήµα 1.5. Παρατηρούµε ότι πριν
τη χρονική στιγµή t0 έχουµε S=0 και R=1 οπότε Q=0. Κατά τη χρονική στιγµή t1 η
είσοδος S γίνεται 1 (S=1, R=0), οπότε το FF ενεργοποιείται (Q=1). Παραµένει στην
κατάσταση αυτή µέχρι τη στιγµή t3, οπότε το R γίνεται 1 (S=0, R=1). Τότε το FF
µηδενίζεται (Q=0). Τη στιγµή t5 η είσοδος R γίνεται και πάλι 1 (S=0, R=1). Αυτό
συνεπάγεται µηδενισµό της εξόδου, η οποία όµως ήδη βρίσκεται σε κατάσταση 0. Άρα,
δεν παρατηρούµε καµία αλλαγή στην έξοδο µέχρι τη χρονική στιγµή t7, οπότε η είσοδος
S γίνεται 1 (S=1, R=0). Η έξοδος µεταβαίνει στο λογικό 1 και παραµένει εκεί, µέχρις
ότου παρουσιαστεί ο παλµός εκκαθάρισης τη χρονική στιγµή t9 (S=0, R=1).

Σηµείωση
1. Στο προηγούµενο παράδειγµα αποφύγαµε την περίπτωση, κατά την οποία και οι δύο
είσοδοι S και R είναι S=R=1.
2. Σε όλες τις προηγούµενες κυµατοµορφές θεωρήσαµε ότι οι λογικές πύλες είναι
ιδανικά στοιχεία µε µηδενικό χρόνο αλλαγής της λογικής κατάστασης, δηλαδή δεν
10

έχουµε καθυστερήσεις διάδοσης (propagation delays). Έτσι, τη στιγµή t1 εφαρµόζουµε


τον παλµό εισόδου και την ίδια στιγµή t1 αλλάζει η έξοδος Q του κυκλώµατος.

Flip-flop µε πύλες NAND

Θα µπορούσαµε να κατασκευάσουµε ένα βασικό FF µε πύλες NAND αντί για πύλες


NOR, όπως δείχνεται στο Σχήµα 1.6. Ο τρόπος λειτουργίας είναι περίπου παρόµοιος και
αφήνεται ως άσκηση στον αναγνώστη να βρεί τις αναλογίες. Παρατηρούµε ότι µπορούµε
και πάλι να αποθηκεύουµε ένα δυαδικό ψηφίο πληροφορίας µε κατάλληλο συνδυασµό
των λογικών τιµών των εισόδων. Εδώ ο συνδυασµός S=R=0 είναι αυτός που πρέπει να
αποφεύγεται.

S
S R Q Q'
Q
1 0 0 1 S Q
1 1 0 1 FF
0 1 1 0
R Q'
1 1 1 0
0 0 1 1
Q'
R 1 1 απροσδιόριστη

(α) (β) (γ)

Σχήµα 1.6 SR µανταλωτής µε πύλες NAND: λογικό διάγραµµα, (β) πίνακας αλήθειας, (γ) σύµβολο.

1.1.2. ΧΡΟΝΙΖΟΜΕΝΑ FF ΤΥΠΟΥ SR


Τα FF τύπου SR της προηγούµενης παραγράφου είναι εξαιρετικά ευαίσθητα στους
οποιουσδήποτε ανεπιθύµητους παλµούς µικρού εύρους (αιχµές, glitches), που θα
παρουσιασθούν στις εισόδους τους. Αυτοί οι παλµοί θα µπορούσαν να προκύψουν λόγω
της διαφορετικής καθυστέρησης, που υφίσταται ένας παλµός µέσα από ένα συνδυαστικό
κύκλωµα (hazards). Για να αποφύγουµε τέτοια προβλήµατα, συγχρονίζουµε τις εισόδους
του FF, προσθέτοντας ένα επιπλέον επίπεδο πυλών AND ή NAND, όπως δείχνεται στο
Σχήµα 1.7.
11

S
R RESET SET
Q Q

CLK CLK

Q' Q'
R
S SET RESET

(α) (β)

Qt S R Q t+1

0 0 0 0 S R Q t+1
0 0 1 0 0 0 Qt S Q
0 1 0 1 0 1 0 CLK
0 1 1 απροσδιόριστη 1 0 1 R Q'
1 0 0 1 1 1 απροσδιόριστη
1 0 1 0
1 1 0 1
1 1 1 απροσδιόριστη

(γ) (δ) (ε)

Σχήµα 1.7 Χρονιζόµενο SR FF: (α) µε πύλες NOR, (β) µε πύλες NAND, (γ), (δ) πίνακες λειτουργίας,
(ε) σύµβολο.

Έτσι, µόνον όταν ο παλµός του ρολογιού (clock, CLK) είναι στο λογικό 1 (CLK=1),
επιτρέπεται οι τιµές των S και R να "περάσουν" στις εισόδους SET και RESET και να
επηρεάσουν τη λειτουργία του FF. Όταν CLK=0, τότε οι είσοδοι S και R δεν µπορούν να
επηρεάσουν το FF και το κύκλωµα παραµένει στην προηγούµενη κατάστασή του.
Παρατηρούµε, συνεπώς, ότι οι επιπλέον πύλες AND ή NAND παίζουν το ρόλο της
‘πύλης’, η οποία ελέγχεται από την είσοδο του ρολογιού CLK. Γι' αυτό και η είσοδος
CLK αναφέρεται πολλές φορές και ως πύλη ενεργοποίησης (gate enable). Η όλη
λειτουργία των κυκλωµάτων του Σχήµατος 1.7 αναλύεται στον πίνακα του Σχήµατος
1.7(γ), ο οποίος ονοµάζεται πίνακας λειτουργίας ή χαρακτηριστικός πίνακας (function
table) του FF. Παρατηρούµε ότι στο αριστερό µέρος του πίνακα έχει συµπεριληφθεί και η
κατάσταση του FF, πριν εφαρµοσθεί ο ωρολογιακός παλµός. Αυτή συµβολίζεται ως Qt.
∆ηλαδή, αν γνωρίζουµε την κατάσταση του FF, πριν εφαρµοσθεί ο ωρολογιακός παλµός,
καθώς και τις τιµές των εισόδων S, R, µπορούµε να βρούµε σε ποια κατάσταση θα βρεθεί
αυτό (Qt+1) µετά την εφαρµογή του παλµού. Έτσι, αν και οι δύο είσοδοι S και R είναι 0
(S=R=0), τότε το κύκλωµα παραµένει ("θυµάται") στην προηγούµενη κατάστασή του,
δηλαδή Qt+1=Qt. Αν οι δύο είσοδοι είναι διαφορετικές (S≠R), τότε η έξοδος θα έχει την
ίδια τιµή µε αυτή της εισόδου S. Αν και οι δύο είσοδοι S και R είναι στο λογικό 1
(S=R=1), τότε η έξοδος είναι απροσδιόριστη, όπως εξηγήσαµε και στην προηγούµενη
ενότητα. Η κατάσταση αυτή πρέπει να αποφεύγεται. Με βάση αυτές τις παρατηρήσεις,
µπορούµε να συµπτύξουµε τον πίνακα του Σχήµατος 1.7(γ) στον πιο περιεκτικό πίνακα
12

λειτουργίας του Σχήµατος 1.7(δ). Παρατηρείστε ότι η είσοδος του ρολογιού CLK δεν
συµπεριλαµβάνεται στον πίνακα λειτουργίας του κυκλώµατος.
Μέχρι εδώ, έχουµε καταφέρει να θωρακίσουµε το FF µας από ανεπιθύµητες αιχµές
που παρουσιάζονται στα κυκλώµατα, συγχρονίζοντας τη λειτουργία του σύµφωνα µε
τους παλµούς ενός ρολογιού. ∆εν έχουµε όµως επιλύσει ακόµα το πρόβληµα της
απροσδιοριστίας τη στιγµή που και οι δύο είσοδοι είναι 1!

Παράδειγµα 2 / Κεφάλαιο 1
Να σχεδιασθεί η κυµατοµορφή της εξόδου Q ενός χρονιζόµενου SR FF (µανταλωτή)
για τις κυµατοµορφές εισόδου του Σχήµατος 1.8.

CLK
S
R
Q

t1 t2 t3 t4 t5 t6 t7 t8 t9 t10

Σχήµα 1.8 Κυµατοµορφές εισόδου-εξόδου του Παραδείγµατος 2 / Κεφ. 1

Παρατηρούµε ότι ο παλµός της εισόδου S ο οποίος παρουσιάστηκε µεταξύ t5 και t6,
δεν επηρέασε το FF, γιατί στο χρονικό εκείνο διάστηµα ο παλµός του ρολογιού ήταν
στο λογικό 0 (CLK=0). Αντίθετα, ο παλµός της εισόδου S µεταξύ t7 και t8, όπως και
το τµήµα του παλµού της εισόδου R µεταξύ της t9 και t10, επηρέασαν το κύκλωµα,
γιατί παρουσιάσθηκαν στη διάρκεια που ο παλµός του ρολογιού ήταν στο λογικό 1.

Άσκηση Αυτοαξιολόγησης 1 / Κεφάλαιο 1


Στις εισόδους S, R και CLK ενός χρονιζόµενου SR FF (Σχήµα 1.7) εφαρµόζονται οι
κυµατοµορφές του Σχήµατος 1.9. Να σχεδιάσετε την κυµατοµορφή της εξόδου Q του
κυκλώµατος.
13

CLK
S
R

Σχήµα 1.9 Κυµατοµορφές εισόδου ενός συγχρονισµένου SR µανταλωτή

1.1.3. FF ΤΥΠΟΥ D
Αν στο χρονιζόµενο SR FF, που εξετάσαµε προηγουµένως, προσθέσουµε έναν
αντιστροφέα µεταξύ των εισόδων του, τότε παίρνουµε το FF τύπου D του Σχήµατος 1.10.
Ουσιαστικά έχουµε επιτύχει να λειτουργούµε το κύκλωµα µόνο για τις περιπτώσεις της
2ης και 3ης γραµµής του πίνακα λειτουργίας του Σχήµατος 1.7(δ). Έτσι, εάν D=0, τότε
Q=0, ενώ, εάν D=1, τότε Q=1. Αυτά συµβαίνουν υπό την προϋπόθεση ότι G=1 (CLK=1).
Είναι σηµαντικό να τονισθεί ότι η έξοδος Q ακολουθεί το δεδοµένο εισόδου D σε όλη τη
διάρκεια που ο ωρολογιακός παλµός είναι στο λογικό 1 (G=1). Όταν ο παλµός αυτός
µεταβεί στο 0, στην έξοδο Q παραµένει η τελευταία τιµή που είχε αυτή ακριβώς, πριν τη
µετάβαση του παλµού CLK από το 1 στο 0. Το FF αυτό ονοµάζεται και µανταλωτής D (D
latch), παίρνοντας το όνοµά του από τη δυνατότητα φύλαξης δεδοµένων (data) σ' αυτόν.

D S Q D Q
D Q t+ 1
G CLK G
0 0
R Q' 1 1 Q'

(α) (β) (γ)

Σχήµα 1.10 FF τύπου D (µανταλωτής D): (α) λογικό κύκλωµα, (β) πίνακας λειτουργίας, (γ) σύµβολο.
14

Παράδειγµα 3 / Κεφάλαιο 1
Σχεδιάστε την κυµατοµορφή της εξόδου Q για τις εισόδους D και G του Σχήµατος 1.11.

G
D
Q
t1 t2 t3 t4 t5

Η έξοδος Q κρατά την H έξοδος Q παρακολουθεί την


τιµή που είχε η είσοδος είσοδο D, µέχρι να "πέσει" ο
D πριν "πέσει" ο ωρολογιακός παλµός, οπότε και
ωρολογιακός παλµός "µανταλώνει" στην τελευταία τιµή

Κατά τη διάρκεια που ο


ωρολογιακός παλµός είναι στο
λογικό 1, η έξοδος Q
παρακολουθεί την είσοδο D
Σχήµα 1.11 Κυµατοµορφές εισόδου-εξόδου του µανταλωτή τύπου D του Παραδείγµατος 3 /
Κεφάλαιο 1

1.1.4. JK FLIP-FLOP
Η απροσδιόριστη κατάσταση του SR FF θα µπορούσε να αποφευχθεί τροποποιώντας
το κύκλωµα του Σχήµατος 1.7(α), όπως δείχνεται στο Σχήµα 1.12(α), όπου
ανατροφοδοτούµε τις εξόδους στις εισόδους. Το νέο αυτό κύκλωµα ονοµάζεται JK flip-
flop. Η λειτουργία του είναι ακριβώς ίδια µε εκείνη του SR, µε µόνη διαφορά ότι το
κύκλωµα αυτό δεν έχει απροσδιόριστη κατάσταση, όταν και οι δύο είσοδοί του είναι στο
λογικό 1. Οι είσοδοι J και Κ συµπεριφέρονται όπως οι είσοδοι S και R, δηλαδή, όταν
αυτές είναι διαφορετικές µεταξύ τους, η J ενεργοποιεί (sets) το FF, ενώ η K το
απενεργοποιεί (resets). Όταν J=K=1 και φυσικά η είσοδος του ρολογιού είναι 1 (CLK=1),
τότε η κατάσταση του FF αντιστρέφεται, δηλαδή από 1 γίνεται 0 και από 0 γίνεται 1. Ας
παρακολουθήσουµε, όµως, για λίγο τη λειτουργία του JK flip-flop.
15

K 1 RESET
Q J K Qt+1
0 0 Qt J Q
0 1 0 CLK
CLK CLK 1 0 1
K Q'
1 1 Q’t
Q'
J 2
SET
(β) (γ)

(α)
Σχήµα 1.12 Flip-flop τύπου JK: (α) λογικό κύκλωµα, (β) πίνακας λειτουργίας, (γ) σύµβολο.

Έστω ότι Q=0 (οπότε Q'=1), J=1 και K=0. Τότε, κατά τη διάρκεια που ο παλµός του
ρολογιού είναι 1 (CLK=1), η έξοδος της πρώτης πύλης AND θα είναι 0 και η έξοδος της
δεύτερης πύλης AND θα είναι 1. Κατά συνέπεια, οι είσοδοι RESET και SET του βασικού
FF θα είναι 0 και 1 αντίστοιχα, αναγκάζοντας την έξοδό του να µεταβεί στην κατάσταση
Q=1 (και άρα Q'=0). Παρατηρούµε, εποµένως, ότι για J=1 και Κ=0 η κατάσταση του JK
FF έγινε Q=1. [Αφήνεται ως εξάσκηση στον αναγνώστη η ανάλυση της λειτουργίας του
κυκλώµατος, στην περίπτωση κατά την οποία το FF βρίσκεται και πάλι στην κατάσταση
Q=0, αλλά οι είσοδοι που εφαρµόζονται είναι J=0 και Κ=1].
Είδαµε, λοιπόν, ότι για J=1 και K=0 η έξοδος του JK FF έγινε Q=1. Έστω τώρα ότι
εφαρµόζουµε και στις δύο εισόδους λογικό 1 (J=K=1). Όταν ο παλµός του ρολογιού γίνει
1, τότε η έξοδος της πύλης 1 θα είναι στο λογικό 1 (άρα RESET=1), ενώ η έξοδος της
πύλης 2 θα είναι στο λογικό 0 (άρα SET=0), αφού Q'=0. Η έξοδος του βασικού FF για
SET=0 και RESET=1 γίνεται 0 (Q=0). ∆ιαπιστώνουµε, εποµένως, ότι το FF άλλαξε
κατάσταση και από Q=1 έγινε Q=0.
Συνεχίζοντας την ανάλυσή µας µπορούµε να δούµε ότι, αν η κατάσταση του FF είναι
Q=0 και οι είσοδοι J=K=1, τότε, όταν ο παλµός του ρολογιού είναι 1, θα επιτρέψει στις
εξόδους των AND πυλών 1 και 2 να γίνουν 0 και 1 αντίστοιχα. Αποτέλεσµα αυτού θα
είναι το βασικό FF να ενεργοποιηθεί, αφού SET=1 και RESET=0, οπότε η έξοδος να
γίνει Q=1, δηλαδή η κατάσταση του JK FF από 0 έγινε 1.
Παρατηρούµε εποµένως ότι όταν J=K=1 και εφόσον CLK=1, η κατάσταση του JK FF
αλλάζει, µεταβαίνοντας κάθε φορά στη συµπληρωµατική αυτής στην οποία ήταν. Αυτός
ο τρόπος λειτουργίας του JK FF είναι πολύ χρήσιµος, ειδικά στη σχεδίαση απαριθµητών.

1.1.5. Τ FLIP-FLOP
16

Πρόκειται για µία παραλλαγή του JK FF, που µόλις εξετάσαµε. Προκύπτει άµεσα από
το JK FF συνδέοντας µαζί και τις δύο εισόδους του (Σχήµα 1.13). Όπως είναι επόµενο, ο
πίνακας λειτουργίας του Τ FF αποτελείται ουσιαστικά από την πρώτη και τέταρτη
γραµµή του αντίστοιχου πίνακα λειτουργίας του JK FF (Σχήµα 1.12(β)). Όταν Τ=0 το FF
παραµένει στην προηγούµενη κατάσταση ("θυµάται"), ενώ, όταν Τ=1, αυτό µεταβαίνει
στη συµπληρωµατική της προηγούµενης κατάστασής του, όπως ήδη έχουµε εξηγήσει
αναλυτικά. Αυτή ακριβώς η λειτουργία του, δηλαδή της µετάπτωσης από τη µία λογική
στάθµη στην άλλη (toggle), έδωσε και την ονοµασία στο συγκεκριµένο FF.

RESET
T T
Q T Q t+1 Q
0 Qt CLK
1 Q ‘t Q'
CLK
CLK

Q'
SET (β) (γ)

(α)
Σχήµα 1.13 Flip-flop τύπου Τ: (α) λογικό κύκλωµα, (β) πίνακας λειτουργίας, (γ) σύµβολο.

Άσκηση Αυτοαξιολόγησης 2 / Κεφάλαιο 1


Θα µπορούσατε να µετατρέψετε ένα JK FF σε D FF;

Σύνοψη Ενότητας
Στην ενότητα αυτή παρουσιάσαµε αναλυτικά όλους τους τύπους των flip-flops.
Αρχίσαµε από το βασικό RS FF, το οποίο κατασκευάστηκε µε δύο πύλες NOR ή NAND
των δύο εισόδων. Η έξοδος καθεµιάς από αυτές τροφοδοτούσε την είσοδο της άλλης. Στη
συνέχεια, συγχρονίσαµε το βασικό αυτό FF, προσθέτοντας ένα ακόµη επίπεδο πυλών,
ώστε οποιαδήποτε αλλαγή στις εισόδους και κατά συνέπεια στην κατάστασή του να
γίνεται σύµφωνα µε τους παλµούς ενός ρολογιού. Τροποποιώντας το χρονιζόµενο SR FF,
µπορέσαµε να κατασκευάσουµε τον D µανταλωτή, στοιχείο χρήσιµο για την αποθήκευση
δεδοµένων. Ακολούθως, προχωρήσαµε στην ανάλυση του JK FF και του T FF, που
προκύπτει από το JK µε απλή βραχυκύκλωση των εισόδων J, K.
17

ΕΝΟΤΗΤΑ 1.2. ΠΥΡΟ∆ΟΤΗΣΗ ΤΩΝ FLIP-FLOPS

Το JK FF, όπως και το Τ FF, που αναλύσαµε στην προηγούµενη ενότητα, παρουσιάζει
την εξής αδυναµία: Όταν CLK=1 και J=K=1 (ή Τ=1), τότε αυτό αλλάζει κατάσταση.
Παρατηρείστε ότι λόγω της ανατροφοδότησης που υπάρχει, αυτό θα συνεχίζει να αλλάζει
καταστάσεις για όσο χρονικό διάστηµα ο παλµός του ρολογιού βρίσκεται στο 1. Πόσο
συχνά αλλάζει καταστάσεις; Όση είναι η καθυστέρηση διάδοσης του σήµατος µέσα από
το FF. Στην προκειµένη περίπτωση αυτή είναι ίση µε την καθυστέρηση 3 πυλών. Αυτό
σηµαίνει πως για τη βασική σειρά TTL, στην οποία κάθε πύλη εισάγει καθυστέρηση
10ns, η συνολική καθυστέρηση του FF θα είναι 30ns. Άρα, µία πρώτη αντιµετώπιση του
προβλήµατος αυτού θα ήταν οι παλµοί του ρολογιού να έχουν εύρος στο λογικό 1
µικρότερο από την καθυστέρηση διάδοσης του σήµατος µέσα από το FF, δηλαδή
µικρότερο των 30 ns.
Αυτή η απαίτηση είναι εξαιρετικά δεσµευτική και δεν χρησιµοποιείται στην πράξη. Το
πρόβληµα αυτό µπορεί να αντιµετωπισθεί µε δύο διαφορετικούς τρόπους: (α) µε JK FFs
τύπου κύριο - εξαρτηµένο (master - slave) και (β) µε FFs, τα οποία ενεργοποιούνται κατά
την άνοδο ή κάθοδο του παλµού του ρολογιού (ακµοπυροδοτούµενα, edge-triggered) και
όχι κατά τη διάρκεια του παλµού. Αυτές τις δύο τεχνικές κατασκευής των FFs θα
εξετάσουµε αµέσως τώρα.

1.2.1. ΚΥΡΙΟ - ΕΞΑΡΤΗΜΕΝΟ JK FLIP-FLOP


Αυτό αποτελείται από δύο FFs (SR µανταλωτές), οι οποίοι είναι συνδεδεµένοι έτσι
ώστε οι έξοδοι του ενός να τροφοδοτούν τις εισόδους του άλλου, όπως δείχνεται στο
Σχήµα 1.14(α). Το βασικό είναι ότι τα δύο FFs λειτουργούν µε συµπληρωµατικούς
παλµούς ρολογιού. Όταν CLK=1, το πρώτο FF ενεργοποιείται, ενώ το δεύτερο είναι
απενεργοποιηµένο. Το αντίθετο συµβαίνει, όταν ο παλµός του ρολογιού γίνει 0 (CLK=0).
Έτσι, σε όλη τη διάρκεια που ο παλµός CLK=1, το εξαρτηµένο FF δεν µπορεί να αλλάξει
κατάσταση και, κατά συνέπεια, οι είσοδοι του πρώτου FF από ανατροφοδότηση µένουν
σταθερές στην κατάσταση που ήταν. Ας παρακολουθήσουµε, όµως, τη λειτουργία του
λίγο πιο αναλυτικά.
Έστω ότι J=K=1 και Q=1 (Q'=0). Λόγω των ανατροφοδοτήσεων, η πύλη 1 θα είναι
απενεργοποιηµένη και η πύλη 2 θα είναι ενεργοποιηµένη, επιτρέποντας έτσι στην έξοδο
Q1 (έξοδος του κύριου FF) να γίνει 0, όταν ο παλµός CLK µεταβαίνει στο λογικό 1
(HIGH). Όταν ο παλµός του ρολογιού επιστρέφει στο λογικό 0 (CLK=0), οι έξοδοι των
18

πυλών 1 και 2 γίνονται 0. Οι πύλες όµως 3 και 4 ενεργοποιούνται, επιτρέποντας τα


δεδοµένα των εισόδων τους να περάσουν από αυτές και να επηρεάσουν την κατάσταση
του εξαρτηµένου FF. Στην προκειµένη περίπτωση έχουµε S2=Q1=0, R2=Q'1=1, οπότε
Q2=0 και Q'2=1. ∆ηλαδή στο εξαρτηµένο FF έγινε εκκαθάριση (reset), οπότε και Q=0.
Άρα, το κύριο - εξαρτηµένο FF για J=K=1 άλλαξε κατάσταση και από 1 έγινε 0.

Κύριο Εξαρτηµένο
J 1 3
S1 Q1 S2 Q2 Q J Q
CLK CLK

R1 Q'1 R2 Q'2 Q' K Q'

K 2 4
(β)

(α)

Σχήµα 1.14 Κύριο - εξαρτηµένο JK Flip-Flop: (α) λογικό κύκλωµα, (β) σύµβολο.

Αν διατηρήσουµε τις εισόδους J και K στο λογικό 1 και εφόσον Q=0, η έλευση της
επόµενης υψηλής στάθµης (HIGH) στην είσοδο του ρολογιού θα επιτρέψει στην πύλη 1
να ενεργοποιηθεί, οπότε S1=1. Η έξοδος της πύλης 2 είναι 0, αφού Q=0. Έτσι, για S1=1,
R1=0 το κύριο FF ενεργοποιείται (Q1=1). Με την πτώση του παλµού του ρολογιού
(CLK=0), οι πύλες 1 και 2 δίνουν έξοδο 0 και άρα το κύριο FF παραµένει στην
κατάσταση που ήταν, δηλαδή Q1=1. Όµως οι πύλες 3 και 4 επιτρέπουν πλέον να
περάσουν τα δεδοµένα των εισόδων τους και έτσι S2=1 και R2=0. Με αυτές τις τιµές των
S2 και R2 το εξαρτηµένο FF ενεργοποιείται (Q2=1), οπότε και Q=1.
Παρατηρούµε, εποµένως, ότι το κύριο - εξαρτηµένο JK FF λειτουργεί ακριβώς, όπως
το JK FF που γνωρίσαµε στην υποενότητα 1.2.4 και δεν παρουσιάζει το πρόβληµα των
συνεχών αλλαγών καταστάσεων για J=K=CLK=1. Από την όλη ανάλυση θα µπορούσαµε
να πούµε ότι το κύριο - εξαρτηµένο FF εισάγει τα δεδοµένα στο κύριο FF, όταν το
ωρολόγιο είναι 1 (HIGH), και µεταφέρει το αποτέλεσµα στο εξαρτηµένο FF, όταν το
ωρολόγιο πηγαίνει στο 0 (LOW), όπως φαίνεται στο Σχήµα 1.15 για την περίπτωση κατά
την οποία J=K=1, που µόλις περιγράψαµε.
19

CLK

Q1
κύριο

Q2=Q
εξαρτηµένο

Σχήµα 1.15 Κυµατοµορφές της εισόδου CLK και των εξόδων του κύριου και του εξαρτηµένου FF για
J=K=1

Παράδειγµα 4 / Κεφάλαιο 1
Να σχεδιάσετε την κυµατοµορφή εξόδου ενός κύριου - εξαρτηµένου JK FF για τις
κυµατοµορφές εισόδου του Σχήµατος 1.16. Θεωρείστε ότι αρχικά είχαµε Q=0.

CLK

Το εξαρτηµένο FF
Το κύριο FF
"διαβάζει" την κατάσταση
γίνεται 1 (set)
του κύριου FF
Το εξαρτηµένο FF Αρχικά είχαµε J=0, Κ=1, οπότε Q=0
"διαβάζει" την κατάσταση (reset). Ακολούθως J=1, K=0, οπότε Q=1
του κύριου FF (set). Τέλος, J=K=0, οπότε η έξοδος Q 1
του κύριου FF παραµένει στο λογικό 1.
Ο παλµός Αυτή είναι και η κατάσταση που θα
εκκαθάρισης διαβάσει το εξαρτηµένο µε την πτώση
αγνοείται του CLK.
Το εξαρτηµένο FF
Το κύριο FF γίνεται
"διαβάζει" την κατάσταση
0 (reset)
του κύριου FF

Σχήµα 1.16 Κυµατοµορφές εισόδου-εξόδου ενός JΚ FF τύπου κύριο-εξαρτηµένο


20

Άσκηση Αυτοαξιολόγησης 3 / Κεφάλαιο 1


Σχεδιάστε την κυµατοµορφή εξόδου ενός κύριου-εξαρτηµένου JK FF για τις
κυµατοµορφές εισόδου του Σχήµατος 1.17. Θεωρείστε ότι αρχικά η έξοδος είναι Q=0.

CLK

K
Σχήµα 1.17 Κυµατοµορφές εισόδου του κύριου-εξαρτηµένου JK FF

Τα κύρια-εξαρτηµένα FF ονοµάζονται παλµο-πυροδοτούµενα ή επιπεδο-


πυροδοτούµενα (pulse-triggered ή level-triggered), διότι ενεργοποιούνται στη διάρκεια
του παλµού του ρολογιού () και όχι κατά τη στιγµή που ο παλµός αλλάζει κατάσταση
από HIGH σε LOW (È) ή από LOW σε HIGH (Ç). Έτσι, τα δεδοµένα εισόδου
διαβάζονται σε όλη τη διάρκεια που ο παλµός του ρολογιού είναι HIGΗ. Το γεγονός αυτό
εξακολουθεί να µας δηµιουργεί κάποιο πρόβληµα. Έστω, για παράδειγµα, ότι J=1 και
K=0, οπότε η έξοδος του κύριου-εξαρτηµένου JK FF γίνεται Q=1.

CLK

Εσφαλµένη
κατάσταση
Σχήµα 1.18 Ένας ανεπιθύµητος παλµός στην είσοδο Κ ενός κύριου - εξαρτηµένου JK FF οδήγησε
εσφαλµένα στην αλλαγή κατάστασης αυτού.

Ένας ανεπιθύµητος θετικός παλµός µικρού εύρους (σπινθήρας, spike) στην είσοδο Κ,
κατά τη διάρκεια που ο ωρολογιακός παλµός είναι HIGH, οδηγεί σε εκκαθάριση του
κύριου FF (Q1=0). Αυτή η κατάσταση µεταφέρεται µε την πτώση του ωρολογιακού
21

παλµού στην έξοδο του εξαρτηµένου FF, οπότε τελικά Q=0. Το αποτέλεσµα είναι το
κύριο-εξαρτηµένο JK FF εσφαλµένα να αλλάξει κατάσταση (βλ. Σχήµα 1.18). Το ίδιο θα
συνέβαινε, αν J=0 και Κ=1, οπότε Q=0. Η εµφάνιση ενός θετικού σπινθήρα στην είσοδο
J θα οδηγούσε εσφαλµένα στην αλλαγή κατάστασης του FF. Τη λύση σε όλα αυτά τα
προβλήµατα µας τη δίνει η σχεδίαση FFs που να είναι ευαίσθητα κατά τη στιγµή που
αλλάζει κατάσταση ο ωρολογιακός παλµός και όχι, όταν αυτός βρίσκεται σε µια
συγκεκριµένη λογική στάθµη. Αυτά ονοµάζονται ακµοπυροδοτούµενα (edge-triggered)
και εξετάζονται στην ενότητα που ακολουθεί.

1.2.2. ΑΚΜΟΠΥΡΟ∆ΟΤΟΥΜΕΝΑ FLIP-FLOPS


Ακµοπυροδοτούµενα FFs είναι αυτά, τα οποία είναι έτσι σχεδιασµένα, ώστε να είναι
ευαίσθητα κατά την αλλαγή της λογικής στάθµης του ωρολογιακού παλµού. Όταν ο
ωρολογιακός παλµός µεταβαίνει από το 0 (LOW) στο 1 (HIGH), τότε λέµε ότι έχουµε
µία θετική µετάβαση (βλ. Σχήµα 1.19) και τα FF, που είναι ευαίσθητα κατά τη µετάβαση
αυτή ονοµάζονται θετικά ακµοπυροδοτούµενα FFs (positive edge-triggered FFs). Στην
αντίθετη περίπτωση, δηλαδή για µετάβαση από 1 (HIGH) σε 0 (LOW), έχουµε τα
αρνητικά ακµοπυροδοτούµενα FFs (negative edge-triggered FFs).

(α) (β)

Q Q
CLK CLK
Q' Q'

(γ) (δ)

Σχήµα 1.19 Ακµοπυροδότηση: (α) θετική ακµή παλµού, (β) αρνητική ακµή παλµού, (γ) σύµβολο
θετικά ακµοπυροδοτούµενου FF, (δ) σύµβολο αρνητικά ακµοπυροδοτούµενου FF

Μπορούµε να έχουµε ακµοπυροδοτούµενα FFs όλων των τύπων, δηλαδή SR, D, JK,
T, γι' αυτό και στα Σχήµατα 1.19(γ) και 1.19(δ) δεν προσδιορίζουµε τον τύπο του FF,
αλλά µόνον τον τύπο της ακµοπυροδότησης. Έτσι, ένα ακµοπυροδοτούµενο JK FF θα
22

είναι ίδιο µε το JK FF του Σχήµατος 1.12, µε µόνη διαφορά στο κύκλωµα εισόδου των
ωρολογιακών παλµών, όπου έχει προστεθεί ένα κύκλωµα ανίχνευσης των ακµών (edge
detector), όπως δείχνεται στο Σχήµα 1.20. Ο πίνακας λειτουργίας του FF παραµένει
ακριβώς ο ίδιος.

Q
RESET CLK
K
Q Q'
Q
Ανιχνευτής Ανιχνευτής CLK
CLK CLK CLK
Ακµών Ακµών
Q' Q'
J SET
Q
CLK
Q'

Σχήµα 1.20 Λογικό κύκλωµα και συµβολισµός ενός ακµοπυροδοτούµενου JK FF.

Παράδειγµα 5 / Κεφάλαιο 1
Σχεδιάστε την κυµατοµορφή της εξόδου Q ενός αρνητικά ακµοπυροδοτούµενου JK
FF για τις κυµατοµορφές εισόδου του Σχήµατος 1.21. Θεωρείστε ότι αρχικά είχαµε
Q=0.

CLK

t1 t2 t3 t4 t5 t6
Σχήµα 1.21 Κυµατοµορφές εισόδου - εξόδου αρνητικά ακµοπυροδοτούµενου JK FF του
Παραδείγµατος 5 / Κεφάλαιο 1.

Το FF είναι αρνητικά ακµοπυροδοτούµενο, άρα µας ενδιαφέρει το τι "βλέπει" στις


εισόδους του εκείνη τη χρονική στιγµή. Οι αρνητικές µεταβάσεις των ωρολογιακών
παλµών σηµειώνονται ως t1, t2, ..., t6. Έτσι έχουµε:
t1 : J=1, Κ=0, άρα Q=1 (set).
23

t2 : J=0, Κ=0, και συνεπώς αυτό παραµένει στην προηγούµενη κατάστασή του Q=1.
Παρατηρούµε ότι οι µεταβάσεις της εισόδου Κ, πριν την αρνητική ακµή,
αγνοήθηκαν!
t3 : J=0, Κ=1, άρα Q=0 (reset).
t4 : J=1, Κ=1, άρα Q=1 (toggle).
t5 : J=0, Κ=1, άρα Q=0 (reset).
t6 : J=0, Κ=0, άρα Q=0, όπως και στην αµέσως προηγούµενη κατάσταση (Qt+1=Qt).

Παράδειγµα 6 / Κεφάλαιο 1
Να σχεδιασθεί η κυµατοµορφή της εξόδου Q ενός θετικά ακµοπυροδοτούµενου JK FF
για τις κυµατοµορφές του Σχήµατος 1.22. Θεωρείστε ότι αρχικά είχαµε Q=1.

CLK

t1 t2 t3 t4 t5 t6
Σχήµα 1.22 Κυµατοµορφές εισόδου - εξόδου του θετικά ακµοπυροδοτούµενου JK FF του
Παραδείγµατος 6 / Κεφ. 1.

Αφού το FF ενεργοποιείται (πυροδοτείται) κατά τις θετικές ακµές των ωρολογιακών


παλµών, τις σηµειώνουµε πάνω στο σχήµα, ώστε να παρακολουθούµε εύκολα τις
εισόδους JK στις αντίστοιχες χρονικές στιγµές. Έτσι έχουµε:
t1 : J=0, Κ=1, άρα Q=0 (reset).
t2 : J=1, Κ=1, άρα Q=1 (toggle).
t3 : J=0, Κ=0, άρα Q=1 (hold), δηλαδή παραµένει στην ίδια κατάσταση.
t4 : J=1, Κ=0, άρα Q=1 (set).
t5 : J=1, Κ=1, άρα Q=0 (toggle).
t6 : J=1, Κ=1, άρα Q=1 (toggle).
24

Ο τρόπος λειτουργίας και, κατά συνέπεια, οι πίνακες λειτουργίας των


ακµοπυροδοτουµένων FFs παραµένουν ακριβώς οι ίδιοι µε εκείνους, που γνωρίσαµε
προηγουµένως κατά τη µελέτη του κάθε FF ξεχωριστά. Οι πίνακες αυτοί
συγκεντρώνονται στο Σχήµα 1.23. Το D FF είναι ένα από τα πιο χρήσιµα στοιχεία
για τη σχεδίαση καταχωρητών και η ανάγκη κατανόησης της λειτουργίας του είναι
µεγάλη. Ας δούµε ένα σχετικό παράδειγµα.

SR flip-flop JK flip-flop

S R Q t+1 J K Q t+1
0 0 Q t 0 0 Qt
0 1 0 0 1 0
1 0 1 1 0 1
1 1 απροσδιόριστη 1 1 Q’t

D flip-flop T flip-flop

D Q t+1
0 0 T Q t+1
1 1 0 Qt
1 Q’t

Σχήµα 1.23 Πίνακες λειτουργίας ή χαρακτηριστικοί πίνακες (function tables) των flip-flops.

Παράδειγµα 7 / Κεφάλαιο 1
Σχεδιάστε την κυµατοµορφή εξόδου Q ενός αρνητικά ακµοπυροδοτούµενου D FF,
όταν στις εισόδους του CLK και D εφαρµόζονται οι κυµατοµορφές του Σχήµατος 1.11
του Παραδείγµατος 3 / Κεφάλαιο 1. Συγκρίνετε την κυµατοµορφή, που σχεδιάσατε, µε
την αντίστοιχη του µανταλωτή D (D-latch) του Παραδείγµατος 3 / Κεφάλαιο 1.
Θεωρείστε ότι αρχικά είχαµε Q=0.
25

CLK

Q
D flip-flop

Q
D latch

Σχήµα 1.24 Κυµατοµορφές εισόδου-εξόδου του D flip-flop και D latch του Παραδείγµατος 7 / Κεφ. 1.

Εφόσον το D FF είναι αρνητικής ακµής πυροδότησης, θα ενεργοποιείται κάθε φορά


που παρουσιάζεται µία αρνητική ακµή στους ωρολογιακούς παλµούς, µεταφέροντας
στην έξοδο Q την τιµή, που έχει η είσοδος D τη στιγµή εκείνη. Οι οποιεσδήποτε
εναλλαγές της εισόδου, πριν την πτώση (αρνητική ακµή) των ωρολογιακών παλµών, δεν
γίνονται αντιληπτές από το D FF. Αντίθετα, οι οποιεσδήποτε τέτοιες εναλλαγές της
εισόδου του D µανταλωτή (D latch) κατά τη διάρκεια που ο ωρολογιακός παλµός είναι 1,
µεταφέρονται στην έξοδό του, αφού Q=D, όταν αυτό είναι ενεργοποιηµένο. Για το λόγο
αυτό ο D µανταλωτής ονοµάζεται και διαφανής (transparent latch). Γίνεται, λοιπόν,
φανερό και πάλι ότι ο µανταλωτής τύπου D (D latch) είναι ευαίσθητος στη διάρκεια του
ωρολογιακού παλµού, ενώ το FF τύπου D (D flip-flop) στην αλλαγή στάθµης του
ωρολογιακού παλµού.

Άσκηση Αυτοαξιολόγησης 4 / Κεφάλαιο 1


Σχεδιάστε τις κυµατοµορφές εξόδου ενός θετικά ακµοπυροδοτούµενου D FF στις
εισόδους του οποίου εφαρµόζονται οι παλµοσειρές του Σχήµατος 1.25. Θεωρείστε ότι
αρχικά έχουµε Q=1.

CLK

Σχήµα 1.25 Κυµατοµορφές εισόδου του θετικά ακµοπυροδοτούµενου D FF της άσκησης αυτο-
αξιολόγησης 3 / Κεφάλαιο 1.
26

1.2.3. ΚΥΚΛΩΜΑΤΑ ΑΝΙΧΝΕΥΣΗΣ ΑΚΜΩΝ


Είδαµε ότι όλα τα προβλήµατα, που παρουσίασαν τα FFs, αντιµετωπίσθηκαν µε τη
µετατροπή αυτών από παλµο-πυροδοτούµενα σε ακµο-πυροδοτούµενα. Αυτό έγινε µε τη
βοήθεια ενός κυκλώµατος ανίχνευσης των ακµών, δηλαδή ανίχνευσης των αλλαγών
στάθµης του ρολογιού. Για τι κύκλωµα πρόκειται και ποιοι περιορισµοί πιθανόν ισχύουν
στην ακµοπυροδότηση των FFs;
Το απλούστερο κύκλωµα για την ανίχνευση των ακµών είναι ένα RC (αντιστάτης -
πυκνωτής) κύκλωµα, το οποίο δρα ως κύκλωµα διαφόρισης των ωρολογιακών παλµών
(Σχήµα 1.26). Η θετική µετάβαση του παλµού δηµιουργεί ένα θετικό σπινθήρα, ενώ η
αρνητική µετάβαση δηµιουργεί έναν αρνητικό σπινθήρα. Οι τιµές των R και C
καθορίζουν τη σταθερά χρόνου εκφόρτισης του πυκνωτή και, κατά συνέπεια, το πόσο
"λεπτός" είναι ο σπινθήρας. Ένα τέτοιο κύκλωµα ανίχνευσης ακµών, αν και απλό στη
σύλληψή του, δεν είναι καλό από άποψη κατασκευής σε ολοκληρωµένη µορφή, διότι
παρουσιάζει µεγάλη ανοµοιοµορφία σε σχέση µε τα υπόλοιπα ψηφιακά κυκλώµατα ενός
ολοκληρωµένου κυκλώµατος (integrated circuit, chip), που είναι απλές πύλες.

Q
CLK CLK
C
Q'
R

Σχήµα 1.26 Ανίχνευση ακµών µέσω ενός απλού RC κυκλώµατος διαφόρισης.

Έτσι στην πράξη χρησιµοποιούνται ως ανιχνευτές ακµών άλλα κυκλώµατα,


κατασκευασµένα από πύλες NAND ή NOR, όπως αυτά του Σχήµατος 1.27. Η όλη
λειτουργία τους βασίζεται στο γεγονός της καθυστέρησης διάδοσης ενός σήµατος µέσω
µιας πύλης. Η καθυστέρηση αυτή είναι της τάξεως των nanoseconds (1ns=10-9s). Έτσι,
αναφερόµενοι στο Σχήµα 1.27(α), όταν η είσοδος Cp γίνει 1, η έξοδος CLK της πύλης
AND θα γίνει επίσης 1 για ένα πολύ µικρό χρονικό διάστηµα. Αυτό οφείλεται στο ότι και
οι δύο είσοδοι της πύλης AND βρίσκονται σε κατάσταση HIGH. Πολύ σύντοµα, όµως,
(σε χρόνο <10ns) η έξοδος του αντιστροφέα, ανταποκρινόµενη στο λογικό 1 της εισόδου,
γίνεται 0, µε αποτέλεσµα η πύλη AND να επιστρέψει και πάλι στο λογικό 0. Με το
κύκλωµα αυτό επιτύχαµε να ανιχνεύσουµε τη θετική µετάβαση του ωρολογιακού
παλµού. Με ένα παρόµοιο απλό κύκλωµα µπορούµε να ανιχνεύσουµε την αρνητική
27

µετάβαση του ωρολογιακού παλµού, όπως δείχνεται στο Σχήµα 1.27(β). Οι παραγόµενοι
ωρολογιακοί παλµοί έχουν εύρος παλµών µικρότερο των 10ns, ανάλογα µε την
τεχνολογία κατασκευής των πυλών.
Υπάρχουν, όµως, και δύο χρονικοί περιορισµοί, οι οποίοι πρέπει να λαµβάνονται
υπόψη για την αξιόπιστη λειτουργία ενός ακµοπυροδοτούµενου FF. Αυτοί αφορούν
στους χρόνους προετοιµασίας tS (setup time) και παραµονής tH (hold time), όπως αυτοί
δείχνονται στο Σχήµα 1.28. για την περίπτωση της θετικής ακµής πυροδότησης.

C'p C'p
Cp CLK Cp CLK

Cp Cp

C'p C'p

CLK CLK

(α) (β)
Σχήµα 1.27 Κυκλώµατα ανίχνευσης (α) των θετικών και (β) των αρνητικών ακµών για την
πυροδότηση των FFs

Είσοδος

CLK

tS tH
Χρόνος Προετοιµασίας Χρόνος Παραµονής
(Setup time) (Hold time)

Σχήµα 1.28 Οι είσοδοι ενός ακµοπυροδοτούµενου FF πρέπει να είναι σταθερές για χρόνο tS πριν την
εφαρµογή της ενεργού ακµής, καθώς και για χρόνο tH µετά την εφαρµογή αυτής.

Ο χ ρ ό ν ο ς π ρ ο ε τ ο ι µ α σ ί α ς t S είναι το ελάχιστο χρονικό εκείνο διάστηµα, κατά


το οποίο µία είσοδος θα πρέπει να διατηρείται στη σταθερή επιθυµητή λογική στάθµη,
π ρ ι ν την εφαρµογή της ενεργού ακµής (θετικής ή αρνητικής) του ωρολογιακού παλµού.
28

Αν αυτή η απαίτηση δεν εκπληρωθεί, τότε δεν µπορούµε να είµαστε σίγουροι για την
αξιόπιστη λειτουργία του FF.
Ο χ ρ ό ν ο ς π α ρ α µ ο ν ή ς t H είναι το ελάχιστο χρονικό διάστηµα, κατά το οποίο
µία είσοδος πρέπει να διατηρείται στη σταθερή επιθυµητή λογική στάθµη αµέσως µ ε τ ά
την εφαρµογή της ενεργού ακµής του ωρολογιακού παλµού.
Συµπερασµατικά, µπορούµε να πούµε ότι, για να διασφαλιστεί η αξιόπιστη λειτουργία
ενός ακµοπυροδοτούµενου FF, πρέπει οι τιµές των εισόδων του να παραµένουν σταθερές
για χρονικό διάστηµα τουλάχιστον tS πριν και tH µετά την εφαρµογή της ενεργού ακµής
του ρολογιού.
Οι τιµές tS και tH είναι της τάξεως των ns. Ο χρόνος προετοιµασίας είναι συνήθως
µεταξύ 5 και 50ns, ενώ ο χρόνος παραµονής µεταξύ 0 και 10ns.

Σύνοψη Ενότητας
Στην ενότητα αυτή ασχοληθήκαµε µε τον τρόπο πυροδότησης (σκανδαλισµού) των
FF. ∆ιαπιστώνοντας ότι υπάρχει κίνδυνος σφαλµάτων, όταν ένα FF πυροδοτείται στη
διάρκεια που ο ωρολογιακός παλµός είναι στο λογικό 1, προχωρήσαµε στην υιοθέτηση
δύο διαφορετικών τεχνικών κατασκευής των FFs. Η πρώτη ήταν εκείνη του κύριου-
εξαρτηµένου FF, κατά την οποία δύο όµοια FFs πυροδοτούνται µε συµπληρωµατικούς
παλµούς. Έτσι, η οποιαδήποτε αλλαγή στην κατάσταση του ενός FF (κύριου) κατά τη
διάρκεια του παλµού, µεταβιβάζεται στο άλλο FF (εξαρτηµένο) µε την πτώση του
παλµού. Η δεύτερη ήταν εκείνη της ακµοπυροδότησης, δηλαδή της κατασκευής τέτοιων
FF, που να είναι ευαίσθητα κατά τη στιγµή της αλλαγής του ωρολογιακού παλµού και όχι
κατά τη διάρκεια του παλµού. Αυτού του είδους τα FFs είναι πιο εύχρηστα και δεν
παρουσιάζουν προβλήµατα, αρκεί φυσικά να λάβουµε υπόψη µας τους απαιτούµενους
χρόνους προετοιµασίας και παραµονής.
29

ΕΝΟΤΗΤΑ 1.3. ΑΣΥΓΧΡΟΝΟΙ ΕΙΣΟ∆ΟΙ ΤΩΝ FLIP-FLOPS

Οι είσοδοι ελέγχου S, R, J, K, D όλων των FFs, που εξετάσαµε µέχρι τώρα, ανήκουν
στην κατηγορία των σύγχρονων εισόδων (synchronous inputs), επειδή η επίδρασή τους
στη λειτουργία του FF συγχρονίζεται µε την είσοδο CLK των ωρολογιακών παλµών.
Συνήθως, όµως, τα FFs έχουν επιπλέον και µία ή περισσότερες ασύγχρονες εισόδους
(asynchronous inputs), οι οποίες λειτουργούν ανεξάρτητα από τις άλλες εισόδους ή την
είσοδο ρολογιού CLK. Αυτές οι ασύγχρονες είσοδοι µπορούν να χρησιµοποιηθούν, για
να καθορίσουν τη στάθµη εξόδου του FF στο 1 (set) ή να εκκαθαρίσουν αυτό (reset) σε
οποιαδήποτε χρονική στιγµή, ανεξάρτητα από τις τιµές των άλλων εισόδων. Στο Σχήµα
1.29 δείχνεται ένα αρνητικά ακµοπυροδοτούµενο JK FF, το οποίο έχει επιπλέον δύο
ασύγχρονες εισόδους, τις PRESET και CLEAR . Αυτές οι είσοδοι ενεργοποιούνται για
το λογικό 0 (active - LOW inputs), όπως φαίνεται και από το µικρό κύκλο (φυσαλίδα,
bubble), στο σύµβολο του FF καθώς και από την υπεργράµµιση των ονοµάτων τους.
Αυτό σηµαίνει πως, όταν µία από τις εισόδους αυτές ενεργοποιηθεί θέτοντάς την στο
λογικό 0, τότε η έξοδος Q του FF θα µεταβεί αµέσως στην αντίστοιχη κατάσταση (Q=1
για PRESET =0 και Q=0 για CLEAR =0), ανεξάρτητα από την κατάσταση στην οποία
αυτό ήταν ή από τις τιµές που έχουν οι είσοδοι αυτού. Όταν και οι δύο ασύγχρονες
είσοδοι είναι απενεργοποιηµένες ( PRESET = CLEAR =1), τότε το FF λειτουργεί
κανονικά, όπως το έχουµε γνωρίσει µέχρι τώρα. Η περίπτωση, κατά την οποία και οι δύο
ασύγχρονες είσοδοι είναι ταυτόχρονα ενεργοποιηµένες ( PRESET = CLEAR =0), οδηγεί
σε απροσδιοριστία και πρέπει να αποφεύγεται.

PRESET
J PRESET CLEAR Λειτουργία FF
Q
CLK 0 0 ∆εν χρησιµοποιείται
0 1 Q=1
K Q'
CLEAR
1 0 Q=0
1 1 Κανονική σύγχρονη Λειτουργία

Σχήµα 1.29 Αρνητικά ακµοπυροδοτούµενα JK FF µε ασύγχρονες εισόδους.

Παράδειγµα 8 / Κεφάλαιο 1
30

Για το αρνητικά ακµοπυροδοτούµενο JK FF του Σχήµατος 1.29 να σχεδιάσετε την


κυµατοµορφή εξόδου, όταν στις ασύγχρονες εισόδους του εφαρµόζονται οι παλµοί του
Σχήµατος 1.30 και οι είσοδοι J, K είναι µόνιµα συνδεδεµένες στην τάση τροφοδοσίας
Vcc. Θεωρείστε ότι αρχικά η έξοδος του FF ήταν Q=1.

CLK

PRESET

CLEAR

t1 t2 t3 t4 t5 t6 t7
Σχήµα 1.30 Κυµατοµορφές εισόδου-εξόδου του αρνητικά ακµοπυροδοτούµενο JK FF του
Παραδείγµατος 8 / Κεφάλαιο 1.
Αφού οι είσοδοι J και K είναι στο λογικό 1 (HIGH), το FF στην κανονική του
λειτουργία, δηλαδή όταν PRESET = CLEAR =1, θα αλλάζει κατάσταση σε κάθε
αρνητική ακµή του ρολογιού. Η κανονική του λειτουργία διακόπτεται κάθε φορά,
που µία από τις ασύγχρονες εισόδους ενεργοποιηθεί µεταβαίνοντας στο λογικό 0
(active - LOW inputs). Αναλυτικά έχουµε:
t1 : Q=0 (Σύγχρονη λειτουργία toggle, αφού J=K= PRESET = CLEAR =1 ).
t2 : Q=1 (Ασύγχρονη λειτουργία set λόγω ενεργοποίησης της εισόδου PRESET ).
t3 : Q=0 (Σύγχρονη λειτουργία toggle).
t4 : Q=1 (Σύγχρονη λειτουργία toggle).
t5 : Q=0 (Ασύγχρονη λειτουργία εκκαθάρισης λόγω ενεργοποίησης της εισόδου
CLEAR ).
t6 : Q=0 (Ασύγχρονη λειτουργία εκκαθάρισης λόγω ενεργοποίησης της εισόδου
CLEAR . Παρατηρούµε ότι η έλευση της αρνητικής ακµής δεν µπόρεσε να
φέρει το FF σε κατάσταση toggle, γιατί η ασύγχρονη είσοδος CLEAR είναι
ακόµη ενεργοποιηµένη).
t7 : Q=1 (Σύγχρονη λειτουργία toggle).

Άσκηση Αυτοαξιολόγησης 5 / Κεφάλαιο 1


31

Σχεδιάστε την κυµατοµορφή της εξόδου Q ενός θετικά ακµοπυροδοτούµενου D


FF, στις εισόδους του οποίου εφαρµόζονται οι κυµατοµορφές του Σχήµατος 1.31.

CLK

PRESET

CLEAR

D
Σχήµα 1.31 Κυµατοµορφές εισόδου του D FF της άσκησης αυτοαξιολόγησης 4 / Κεφάλαιο 1.

Ας προσπαθήσουµε τώρα που τελειώνουµε το παρόν κεφάλαιο έχοντας µελετήσει


όλους τους δυνατούς τύπους FF, να επιλύσουµε το πρόβληµα της ζώνης ασφαλείας
αυτοκινήτου, στο οποίο αναφερθήκαµε στην αρχή του κεφαλαίου. Τονίζεται εξαρχής ότι
η λύση, που θα προταθεί, δεν είναι εύκολη, κι αυτό γιατί δεν θα ακολουθήσουµε
κάποιους κανόνες σχεδίασης προς το παρόν. Είναι όµως κατανοητή, όπως θα
διαπιστώσουµε από την ανάλυσή της.

∆ραστηριότητα 1 / Κεφάλαιο 1
∆ίνονται δύο είσοδοι Α, Β και µας ζητείται να σχεδιάσουµε ένα κύκλωµα, το οποίο να
δίνει έξοδο HIGH, µόνον εφόσον και οι δύο είσοδοι είναι HIGH και η είσοδος Α έχει
γίνει HIGH πριν από την είσοδο Β. (Καταλαβαίνουµε ότι η είσοδος Α αντιστοιχεί στο
γεγονός ότι "ο οδηγός είναι καθισµένος" και η είσοδος Β στο ότι "η ζώνη ασφαλείας
είναι προσδεδεµένη").

A D
Q
B CLK

Q'
CLEAR

Σχήµα 1.32 Κύκλωµα για τη λύση του προβλήµατος της ζώνης ασφαλείας.

Το πρόβληµα αυτό επιδέχεται περισσότερες από µία λύσεις. Μία από αυτές δίνεται
στο Σχήµα 1.32 και αναλύεται στη συνέχεια. Όπως θα διαπιστώσετε, πρόκειται για ένα
32

απλό κύκλωµα, το οποίο όµως δεν είναι εύκολο να το σκεφθεί κανείς. Μην
απογοητευθείτε, αν δεν µπορέσατε να δώσετε κάποια λύση στο πρόβληµα. Αρκεί το ότι
προσπαθήσατε, συνδυάζοντας όλα όσα µάθαµε µέχρι τώρα. Στο Κεφάλαιο 3, όπου θα
ασχοληθούµε συστηµατικά µε τη σχεδίαση ακολουθιακών κυκλωµάτων, θα
διαπιστώσετε ότι τα πράγµατα είναι πιο εύκολα απ’ ότι σας φάνηκαν τώρα. Αλλά ας
δούµε την προτεινόµενη λύση, αναλύοντας το κύκλωµα του Σχήµατος 1.32. Αυτό
αποτελείται από ένα θετικά ακµοπυροδοτούµενο D FF µε ασύγχρονη είσοδο
εκκαθάρισης ( CLEAR ) και από µία πύλη AND. Η λειτουργία του κυκλώµατος έχει ως
εξής:
Όταν ο οδηγός δεν κάθεται, τότε Α=0, οπότε λόγω της ασύγχρονης εισόδου
εκκαθάρισης η έξοδος Q=0, µε συνέπεια και η πύλη AND να δίνει 0 ανεξάρτητα από το
αν η ζώνη είναι δεµένη ή όχι (είσοδος Β).
Όταν ο οδηγός καθίσει, τότε Α=1, οπότε το FF είναι έτοιµο για κανονική λειτουργία,
εφόσον η είσοδος του ρολογιού µεταβεί στο 1. Έτσι δένοντας τη ζώνη ασφαλείας, Β=1,
µε τη θετική ακµή του ρολογιού το δεδοµένο D=A=1 µεταφέρεται στην έξοδο, Q=1.
Αφού Q=1 και Β=1, η πύλη AND δίνει επίσης λογικό 1. Άρα το κύκλωµα λειτουργεί
σύµφωνα µε την επιθυµία µας.
Θα µπορούσε, ίσως, κάποιος να σκεφθεί ότι η πύλη AND είναι περιττή και ότι µόνο η
έξοδος Q του FF είναι αρκετή για την επιθυµητή λειτουργία του κυκλώµατος. ∆εν είναι
όµως έτσι, διότι η πύλη AND µας διασφαλίζει ακόµα και στην περίπτωση που ο οδηγός,
αφού καθίσει (Α=1) και δέσει την ζώνη του (Β=1), στη συνέχεια απασφαλίσει αυτή
(Β=0). Το FF δεν θα αντιδράσει, αφού είναι θετικά ακµοπυροδοτούµενο και δεν έχουµε
θετική ακµή, όταν το Β από 1 γίνεται 0. Όµως η πύλη AND για Β=0 θα δώσει έξοδο 0!

Σύνοψη Ενότητας

Στην ενότητα αυτή είδαµε ότι τα FFs διαθέτουν συνήθως δύο επιπλέον εισόδους για
τον άµεσο έλεγχο της κατάστασής τους. Αυτές είναι οι είσοδοι PRESET και CLEAR . Η
ενεργοποίηση της εισόδου PRESET αναγκάζει την έξοδο του FF να µεταβεί στην υψηλή
λογική, ανεξάρτητα από τις άλλες εισόδους ή τους ωρολογιακούς παλµούς. Όµοια, η
ενεργοποίηση της εισόδου CLEAR ανγκάζει την έξοδο του FF να µεταβεί άµεσα στη
χαµηλή λογική στάθµη (εκκαθάριση του FF).
33

ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ

Στο κεφάλαιο αυτό µάθαµε ότι:


• Το SR flip-flop είναι ένα κύκλωµα αποθήκευσης ενός bit, το οποίο µπορεί να
κατασκευασθεί από απλές πύλες.
• Ο µανταλωτής τύπου D (D latch) είναι ευαίσθητος στη διάρκεια του ωρολογιακού
παλµού, ενώ το FF τύπου D (D flip-flop) στην αλλαγή στάθµης του ωρολογιακού
παλµού.
• Το JK FF διαφέρει από το SR FF µόνο κατά το ότι δεν παρουσιάζει
απροσδιοριστία στην κατάσταση της εξόδου του και για τις δύο εισόδους του σε
λογικό 1. Στην περίπτωση αυτή, το JK FF αλλάζει κατάσταση (toggles), δηλαδή η
έξοδος Q µεταβαίνει στη συµπληρωµατική της τιµής που είχε µέχρι τότε.
• Το κύριο-εξαρτηµένο JK FF αποτελείται από δύο µανταλωτές. Ο κύριος
µανταλωτής διαβάζει τα δεδοµένα εισόδου, όταν ο ωρολογιακός παλµός είναι 1,
και ο εξαρτηµένος µανταλωτής διαβάζει τις εξόδους του κύριου, όταν ο
ωρολογιακός παλµός µεταβαίνει στο 0.
• Υπάρχουν όλων των τύπων (JK, D, SR) ακµοπυροδοτούµενα FFs. Αυτά είναι
ευαίσθητα στη µετάβαση των ωρολογιακών παλµών από 0 σε 1 (θετική ακµή) ή
από 1 σε 0 (αρνητική ακµή).
• Όλοι οι τύποι των FFs έχουν συνήθως ασύγχρονες εισόδους για τον προκαθορισµό
της εξόδου στην κατάσταση 1 (PRESET) και για την εκκαθάριση της εξόδου
(CLEAR). Ενεργοποίηση κάποιας από αυτές τις ασύγχρονες εισόδους συνεπάγεται
την άµεση ανταπόκριση του FF, ανεξάρτητα από τις τιµές των άλλων εισόδων ή
των ωρολογιακών παλµών.
34

ΒΙΒΛΙΟΓΡΑΦΙΑ

ΕΛΛΗΝΟΓΛΩΣΣΗ
∆εληγιάννης Θ., Ηλεκτρονικά Ψηφιακά Κυκλώµατα, Εκδόσεις Πανεπιστηµίου Πατρών,
Πάτρα 1997.

Millman J., Χαλκιάς Χ., Ολοκληρωµένη Ηλεκτρονική, Τόµος Β, Εκδόσεις ΤΕΕ, 1972.

Morris Mano M., Ψηφιακή Σχεδίαση, Εκδόσεις Παπασωτηρίου, 1992.

ΞΕΝΟΓΛΩΣΣΗ
Daniels J. D., Digital Design from Zero to One, J. Wiley & Sons, 1996.

Greenfield J. D., Practical Digital Design Using ICs, J. Wiley & Sons, 1977.

Kleitz W., Digital Electronics: A Practical Approach, Prentice Hall, 1996.

Malvino A. P., Leach D. P., Digital Principles and Applications, McGraw-Hill, 1986.
Tocci R. J., Widmer N. S., Digital Systems: Principles and Applications, Prentice Hall,
1998.

Ο∆ΗΓΟΣ ΠΕΡΑΙΤΕΡΩ ΜΕΛΕΤΗΣ


Morris Mano M., Ψηφιακή Σχεδίαση, Εκδόσεις Παπασωτηρίου, 1992.

Στο Κεφάλαιο 6 του βιβλίου αυτού θα βρείτε µια αναλυτική παρουσίαση όλων των
τύπων FF, καθώς και µια εντελώς διαφορετική τεχνική για τη σχεδίαση του ανιχνευτή
ακµών των ακµοπυροδοτουµένων FFs.

Greenfield J. D., Practical Digital Design Using ICs, J. Wiley & Sons, 1977.

Στο Κεφάλαιο 6 του βιβλίου παρουσιάζονται οι διαφορετικοί τύποι των FFs µε πολλά
παραδείγµατα και µε αρκετές διευκρινήσεις σε νέες έννοιες. Περιέχει επίσης πολλές
ασκήσεις.

Kleitz W., Digital Electronics: A Practical Approach, Prentice Hall, 1996.


35

Τα FFs παρουσιάζονται στο Κεφάλαιο 10 του βιβλίου. Η θεωρία είναι αρκετά συνοπτική,
αλλά τα παραδείγµατά του πολλά και εντυπωσιακά από άποψη παρουσίασης. Περιέχει
επίσης πολλές ασκήσεις καθώς και γλωσσάρι όρων.

Malvino A. P., Leach D. P., Digital Principles and Applications, McGraw-Hill, 1986.
Στο Κεφάλαιο 8 του βιβλίου θα βρείτε µια καλή παρουσίαση των χρόνων προετοιµασίας
και παραµονής των ακµοπυροδοτουµένων FFs.

ΑΠΑΝΤΗΣΕΙΣ ΤΩΝ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ

Άσκηση Αυτοαξιολόγησης 1 / Κεφάλαιο 1

CLK
S
R
Q
t0 t2 t4 t6 t8 t10 t12 t14 t16
t1 t3 t5 t7 t9 t11 t13 t15 t17

Σχήµα 1.33 Κυµατοµορφές εισόδου-εξόδου ενός συγχρονισµένου SR µανταλωτή

Οι παλµοί εισόδου καθώς και ο παλµός εξόδου του συγχρονισµένου SR µανταλωτή


δείχνονται στο Σχήµα 1.33. Η σχεδίαση του παλµού εξόδου Q βασίστηκε στον πίνακα
λειτουργίας του Σχήµατος 1.7(δ). Είναι βασικό, όµως, να τονίσουµε ότι ο πίνακας αυτός
ισχύει, όταν ο ωρολογιακός παλµός CLK είναι στο λογικό 1. Όταν αυτός βρίσκεται στο
λογικό 0, δηλαδή όταν CLK=0, τότε ο µανταλωτής δεν αλλάζει κατάσταση! Για να
σχεδιάσουµε τις κυµατοµορφές εξόδου, σηµειώνουµε πρώτα στο σχήµα µας όλες τις
χρονικές στιγµές t0, t1, … , t17, κατά τις οποίες έχουµε αλλαγή της λογικής στάθµης σε
µια από τις εισόδους CLK, S, R. Έτσι έχουµε:
Μέχρι τη χρονική στιγµή t0: CLK=1, S=0, R=1, άρα Q=0 (reset).
Κατά τη χρονική στιγµή t1: CLK=1, S=1, R=0, άρα Q=1 (set).
36

Κατά τη χρονική στιγµή t2: CLK=1, S=0, R=0, άρα Q=1 (διατηρεί την τιµή του).
Κατά τη χρονική στιγµή t3: CLK=1, S=0, R=1, άρα Q=0 (reset).
Μεταξύ t4 και t5 έχουµε CLK=0. Άρα το Q παραµένει στην κατάσταση που ήταν
(Q=0), ανεξάρτητα από τις τιµές των S, R.
Κατά τη χρονική στιγµή t5: CLK=1, S=0, R=1, άρα Q=0 (reset). ∆εν παρατηρούµε
καµία αλλαγή, γιατί η έξοδος Q ήταν ήδη στην κατάσταση 0.
Κατά τη χρονική στιγµή t6: CLK=1, S=0, R=0, άρα Q=0 (δηλαδή παραµένει και πάλι
στην κατάσταση που βρισκότανε Q=0).
Κατά τη χρονική στιγµή t7: CLK=1, S=1, R=0, άρα Q=1 (set).
Μεταξύ t8 και t11 το CLK είναι στη χαµηλή κατάσταση (CLK=0), µε συνέπεια ο
µανταλωτής να µην αντιλαµβάνεται τις οποιεσδήποτε αλλαγές συµβαίνουν στις εισόδους
του S, R και να εξακολουθεί να παραµένει στην κατάσταση που βρισκότανε (Q=1).
Κατά τη χρονική στιγµή t11: CLK=1, S=1, R=0, άρα Q=1 (set). Επειδή ήδη το Q ήταν
στο λογικό 1, δεν παρατηρούµε οποιαδήποτε αλλαγή.
Κατά τη χρονική στιγµή t12: CLK=1, S=0, R=0, άρα το Q παραµένει ως έχει (Q=1).
Μεταξύ t13 και t15 έχουµε CLK=0, οπότε το Q παραµένει ως έχει (Q=1).
Κατά τη χρονική στιγµή t15: CLK=1, S=0, R=1, άρα Q=0 (reset).
Κατά τη χρονική στιγµή t16: CLK=1, S=0, R=0, άρα το Q παραµένει ως έχει (Q=0).
Κατά τη χρονική στιγµή t17: CLK=0, άρα το Q παραµένει ως έχει (Q=0).

Άσκηση Αυτοαξιολόγησης 2 / Κεφάλαιο 1

Το D FF έχει µία µόνο είσοδο, η οποία για D=0 δίνει έξοδο Q=0, ενώ για D=1 δίνει
έξοδο Q=1. Παρατηρώντας τον πίνακα λειτουργίας του JK FF (βλ. Σχήµα 1.12(β)),
διαπιστώνουµε ότι, όταν οι είσοδοι J και K είναι διαφορετικές, δηλαδή όταν K=J’, τότε η
έξοδος Q είναι ίδια µε την είσοδο J (βλ. δεύτερη και τρίτη γραµµή του πίνακα
λειτουργίας του JK FF). Άρα το ζητούµενο κύκλωµα προκύπτει τοποθετώντας έναν
αντιστροφέα µεταξύ J και K, όπως δείχνεται στο Σχήµα 1.34.
37

D J Q
CLK
K Q'

Σχήµα 1.34 D FF κατασκευασµένο µε JK FF

Άσκηση Αυτοαξιολόγησης 3 / Κεφάλαιο 1

Οι κυµατοµορφές εισόδου-εξόδου του κύριου-εξαρτηµένου JK FF δείχνονται στο


Σχήµα 1.35.

CLK

t1 t2 t3 t4 t5 t6
set Toggle
Reset

Σχήµα 1.35 Κυµατοµορφές εισόδου-εξόδου του κύριου-εξαρτηµένου JK FF

Μεταξύ t1 και t2, οπότε CLK=1, το κύριο FF έχει στις εισόδους του SET και RESET,
1 και 0 αντίστοιχα, οπότε και γίνεται Q1=1 (set). Με την πτώση του ωρολογιακού
παλµού κατά τη χρονική στιγµή t2, η κατάσταση αυτή περνάει στην έξοδο Q του FF.
Μεταξύ t2 και t3 το CLK=0, οπότε καµία αλλαγή των εισόδων δεν γίνεται αντιληπτή.
Μεταξύ t3 και t4 οπότε CLK=1, η είσοδος J=0, ενώ η είσοδος Κ αλλάζει κατάσταση και
από 1 γίνεται 0. Έτσι για J=0, K=1 το κύριο FF εκκαθαρίζεται (Q=0), ενώ για J=0, K=0
παραµένει στην κατάσταση που ήταν, δηλαδή Q1=0. Άρα η πτώση του ωρολογιακού
38

παλµού τη χρονική στιγµή t4 βρίσκει το κύριο FF στην κατάσταση Q1=0 και αυτή είναι η
κατάσταση που περνάει στην τελική έξοδο του JK κύριου-εξαρτηµένου FF, δηλαδή Q=0.
Μεταξύ t5 και t6 έχουµε J=0, K=1 και ακολούθως J=1, K=0. Οι είσοδοι J=1, K=0
ενεργοποιούν (set) το κύριο FF, δηλαδή Q=1. Αυτή είναι και η κατάσταση που τελικά
περνάει στην έξοδο του JK κύριου-εξαρτηµένου FF κατά τη χρονική στιγµή t6, που ο
ωρολογιακός παλµός µεταβαίνει στο λογικό 0.

Άσκηση Αυτοαξιολόγησης 4 / Κεφάλαιο 1

CLK

t1 t2 t3 t4 t5 t6 t7
Σχήµα 1.36 Κυµατοµορφές εισόδου ενός θετικά ακµοπυροδοτουµένου D FF

Εφόσον το D FF είναι θετικά ακµοπυροδοτούµενο, σηµειώνουµε στο σχήµα µας τις


αντίστοιχες χρονικές στιγµές t1, … ,t7, που παρουσιάζονται οι θετικές µεταβάσεις στους
ωρολογιακούς παλµούς. Σε κάθε τέτοια χρονική στιγµή διαβάζουµε την τιµή της εισόδου
D και τη µεταφέρουµε στην έξοδο Q. Έτσι έχουµε:
t1: D=0, άρα Q=0.
t2: D=1, άρα Q=1.
t3: D=0, άρα Q=0.
t4: D=1, άρα Q=1.
t5: D=1, άρα Q=1.
t6: D=0, άρα Q=0.
t7: D=0, άρα Q=0.
39

Άσκηση Αυτοαξιολόγησης 5 / Κεφάλαιο 1

Πρόκειται για θετικά ακµοπυροδοτούµενο FF. Συνεπώς σηµειώνουµε στο σχήµα όλες
τις θετικές µεταβάσεις (θετικές ακµές) των ωρολογιακών παλµών t2, t3, t5, t7 (βλ. Σχήµα
1.37). Οι ασύγχρονες είσοδοι PRESET και CLEAR επηρεάζουν τη λειτουργία του FF,
ανεξάρτητα από τις άλλες εισόδους ή την κατάσταση του FF. Έτσι σηµειώνουµε στο ίδιο
σχήµα και τις χρονικές στιγµές, που οι ασύγχρονες είσοδοι αλλάζουν κατάσταση, δηλαδή
t1, t4,t6. Έχουµε λοιπόν:

CLK

PRESET

CLEAR

t1 t2 t3 t4 t5 t6 t7

Σχήµα 1.37 Κυµατοµορφές εισόδου ενός θετικά ακµοπυροδοτουµένου D FF

Μέχρι τη χρονική στιγµή t1 η είσοδος PRESET είναι ενεργοποιηµένη ( PRESET =0),


οπότε η έξοδος Q=1.
Από τη στιγµή t1 και µέχρι την t4 οι ασύγχρονοι είσοδοι PRESET και CLEAR
βρίσκονται στο λογικό 1, οπότε το D FF λειτουργεί κανονικά ‘διαβάζοντας’ την είσοδο
D σε κάθε θετική µετάβαση του ωρολογιακού παλµού.
Τη χρονική στιγµή t2 ‘βλέπει’ D=0, οπότε η κατάσταση Q γίνεται 0.
Τη χρονική στιγµή t3 ‘βλέπει’ D=1, οπότε η κατάσταση Q γίνεται 1.
Τη χρονική στιγµή t4 η είσοδος CLEAR είναι 0, οπότε προκαλείται εκκαθάριση της
εξόδου (Q=0).
Τη χρονική στιγµή t5 PRESET = CLEAR =1 και D=1, οπότε Q=1.
Τη χρονική στιγµή t6 προκαλείται και πάλι εκκαθάριση της εξόδου (Q=0), αφού
CLEAR =0 .
Τέλος, τη χρονική στιγµή t7 PRESET = CLEAR =1 και D=1, οπότε Q=1.
40

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


Bistable ∆ισταθής
Clear Εκκαθάριση, µηδενισµός
Clock pulse Ωρολογιακός παλµός, ρολόι, παλµοσειρά
Combinational circuit Συνδυαστικό κύκλωµα
Complement Συµπλήρωµα
Data ∆εδοµένα
Delay Καθυστέρηση
Disable Απενεργοποίηση
Discrete ∆ιακριτός, διακεκριµένος
Edge Ακµή
Edge detector Ανιχνευτής ακµών
Edge-triggered Ακµοπυροδοτούµενος
Enable Ενεργοποίηση
Feedback Ανατροφοδότηση, ανάδραση
Function table Πίνακας λειτουργίας
Gate Πύλη
Glitch Αιχµή
Hold time Χρόνος παραµονής
Latch Μανταλωτής
Level sensitive Ευαίσθητο κατά τη διάρκεια του παλµού
Master-slave Κύριο-εξαρτηµένο
Multivibrator Πολυδονητής
Off, low Λογικό 0, χαµηλή λογική στάθµη
On, high Λογικό 1, υψηλή λογική στάθµη
Power Τροφοδοσία
Preset Καθορισµός υψηλής λογικής στάθµης
Propagation delay Καθυστέρηση διάδοσης
Pulse width Εύρος παλµού
Reset Απενεργοποίηση, εκκαθάριση, καθορισµός χαµηλής λογικής στάθµης
Sequential circuit Ακολουθιακό κύκλωµα
Set Ενεργοποίηση, καθορισµός υψηλής λογικής στάθµης
Setup time Χρόνος προετοιµασίας
Spike Αιχµή
State Κατάσταση, λογική κατάσταση
Timing chart ∆ιάγραµµα χρονισµού
Toggle Μετάπτωση, εναλλαγή λογικής στάθµης, εναλλαγή κατάστασης
Trigger Πυροδότηση, σκανδαλισµός
Truth table Πίνακας αλήθειας
Unstable Ασταθής
ΚΕΦΑΛΑΙΟ 2 ΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ............................................................................................................ 3

ΕΝΟΤΗΤΑ 2.1. ΑΝΑΛΥΣΗ ΣΥΓΧΡΟΝΩΝ ΑΚΟΛΟΥΘΙΑΚΩΝ ΚΥΚΛΩΜΑΤΩΝ ..................... 6


2.1.1. ΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΧΩΡΙΣ ΕΞΩΤΕΡΙΚΕΣ ΕΙΣΟ∆ΟΥΣ ΚΑΙ ΕΞΟ∆ΟΥΣ ................. 6
2.1.2. ΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΜΕ ΕΞΩΤΕΡΙΚΕΣ ΕΙΣΟ∆ΟΥΣ .......................................... 11
2.1.3. ΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΜΕ ΕΞΩΤΕΡΙΚΕΣ ΕΙΣΟ∆ΟΥΣ ΚΑΙ ΕΞΟ∆ΟΥΣ .................... 13
ΕΝΟΤΗΤΑ 2.2. ΣΧΕ∆ΙΑΣΗ ΣΥΓΧΡΟΝΩΝ ΑΚΟΛΟΥΘΙΑΚΩΝ ΚΥΚΛΩΜΑΤΩΝ......................... 18
2.2.1. ΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΜΕ Α∆ΙΑΦΟΡΕΣ ΚΑΤΑΣΤΑΣΕΙΣ ........................................... 26
ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ ........................................................................................................................... 37

ΒΙΒΛΙΟΓΡΑΦΙΑ ......................................................................................................................................... 38

ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ......................................................................... 39


ΑΠΟ∆ΟΣΗ ΑΓΓΛΙΚΩΝ ΟΡΩΝ ΣΤΗΝ ΕΛΛΗΝΙΚΗ.............................................................................. 46

1
ΚΕΦΑΛΑΙΟ 2 ΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

Σκοπός του κεφαλαίου αυτού είναι η µελέτη των σύγχρονων ακολουθιακών


κυκλωµάτων. Τα κυκλώµατα αυτά αποτελούνται από FFs, των οποίων η λειτουργία
συγχρονίζεται από τους παλµούς ενός και µόνο ρολογιού. Η ανάλυση της λειτουργίας,
καθώς και η σχεδίαση τέτοιων κυκλωµάτων, είναι ένας ουσιώδους σηµασίας τοµέας της
ψηφιακής σχεδίασης.

Προσδοκώµενα αποτελέσµατα:
Μετά τη µελέτη του κεφαλαίου, θα είστε σε θέση να:
• αναλύετε οποιοδήποτε σύγχρονο ακολουθιακό κύκλωµα µε ή χωρίς εξωτερικές
εισόδους ή εξόδους
• σχεδιάζετε κυκλώµατα, που παράγουν συγκεκριµένες ακολουθίες παλµών
• σχεδιάζετε σύγχρονα ακολουθιακά κυκλώµατα µε ή χωρίς εξωτερικές εισόδους ή
εξόδους

Έννοιες – Κλειδιά:
• Σύγχρονο ακολουθιακό κύκλωµα
• Απαριθµητής / Μετρητής
• ∆ιάγραµµα καταστάσεων
• Πίνακας καταστάσεων
• Γεννήτρια ακολουθιών

2
ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ

Στο προηγούµενο κεφάλαιο µελετήσαµε όλους τους τύπους των FFs (SR, D, JK, T). Η
µελέτη αυτή περιορίστηκε στην ανάλυση του τρόπου λειτουργίας καθενός FF ξεχωριστά.
Τι γίνεται όµως στην περίπτωση που περισσότερα από ένα FFs συνδέονται µεταξύ τους
και λειτουργούν συγχρονισµένα µε βάση τους παλµούς κάποιου ρολογιού; Τι γίνεται αν
σ’ ένα τέτοιο κύκλωµα επιδρούν κάποιες εξωτερικές είσοδοι για τον έλεγχο αυτού; Και
τέλος, τι θα κάναµε αν µας ζητούσαν να σχεδιάσουµε ένα ακολουθιακό κύκλωµα
αποτελούµενο από ένα ή περισσότερα FFs που να λειτουργεί σύµφωνα µε κάποιες
προδιαγραφές;
Με ποιo τρόπο θα τα συνδυάζαµε αυτά;
Όλα αυτά είναι προβλήµατα που παρουσιάζονται πάρα πολύ συχνά στην πράξη και θα
πρέπει να είµαστε σε θέση να τα αντιµετωπίζουµε. Όπως στην περίπτωση των
συνδυαστικών κυκλωµάτων µπορούµε να αναλύουµε ή να σχεδιάζουµε ένα οποιοδήποτε
κύκλωµα χρησιµοποιώντας πύλες, έτσι και στην περίπτωση των ακολουθιακών
κυκλωµάτων θα πρέπει να είµαστε σε θέση να αναλύουµε ή να σχεδιάζουµε οποιοδήποτε
κύκλωµα µε FFs.
Αν όλα τα FFs του κυκλώµατος χρονίζονται µε το ίδιο ρολόι (clock), τότε αυτό
ονοµάζεται σ ύ γ χ ρ ο ν ο α κ ο λ ο υ θ ι α κ ό κ ύ κ λ ω µ α . Αυτού του είδους τα κυκλώµατα
θα µελετήσουµε στο παρόν κεφάλαιο. Θα εξετάσουµε τον τρόπο ανάλυσης και σχεδίασής
τους. Πρόκειται για δύο διαδικασίες, που η µία είναι αντίστροφη της άλλης. Η ανάλυση
ενός κυκλώµατος αφορά στην περίπτωση που µας δίνεται το όλο κύκλωµα και µας
ζητείται να προσδιορίσουµε τον ακριβή τρόπο λειτουργίας του. Η σχεδίαση είναι η
αντίστροφη διαδικασία. Εδώ µας δίνεται ο επιθυµητός τρόπος λειτουργίας του
κυκλώµατος και µας ζητείται να βρούµε ποιo είναι το κατάλληλο κύκλωµα που
συµπεριφέρεται σύµφωνα µε αυτόν. Στην ενότητα 2.1 ασχολούµαστε µε την ανάλυση
σύγχρονων ακολουθιακών κυκλωµάτων, ενώ στην ενότητα 2.2 παρουσιάζουµε τον τρόπο
σχεδίασης αυτών.
Πριν όµως ασχοληθούµε διεξοδικά µε την ανάλυση και σχεδίαση ΣΑΚ, ας
επιχειρήσουµε να διευκρινίσουµε ορισµένες έννοιες σχετικά µε την κατάσταση και την
έξοδο ενός ΣΑΚ, καθώς και των µοντέλων που υπάρχουν για την µελέτη αυτών, ανάλογα
µε τον τρόπο που επιδρούν οι τυχόν εξωτερικές είσοδοι του κυκλώµατος.

3
Είναι γνωστό ότι για να προσδιορίσουµε την έξοδο ενός συνδυαστικού κυκλώµατος σε
κάθε χρονική στιγµή απαιτείται να γνωρίζουµε την είσοδο καθώς και την λογική που
υλοποιούν οι πύλες του κυκλώµατος, δηλαδή τον τρόπο διασύνδεσής τους. Σ’ ένα
ακολουθιακό κύκλωµα, όµως, για να βρούµε την έξοδο, πρέπει να γνωρίζουµε την
παρούσα κατάσταση των FFs, καθώς και την εξωτερική είσοδο. Με τον όρο κατάσταση
(state) εννοούµε όλες τις εξόδους των FFs στη συγκεκριµένη χρονική στιγµή. Αν ένα
κύκλωµα αποτελείται από Ν FFs, θα έχει το πολύ 2Ν διαφορετικές καταστάσεις.
Παρατηρούµε ότι οι είσοδοι, όπως και το ρολόι, δεν συµπεριλαµβάνονται στον ορισµό
της κατάστασης. Επιπλέον, η κατάσταση δεν είναι το ίδιο πράγµα µε την έξοδο του
κυκλώµατος. Μερικές ή και όλες οι έξοδοι των FFs µπορεί να οδηγούνται κατευθείαν
στην έξοδο, αλλά γενικά η έξοδος ενός ΣΑΚ είναι ένας συνδυασµός των εξόδων
(καταστάσεων) των FFs, όπως δείχνεται στο Σχήµα 2.1α. Σηµειώστε ότι η έξοδος του
κυκλώµατος αλλάζει µόνο, όταν παρουσιαστεί η ενεργός ακµή του ρολογιού. Ένα τέτοιο
κύκλωµα, στο οποίο η έξοδος αλλάζει σε συµφωνία µε τους ωρολογιακούς παλµούς
ονοµάζεται κύκλωµα Moore. Αν στο ΣΑΚ προσθέσουµε κάποιες εξωτερικές εισόδους
(εκτός του ρολογιού), τότε και πάλι το κύκλωµα αυτό εξακολουθεί να είναι ένα κύκλωµα
Moore, υπό την προϋπόθεση ότι η έξοδος του κυκλώµατος λαµβάνεται από τις εξόδους
των FFs και άρα οι οποιεσδήποτε αλλαγές στην έξοδο συµβαίνουν µόνο κατά τις αλλαγές
των ωρολογιακών παλµών. Αν όµως η εξωτερική είσοδος µπορεί να επηρεάσει την έξοδο
του κυκλώµατος σε οποιαδήποτε χρονική στιγµή, χωρίς να είναι απαραίτητο να
συγχρονιστεί µε τους ωρολογιακούς παλµούς (βλ. Σχήµα 2.1β), τότε το κύκλωµα αυτό
ονοµάζεται κύκλωµα Mealy. ∆ηλαδή σ’ ένα τέτοιο κύκλωµα η έξοδος εξαρτάται από την
εσωτερική κατάσταση καθώς και από τις εξωτερικές επιρροές (εξωτερικές εισόδους). Οι
έξοδοι των FFs αποτελούν και πάλι την εσωτερική κατάσταση. Οι είσοδοι δεν
παρεµβαίνουν άµεσα στην κατάσταση, αλλά επηρεάζουν την έξοδο του κυκλώµατος
µέσω του συνδυαστικού κυκλώµατος, και µάλιστα σε οποιαδήποτε χρονική στιγµή.

4
(α)

(β)

Σχήµα 2.1 (α) Κύκλωµα Moore, (β) κύκλωµα Mealy

5
ΕΝΟΤΗΤΑ 2.1. ΑΝΑΛΥΣΗ ΣΥΓΧΡΟΝΩΝ ΑΚΟΛΟΥΘΙΑΚΩΝ
ΚΥΚΛΩΜΑΤΩΝ

Με τον όρο "ανάλυση" ενός ακολουθιακού κυκλώµατος εννοούµε την εύρεση


ολόκληρης της χρονικής ακολουθίας των εισόδων, εξόδων και καταστάσεων αυτού.
Έτσι, όταν µας δίνεται ένα σύγχρονο ακολουθιακό κύκλωµα (ΣΑΚ), θα θέλαµε να
προσδιορίσουµε όλη την αλληλουχία των δυνατών καταστάσεων αυτού, όπως και των
πιθανών εξόδων του, σε συνάρτηση µε τις τιµές των εξωτερικών εισόδων του
κυκλώµατος και τους ωρολογιακούς παλµούς. Η διαδικασία της ανάλυσης ενός ΣΑΚ
γίνεται πολύ εύκολα σε τρία ξεχωριστά βήµατα: συναρτήσεις εισόδου – πίνακας
καταστάσεων – διάγραµµα καταστάσεων. Η όλη παρουσίαση αρχίζει µε απλά
ακολουθιακά κυκλώµατα χωρίς επιπλέον εισόδους ή εξόδους (υποενότητα 2.1.1) και
συνεχίζεται µε ακολουθιακά κυκλώµατα µόνο µε εισόδους (υποενότητα 2.1.2) ή µε
εισόδους και εξόδους (υποενότητα 2.1.3).

2.1.1. ΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΧΩΡΙΣ ΕΞΩΤΕΡΙΚΕΣ


ΕΙΣΟ∆ΟΥΣ ΚΑΙ ΕΞΟ∆ΟΥΣ
Ας περιγράψουµε την όλη διαδικασία επιχειρώντας να αναλύσουµε το απλό κύκλωµα
του Σχήµατος 2.2(α). Πρόκειται για ένα κύκλωµα µε δύο FFs τύπου JK αρνητικής ακµής
πυροδότησης. Στο κύκλωµα δεν εφαρµόζεται καµιά εξωτερική είσοδος και οι έξοδοι
αυτού είναι αυτές των FFs (κατάσταση των FFs).

J Q J Q
CLK CLK CLK
Vcc K Q' Vcc K Q'

(α)

J0 Q0 J1 Q1
CLK FF0 FF1
Vcc K0 Q'0 Vcc K1 Q'1

(β)

Σχήµα 2.2 Σύγχρονο ακολουθιακό κύκλωµα µε δύο FFs.

6
Κατ' αρχήν παρατηρούµε ότι πράγµατι πρόκειται για ένα ΣΑΚ, αφού και τα δύο FFs
τύπου JK τροφοδοτούνται µε τους ίδιους ωρολογιακούς παλµούς CLK. Για να
διευκολυνθούµε στην ανάλυση του κυκλώµατος, αποφεύγοντας οποιεσδήποτε ασάφειες,
απαριθµούµε τα FFs αρχίζοντας από το 0, όπως δείχνεται στο Σχήµα 2.2β. Bάζουµε τον
αύξοντα αριθµό του κάθε FF ως δείκτη σε κάθε σύµβολο εισόδου και εξόδου των FFs.
Έτσι έχουµε το FF0 µε εισόδους J0, K0 και εξόδους Q0, Q΄0 και το FF1 µε εισόδους J1, K1
και εξόδους Q1, Q΄1. Μετά από αυτά, είµαστε πλέον έτοιµοι για να αρχίσουµε την
ανάλυση του κυκλώµατος. Η όλη ανάλυση επιτυγχάνεται σε τρία βήµατα, ως εξής:

Βήµα Α1: Γράφουµε τις λογικές συναρτήσεις των εισόδων των FFs.

Από το Σχήµα 2.2β βλέπουµε ότι: J0 = Q΄1 J1 = Q0


Κ0 = 1 Κ1 = 1

Βήµα Α2: Καταστρώνουµε τον πίνακα καταστάσεων.

Ο πίνακας καταστάσεων περιέχει ουσιαστικά την παρούσα και την επόµενη


κατάσταση του ακολουθιακού κυκλώµατος. Αυτό είναι και το ζητούµενο, δηλαδή σε
ποια κατάσταση θα βρεθεί το κύκλωµα στην επόµενη χρονική στιγµή, αν γνωρίζουµε την
κατάστασή του στην παρούσα χρονική στιγµή.
Ο πίνακας καταστάσεων αποτελείται από τρία τµήµατα (Πίνακας 2.1):
• Το πρώτο τµήµα που περιέχει την παρούσα κατάσταση. Σ' αυτό καταγράφονται
όλες οι δυνατές τιµές των καταστάσεων Q. Στην προκειµένη περίπτωση έχουµε 2
FFs και άρα 4 δυνατές τιµές για το ζεύγος Q1, Q0. Στη γενική περίπτωση
κυκλώµατος, που αποτελείται από n FFs, έχουµε συνολικά 2n δυνατές
καταστάσεις.
• Το δεύτερο τµήµα περιέχει τις τιµές των εισόδων των FFs, όπως αυτές προκύπτουν
από τις συναρτήσεις εισόδου του βήµατος Α1 και τις τιµές της παρούσας
κατάστασης. Έτσι, παρατηρούµε ότι η στήλη J1 είναι ίδια µε την στήλη Q0 της
παρούσας κατάστασης, αφού J1 = Q0. Επίσης, η στήλη J0 είναι συµπληρωµατική
της στήλης Q1, αφού J0 = Q΄1. Τέλος, οι τιµές των Κ1 και Κ0 είναι όλες ίσες µε 1.
• Το τρίτο τµήµα περιέχει την επόµενη κατάσταση του κυκλώµατος. Κάθε τιµή του
τµήµατος αυτού προκύπτει από τις αντίστοιχες τιµές της παρούσας κατάστασης
και των εισόδων, λαµβάνοντας υπόψη τον τρόπο λειτουργίας του FF.

7
Πίνακας 2.1 Πίνακας καταστάσεων του κυκλώµατος του Σχήµατος 2.2.

ΠΑΡΟΥΣΑ ΕΠΟΜΕΝΗ
ΚΑΤΑΣΤΑΣΗ ΕΙΣΟ∆ΟΙ ΚΑΤΑΣΤΑΣΗ

Q1 Q0 J1 K1 J0 K0 Q1 Q0

0 0 0 1 1 1 0 1
0 1 1 1 1 1 1 0
1 0 0 1 0 1 0 0
1 1 1 1 0 1 0 0

Καταγράφονται ΟΛΟΙ οι Προκύπτουν από τις Προκύπτουν από τις τιµές των
δυνατοί συνδυασµοί συναρτήσεις εισόδου και τις εισόδων J, K και τις τιµές της
(δυνατές καταστάσεις) τιµές της παρούσας παρούσας κατάστασης Q
κατάστασης καθενός FF

Έτσι, οι τιµές της στήλης Q1 της επόµενης κατάστασης προκύπτουν από την στήλη Q1
της παρούσας κατάστασης και τις τιµές των στηλών εισόδου J1, Κ1. Για παράδειγµα, η
δεύτερη τιµή του Q1 της επόµενης κατάστασης είναι 1, επειδή η αντίστοιχη τιµή του Q1
της παρούσας κατάστασης είναι 0 και οι είσοδοι J1 = 1, Κ1 = 1, που σηµαίνει ότι το FF
αλλάζει κατάσταση µε την έλευση του ενεργού παλµού του ρολογιού (toggle).

Βήµα Α3: Σχεδιάζουµε το διάγραµµα καταστάσεων.

Το διάγραµµα καταστάσεων (state diagram) δεν είναι τίποτε άλλο από τη γραφική
απεικόνιση του πίνακα καταστάσεων. Κάθε κατάσταση απεικονίζεται µε ένα κύκλο και
κάθε µετάβαση δείχνεται µε ένα βέλος. Το διάγραµµα καταστάσεων του κυκλώµατος,
που εξετάζουµε, δείχνεται στο Σχήµα 2.3.

00 11

01 10

Σχήµα 2.3 ∆ιάγραµµα καταστάσεων του κυκλώµατος του Σχήµατος 2.2.

8
Το διάγραµµα προέκυψε από τις αντίστοιχες τιµές της παρούσας και επόµενης
κατάστασης του πίνακα καταστάσεων του Σχήµατος 2.3. Βλέπουµε, δηλαδή, πως, αν η
παρούσα κατάσταση (Q1Q0) είναι 00, η επόµενη κατάσταση (τρίτο τµήµα του πίνακα
καταστάσεων) είναι 01. Άρα, µε την έλευση του ενεργού παλµού το κύκλωµα µεταβαίνει
από το 00 στο 01. Όµοια βρίσκουµε ότι µε τον επόµενο παλµό του ρολογιού το κύκλωµα
αλλάζει κατάσταση και από το 01 µεταβαίνει στο 10, ενώ από το 10 µεταβαίνει στο 00.
∆ηλαδή, το συγκεκριµένο κύκλωµα µε κάθε ενεργό ωρολογιακό παλµό περνά διαδοχικά
από τις καταστάσεις 00, 01, 10 ή 0, 1, 2 στο δεκαδικό σύστηµα αρίθµησης. Πρόκειται,
εποµένως, για ένα κύκλωµα απαρίθµησης παλµών (counter) µε δυνατότητα απαρίθµησης
3 παλµών (modulo-3). Αν το κύκλωµα για κάποιο λόγο (π.χ. κατά την έναρξη της
τροφοδοσίας του) βρεθεί στην κατάσταση 11 (δηλαδή Q1 = 1, Q0 = 1), τότε µε τον πρώτο
ενεργό ωρολογιακό παλµό µεταβαίνει στην κατάσταση 00 και από εκεί συνεχίζει, όπως
ήδη έχουµε περιγράψει. Περισσότερα, όµως, για τους απαριθµητές θα δούµε στο επόµενο
κεφάλαιο.

Παρατηρήσεις

• Παρατηρούµε ότι οι ωρολογιακοί παλµοί δεν δείχνονται στον πίνακα και στο
διάγραµµα καταστάσεων. Εννοείται ότι από την παρούσα κατάσταση
µεταβαίνουµε στην επόµενη κατάσταση µε την έλευση της ενεργού ακµής
πυροδότησης του ωρολογιακού παλµού CLK.
• Για την κατάστρωση του πίνακα βασιζόµαστε, εκτός από την παρούσα κατάσταση
και τις τιµές των εισόδων, και στον πίνακα λειτουργίας του FF. Με άλλα λόγια, οι
πίνακες λειτουργίας των FFs του Σχήµατος 1.23 είναι απαραίτητοι για την
ανάλυση ενός ακολουθιακού κυκλώµατος.

Για να κατανοήσουµε καλύτερα την όλη διαδικασία ανάλυσης σύγχρονων


ακολουθιακών κυκλωµάτων, ας δούµε ένα άλλο παράδειγµα.

Παράδειγµα 1 / Κεφάλαιο 2

Να προσδιορισθεί ο τρόπος λειτουργίας του ΣΑΚ του Σχήµατος 2.4.

9
T0 Q0 T1 Q1
CLK CLK CLK
Q'0 Q'1

Σχήµα 2.4 Σύγχρονο ακολουθιακό κύκλωµα µε FFs τύπου Τ θετικής ακµής

Μας ζητείται η ανάλυση του ΣΑΚ, το οποίο αποτελείται από δύο FFs τύπου Τ θετικής
ακµής πυροδότησης. Ακολουθούµε τα τρία βήµατα της ανάλυσης.

Βήµα Α1: Γράφουµε τις συναρτήσεις εισόδου.

Τ0 = Q0 + Q1 T1 = Q΄0 + Q1

Βήµα Α2: Καταστρώνουµε τον πίνακα καταστάσεων.

Πίνακας 2.2 Πίνακας καταστάσεων του κυκλώµατος του Σχήµατος 2.4.

ΠΑΡΟΥΣΑ ΕΠΟΜΕΝΗ
ΚΑΤΑΣΤΑΣΗ ΕΙΣΟ∆ΟΙ ΚΑΤΑΣΤΑΣΗ

Q1 Q0 Τ1 Τ0 Q1 Q 0

0 0 1 0 1 0
0 1 0 1 0 0
1 0 1 1 0 1
1 1 1 1 0 0

Το τµήµα της παρούσας κατάστασης περιέχει όλες τις δυνατές τιµές των εξόδων
των FFs. Με βάση αυτές και τις συναρτήσεις εισόδου συµπληρώνουµε το µεσαίο
τµήµα του πίνακα καταστάσεων, όπου φαίνονται οι τιµές των εισόδων Τ0 και Τ1.
Τέλος, η επόµενη κατάσταση προσδιορίζεται µε τη βοήθεια του πίνακα λειτουργίας
του Σχήµατος 1.23(δ). του Τ FF και τις αντίστοιχες τιµές της παρούσας κατάστασης
και των εισόδων αυτού.
Υπενθυµίζεται ότι για Τ=0 το FF δεν αλλάζει κατάσταση, ενώ για Τ=1 αυτό
µεταπίπτει στη συµπληρωµατική της παρούσας κατάστασης.

10
Βήµα Α3: Σχεδιάζουµε το διάγραµµα καταστάσεων.

Με βάση τις τιµές της παρούσας και επόµενης κατάστασης σχεδιάζουµε το


διάγραµµα καταστάσεων του Σχήµατος 2.5. Παρατηρούµε ότι το κύκλωµα αυτό µε
κάθε ωρολογιακό παλµό αλλάζει κατάσταση διατρέχοντας τις τιµές του δεκαδικού
συστήµατος: 2, 1, 0, 2, 1, 0, 2, .... Πρόκειται, εποµένως, για ένα κύκλωµα
απαρίθµησης παλµών. Σε αντίθεση µε την περίπτωση του κυκλώµατος του Σχήµατος
2.3, το παρόν κύκλωµα απαριθµεί ανάστροφα (µετρά προς τα κάτω). Αν το κύκλωµα
βρεθεί στην κατάσταση Q1Q0 = 11, τότε µε τον επόµενο ωρολογιακό παλµό
µεταβαίνει στο 00 και από εκεί και έπειτα µε κάθε νέο παλµό συνεχίζει τον κύκλο του
2, 1, 0, 2, ...

00 11

01 10

Σχήµα 2.5 ∆ιάγραµµα καταστάσεων του κυκλώµατος του Σχήµατος 2.4.

Άσκηση Αυτοαξιολόγησης 1 / Κεφάλαιο 2

Να προσδιορισθεί ο τρόπος λειτουργίας του ΣΑΚ του Σχήµατος 2.6.

Σχήµα 2.6 Σύγχρονο ακολουθιακό κύκλωµα µε FFs τύπου JK αρνητικής ακµής

2.1.2. ΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΜΕ ΕΞΩΤΕΡΙΚΕΣ


ΕΙΣΟ∆ΟΥΣ
Αν στο κύκλωµα, που θέλουµε να αναλύσουµε, εφαρµόζονται κάποιες εξωτερικές
είσοδοι, τότε πρέπει να τις λάβουµε υπόψη µας στη διαδικασία της ανάλυσης,
προσδιορίζοντας την επίδραση που αυτές έχουν στο κύκλωµα. Η διαδικασία της
ανάλυσης δεν αλλάζει και εξακολουθεί να γίνεται ακολουθώντας τα τρία βήµατα, που

11
αναφέραµε στην προηγούµενη παράγραφο. Ας παρακολουθήσουµε την ανάλυση ενός
τέτοιου κυκλώµατος µέσα από ένα παράδειγµα.

Παράδειγµα 2 / Κεφάλαιο 2

Να αναλυθεί η λειτουργία του κυκλώµατος, που δίνεται στο Σχήµα 2.7.

Vcc

X J1 Q1 J0 Q0
CLK CLK CLK
K1 Q'1 K0 Q'0

Σχήµα 2.7 Σύγχρονο ακολουθιακό κύκλωµα µε FFs τύπου JK και µε εξωτερική είσοδο

Βήµα Α1: Γράφουµε τις συναρτήσεις εισόδου.

J1 = K1 = X~Q0 J0 = K0 = 1

Βήµα Α2: Καταστρώνουµε τον πίνακα καταστάσεων.

Παρατηρούµε ότι οι είσοδοι J, K των FFs είναι συναρτήσεις όχι µόνο της
παρούσας κατάστασης Q, αλλά και της τιµής της εισόδου Χ. Αυτό σηµαίνει πως, για
να προσδιορίσουµε την επόµενη κατάσταση, πρέπει να ξέρουµε την παρούσα
κατάσταση και την είσοδο Χ. Έτσι, στο πρώτο τµήµα του πίνακα καταστάσεων
ενσωµατώνουµε και τις τιµές του Χ.
Οι δυνατοί συνδυασµοί των τριών µεταβλητών X, Q1, Q0 είναι 8, όπως φαίνεται
στον πίνακα. Κατά τα υπόλοιπα, ο πίνακας καταστάσεων προκύπτει µε το γνωστό
πλέον τρόπο.
Πίνακας 2.3 Πίνακας καταστάσεων του κυκλώµατος του Σχήµατος 2.7

ΕΙΣΟ∆ΟΣ
& ΕΠΟΜΕΝΗ
ΕΙΣΟ∆ΟΙ
ΠΑΡΟΥΣΑ ΚΑΤΑΣΤΑΣΗ ΚΑΤΑΣΤΑΣΗ

Χ Q1 Q0 J1 K1 J0 K0 Q1 Q0

0 0 0 1 1 1 1 1 1
0 0 1 0 0 1 1 0 0
0 1 0 1 1 1 1 0 1
0 1 1 0 0 1 1 1 0
1 0 0 0 0 1 1 0 1
1 0 1 1 1 1 1 1 0
1 1 0 0 0 1 1 1 1
1 1 1 1 1 1 1 0 0

12
Βήµα Α3: Σχεδιάζουµε το διάγραµµα καταστάσεων.

Σε κάθε βέλος (µετάβαση) του διαγράµµατος καταστάσεων σηµειώνουµε και την


αντίστοιχη τιµή της εισόδου Χ (Σχήµα 2.8). Έτσι, εύκολα παρατηρούµε ότι, όταν η
εξωτερική είσοδος Χ = 1, το κύκλωµα απαριθµεί συνολικά (προς τα πάνω), δηλαδή 0,
1, 2, 3, 0, 1, ..., ενώ, όταν Χ = 0, το κύκλωµα απαριθµεί ανάστροφα (προς τα κάτω),
δηλαδή 3, 2, 1, 0, 3, 2, ... Συνεπώς, πρόκειται για ένα κύκλωµα απαρίθµησης 4
παλµών (modulo-4), η λειτουργία του οποίου εκφράζεται από την εξωτερική είσοδο
Χ.

00 1 11

0 1 1 0

01 1 10

0
Σχήµα 2.8 ∆ιάγραµµα καταστάσεων του κυκλώµατος του Σχήµατος 2.7.

2.1.3. ΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΜΕ ΕΞΩΤΕΡΙΚΕΣ


ΕΙΣΟ∆ΟΥΣ ΚΑΙ ΕΞΟ∆ΟΥΣ
Ένα ΣΑΚ µπορεί να έχει µία ή περισσότερες εξωτερικές εισόδους ή/και εξόδους. Η
διαδικασία ανάλυσης του τρόπου λειτουργίας είναι ίδια µε αυτή που µάθαµε στις
προηγούµενες παραγράφους και γίνεται σε τρία βήµατα. Ο πίνακας καταστάσεων στην
προκειµένη περίπτωση θα αποτελείται από ένα επιπλέον τµήµα, όπου θα καταγράφονται
οι τιµές των εξωτερικών εξόδων για κάθε δυνατή περίπτωση των εισόδων και της
παρούσας κατάστασης. Ας παρακολουθήσουµε τη διαδικασία ανάλυσης ενός τέτοιου
κυκλώµατος µέσα από το παράδειγµα που ακολουθεί.

Παράδειγµα 3 / Κεφάλαιο 2

Να αναλυθεί η λειτουργία του κυκλώµατος του Σχήµατος 2.9.

13
T1 Q1 T0 Q0
CLK CLK CLK
Q'1 Q'0

Σχήµα 2.9 Σύγχρονο ακολουθιακό κύκλωµα µε Τ FFs και εξωτερική είσοδο και έξοδο

Αρχίζουµε την ανάλυση του κυκλώµατος ακολουθώντας τα γνωστά τρία βήµατα:

Βήµα Α1: Γράφουµε τις εξισώσεις εισόδου των FFs.

T1 = Q΄0 Τ0 = Χ~Q1

Αφού το κύκλωµα διαθέτει και µια εξωτερική έξοδο Υ, είναι σκόπιµο να


γράψουµε τη λογική συνάρτηση αυτής, ώστε στη συνέχεια να είµαστε έτοιµοι να
προσδιορίσουµε την τιµή της για κάθε δυνατό συνδυασµό της παρούσας κατάστασης
και της εισόδου. Έτσι έχουµε:
Y = X ⊕ Q1 ⊕Q0

Βήµα Α2: Καταστρώνουµε τον πίνακα καταστάσεων.

Έχουµε µία εξωτερική είσοδο και δύο FFs, και κατά συνέπεια 8 διαφορετικές
περιπτώσεις µπορεί να υπάρξουν στην παρούσα κατάσταση. Με βάση αυτές τις τιµές
και τις συναρτήσεις εισόδου, συµπληρώνουµε το δεύτερο τµήµα του πίνακα
καταστάσεων, που περιέχει όλες τις δυνατές περιπτώσεις στις οποίες µπορούν να
βρεθούν οι είσοδοι Τ0, Τ1 των δύο FFs. Στο σηµείο αυτό, και πριν συνεχίσουµε στον
προσδιορισµό της επόµενης κατάστασης (δεξιό τµήµα του Πίνακα 2.4),
καταγράφουµε τις τιµές εξόδου της Υ. Οι τιµές της προκύπτουν από τις αντίστοιχες
τιµές της εξωτερικής εισόδου και της παρούσας κατάστασης. Τέλος, προσδιορίζουµε
την επόµενη κατάσταση από την παρούσα κατάσταση και τις τιµές των εισόδων Τ0, Τ1
των FFs µε βάση τον πίνακα λειτουργίας τους (βλ. Σχήµα 1.23δ).

14
Πίνακας 2.4 Πίνακας καταστάσεων του κυκλώµατος του Σχήµατος 2.9.

ΕΙΣΟ∆ΟΣ
& ΕΠΟΜΕΝΗ
ΕΙΣΟ∆ΟΙ ΕΞΟ∆ΟΣ
ΠΑΡΟΥΣΑ ΚΑΤΑΣΤΑΣΗ ΚΑΤΑΣΤΑΣΗ

Χ Q1 Q0 T1 T0 Υ Q1 Q0

0 0 0 1 1 0 1 1
0 0 1 0 1 1 0 0
0 1 0 1 0 1 0 0
0 1 1 0 0 0 1 1
1 0 0 1 0 1 1 0
1 0 1 0 0 0 0 1
1 1 0 1 1 0 0 1
1 1 1 0 1 1 1 0

Βήµα Α3: Σχεδιάζουµε το διάγραµµα καταστάσεων.

Το διάγραµµα καταστάσεων σχεδιάζεται κατά τα γνωστά από την παρούσα και


επόµενη κατάσταση του Πίνακα 2.4. Σε κάθε µετάβαση σηµειώνουµε τις αντίστοιχες
τιµές των εξωτερικών εισόδων και εξόδων µε τη µορφή Χ/Υ. Έτσι, αν το κύκλωµα
βρεθεί στην κατάσταση 10 και είσοδος Χ = 0, τότε έλευση του ενεργού παλµού θα το
οδηγήσει στην κατάσταση 00 και η έξοδος θα είναι Υ = 1. Για το λόγο αυτό στο βέλος
από το 10 στο 00 σηµειώνουµε 0/1. Αν όµως η είσοδος Χ = 1, τότε η έλευση του
ενεργού παλµού θα το οδηγήσει στην κατάσταση 01 και η έξοδος Υ θα ισούται µε 0
(Υ=0). Παρατηρούµε ότι, αν το κύκλωµα βρεθεί στην κατάσταση 01 και η είσοδος Χ
= 1, τότε αυτό εγκλωβίζεται στην ίδια κατάσταση. Αυτό δείχνεται στο διάγραµµα
καταστάσεων µε ένα βρόχο. Όµοια, αν το κύκλωµα βρεθεί στην κατάσταση 11 και η
είσοδος είναι Χ = 0, τότε παραµένει στην ίδια κατάσταση µέχρις ότου γίνει Χ = 1,
οπότε και µε την έλευση του ενεργού παλµού µεταβαίνει στην κατάσταση 10.

0/0
0/0

00 11

0/1
0/1 1/1
1/1

01 10

1/0
1/0

Σχήµα 2.10 ∆ιάγραµµα καταστάσεων του κυκλώµατος του Σχήµατος 2.9.

15
Άσκηση Αυτοαξιολόγησης 2 / Κεφάλαιο 2

Να προσδιορισθεί ο τρόπος λειτουργίας του κυκλώµατος του Σχήµατος 2.11 και να


σχεδιαστούν οι κυµατοµορφές CLK και Y.

D2 Q2
CLK CLK
Q'2

D1 Q1 Y
CLK
Q'1

D0 Q0
CLK
Q'0

Σχήµα 2.11 Σύγχρονο ακολουθιακό κύκλωµα µε D FFs και έξοδο

Σύνοψη Ενότητας
Στην ενότητα αυτή µελετήσαµε τον τρόπο ανάλυσης ΣΑΚ. Είδαµε ότι:
• Η ανάλυση ενός ΣΑΚ γίνεται σε τρία βήµατα ως εξής:
Α1: Γράφουµε τις συναρτήσεις εισόδου των FFs.
Α2: Καταστρώνουµε τον πίνακα καταστάσεων.
Α3: Σχεδιάζουµε το διάγραµµα καταστάσεων.
• Ο πίνακας καταστάσεων αποτελείται από τρία ή τέσσερα τµήµατα, ανάλογα µε το αν
το προς ανάλυση κύκλωµα έχει ή δεν έχει εξωτερικές εξόδους.
• Το πλήθος των γραµµών (δυνατών περιπτώσεων) του πίνακα καταστάσεων εξαρτάται
από το πλήθος των FFs του κυκλώµατος και το πλήθος των εξωτερικών εισόδων.
Έτσι, αν ένα ΣΑΚ αποτελείται από n FFs (n καταστάσεις) και m εξωτερικές είσοδοι
εφαρµόζονται σ’ αυτό, το πλήθος των δυνατών συνδυασµών, που θα περιέχει ο
πίνακας καταστάσεων, θα ισούται µε 2n+m.
• Το διάγραµµα καταστάσεων αποτελεί µια εποπτική αναπαράσταση του πίνακα
καταστάσεων. Με άλλα λόγια, το διάγραµµα και ο πίνακας καταστάσεων ενός
κυκλώµατος παρέχουν την ίδια πληροφορία.

16
• Οι ωρολογιακοί παλµοί δεν περιλαµβάνονται στον πίνακα ή στο διάγραµµα
καταστάσεων ενός κυκλώµατος.
• Ο τρόπος ενεργοποίησης (πυροδότησης) των FFs δεν διαφοροποιεί την ανάλυση ενός
ΣΑΚ και, όπως αναφέρθηκε στο προηγούµενο σηµείο, δεν δείχνεται στον πίνακα ή
στο διάγραµµα καταστάσεων. Ο τρόπος ενεργοποίησης, δηλαδή ακµοπυροδοτούµενο
(θετικά / αρνητικά) ή παλµοπυροδοτούµενο, φαίνεται κατά τη σχεδίαση των
κυµατοµορφών εισόδου / εξόδου του ΣΑΚ.
• Για την ανάλυση ενός ΣΑΚ είναι απαραίτητοι οι πίνακες λειτουργίας (Σχήµα 1.23)
των FFs του κυκλώµατος.
• Το τµήµα του πίνακα καταστάσεων, το οποίο περιέχει τις τιµές των εξωτερικών
εξόδων ενός ΣΑΚ, συµπληρώνεται µε βάση τις τιµές της παρούσας κατάστασης και
των πιθανών εξωτερικών εισόδων, δηλαδή τις τιµές του πρώτου τµήµατος του πίνακα
καταστάσεων και όχι µε βάση τις τιµές της επόµενης κατάστασης.

17
ΕΝΟΤΗΤΑ 2.2. ΣΧΕ∆ΙΑΣΗ ΣΥΓΧΡΟΝΩΝ ΑΚΟΛΟΥΘΙΑΚΩΝ
ΚΥΚΛΩΜΑΤΩΝ

Η σχεδίαση ΣΑΚ είναι διαδικασία αντίστροφη εκείνης της ανάλυσης κυκλωµάτων,


που µόλις περιγράψαµε. Στην προκειµένη περίπτωση µας δίνονται οι προδιαγραφές του
κυκλώµατος και µας ζητείται να βρούµε το κατάλληλο κύκλωµα, το οποίο και λειτουργεί
σύµφωνα µε τις προδιαγραφές αυτές. Μια συνήθης περίπτωση είναι να µας δίνεται, έστω
περιγραφικά, το διάγραµµα καταστάσεων του κυκλώµατος και κατά συνέπεια και ο
πίνακας καταστάσεων αυτού. Αυτό σηµαίνει ότι γνωρίζουµε την παρούσα και την
επόµενη κατάσταση καθενός από τα FFs. Άρα, αυτό που µένει είναι να προσδιορίσουµε
τις εισόδους των FFs, ώστε µε τον ερχοµό του κάθε ωρολογιακού παλµού το καθένα FF
να µεταβαίνει από την παρούσα κατάσταση στην επόµενη. Τα βήµατα για τη σχεδίαση
ενός ΣΑΚ θα µπορούσαν να κωδικοποιηθούν στα ακόλουθα τρία:
Βήµα Σ1: Σχεδιάζουµε το διάγραµµα καταστάσεων του κυκλώµατος και από αυτό
καταστρώνουµε τον πίνακα καταστάσεων.
Βήµα Σ2: Προσδιορίζουµε τις απλοποιηµένες συναρτήσεις εισόδου των FFs.
Βήµα Σ3: Σχεδιάζουµε το λογικό κύκλωµα.
Πριν συνεχίσουµε στην αναλυτική περιγραφή των βηµάτων αυτών, ας αναφερθούµε
σε µια νέα έννοια των FFs, αυτή των πινάκων διέγερσης (excitation tables). Ο πίνακας
διέγερσης ενός FF µας δίνει τις τιµές των εισόδων του FF, όταν γνωρίζουµε τις τιµές της
παρούσας και της επόµενης κατάστασης αυτού. Ας γίνουµε πιο συγκεκριµένοι,
απαντώντας στο εξής ερώτηµα: Ποιες πρέπει να είναι οι τιµές των εισόδων J, K ενός FF
τύπου JK, ώστε, ενώ η κατάστασή του στην παρούσα χρονική στιγµή είναι 0 (Qt=0), να
γίνει 1 µε την έλευση της ενεργού ακµής (Qt+1=1); Η απάντηση είναι πως, για να συµβεί
αυτό, θα πρέπει J=K=1, οπότε το FF θα µεταπέσει (toggle) από το 0 στο 1. Θα µπορούσε,
όµως, να είναι και J=1, K=0, οπότε ο ωρολογιακός παλµός θα καθόριζε την κατάστασή
του στο λογικό 1 (set), ανεξάρτητα από την τιµή της παρούσας κατάστασης. ∆ηλαδή,
συνολικά για J=1 και K=0 ή K=1 το FF θα µεταβεί από το 0 στο 1. Αυτό σηµαίνει πως η
τιµή της εισόδου Κ είναι αδιάφορη (Κ=Χ), αρκεί η είσοδος J να είναι στο λογικό 1, για
να αλλάξει η κατάσταση του FF από το 0 στο 1. Εργαζόµενοι µε τον ίδιο τρόπο,
µπορούµε να βρούµε τις εισόδους όλων των FFs για κάθε δυνατό συνδυασµό παρούσας -
επόµενης κατάστασης. Οι αντίστοιχοι πίνακες ονοµάζονται, όπως έχουµε ήδη αναφέρει,
πίνακες διέγερσης και δίνονται στο Σχήµα 2.12. Από τους πίνακες αυτούς παρατηρούµε

18
ότι το FFs τύπου JK έχει τις περισσότερες περιπτώσεις συνθηκών αδιαφορίας στις
εισόδους του έναντι των άλλων. Επίσης, παρατηρούµε ότι η είσοδος D του FF τύπου D
είναι ίδια µε την επόµενη κατάσταση Qt+1 αυτού, όπως άλλωστε ήταν αναµενόµενο, αφού
για να γίνει η επόµενη κατάσταση 0 ή 1, πρέπει η είσοδος να είναι 0 ή 1 αντίστοιχα,
ανεξάρτητα από το ποια είναι η παρούσα κατάσταση. Οι πίνακες διέγερσης είναι
απαραίτητοι για τη σχεδίαση ΣΑΚ κατ’ αναλογία µε τους πίνακες λειτουργίας των FFs,
οι οποίοι χρησιµοποιούνται για την ανάλυση ΣΑΚ.

SR Flip-Flop JK Flip-Flop
Qt Qt+1 S R Qt Qt+1 J K
0 0 0 Χ 0 0 0 Χ
0 1 1 0 0 1 1 X
1 0 0 1 1 0 X 1
1 1 X 0 1 1 X 0

D Flip-Flop T Flip-Flop
Qt Qt+1 D Qt Qt+1 T
0 0 0 0 0 0
0 1 1 0 1 1
1 0 0 1 0 1
1 1 1 1 1 0

Σχήµα 2.12 Πίνακες διέγερσης των FFs

Παράδειγµα 4 / Κεφάλαιο 2

Με FFs τύπου JK αρνητικής ακµής πυροδότησης, να σχεδιασθεί ΣΑΚ, το οποίο να


"περνά" διαδοχικά από τις καταστάσεις 0, 1, 3, 2 (δηλαδή να απαριθµεί σύµφωνα µε τον
κώδικα Gray).
Πριν αρχίσουµε, και αφού µας έχει διευκρινιστεί ότι η όλη σχεδίαση πρέπει να γίνει
µε FFs τύπου JK, ας δούµε πόσα FFs χρειαζόµαστε. Εφόσον έχουµε 4 διαφορετικές
καταστάσεις από το 0 µέχρι το 3, σηµαίνει πως θα χρειαστούµε 2 FFs. Άρα,
ακολουθούµε τα τρία βήµατα σχεδίασης και έχουµε:

Βήµα Σ1: Σχεδιάζουµε το διάγραµµα καταστάσεων και µε βάση αυτό τον αντίστοιχο
πίνακα καταστάσεων.

19
00 11

01 10

Σχήµα 2.13 ∆ιάγραµµα καταστάσεων του Παραδείγµατος 4 / Κεφάλαιο 2

Πίνακας 2.5 Πίνακας καταστάσεων του Παραδείγµατος 4 / Κεφάλαιο 2

Π.Κ. Ε.Κ. ΕΙΣΟ∆ΟΙ


Q1 Q0 Q1 Q0 J1K1 J0K0
0 0 0 1 0 X 1 X
0 1 1 1 1 X X 0
1 0 0 0 X 1 0 X
1 1 1 0 X 0 X 1

Τα τµήµατα της παρούσας και επόµενης κατάστασης του Πίνακα καταστάσεων 2.5
εξάγονται απ' ευθείας από το διάγραµµα καταστάσεων του Σχήµατος 2.13. Το τρίτο
τµήµα όµως του πίνακα καταστάσεων, το οποίο περιέχει τις αντίστοιχες τιµές των
εισόδων J, K των FFs, συµπληρώνεται γραµµή προς γραµµή µε τη βοήθεια του πίνακα
διέγερσης του Σχήµατος 2.12. για το JK FF. Έτσι, αν το FF1 βρίσκεται κατά την
παρούσα χρονική στιγµή στην κατάσταση 0 και θέλουµε να παραµείνει σ' αυτή (επόµενη
κατάσταση Q1=0), τότε οι είσοδοι J, K αυτού πρέπει να είναι 0, Χ αντίστοιχα (βλ. πρώτη
γραµµή και πρώτη στήλη των τµηµάτων του πίνακα καταστάσεων). Αν το FF1 βρίσκεται
στο 0 και θέλουµε να µεταβεί στο 1, τότε οι είσοδοι J, K πρέπει να είναι 1, Χ αντίστοιχα
(βλ. δεύτερη γραµµή και πρώτη στήλη των τµηµάτων του πίνακα καταστάσεων).
Συνεχίζουµε µε τον ίδιο τρόπο για να συµπληρώσουµε και τις υπόλοιπες γραµµές και
στήλες του τµήµατος του πίνακα καταστάσεων, που δίνει τις εισόδους των FFs.

Βήµα Σ2: Προσδιορίζουµε τις απλοποιηµένες συναρτήσεις εισόδου των FFs.

Από το τρίτο τµήµα του πίνακα καταστάσεων µπορούµε άµεσα να πούµε ότι για τη
συγκεκριµένη περίπτωση η είσοδος J1=Q΄1Q0, αφού µόνο γι' αυτόν το συνδυασµό της
παρούσας κατάστασης το J1=1 (θεωρώντας ότι X=0). Όµοια θα µπορούσαµε να
γράψουµε ότι: Κ1=Q1Q΄0, J0=Q΄1Q΄0, Κ0=Q1Q0, θεωρώντας πάντοτε ότι X=0. Οι
συναρτήσεις που µόλις προσδιορίσαµε είναι σωστές, δεν είναι όµως και οι πλέον απλές,
αφού δεν αξιοποιήσαµε τις συνθήκες αδιαφορίας! Ας προσπαθήσουµε να το κάνουµε

20
αυτό, χρησιµοποιώντας χάρτες Karnaugh, όπως δείχνεται στο Σχήµα 2.14 για καθεµία
είσοδο των FFs χωριστά, µε βάση τον πίνακα καταστάσεων.

Q0
Q0 Q0 Q0 Q0
Q1 0 1 Q1 0 1 Q1 0 1 Q1 0 1
0 1 0 x x 0 1 x 0 x
Q1 1 x x 1 1 1 x 1 x 1

J1 = Q0 K1 = Q0′ J1 = Q1′ K 0 = Q1
Σχήµα 2.14 Χρήση του χάρτη Karnaugh στην απλοποίηση των συναρτήσεων εισόδου του Πίνακα 2.5.

∆εν είναι δύσκολο να δούµε ότι οι απλοποιηµένες συναρτήσεις είναι J1=Q0, K1=Q0’,
J0=Q1’ και K0=Q1. Παρατηρούµε ότι η αξιοποίηση των συνθηκών αδιαφορίας µας
οδήγησε σε σηµαντικά απλούστερες συναρτήσεις εισόδου, αφού δεν απαιτείται καµία
επιπλέον πύλη για την υλοποίησή τους.

Βήµα Σ3: Σχεδιάζουµε το λογικό κύκλωµα.

Έχοντας προσδιορίσει τις συναρτήσεις εισόδου των FFs, προχωρούµε εύκολα στη
σχεδίαση του ζητούµενου λογικού κυκλώµατος, όπως δείχνεται στο Σχήµα 2.15.

J1 Q1 J0 Q0
CLK • FF1 FF0

K1 Q1' K0 Q0'

Σχήµα 2.15 Λογικό κύκλωµα του Παραδείγµατος 4 / Κεφάλαιο 2

Ας συνεχίσουµε τη µελέτη της σχεδίασης ΣΑΚ µε την περίπτωση κατά την οποία το
ζητούµενο κύκλωµα ελέγχεται εξωτερικά από κάποια είσοδο. Θα διαπιστώσουµε και
πάλι ότι δεν παρουσιάζεται ιδιαίτερη δυσκολία στη σχεδίαση τέτοιων κυκλωµάτων, όπως
άλλωστε είδαµε κατά την ανάλυσή τους στην υποενότητα 2.1.2.

Παράδειγµα 5 / Κεφάλαιο 2

Με τη χρήση FFs τύπου JK θετικής ακµής πυροδότησης να σχεδιαστεί ΣΑΚ, το οποίο


να "περνά" από τις καταστάσεις 0, 1, 2, 3 (κανονική απαρίθµηση) ή 0, 1, 3, 2

21
(απαρίθµηση σύµφωνα µε τον κώδικα Gray) ανάλογα µε το αν η είσοδος X είναι 0 ή 1
αντίστοιχα.
Καταλαβαίνουµε ότι το κύκλωµά µας θα πρέπει να αποτελείται από δύο FFs τύπου JK,
αφού και στις δύο περιπτώσεις αυτό θα πρέπει να διατρέχει τις καταστάσεις 0, 1, 2, 3
αλλά µε διαφορετική σειρά. Άρα, αρχίζουµε και πάλι τη σχεδίαση ακολουθώντας τα
γνωστά τρία βήµατα σχεδίασης.

Βήµα Σ1: Σχεδιάζουµε το διάγραµµα καταστάσεων και από αυτό, τον πίνακα
καταστάσεων.

00 11

0 1 1 1 1 0

01 10

0
Σχήµα 2.16 ∆ιάγραµµα καταστάσεων του Παραδείγµατος 5 / Κεφάλαιο 2

Πίνακας 2.6 Πίνακας καταστάσεων του Παραδείγµατος 5 / Κεφάλαιο 2

ΕΙΣΟ∆ΟΙ + Π.Κ. Ε.Κ. ΕΙΣΟ∆ΟΙ


Χ Q1 Q0 Q1 Q0 J1K1 J0K0
0 0 0 0 1 0 X 1 X
0 0 1 1 0 1 X X 1
0 1 0 1 1 X 0 1 X
0 1 1 0 0 X 1 X 1
1 0 0 0 1 0 X 1 X
1 0 1 1 1 1 X X 0
1 1 0 0 0 X 1 0 X
1 1 1 1 0 X 0 X 1

Οι αριθµοί στα βέλη του διαγράµµατος καταστάσεων υποδηλώνουν τις αντίστοιχες


τιµές της εισόδου Χ. Είναι φυσικό οι τιµές του Χ να συµπεριλαµβάνονται στο πρώτο
τµήµα του πίνακα καταστάσεων, όπου καταγράφονται όλοι οι δυνατοί συνδυασµοί
εξωτερικής εισόδου και παρούσας κατάστασης. Η επόµενη κατάσταση (δεύτερο τµήµα
του πίνακα καταστάσεων) προκύπτει από το διάγραµµα καταστάσεων, ενώ οι τιµές των
εισόδων των FFs (τρίτο τµήµα του πίνακα καταστάσεων) προκύπτουν από τις τιµές της
παρούσας και επόµενης κατάστασης καθενός FF σε συνδυασµό µε τον αντίστοιχο πίνακα
διέγερσης αυτού (Σχήµα 2.12).

22
Βήµα Σ2: Προσδιορίζουµε τις απλοποιηµένες συναρτήσεις εισόδου των FFs.

Για να απλοποιήσουµε τις συναρτήσεις των εισόδων J1, K1, J0, K0 των FFs,
χρησιµοποιούµε χάρτες Karnaugh, όπως δείχνεται στο Σχήµα 2.17. Σ' αυτούς
απεικονίζονται οι τιµές της εξωτερικής εισόδου και της παρούσας κατάστασης (πρώτο
τµήµα του πίνακα καταστάσεων) και η αντίστοιχη στήλη τιµών κάθε εισόδου (τρίτο
τµήµα του πίνακα καταστάσεων).
Q0
Q1Q0 Q1Q0
X 00 01 11 10 X 00 01 11 10
0 1 x x 0 x x 1

x 1 x x x x 1 x x 1

J1 = Q0 K1 = X ′Q0 + XQ0′ = X ⊕ Q
Q1

Q1Q0 Q1Q0
X X
00 01 11 10 00 01 11 10
0 1 x x 1 0 x 1 1 x

1 1 x x 1 x 1 x

K 0 = X ′ + Q1
J 0 = X ′ + Q1′
Σχήµα 2.17 Χάρτες Karnaugh για την απλοποίηση των συναρτήσεων εισόδου του Πίνακα 2.6.

Βήµα Σ3: Σχεδιάζουµε το λογικό κύκλωµα.

Γνωρίζοντας πλέον τις συναρτήσεις της κάθε εισόδου των FFs, προχωρούµε στην
τελική σχεδίαση του λογικού κυκλώµατος του Σχήµατος 2.18, που είναι και το ζητούµενο
κύκλωµα.

J1 Q1 J0 Q0
CLK • FF1 FF0

X • K1 Q1' K0 Q0'

Σχήµα 2.18 Λογικό κύκλωµα του Παραδείγµατος 5 / Κεφάλαιο 2

Άσκηση Αυτοαξιολόγησης 3 / Κεφάλαιο 2

Με FFs τύπου Τ αρνητικής ακµής πυροδότησης, να σχεδιαστεί ΣΑΚ, το οποίο να


διατρέχει διαδοχικά τις καταστάσεις 0, 1, 3, 2.

23
∆ραστηριότητα 1 / Κεφάλαιο 2

Ποιο κύκλωµα µε D FFs θετικής ακµής πυροδότησης θα προτείνατε εσείς για την
περίπτωση του Παραδείγµατος 5 / Κεφάλαιο 2, δηλαδή όταν X=0 να απαριθµεί κανονικά
από το 0 µέχρι το 3, ενώ όταν X=1 να απαριθµεί σύµφωνα µε τον κώδικα Gray;

Η περίπτωση ανάλυσης ή σχεδίασης ΣΑΚ µε FF τύπου D είναι από τις πλέον απλές ως
προς την κατανόησή τους, αφού στους πίνακες καταστάσεων αυτών το τµήµα των
εισόδων θα µπορούσε να παραληφθεί, γιατί αυτό είναι ίδιο µε εκείνο της επόµενης
κατάστασης. Παρά το γεγονός αυτό, εµείς στη συνέχεια θα εξακολουθήσουµε να το
δείχνουµε για λόγους οµοιοµορφίας µε τους υπόλοιπους τύπους FFs. Τα κυκλώµατα, που
προκύπτουν, είναι συνήθως πολύ πιο πολύπλοκα, αφού διαθέτουµε µία µόνο είσοδο για
την υλοποίηση όλων των λειτουργιών που θα θέλαµε. Ας επαληθεύσουµε όλα αυτά,
σχεδιάζοντας εξαρχής το αντίστοιχο κύκλωµα του Σχήµατος 2.18 µε FF τύπου D.

Βήµα Σ1: Σχεδιάζουµε το διάγραµµα καταστάσεων και µε βάση αυτό


καταστρώνουµε τον αντίστοιχο πίνακα καταστάσεων.

Το διάγραµµα καταστάσεων είναι ίδιο µε εκείνο του Σχήµατος 2.16, όπως ίδια είναι
και τα δύο πρώτα τµήµατα του πίνακα καταστάσεων (βλ. Πίνακα 2.6 και 2.7). Το τρίτο
τµήµα του Πίνακα 2.7 δίνει τις εισόδους των D FFs. Όπως ήταν αναµενόµενο, αυτό είναι
ίδιο µε εκείνο της επόµενης κατάστασης (δεύτερο τµήµα του πίνακα καταστάσεων).

Πίνακας 2.7 Πίνακας καταστάσεων της ∆ραστηριότητας 1 / Κεφάλαιο 2

ΕΙΣΟ∆ΟΙ + Π.Κ. Ε.Κ. ΕΙΣΟ∆ΟΙ


Χ Q1 Q0 Q1 Q0 D1 D0
0 0 0 0 1 0 1
0 0 1 1 0 1 0
0 1 0 1 1 1 1
0 1 1 0 0 0 0
1 0 0 0 1 0 1
1 0 1 1 1 1 1
1 1 0 0 0 0 0
1 1 1 1 0 1 0

Βήµα Σ2: Προσδιορίζουµε τις απλοποιηµένες συναρτήσεις των εισόδων.

24
Για την καλύτερη απλοποίηση των συναρτήσεων εισόδου D1, D0, θα
χρησιµοποιήσουµε χάρτες Karnaugh, όπως δείχνεται στο Σχήµα 2.19.

Q1 Q1
Q1Q0 Q1Q0
X 00 01 11 10 X 00 01 11 10
0 1 1 0 1 1

x 1 1 1 x 1 1 1

Q0 Q0

D1 = Q0Q1΄ + Q0X + Q0΄Q1X΄ = D0 = Q0΄Q1΄ + Q0΄X΄ + Q1΄X =


= Q0(Q1΄+X) + Q0΄(Q1΄+X)΄ = = Q0΄(Q1΄+X΄) + Q1΄X =
= Q0 ⊕ (Q1΄+X) = Q0΄(Q1x)΄ + Q1΄X =
= (Q0 + Q1X)΄ + Q1΄X
Σχήµα 2.19 Χάρτες Karnaugh για την απλοποίηση των συναρτήσεων εισόδων

Βήµα Σ3: Σχεδιάζουµε το λογικό κύκλωµα.


X • •

D1 Q1 D0 Q0 •
FF 1 FF 0
CLK •
Q 1' • Q 0'

Σχήµα 2.20 Λογικό κύκλωµα ∆ραστηριότητας 1 / Κεφάλαιο 2

Παρατηρούµε ότι το λογικό κύκλωµα που προέκυψε είναι πολύ πιο πολύπλοκο,
δηλαδή χρειάζεται περισσότερες πύλες σε σχέση µε το αντίστοιχο του Σχήµατος 2.18.
Μην θορυβηθείτε, αν δεν βρήκατε το ίδιο κύκλωµα. Αυτό δεν σηµαίνει κατ' ανάγκη ότι
έχετε κάνει κάποιο λάθος, αφού το τελικό κύκλωµα εξαρτάται από το στάδιο
απλοποίησης των συναρτήσεων εισόδου κατά το βήµα Σ2. Για να σιγουρευτείτε ότι το
κύκλωµα που σχεδιάσατε ανταποκρίνεται στις προδιαγραφές, αναλύστε το σύµφωνα µε
αυτά που µάθαµε στην ενότητα 2.1.

25
2.2.1. ΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΜΕ Α∆ΙΑΦΟΡΕΣ
ΚΑΤΑΣΤΑΣΕΙΣ
Μέχρι τώρα ασχοληθήκαµε µε τη σχεδίαση ΣΑΚ, τα οποία µε κάθε ωρολογιακό
παλµό διατρέχουν όλες τις δυνατές καταστάσεις, µε διαφορετική ίσως σειρά. Για
παράδειγµα, είδαµε κυκλώµατα, τα οποία χρησιµοποιούσαν δύο FFs και µε κάθε παλµό
"περνούσαν" από τις καταστάσεις 0, 1, 2, 3 ή 0, 1, 3, 2. Τι γίνεται, όµως, στην περίπτωση
που κάποιες από τις δυνατές καταστάσεις ενός κυκλώµατος δεν χρησιµοποιούνται;
Κλασσικό παράδειγµα τέτοιας περίπτωσης είναι το κύκλωµα, το οποίο µπορεί να µετρά
δεκάδες, δηλαδή µε κάθε ωρολογιακό παλµό να µετρά από το 0 µέχρι και το 9 και πάλι
από την αρχή. Ας εξετάσουµε αναλυτικά αυτή την περίπτωση σχεδίασης µέσα από το
επόµενο παράδειγµα.

Παράδειγµα 6 / Κεφάλαιο 2

Με FF τύπου JK αρνητικής ακµής πυροδότησης να σχεδιάσετε ΣΑΚ, το οποίο να


διατρέχει τις τιµές 0 µέχρι και 9.
Καταλαβαίνουµε ότι πρόκειται για έναν δεκαδικό απαριθµητή (decimal counter). Για
τη δυαδική αναπαράσταση των δέκα τιµών απαιτούνται 4 δυαδικά ψηφία, δηλαδή 4 FFs.
Αρχίζουµε, λοιπόν, τη σχεδίαση ακολουθώντας τα γνωστά βήµατα:

Βήµα Σ1: Σχεδιάζουµε το διάγραµµα καταστάσεων και καταστρώνουµε τον


αντίστοιχο πίνακα καταστάσεων.

15 14
13
0 12

1
11
2

10
3

9
4
5
6 8
7

Σχήµα 2.21 ∆ιάγραµµα καταστάσεων του Παραδείγµατος 6 / Κεφάλαιο 2

26
Πίνακας 2.8 Πίνακας καταστάσεων του Παραδείγµατος 6 / Κεφάλαιο 2

Π.Κ. Ε.Κ. ΕΙΣΟ∆ΟΙ


Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 J3K3 J2K2 J1K1 J0K0
0 0 0 0 0 0 0 1 0 X 0 X 0 X 1 X
0 0 0 1 0 0 1 0 0 X 0 X 1 X X 1
0 0 1 0 0 0 1 1 0 X 0 X X 0 1 X
0 0 1 1 0 1 0 0 0 X 1 X X 1 X 1
0 1 0 0 0 1 0 1 0 X X 0 0 X 1 X
0 1 0 1 0 1 1 0 0 X X 0 1 X X 1
0 1 1 0 0 1 1 1 0 X X 0 X 0 1 X
0 1 1 1 1 0 0 0 1 X X 1 X 1 X 1
1 0 0 0 1 0 0 1 X 0 0 X 0 X 1 X
1 0 0 1 0 0 0 0 X 1 0 X 0 X X 1
1 0 1 0 X X X X X X X X X X X X
1 0 1 1 X X X X X X X X X X X X
1 1 0 0 X X X X X X X X X X X X
1 1 0 1 X X X X X X X X X X X X
1 1 1 0 X X X X X X X X X X X X
1 1 1 1 X X X X X X X X X X X X

Το διάγραµµα καταστάσεων περιλαµβάνει 24 = 16 καταστάσεις, από τις οποίες, όµως,


µόνο οι δέκα χρησιµοποιούνται (Σχήµα 2.21). Οι υπόλοιπες έξι (στην προκειµένη
περίπτωση οι καταστάσεις 10, 11, 12, 13, 14, 15) µάς είναι προς το παρόν αδιάφορες. Το
γεγονός αυτό αντικατοπτρίζεται στον πίνακα καταστάσεων (Πίνακας 2.8) µε το σύµβολο
"X" στο τµήµα της επόµενης κατάστασης και κατ' επέκταση στο τρίτο τµήµα των
εισόδων. Γίνεται φανερό ότι η ύπαρξη αυτών των συνθηκών αδιαφορίας θα βοηθήσει
πάρα πολύ στην απλοποίηση των συναρτήσεων εισόδου, όπως διαπιστώνουµε στο
αµέσως επόµενο βήµα µας. Όσον αφορά στη συµπλήρωση του πίνακα για τις
καταστάσεις 0 µέχρι και 9, αυτή γίνεται κατά τα γνωστά µε τη βοήθεια του πίνακα
διέγερσης του Σχήµατος 2.12. για το JK FF.

Βήµα Σ2: Γράφουµε τις απλοποιηµένες συναρτήσεις εισόδου.

Η απλοποίηση των συναρτήσεων εισόδου των FFs γίνεται µε τη βοήθεια χαρτών


Karnaugh (Σχήµα 2.22). Η ύπαρξη πολλών "Χ", λόγω των αδιάφορων καταστάσεων,
αλλά και εξαιτίας των συνθηκών αδιαφορίας του πίνακα διέγερσης του JK FF, οδήγησε
εύκολα σε απλοποιηµένες συναρτήσεις εισόδου.

27
Q1Q0 Q1 Q1Q0 Q1Q0
Q1Q0
Q3Q2 00 01 11 10 Q3Q2 00 01 11 10 Q3Q2 00 01 11 10
Q3Q2 00 01 11 10
00 00 1 00 1 x x
00 1 x x 1
01 1 01 x x x x 01 1 x x
Q2 01 1 x x 1
11 11 x 11
x x x x x x x x x x x
Q3 11 x x x x
10 x x x x 10 x x 10 x x
10 1 x x x

Q0

J 3 = Q0 Q1Q2 J 2 = Q0 Q1 J 1 = Q0 Q3′ J0 = 1

Q1Q0 Q1Q0 Q1Q0


Q1Q0
Q3Q2 00 01 11 10 Q3Q2 00 01 11 10 Q3Q2 00 01 11 10
Q3Q2 00 01 11 10
00 x x x x 00 x x x x 00 x x 1
00 x 1 1 x

01 x x x x 01 1 01 x x 1
01 x 1 1 x

11 x x x x 11 x x x x 11 x x x x
11 x x x x
10 1 x x 10 x x x x 10 x x x x
10 x 1 x x

K 3 = Q0 K 2 = Q0 Q1 K1 = Q0 Q3′
K0 = 1

Σχήµα 2.22 Χάρτες Karnaugh για την απλοποίηση των συναρτήσεων εισόδου

Βήµα Σ3: Σχεδιάζουµε το λογικό κύκλωµα.

Έχοντας προσδιορίσει τις συναρτήσεις εισόδου των FFs, προχωρούµε στη σχεδίαση
του ζητούµενο ΣΑΚ, όπως αυτό δείχνεται στο Σχήµα 2.23.

Vcc
J3 Q3 J2 Q2 • J1 Q1 • J0 Q0 •

K3 Q3' • K2 Q2' K1 Q1' K1 Q0'

• •

Σχήµα 2.23 Λογικό κύκλωµα του Παραδείγµατος 6 / Κεφάλαιο 2

Στο σηµείο αυτό η διαδικασία της σχεδίασης έχει ολοκληρωθεί. Υπάρχει, όµως, ένα
ερώτηµα, το οποίο πρέπει να απαντηθεί. Μήπως η ύπαρξη των αδιάφορων καταστάσεων
και η συνεπακόλουθη αυθαίρετη αξιοποίησή τους κατά τη διαδικασία της απλοποίησης,
δηµιούργησε κάποια προβλήµατα στο κύκλωµα και αυτό δεν λειτουργεί, όπως θα
θέλαµε; Ας γίνουµε πιο σαφείς. Μήπως οι αποφάσεις, που πήραµε αυθαίρετα για κάποια
Χ ίσα µε 1, οδήγησαν το κύκλωµα σε µη επιθυµητή λειτουργία, όπως για παράδειγµα σ'
ένα κύκλο απαρίθµησης 11, 12, 13, 14, 11, 12, 13, 14, 11, ... ; Σε µια τέτοια περίπτωση το

28
κύκλωµα ποτέ δεν "φτάνει" σε µια από τις ζητούµενες καταστάσεις και εγκλωβίζεται σε
ένα µη επιθυµητό βρόχο απαρίθµησης.
Για να απαντήσουµε στο ερώτηµα αυτό, θα πρέπει να ελέγξουµε τη λειτουργία του
κυκλώµατος. Άρα απαιτείται να αναλύσουµε το κύκλωµα, που µόλις σχεδιάσαµε, και
έτσι να επιβεβαιώσουµε την ορθότητα της λειτουργίας του. Στην περίπτωση που αυτό δεν
συµβαίνει, τότε θα πρέπει να επαναλάβουµε τη διαδικασία της σχεδίασης αυτού,
αρχίζοντας και πάλι από το βήµα Σ1, αλλά όντας πιο αυστηροί και σαφείς στις
προδιαγραφές µας. Συνεπώς, κατά τη σχεδίαση ΣΑΚ, τα οποία έχουν αδιάφορες
καταστάσεις, επιβάλλεται ένα επιπλέον βήµα, αυτό του ελέγχου της ορθής λειτουργίας
του κυκλώµατος.

Βήµα Σ4: Έλεγχος ορθής λειτουργίας του κυκλώµατος.

Ο έλεγχος αυτός γίνεται, όπως µόλις αναφέραµε, µε την ανάλυση του κυκλώµατος του
Σχήµατος 2.23, που µόλις σχεδιάσαµε. Ακολουθούµε, εποµένως, τα βήµατα της
ανάλυσης της ενότητας 2.1.

Βήµα Α1: Γράφουµε τις συναρτήσεις εισόδου των FFs.

J3 = Q2Q1Q0 J2 = K2 = Q1Q0 J1 = K1 = Q΄3Q0 J0 = K0 = 1


K3 = Q0

Βήµα Α2: Καταστρώνουµε τον πίνακα καταστάσεων.

Βασιζόµενοι στις συναρτήσεις εισόδου και στις τιµές της παρούσας κατάστασης
προσδιορίζουµε την επόµενη κατάσταση του κυκλώµατος, όπως δείχνεται στον Πίνακα
2.9.

Πίνακας 2.9 Πίνακας καταστάσεων του κυκλώµατος του Σχήµατος 2.23.

Π.Κ. ΕΙΣΟ∆ΟΙ Ε.Κ.


Q3 Q2 Q1 Q0 J3K3 J2K2 J1K1 J0K0 Q3 Q2 Q1 Q0
. . .
. . .
. . .
1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1
1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0
1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1
1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0
1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0

29
Για τις καταστάσεις 0 µέχρι και 9 ο πίνακας αυτός είναι ίδιος µε τον Πίνακα 2.8, όπως
είναι άλλωστε αναµενόµενο. Η διαφοροποίηση αρχίζει από την κατάσταση 10 και µετά.
Το αντίστοιχο διάγραµµα καταστάσεων θα µας καταδείξει τον ακριβή τρόπο λειτουργίας
του κυκλώµατος και γι' αυτό προχωρούµε άµεσα στη σχεδίασή του.

Βήµα Α3: Σχεδιάζουµε το διάγραµµα καταστάσεων.

Το διάγραµµα καταστάσεων, που προκύπτει, δείχνεται στο Σχήµα 2.24. Παρατηρούµε


ότι το κύκλωµα, που σχεδιάσαµε, διατρέχει όντως τον κύκλο των καταστάσεων 0 µέχρι
και 9.

15 14
0
13
1
12
2
11

3
10

4
9

5
8
6
7

Σχήµα 2.24 ∆ιάγραµµα καταστάσεων του κυκλώµατος του Σχήµατος 2.23.

Αν βρεθεί σε µία από τις αδιάφορες καταστάσεις, τότε µε τον πρώτο ωρολογιακό παλµό
µεταβαίνει στην αµέσως επόµενη κατάσταση, και µε το δεύτερο παλµό µεταβαίνει σε µια
από τις επιθυµητές (έγκυρες) καταστάσεις και συνεχίζει πλέον τον κύκλο κανονικά. Για
παράδειγµα, αν βρεθεί στη κατάσταση 10, µεταβαίνει στην 11 και ακολούθως στην 6,
οπότε και συνεχίζει. ∆ηλαδή αρχίζοντας από την κατάσταση 10, θα έχουµε την
αλληλουχία καταστάσεων: 10, 11, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, ... Παρόµοια
συµβαίνουν και όταν το κύκλωµα βρεθεί σε µια από τις υπόλοιπες µη επιτρεπτές
καταστάσεις. Το αργότερο µετά από δύο ωρολογιακούς παλµούς βρίσκεται σε µια από τις
επιτρεπτές (έγκυρες) καταστάσεις, οπότε και συνεχίζει κανονικά. Αυτού του είδους τα
κυκλώµατα λέµε ότι έχουν αυτόµατη εκκίνηση (self-starting) και αυτόµατη διόρθωση
(self-correcting). Θα γνωρίσουµε αµέσως τώρα κυκλώµατα για τα οποία δεν συµβαίνει
αυτό. Σε µια τέτοια περίπτωση θα πρέπει να παρέµβουµε στη λειτουργία του κυκλώµατος
και να τη διορθώσουµε, επαναλαµβάνοντας τµήµα ή και όλη τη διαδικασία της
σχεδίασης αυτού. Στις περιπτώσεις που εξετάζουµε, έχουµε θεωρήσει ότι τα FFs που
χρησιµοποιούµε δεν διαθέτουν ασύγχρονες (άµεσες) εισόδους εκκαθάρισης ( CLEAR ) ή

30
καθορισµού υψηλής στάθµης ( PRESET ). Αν διαθέτουν, τότε µπορούµε να τις
αξιοποιήσουµε, για να πετύχουµε την επιθυµητή εκκίνηση του κυκλώµατος.

∆ραστηριότητα 2 / Κεφάλαιο 2

Σχεδιάστε ΣΑΚ, το οποίο να διατρέχει διαδοχικά τους αριθµούς 1, 3, 5, 7.

Ας προσπαθήσουµε, λοιπόν, να σχεδιάσουµε ένα κύκλωµα που να µετράει µόνο τους


περιττούς αριθµούς µέχρι το 7, θα θέλαµε, δηλαδή, µε κάθε νέο ωρολογιακό παλµό να
πηγαίνει από το 1→3→5→7 και πάλι από την αρχή. Με άλλα λόγια να διατρέχει µόνο
αυτές τις 4 καταστάσεις. Προσοχή όµως, αν και οι καταστάσεις είναι 4, για την
αναπαράστασή τους σε δυαδική µορφή χρειαζόµαστε 3 FFs, γιατί πώς αλλιώς θα
µπορούσαµε να παραστήσουµε το 5 ή το 7; Με 3 FFs έχουµε 8 δυνατές καταστάσεις, από
τις οποίες όµως οι 4 µόνο µας χρειάζονται. Ας θεωρήσουµε αρχικά ότι µας είναι
αδιάφορο το πού θα πάει το κύκλωµα, αν βρεθεί σε µία από αυτές, και ας
προσπαθήσουµε να το σχεδιάσουµε χρησιµοποιώντας FFs τύπου Τ.

Βήµα Σ1: Σχεδιάζουµε το διάγραµµα καταστάσεων και καταστρώνουµε τον


αντίστοιχο πίνακα καταστάσεων.

Το διάγραµµα καταστάσεων δείχνεται στο Σχήµα 2.25 και ο πίνακας καταστάσεων


είναι ο Πίνακας 2.10. Μας είναι αδιάφορο το πού θα βρεθεί το κύκλωµα µετά την
κατάσταση 0 ή 2 ή 4 ή 6, γεγονός που αντικατοπτρίζεται και στο τµήµα των εισόδων του
πίνακα καταστάσεων µε τις συνθήκες αδιαφορίας (Χ).

0 7

1 6

2 5

3 4

Σχήµα 2.25 ∆ιάγραµµα καταστάσεων ΣΑΚ απαρίθµησης των περιττών αριθµών 1, 3, 5, 7.

31
Πίνακας 2.10 Πίνακας καταστάσεων που αντιστοιχεί στο διάγραµµα του Σχήµατος 2.25.

Π.Κ. Ε.Κ. ΕΙΣΟ∆ΟΙ


Q2 Q1 Q0 Q2 Q1 Q0 T2 T1 T0
0 0 0 X X X X X X
0 0 1 0 1 1 0 1 0
0 1 0 X X X X X X
0 1 1 1 0 1 1 1 0
1 0 0 X X X X X X
1 0 1 1 1 1 0 1 0
1 1 0 X X X X X X
1 1 1 0 0 1 1 1 0

Βήµα Σ2: Προσδιορίζουµε τις απλοποιηµένες συναρτήσεις εισόδου

Από το τµήµα των εισόδων του πίνακα καταστάσεων και µε αξιοποίηση των
συνθηκών αδιαφορίας, εξάγεται άµεσα ότι Τ0=0, Τ1=1. Η είσοδος Τ2 προσδιορίζεται µε
βάση το χάρτη Karnaugh του Σχήµατος 2.26 ίση µε Q1, δηλαδή T2=Q1.

Q 1Q 0 Q1
Q2 00 01 11 10
0 x 1 x

Q2 1 x 1 x

Q0

T2 = Q1
Σχήµα 2.26 Χάρτης Karnaugh για την απλοποίηση της συνάρτησης Τ2

Βήµα Σ3: Σχεδιάζουµε το λογικό κύκλωµα.

Γνωρίζοντας πλέον τις συναρτήσεις εισόδου, το λογικό κύκλωµα σχεδιάζεται εύκολα


(Σχήµα 2.27). Εφόσον δεν έχουµε κάνει κάποιο λάθος στη διαδικασία της σχεδίασης,
είµαστε σίγουροι ότι το κύκλωµα θα διατρέχει τους αριθµούς 1, 3, 5, 7, όταν βρεθεί
αρχικά σε κάποιον από αυτούς. Τι θα συµβεί, όµως, αν αρχικά βρεθεί σε µία από τις µη
έγκυρες καταστάσεις 0, 2, 4, 6; Αυτό πρέπει να το ελέγξουµε. Έτσι συνεχίζουµε µε το
επόµενο βήµα της επαλήθευσης της ορθής (επιθυµητής) λειτουργίας του κυκλώµατος,
που σχεδιάσαµε.

32
Vcc

T2 Q2 T1 Q1 T0 Q0

Q2 ' Q1' Q0 '

CLK
• •

Σχήµα 2.27 Λογικό κύκλωµα για την απαρίθµηση των περιττών 1, 3, 5, 7.

Βήµα Σ4: Έλεγχος ορθής λειτουργίας του κυκλώµατος.

Αν και θα µπορούσαµε να ελέγξουµε τη λειτουργία του κυκλώµατος αποσπασµατικά


και µόνο για τις µη επιτρεπτές καταστάσεις, εµείς επαναλαµβάνουµε όλη τη διαδικασία
ανάλυσης.

Βήµα Α1: Γράφουµε τις συναρτήσεις εισόδου.

Τ2=Q1 T1=1 T0=0

Βήµα Α2: Καταστρώνουµε τον πίνακα καταστάσεων.

Ο πίνακας καταστάσεων (Πίνακας 2.11) προκύπτει εύκολα από την παρούσα


κατάσταση και τις εισόδους σε συνδυασµό µε τον πίνακα λειτουργίας του Τ FF.

Βήµα Α3: Σχεδιάζουµε το διάγραµµα καταστάσεων.

Από τον πίνακα 2.11 προκύπτει το διάγραµµα καταστάσεων του Σχήµατος 2.28. Είναι
φανερό ότι το κύκλωµα παρουσιάζει πρόβληµα! Αν βρεθεί σε µία από τις µη έγκυρες
καταστάσεις 0 ή 2 ή 4 ή 6, τότε εγκλωβίζεται στον κύκλο 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, ...

0
7
1

2
6

3
4 5
Σχήµα 2.28 ∆ιάγραµµα καταστάσεων του κυκλώµατος του Σχήµατος 2.27.

33
Πίνακας 2.11 Πίνακας καταστάσεων του κυκλώµατος του Σχήµατος 2.28

Π.Κ. ΕΙΣΟ∆ΟΙ Ε.K.


Q2 Q1 Q0 Τ2 Τ1 Τ0 Q2 Q1 Q0
0 0 0 0 1 0 0 1 0
0 0 1 0 1 0 0 1 1
0 1 0 1 1 0 1 0 0
0 1 1 1 1 0 1 0 1
1 0 0 0 1 0 1 1 0
1 0 1 0 1 0 1 1 1
1 1 0 1 1 0 0 0 0
1 1 1 1 1 0 0 0 1

Για να λυθεί το πρόβληµα αυτό, θα πρέπει να παρέµβουµε στο βήµα Σ1 της σχεδίασης,
αναγκάζοντας το κύκλωµα να µεταβεί σε µία από τις έγκυρες καταστάσεις. Θα
µπορούσαµε, για παράδειγµα, να αναγκάσουµε το κύκλωµα µετά την κατάσταση 0 να
µεταβεί στην κατάσταση 1. Με αυτό τον τρόπο "σπάµε" τον µη έγκυρο κύκλο 0, 2, 4, 6,
0, 2, ... Με βάση το νέο αυτό δεδοµένο, επαναλαµβάνουµε τη διαδικασία της σχεδίασης
από την αρχή. Έτσι έχουµε:

Βήµα Σ΄1: Σχεδιάζουµε το διάγραµµα και τον πίνακα καταστάσεων, όπως δείχνεται
στο Σχήµα 2.29 και στον Πίνακα 2.12. αντίστοιχα.

0 7

1 6

2 5

3 4

Σχήµα 2.29 ∆ιορθωµένο διάγραµµα καταστάσεων.

Πίνακας 2.12 Πίνακας καταστάσεων του διαγράµµατος του Σχήµατος 2.29

Π.Κ. Ε.K. ΕΙΣΟ∆ΟΙ


Q2 Q1 Q0 Q2 Q1 Q0 Τ2 Τ1 Τ0
0 0 0 0 0 1 0 0 1
. . .
. . .
. . .
(ίδια µε προηγούµενο) (ίδια µε προηγούµενο) (ίδια µε προηγούµενο)

34
Βήµα Σ΄2: Προσδιορίζουµε τις απλοποιηµένες συναρτήσεις εισόδου µε τη βοήθεια
χαρτών Karnaugh, όπως δείχνεται στο Σχήµα 2.30.

Q0 Q0
Q1Q0 Q1Q0 Q1Q0
Q2 00 01 11 10 Q2 00 01 11 10 Q2 00 01 11 10
0 0 1 x 0 0 1 1 x 0 1 0 0 x

Q2 1 x 1 x Q2 1 x 1 1 x 1 x 0 0 x

Q1 Q1
T2 = Q1 T1 = Q0 T0 = Q0′
Σχήµα 2.30 Απλοποίηση των συναρτήσεων εισόδου του Πίνακα 2.12.

T2 Q2 T1 Q1 T0 Q0

Q 2' Q 1' Q 0'

CLK
• •
Σχήµα 2.31 Λογικό κύκλωµα που αντιστοιχεί στο διάγραµµα του Σχήµατος 2.29.

Βήµα Σ΄3: Σχεδιάζουµε το λογικό κύκλωµα.

Στο Σχήµα 2.31 δείχνεται το λογικό κύκλωµα, το οποίο αντιστοιχεί στο διορθωµένο
διάγραµµα καταστάσεων του Σχήµατος 2.29. Έτσι ολοκληρώνεται η σχεδίαση του
ζητούµενου κυκλώµατος. ∆ιαπιστώσαµε ότι στην περίπτωση αυτή δεν σταθήκαµε τόσο
"τυχεροί", όπως στην περίπτωση του Παραδείγµατος 6 / Κεφάλαιο 2, αφού εδώ
χρειάστηκε να επαναλάβουµε τη σχεδίαση δύο φορές. Αυτό συνέβη, γιατί οι συνθήκες
αδιαφορίας, αν και βοήθησαν στη γρήγορη και εύκολη απλοποίηση των συναρτήσεων
εισόδου, µας οδήγησαν σε ένα κλειστό κύκλο µη έγκυρων καταστάσεων, από τον οποίο
δεν µπορούσαµε να ξαναβγούµε. Θα έπρεπε να τονίσουµε, όµως, και κάτι ακόµα σχετικά
µε το κύκλωµα του Σχήµατος 2.31. Το γεγονός ότι αυτό δεν είναι και το µοναδικό σωστό
κύκλωµα. Γι' αυτό µην απογοητευθείτε, αν κατά την ολοκλήρωση της ∆ραστηριότητας 2
/ Κεφάλαιο 2 καταλήξατε σε κάποιο κύκλωµα διαφορετικό από το παραπάνω. Το
κύκλωµα εξαρτάται από τις απλοποιηµένες συναρτήσεις εισόδου. Αν εσείς καταλήξατε
σε συναρτήσεις διαφορετικές από αυτές του Σχήµατος 2.30, τότε είναι φυσικό ότι και το
κύκλωµά σας θα είναι διαφορετικό.

35
Άσκηση Αυτοαξιολόγησης 4 / Κεφάλαιο 2

Σχεδιάστε ΣΑΚ, το οποίο να διατρέχει κυκλικά τους αριθµούς 1, 3, 5, 7. Αν το


κύκλωµα βρεθεί στην κατάσταση 0, τότε µε τον πρώτο ωρολογιακό παλµό να µεταβαίνει
στο 1. Η όλη σχεδίαση θα πρέπει να βασισθεί σε FFs τύπου D αρνητικής ακµής
πυροδότησης.

Σύνοψη Ενότητας
Στην ενότητα αυτή µελετήσαµε τη διαδικασία σχεδίασης ΣΑΚ. Είδαµε ότι:
• Η σχεδίαση ΣΑΚ γίνεται σε τρία βήµατα ως εξής:
Βήµα Σ1: Σχεδιάζουµε το διάγραµµα καταστάσεων και καταστρώνουµε τον
αντίστοιχο πίνακα καταστάσεων.
Βήµα Σ2: Προσδιορίζουµε τις απλοποιηµένες συναρτήσεις εισόδου των FFs.
Βήµα Σ3: Σχεδιάζουµε το λογικό κύκλωµα.
Εξυπακούεται ότι, πριν αρχίσουµε τη διαδικασία της σχεδίασης, έχουµε ήδη
προσδιορίσει το πλήθος των FFs που θα απαιτηθούν, καθώς και τον τύπο τους.
• Στην περίπτωση που έχουµε συνθήκες αδιαφορίας, πρέπει να κάνουµε ακόµη ένα
βήµα, για να ολοκληρώσουµε τη σχεδίαση του κυκλώµατος. Αυτό είναι το βήµα
Σ4 του ελέγχου της ορθής λειτουργίας του κυκλώµατος που σχεδιάσαµε.
• Ο πίνακας καταστάσεων αποτελείται από 2n+m γραµµές (δυνατές περιπτώσεις),
όπου n το πλήθος των FFs και m το πλήθος των εξωτερικών εισόδων του
κυκλώµατος.
• Οι πίνακες διέγερσης των FFs είναι απαραίτητοι για τη σχεδίαση ΣΑΚ. Οι πίνακες
αυτοί δίνουν τις τιµές των εισόδων των FFs για κάθε δυνατή περίπτωση παρούσας-
επόµενης κατάστασης αυτού.
• Η χρήση FF τύπου JK οδηγεί σε κυκλώµατα µε µικρότερο αριθµό πυλών σε σχέση
µε FFs τύπου SR, T, D, γιατί τα πρώτα έχουν περισσότερες συνθήκες αδιαφορίας
στους πίνακες διέγερσης, µε συνέπεια να πετυχαίνουµε καλύτερα απλοποίηση των
συναρτήσεων εισόδου του τελικού κυκλώµατος.
• Ο τύπος πυροδότησης των FFs δεν υπεισέρχεται στη διαδικασία σχεδίασης των
ΣΑΚ.

36
ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ

• Η ανάλυση και η σχεδίαση ΣΑΚ είναι διαδικασίες αντίστροφες η µία της άλλης.

ΛΟΓΙΚΟ
ΚΥΚΛΩΜΑ

ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟ∆ΟΥ
Σ
Α
Χ
Ν
Ε
Α

Λ
ΠΙΝΑΚΑΣ ΚΑΤΑΣΤΑΣΕΩΝ Ι
Υ
Α
Σ
Σ
Η
Η

∆ΙΑΓΡΑΜΜΑ ΚΑΤΑΣΤΑΣΕΩΝ

ΠΕΡΙΓΡΑΦΗ
ΛΕΙΤΟΥΡΓΙΑΣ

• Οι πίνακες λειτουργίας των FFs είναι απαραίτητοι για την ανάλυση των ΣΑΚ, ενώ
οι πίνακες διέγερσης των FFs απαιτούνται για τη σχεδίαση αυτών.
• Ο πίνακας καταστάσεων ενός ΣΑΚ αποτελείται από 2n+m γραµµές (δυνατές
περιπτώσεις), όπου n το πλήθος των FFs του κυκλώµατος και m ο αριθµός των
εξωτερικών εισόδων αυτού.
• Ο τύπος πυροδότησης των FFs δεν παίζει ρόλο στην ανάλυση ή σχεδίαση ενός
ΣΑΚ.

37
ΒΙΒΛΙΟΓΡΑΦΙΑ

ΕΛΛΗΝΟΓΛΩΣΣΗ
Millman J., Χαλκιάς Χ., Oλοκληρωµένη Ηλεκτρονική, Τόµος Β, Εκδόσεις ΤΕΕ, 1972.

Mano Morris M., Ψηφιακή Σχεδίαση, Εκδόσεις Παπασωτηρίου, 1992.

ΞΕΝΟΓΛΩΣΣΗ
Daniels J. D., Digital Design from Zero to One, J. Wiley & Sons, 1996.

Greenfield J. D., Practical Digital Design Using ICs, J. Wiley & Sons, 1977.

Tocci R. J., Widmer N. S., Digital Systems: Principles and Applications, Prentice Hall,
1998.

Ο∆ΗΓΟΣ ΠΕΡΑΙΤΕΡΩ ΜΕΛΕΤΗΣ

Daniels J. D., Digital Design from Zero to One, J. Wiley & Sons, 1996.

Το Κεφάλαιο 6 του βιβλίου διαπραγµατεύεται σε συντοµία την ανάλυση και σχεδίαση


σύγχρονων ακολουθιακών κυκλωµάτων. Κάποια παραδείγµατα που υπάρχουν σ’ αυτό
ίσως να βοηθούσαν.

Greenfield J. D., Practical Digital Design Using ICs, J. Wiley & Sons, 1977.

Στο Κεφάλαιο 7 του βιβλίου παρουσιάζονται αρκετά παραδείγµατα σε ανάλυση και


σχεδίαση σύγχρονων ακολουθιακών κυκλωµάτων, κυρίως απαριθµητών.

Mano Morris M., Ψηφιακή Σχεδίαση, Εκδόσεις Παπασωτηρίου, 1992.

Στο Κεφάλαιο 6 του βιβλίου αυτού θα βρείτε µία καλή παρουσίαση των διαδικασιών
ανάλυσης και σχεδίασης σύγχρονων ακολουθιακών κυκλωµάτων. Είναι από τα λίγα
συγγράµµατα, όπου παρουσιάζoνται µε µεθοδικότητα οι δύο αυτές διαδικασίες.

38
ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ

Απάντηση Άσκησης Αυτοαξιολόγησης 1 / Κεφάλαιο 2

Παρόλο που το κύκλωµα περιέχει τρία FFs και αρκετές πύλες κάνοντάς το σχετικά
πολύπλοκο, διαπιστώνουµε ότι, ακολουθώντας πιστά τα τρία βήµατα της ανάλυσης ΣΑΚ
Α1, Α2, Α3, καταλήγουµε πολύ εύκολα στην ανάλυσή του. Έτσι έχουµε:

Βήµα Α1: Γράφουµε τις συναρτήσεις εισόδου των FFs.

J0 = K0 = (Q1Q2)΄ J1 = Q0 J2 = Q0Q1
K1 = Q0 + Q1Q2 K2 = Q0Q1 + Q2Q1 = (Q0 + Q2)Q1

Βήµα Α2: Καταστρώνουµε τον πίνακα καταστάσεων.

Εφόσον το κύκλωµα αποτελείται από 3 FFs, οι δυνατές καταστάσεις είναι 23 = 8 και


συνεπώς κάθε τµήµα του πίνακα καταστάσεων θα αποτελείται από 8 γραµµές.

Πίνακας 2.13 Πίνακας καταστάσεων της άσκησης αυτοαξιολόγησης 1 / κεφάλαιο 2

Π.Κ. ΕΙΣΟ∆ΟΙ Ε.K.


Q2 Q1 Q0 J2K2 J1K1 J0K0 Q2 Q1 Q0
0 0 0 0 0 0 0 1 1 0 0 1
0 0 1 0 0 1 1 1 1 0 1 0
0 1 0 0 0 0 0 1 1 0 1 1
0 1 1 1 1 1 1 1 1 1 0 0
1 0 0 0 0 0 0 1 1 1 0 1
1 0 1 0 0 1 1 1 1 1 1 0
1 1 0 0 1 0 1 0 0 0 0 0
1 1 1 1 1 1 1 0 0 0 0 1

Βήµα Α3: Σχεδιάζουµε το διάγραµµα καταστάσεων.

Από το διάγραµµα καταστάσεων γίνεται φανερό ότι πρόκειται για ένα κύκλωµα
απαρίθµησης παλµών, µε κύκλο απαρίθµησης 7 (modulo-7). Με κάθε παλµό του
ρολογιού το κύκλωµα αλλάζει κατάσταση διατρέχοντας τις 7 διαφορετικές τιµές 0, 1,
2, 3, 4, 5, 6, 0, 1, 2, ... Αν κατά την έναρξη της λειτουργίας του ή λόγω θορύβου
βρεθεί στην κατάσταση 7, δηλαδή Q2Q1Q0 = 111, τότε µε τον πρώτο ενεργό παλµό
µεταβαίνει στην κατάσταση 1 και συνεχίζει πλέον τον κύκλο απαρίθµησης.

39
111

000
110

001

101
010

011 100

Σχήµα 2.32 ∆ιάγραµµα καταστάσεων του κυκλώµατος του Σχήµατος 2.6.

Απάντηση Άσκησης Αυτοαξιολόγησης 2 / Κεφάλαιο 2

Αναλύουµε το κύκλωµα, ακολουθώντας τα τρία βήµατα ανάλυσης σύγχρονων


ακολουθιακών κυκλωµάτων.

Βήµα Α1: Γράφουµε τις συναρτήσεις εισόδου.

D0 = Q2 ΄ D1 = Q0 D2 = Q0 Q1 Q2΄
Γράφουµε επίσης τη συνάρτηση της εξόδου.
Υ = Q0 Q1 Q2΄

Βήµα Α2: Καταστρώνουµε τον πίνακα καταστάσεων.

Το κύκλωµα αποτελείται από 3 FFs και συνεπώς θα έχουµε 8 δυνατές


περιπτώσεις, όπως αυτές δείχνονται στο πρώτο τµήµα του πίνακα καταστάσεων, όπου
καταγράφονται όλοι οι δυνατοί συνδυασµοί των Q2, Q1, Q0. Με βάση τις τιµές της
παρούσας κατάστασης και τις συναρτήσεις εισόδου, υπολογίζουµε τις τιµές των
εισόδων των FFs D2, D1, D0, καθώς και τις τιµές της εξόδου Υ. Εδώ θα µπορούσαµε
να είχαµε σταµατήσει, αφού πρόκειται για D FF και άρα οι τιµές της επόµενης
κατάστασης είναι ίδιες µε τις τιµές των εισόδων των FFs D2, D1, D0. Για λόγους
οµοιοµορφίας µε τη γενική περίπτωση των FFs, καταγράφουµε την επόµενη
κατάσταση, παρόλο που, όπως παρατηρούµε, αυτή έχει ίδιες τιµές µε εκείνες των
εισόδων των FFs.

40
Πίνακας 2.14 Πίνακας καταστάσεων του κυκλώµατος του Σχήµατος 2.11.

ΠΑΡΟΥΣΑ ΚΑΤΑΣΤΑΣΗ ΕΠΟΜΕΝΗ


ΕΙΣΟ∆ΟΙ ΕΞΟ∆ΟΣ
ΚΑΤΑΣΤΑΣΗ

Q2 Q1 Q0 D2 D1 D0 Υ Q2 Q1 Q0

0 0 0 0 0 1 0 0 0 1
0 0 1 0 1 1 0 0 1 1
0 1 0 0 0 1 0 0 0 1
0 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0
1 0 1 0 1 0 0 0 1 0
1 1 0 0 0 0 0 0 0 0
1 1 1 0 1 0 0 0 1 0

Βήµα Α3: Σχεδιάζουµε το διάγραµµα καταστάσεων.

Το διάγραµµα καταστάσεων προκύπτει από την παρούσα και επόµενη κατάσταση


του Πίνακα 2.14. Σε κάθε µετάβαση (βέλος) σηµειώνουµε την αντίστοιχη τιµή της
εξόδου. Παρατηρούµε ότι το κύκλωµα θα διατρέχει κυκλικά τις καταστάσεις Q2 Q1 Q0
2, 1, 3, 7 και η έξοδος Υ θα είναι διαδοχικά 0, 0, 1, 0, ... (∆ιευκρινίζεται ότι για λόγους
ευκολίας οι τιµές των καταστάσεων δίνονται στο δεκαδικό και όχι στο δυαδικό
σύστηµα αρίθµησης).
/0
001 000 111

/0 /0
/0

/0 010 /1 /0 110

/0

011 100 101

Σχήµα 2.33 ∆ιάγραµµα καταστάσεων του κυκλώµατος του Σχήµατος 2.11.

Αν το κύκλωµα βρεθεί αρχικά στην κατάσταση 0, τότε µε την επόµενη


θετική ακµή του ωρολογιακού παλµού θα µεταβεί στην κατάσταση 1 και θα συνεχίσει
τον κύκλο: 0, 1, 3, 7, 2, 1, 3, 7, 2, 1, ... Αν αρχικά βρεθεί σε µια από τις καταστάσεις 4
ή 6, τότε η επόµενη θετική ακµή θα το οδηγήσει στην κατάσταση 0 και από εκεί θα
συνεχίσει, όπως προηγουµένως. Τέλος, αν αρχικά βρεθεί στην κατάσταση 5, τότε θα

41
µεταβεί στην κατάσταση 2 και θα συνεχίσει τον κύκλο, δηλαδή 5, 2, 1, 3, 7, 2, 1, 3, 7,
2, ...
Η κυµατοµορφή της εξόδου Υ στη µόνιµή της κατάσταση, δηλαδή µετά τους
πιθανούς ένα ή δύο πρώτους κύκλους, θα είναι όπως στο Σχήµα 2.34, όπου φαίνεται
ότι για τρεις συνεχόµενους κύκλους του ρολογιού θα βρίσκεται στο 0 και για ένα
κύκλο στο 1.

CLK

Σχήµα 2.34 Κυµατοµορφές CLK και Υ του κυκλώµατος του Σχήµατος 2.11.

Απάντηση Άσκησης Αυτοαξιολόγησης 3 / Κεφάλαιο 2

Πρόκειται ουσιαστικά για το Παράδειγµα 4 / Κεφάλαιο 2, το οποίο όµως αυτή τη


φορά πρέπει να το απλοποιήσουµε µε 2 FFs τύπου Τ. Η διαδικασία σχεδίασης είναι η ίδια
και την ακολουθούµε κατά τα γνωστά.

Βήµα Σ1: Σχεδιάζουµε το διάγραµµα καταστάσεων και από αυτό τον πίνακα
καταστάσεων.

00 11

01 10
Σχήµα 2.35 ∆ιάγραµµα καταστάσεων της Άσκησης Αυτοαξιολόγησης 3 / Κεφάλαιο 2

Πίνακας 2.15 Πίνακας καταστάσεων της Άσκησης Αυτοαξιολόγησης 3 / Κεφάλαιο 2

Π.Κ. Ε.Κ. ΕΙΣΟ∆ΟΙ


Q1 Q0 Q1 Q0 T1 T0
0 0 0 1 0 1
0 1 1 1 1 0
1 0 0 0 1 0
1 1 1 0 0 1

42
Τα πρώτα δύο τµήµατα του πίνακα καταστάσεων είναι ίδια µε εκείνα του Πίνακα 2.5,
αφού αντικατοπτρίζουν το διάγραµµα καταστάσεων του Σχήµατος 2.35, το οποίο είναι
ίδιο µε εκείνο του Σχήµατος 2.13. Το τρίτο τµήµα του πίνακα καταστάσεων προέκυψε µε
βάση τις τιµές της παρούσας και επόµενης κατάστασης κάθε FF και τον αντίστοιχο
πίνακα διέγερσης του Σχήµατος 2.12 για το Τ FF.

Βήµα Σ2: Προσδιορίζουµε τις απλοποιηµένες συναρτήσεις εισόδου.

Στην προκειµένη περίπτωση παρατηρούµε ότι δεν χρειάζεται να χρησιµοποιήσουµε


χάρτες Karnaugh για την απλοποίηση των συναρτήσεων εισόδου Τ1, Τ0, αφού από το
πρώτο και τρίτο τµήµα του πίνακα καταστάσεων προκύπτει άµεσα ότι:
Τ1 = Q΄1Q0 + Q1Q΄0 = Q1 ⊕ Q0
Τ0 = Q΄1Q΄0 + Q1Q0 = Q1 ~ Q0 = (Q1 ⊕ Q0)΄ = Τ΄1

Βήµα Σ3: Σχεδιάζουµε το λογικό κύκλωµα.

Η σχεδίαση του κυκλώµατος γίνεται εύκολα, αφού γνωρίζουµε πλέον τις συναρτήσεις
των εισόδων καθενός FF (Σχήµα 2.36).

• T1 Q1 T0 Q0
CLK • FF 1 FF 0

Q 1' Q 0'

Σχήµα 2.36 Λογικό κύκλωµα της Άσκησης Αυτοαξιολόγησης 3 / Κεφάλαιο 2

Απάντηση Άσκησης Αυτοαξιολόγησης 4 / Κεφάλαιο 2

Το κύκλωµα θα αποτελείται από 3 FFs τύπου D. Ακολουθούµε τα γνωστά βήµατα


σχεδίασης για την εύρεσή του.

Βήµα Σ1: Σχεδιάζουµε το διάγραµµα καταστάσεων και καταστρώνουµε τον


αντίστοιχο πίνακα καταστάσεων.

43
0 7

1 6

2 5

3 4

Σχήµα 2.37 ∆ιάγραµµα καταστάσεων της Άσκησης Αυτοαξιολόγησης 4 / Κεφάλαιο 2

Πίνακας 2.16 Πίνακας καταστάσεων για το διάγραµµα του Σχήµατος 2.37

Π.Κ. Ε.K. ΕΙΣΟ∆ΟΙ


Q2 Q1 Q0 Q2 Q1 Q0 D2 D1 D0
0 0 0 0 0 1 0 0 1
0 0 1 0 1 1 0 1 1
0 1 0 X X X X X X
0 1 1 1 0 1 1 0 1
1 0 0 X X X X X X
1 0 1 1 1 1 1 1 1
1 1 0 X X X X X X
1 1 1 0 0 1 0 0 1

Υπενθυµίζουµε και πάλι ότι το τµήµα των εισόδων του πίνακα καταστάσεων είναι ίδιο
µε το τµήµα της παρούσας κατάστασης, αφού πρόκειται για FF τύπου D.

Βήµα Σ2: Προσδιορίζουµε τις απλοποιηµένες συναρτήσεις εισόδου.

Η απλοποίηση γίνεται µε τη βοήθεια των χαρτών Karnaugh του Σχήµατος 2.38. Για
την είσοδο D0 δεν χρειάστηκε να χρησιµοποιήσουµε χάρτη, αφού είναι προφανές από το
τµήµα των εισόδων του πίνακα καταστάσεων ότι D0 = 1.

Q1 Q 0 Q1 Q1 Q 0 Q1
Q2 00 01 11 10 Q2 00 01 11 10
0 1 x 0 1 x

Q2 1 x 1 x Q2 1 x 1 x

Q0 Q0
D 2 = Q 2 Q1′ + Q 2′ Q1 = Q 2 ⊕ Q1 D1 = Q1′Q 0
Σχήµα 2.38 Απλοποίηση των συναρτήσεων εισόδου D2, D1

44
Βήµα Σ3: Σχεδιάζουµε το λογικό κύκλωµα (Σχήµα 2.39).

V cc

D2 Q2 D1 Q1 D0 Q0

Q 2' Q 1' Q 0'

Σχήµα 2.39 Λογικό κύκλωµα που αντιστοιχεί στο διάγραµµα του Σχήµατος 2.37

Στο σηµείο αυτό θα πρέπει να ελέγξουµε αν το κύκλωµα, που µόλις σχεδιάσαµε,


λειτουργεί σύµφωνα µε τις προδιαγραφές. Έτσι συνεχίζουµε µε το επόµενο βήµα Σ4.

Βήµα Σ4: Έλεγχος ορθής λειτουργίας του κυκλώµατος.

Θα µπορούσαµε να βρούµε ποια είναι η επόµενη κατάσταση για καθεµιά από τις τιµές
2, 4, 6, για τις οποίες έχουµε δηλώσει "αδιαφορία". Για λόγους, όµως, καλύτερης
κατανόησης και συµφωνίας µε τα όσα αναφέραµε στην υποενότητα 2.2.1, προχωρούµε
στην ανάλυση του κυκλώµατος σύµφωνα µε τα τρία βήµατα ανάλυσης.

Βήµα Α1: Γράφουµε τις συναρτήσεις εισόδου.

D2 = Q2 ⊕Q1 D1 = Q1΄Q0 D0 = 1

Βήµα Α2: Καταστρώνουµε τον πίνακα καταστάσεων (Πίνακας 2.17)

Πίνακας 2.17 Πίνακας καταστάσεων του Σχήµατος 2.39

Π.Κ. ΕΙΣΟ∆ΟΙ Ε.Κ.


Q2 Q1 Q0 D2 D1 D0 Q2 Q1 Q0
0 0 0 0 0 1 0 0 1
0 0 1 0 1 1 0 1 1
0 1 0 1 0 1 1 0 1
0 1 1 1 0 1 1 0 1
1 0 0 1 0 1 1 0 1
1 0 1 1 1 1 1 1 1
1 1 0 0 0 1 0 0 1
1 1 1 0 0 1 0 0 1

45
Βήµα Α3: Σχεδιάζουµε το διάγραµµα καταστάσεων.

Το διάγραµµα καταστάσεων δείχνεται στο Σχήµα 2.40. Από αυτό παρατηρούµε ότι, αν
το κύκλωµα βρεθεί σε µια από τις µη επιθυµητές καταστάσεις 2, 4 ή 6, τότε αυτό µετά
από ένα ωρολογιακό παλµό θα βρεθεί σε µια από τις επιθυµητές (έγκυρες) καταστάσεις
και θα συνεχίσει τον κύκλο του. ∆ηλαδή, αν βρεθεί σε µια από τις καταστάσεις 2 ή 4,
τότε µε την αρνητική ακµή του ωρολογιακού παλµού θα µεταβεί στη κατάσταση 5 και
από εκεί θα συνεχίσει τον κύκλο του. Αν αρχικά βρεθεί στη κατάσταση 6, τότε η έλευση
της αρνητικής ακµής του ωρολογιακού παλµού θα το οδηγήσει στη κατάσταση 1 και από
εκεί θα συνεχίσει τον κύκλο του 1,3,5,7,1,3,5,... Εποµένως, πρόκειται για ένα κύκλωµα
µε αυτόµατη εκκίνηση και αυτόµατη διόρθωση και δεν χρειάζεται άλλη δική µας
παρέµβαση τροποποίησης αυτού.

0
7

1
6

2
5
3
4

Σχήµα 2.40 ∆ιάγραµµα καταστάσεων του κυκλώµατος του Σχήµατος 2.39

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

Counter Απαριθµητής, µετρητής, κύκλωµα απαρίθµησης παλµών


Modulo / modulus / mod Υπόλοιπο, Κύκλος απαρίθµησης
State diagram ∆ιάγραµµα καταστάσεων

46
ΚΕΦΑΛΑΙΟ 3 ΑΠΑΡΙΘΜΗΤΕΣ

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ............................................................................................................ 3

ΕΝΟΤΗΤΑ 3.1. ΑΣΥΓΧΡΟΝΟΙ ΑΠΑΡΙΘΜΗΤΕΣ .................................................................................. 4


3.1.1. ΑΣΥΓΧΡΟΝΟΙ ∆ΥΑ∆ΙΚΟΙ ΑΠΑΡΙΘΜΗΤΕΣ ................................................................................ 4
3.1.2. ΑΣΥΓΧΡΟΝΟΙ ΜΗ-∆ΥΑ∆ΙΚΟΙ ΑΠΑΡΙΘΜΗΤΕΣ ........................................................................ 9
ΕΝΟΤΗΤΑ 3.2. ΣΥΓΧΡΟΝΟΙ ΑΠΑΡΙΘΜΗΤΕΣ ................................................................................... 12
3.2.1. ΣΥΓΧΡΟΝΟΙ ∆ΥΑ∆ΙΚΟΙ ΑΠΑΡΙΘΜΗΤΕΣ ................................................................................. 12
3.2.2. ΣΥΓΧΡΟΝΟΙ ΜΗ-∆ΥΑ∆ΙΚΟΙ ΑΠΑΡΙΘΜΗΤΕΣ ......................................................................... 14
ΕΝΟΤΗΤΑ 3.3. ∆ΙΑΙΡΕΤΕΣ ΣΥΧΝΟΤΗΤΑΣ ΠΑΛΜΩΝ..................................................................... 19

ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ ........................................................................................................................... 24

ΒΙΒΛΙΟΓΡΑΦΙΑ ......................................................................................................................................... 25

ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ......................................................................... 26


ΑΠΟ∆ΟΣΗ ΑΓΓΛΙΚΩΝ ΟΡΩΝ ΣΤΗΝ ΕΛΛΗΝΙΚΗ.............................................................................. 31

1
ΚΕΦΑΛΑΙΟ 3 ΑΠΑΡΙΘΜΗΤΕΣ

Στόχος:

Οι απαριθµητές είναι από τα περισσότερο χρησιµοποιούµενα ψηφιακά κυκλώµατα. Η


πιο γνωστή χρήση τους είναι αυτή της µέτρησης του χρόνου (ψηφιακά ρολόγια). Στόχος
µας στο κεφάλαιο αυτό είναι η εξοικείωση µε όλους τους τύπους των απαριθµητών και
τους τρόπους χρήσης τους.

Προσδοκώµενα αποτελέσµατα:
Με την ολοκλήρωση της µελέτης του κεφαλαίου, θα είστε σε θέση να:
• αναλύετε και σχεδιάζετε σύγχρονους και ασύγχρονους δυαδικούς απαριθµητές
• αναλύετε και σχεδιάζετε σύγχρονους και ασύγχρονους µη-δυαδικούς απαριθµητές
(οποιουδήποτε κύκλου απαρίθµησης Ν)
• σχεδιάζετε κυκλώµατα υποβιβασµού συχνότητας παλµών

Λέξεις κλειδιά:
• Απαριθµητής • ∆ιαιρέτης συχνότητας παλµών
• Μετρητής • Σύγχρονος ή παράλληλος απαριθµητής
• Απαριθµητής κυµατώσεως • Ασύγχρονος ή σειριακός απαριθµητής
• Απαριθµητής ριπής

2
ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ

Οι απαριθµητές ή µετρητές (counters) είναι ακολουθιακά κυκλώµατα αποτελούµενα


από FFs και πύλες, που έχουν τη δυνατότητα απαρίθµησης παλµών (γεγονότων). Τέτοια
κυκλώµατα γνωρίσαµε στο προηγούµενο κεφάλαιο, όταν ασχοληθήκαµε µε την ανάλυση
και τη σχεδίαση σύγχρονων ακολουθιακών κυκλωµάτων. Εδώ, όµως, θα τα µελετήσουµε
πιο συστηµατικά.
Ένας απαριθµητής, ο οποίος τροφοδοτείται µε κάποιους ωρολογιακούς παλµούς,
µπορεί να χρησιµοποιηθεί για να µετράει αυτούς τους παλµούς. Εφόσον οι παλµοί
εµφανίζονται σε τακτά χρονικά διαστήµατα, ο απαριθµητής µπορεί να χρησιµοποιηθεί ως
όργανο για τη µέτρηση του χρόνου και κατά συνέπεια της περιόδου ή της συχνότητας.
Υπάρχουν δύο βασικές κατηγορίες απαριθµητών: οι ασύγχρονοι και οι σύγχρονοι.
Θα δούµε ότι οι ασύγχρονοι απαριθµητές είναι πιο απλοί στη σχεδίασή τους και
συνήθως απαιτείται ο ελάχιστος αριθµός πυλών για την κατασκευή τους. Παρουσιάζουν,
όµως, πρόβληµα στη µέγιστη συχνότητα λειτουργίας που µπορούµε να πετύχουµε, επειδή
το κάθε FF πυροδοτείται από την έξοδο του προηγουµένου του. Οι απαριθµητές αυτού
του τύπου ονοµάζονται ασύγχρονοι (asynchronous) ή σειριακοί (serial) ή κυµατώσεως
(ripple).
Η άλλη κατηγορία απαριθµητών είναι οι λεγόµενοι σύγχρονοι (synchronous) ή
παράλληλοι (parallel). Όπως θα δούµε, σ' αυτούς όλα τα FFs πυροδοτούνται ταυτόχρονα,
αφού ο ίδιος ωρολογιακός παλµός εφαρµόζεται σε καθένα από αυτά. Με τον τρόπο αυτό
πετυχαίνουµε µεγαλύτερες ταχύτητες λειτουργίας, µε τίµηµα όµως το µεγαλύτερο αριθµό
πυλών του κυκλώµατος.
Στην πρώτη ενότητα του κεφαλαίου θα γνωρίσουµε τους ασύγχρονους απαριθµητές,
τόσο τους δυαδικούς όσο και τους µη δυαδικούς. Στη δεύτερη ενότητα θα ασχοληθούµε
µε τους σύγχρονους απαριθµητές. Εκτός από τη γνωστή µέθοδο σχεδίασης αυτών, θα
µάθουµε και µία νέα µέθοδο για τη σχεδίαση σύγχρονων κυκλωµάτων κανονικής
απαρίθµησης. Τέλος, στην τρίτη ενότητα θα εξετάσουµε κυκλώµατα για τον υποβιβασµό
της συχνότητας ωρολογιακών παλµών.

3
ΕΝΟΤΗΤΑ 3.1. ΑΣΥΓΧΡΟΝΟΙ ΑΠΑΡΙΘΜΗΤΕΣ

Οι ασύγχρονοι απαριθµητές κατασκευάζονται µε FFs, καθένα από τα οποία


πυροδοτείται από το προηγούµενό του. Όταν λέµε απαριθµητή, εννοούµε ένα
ακολουθιακό κύκλωµα µε FFs, οι καταστάσεις των οποίων για κάθε νέο ωρολογιακό
παλµό αλλάζουν έτσι ώστε ο αριθµός που σχηµατίζεται στην έξοδο να διατρέχει κυκλικά
ένα σύνολο δυαδικών αριθµών Ν. Αν το πλήθος Ν των αριθµών είναι δύναµη του 2,
δηλαδή αν Ν =2n, και ο απαριθµητής διατρέχει τους αριθµούς αυτούς κανονικά (τον ένα
µετά τον άλλο), τότε αυτός ονοµάζεται δυαδικός απαριθµητής (binary counter). Αν το Ν
δεν είναι δύναµη του 2, δηλαδή Ν≠2n, τότε ο απαριθµητής ονοµάζεται µη-δυαδικός. Θα
εξετάσουµε χωριστά την καθεµία περίπτωση.

3.1.1. ΑΣΥΓΧΡΟΝΟΙ ∆ΥΑ∆ΙΚΟΙ ΑΠΑΡΙΘΜΗΤΕΣ

Το κύκλωµα του Σχήµατος 3.1α µας δείχνει έναν ασύγχρονο δυαδικό απαριθµητή των
3-bits, ο οποίος είναι σχεδιασµένος µε FFs τύπου Τ αρνητικής ακµής πυροδότησης. Η
είσοδος Τ καθενός FF είναι συνδεδεµένη στο λογικό 1.

Vcc • •
(LSB) (MSB)
T1 Q1 T2 Q2
T0 Q0
CLK
FF0 FF1 FF2
Q 0' Q 1' Q 2'

(α)

CLK

Q0

Q1

Q2
0 1 2 3 4 5 6 7 0 1 2
(Q2Q1Q0 )10
(β)
Σχήµα 3.1 Ασύγχρονος προσθετικός δυαδικός απαριθµητής (mod-8): (α) λογικό κύκλωµα, (β)
κυµατοµορφές εξόδου.
Αυτό σηµαίνει ότι η ενεργός ακµή στην είσοδο CLK του κάθε FF, θα το αναγκάζει να
αλλάζει κατάσταση (toggle). Οι έξοδοι του απαριθµητή είναι οι τρεις καταστάσεις Q0,
Q1, Q2 των FFs. Παρατηρούµε ότι το κάθε FF πυροδοτείται από την έξοδο του

4
προηγούµενου FF. Ο παλµός εισόδου εφαρµόζεται µόνο στο πρώτο από τα FFs. Οι
κυµατοµορφές της εισόδου και των εξόδων του απαριθµητή δίνονται στο Σχήµα 3.1β. Ας
εξετάσουµε τον τρόπο λειτουργίας του κυκλώµατος.
Έστω ότι αρχικά όλα τα FFs έχουν µηδενιστεί (reset, εκκαθάριση). Με την πρώτη
αρνητική ακµή των ωρολογιακών παλµών το FF0 αλλάζει κατάσταση και από το 0
µεταβαίνει στο 1. Με την επόµενη αρνητική ακµή, αυτό αλλάζει και πάλι κατάσταση και
από το 1 µεταβαίνει στο 0. Οι µεταπτώσεις αυτές συνεχίζονται για κάθε αρνητική ακµή
των ωρολογιακών παλµών CLK. Η έξοδος, όµως, του FF0 συνδέεται στην είσοδο
ρολογιού του επόµενου FF1. Έτσι, µε κάθε αρνητική ακµή του Q0 το FF1 αλλάζει
κατάσταση, αφού πρόκειται για FF τύπου Τ µε Τ=1. Παρόµοια είναι και η συµπεριφορά
του τρίτου FF, του οποίου η είσοδος ρολογιού τροφοδοτείται από την έξοδο Q1 του
δεύτερου FF. Αν διαβάζουµε τις εξόδους των τριών FFs µε την σειρά Q2Q1Q0,
αρχίζοντας από τα αριστερά των κυµατοµορφών του Σχήµατος 3.1β, διατρέχουµε
κυκλικά τους αριθµούς 000, 001, 010, ......, 111. Σε δεκαδική αναπαράσταση οι αριθµοί
αυτοί είναι 0, 1, 2, ...., 7. Άρα, πρόκειται για ένα κύκλωµα µε κύκλο απαρίθµησης 8
(mod-8)*. To FF0 αλλάζει κατάσταση σε κάθε αρνητική ακµή του ρολογιού. Πρόκειται
δηλαδή για το λιγότερο σηµαντικό ψηφίο (LSB, Least Significant Bit). Η περίοδος των
παλµών Q0 είναι 2πλάσια της περιόδου των ωρολογιακών παλµών, δηλαδή η συχνότητα
των παλµών του Q0 είναι υποδιπλάσια της συχνότητας των ωρολογιακών παλµών.
Αντίστοιχα, η περίοδος των παλµών Q1 είναι 2πλάσια της περιόδου των παλµών Q0 και
άρα 4πλάσια της περιόδου των ωρολογιακών παλµών. Τέλος, η περίοδος των παλµών Q2
είναι 8πλάσια της περιόδου των ωρολογιακών παλµών. ∆ιαπιστώνουµε, εποµένως, ότι η
κάθε έξοδος Q0, Q1, Q2 πετυχαίνει τη διαίρεση της συχνότητας των ωρολογιακών
παλµών δια 2, 4 και 8 αντίστοιχα.
Έχοντας πλέον αναλύσει διεξοδικά το κύκλωµα του απαριθµητή του Σχήµατος 3.1 ας
προχωρήσουµε σε ορισµένες παρατηρήσεις και γενικεύσεις.
• Το κύκλωµα του Σχήµατος 3.1 αποτελείται από 3 FFs και είναι ένας απαριθµητής
8 διαφορετικών καταστάσεων (mod-8). Στη γενική περίπτωση κατά την οποία
έχουµε n FFs, το κύκλωµα θα είναι σε θέση να απαριθµεί Ν=2n καταστάσεις,
δηλαδή να διατρέχει κυκλικά τους αριθµούς από 0 µέχρι και Ν-1. Τότε λέµε ότι
έχουµε έναν απαριθµητή µε κύκλο απαρίθµησης Ν (mod-N).

*
Modulo ή modulus ή mod ενός απαριθµητή είναι το πλήθος των καταστάσεων που διατρέχει
αυτός.

5
• Στους ασύγχρονους απαριθµητές το κάθε FF πυροδοτείται από την έξοδο του
προηγουµένου του. Έτσι βλέπουµε ότι το FF0 πρέπει να αλλάξει κατάσταση (από
1 σε 0), ώστε αυτό να πυροδοτήσει το FF1 και αυτό µε τη σειρά του να αλλάξει
κατάσταση (από 1 σε 0), ώστε να πυροδοτήσει το FF2. Η πυροδότηση διαδίδεται
από το ένα FF στο άλλο σαν την κυµάτωση στο νερό, γι' αυτό και οι ασύγχρονοι
απαριθµητές ονοµάζονται και απαριθµητές κυµατώσεως (ripple counters). Ο
τρόπος αυτός λειτουργίας των απαριθµητών δηµιουργεί κάποια προβλήµατα
εξαιτίας της καθυστέρησης διάδοσης που εισάγει κάθε FF. Ας υποθέσουµε, για
παράδειγµα, ότι κάθε FF έχει µια τυπική καθυστέρηση διάδοσης (propagation
delay) 10 ns. Τότε, το κύκλωµα του Σχήµατος 3.1, το οποίο αποτελείται από 3 FFs,
θα παρουσιάζει µια συνολική καθυστέρηση 30 ns. Αυτό σηµαίνει ότι η περίοδος
των ωρολογιακών παλµών θα πρέπει να είναι µεγαλύτερη από 30 ns, ώστε το
κύκλωµα να λειτουργεί αξιόπιστα. Με άλλα λόγια, η συχνότητα των παλµών του
ρολογιού πρέπει να είναι µικρότερη από 1/30 ns ~ 33 MHz.
• Ο απαριθµητής του Σχήµατος 3.1 είναι ένας προσθετικός δυαδικός απαριθµητής,
δηλαδή µετράει προς τα πάνω (count-up). Πόσο εύκολα θα µπορούσε να σχεδιάσει
κανείς έναν αφαιρετικό δυαδικό απαριθµητή, δηλαδή έναν απαριθµητή που να
µετράει προς τα κάτω (count-down); Η απάντηση στο ερώτηµα αυτό είναι πολύ
εύκολη. Άµεσα, θα λέγαµε, µπορούµε να έχουµε έναν αφαιρετικό απαριθµητή, από
τη στιγµή που έχουµε το κύκλωµα του προσθετικού στο Σχήµα 3.1. Το µόνο που
έχουµε να κάνουµε είναι να πάρουµε ως εξόδους του κυκλώµατος τις
συµπληρωµατικές καταστάσεις Q2΄, Q1΄, Q0΄ των FFs, αντί για τις Q2, Q1, Q0. Από
τις κυµατοµορφές του Σχήµατος 3.1β γίνεται φανερό ότι µε κάθε νέο παλµό του
ρολογιού το κύκλωµα θα διατρέχει τις τιµές {(Q2΄Q1΄Q0΄)10}= {7, 6, 5, 4, 3, 2, 1, 0,
7, 6, 5, 4, ...}.
Υπάρχει όµως και άλλος τρόπος, για να σχεδιάσουµε έναν αφαιρετικό δυαδικό
απαριθµητή. Αυτός δίνεται στο Σχήµα 3.2α και, όπως παρατηρούµε, πρόκειται για το ίδιο
κύκλωµα µε εκείνο του Σχήµατος 3.1α, µε µόνη διαφορά ότι το κάθε FF πυροδοτείται µε
την συµπληρωµατική κατάσταση του προηγουµένου του. Ως έξοδοι του απαριθµητή
θεωρούνται και πάλι οι κανονικές καταστάσεις Q2, Q1, Q0 των FFs. Οι κυµατοµορφές
των ωρολογιακών παλµών και των εξόδων του κυκλώµατος δείχνονται στο Σχήµα 3.2β.

6
Vcc • •
(LSB)
T1 Q1 T2 Q2 (MSB)
T0 Q0
CLK
FF0 FF1 FF2
Q0 ' Q1' Q 2'

(α)

CLK

Q0

Q1

Q2
0 7 6 5 4 3 2 1 0 7 6
(Q2Q1Q0 )10
(β)
Σχήµα 3.2 Ασύγχρονος αφαιρετικός δυαδικός απαριθµητής (mod-8):
(α) λογικό κύκλωµα, (β) κυµατοµορφές εξόδου.

Αρχικά θεωρήσαµε ότι όλα τα FFs είχαν εκκαθαριστεί. Με την πρώτη αρνητική ακµή
των ωρολογιακών παλµών το FF0 αλλάζει κατάσταση (toggle) και από 0 γίνεται 1. Αυτό
σηµαίνει ότι η συµπληρωµατική κατάσταση Q0΄ αυτού από 1 γίνεται 0. Συνέπεια αυτού
είναι η ενεργοποίηση του επόµενου FF1 µε επακόλουθο την αλλαγή της κατάστασης Q1
αυτού από 0 που ήταν σε 1. Άρα, το Q1΄ από 1 γίνεται 0 και ενεργοποιεί και το τελευταίο
FF2, το οποίο µε τη σειρά του αλλάζει και αυτό κατάσταση. Έτσι το κύκλωµα µε την
πρώτη ενεργό ακµή του ρολογιού από το 000 που ήταν πήγε στο 111. Με κάθε νέο
ωρολογιακό παλµό συνεχίζει την απαρίθµηση προς τα κάτω µέχρις ότου µηδενιστεί και
αρχίσει η επανάληψη του ίδιου κύκλου. Σηµειώνεται ότι ο κύκλος απαρίθµησης του
αφαιρετικού απαριθµητή εξακολουθεί να είναι ο ίδιος και ίσος µε 8 (mod-8) στην
προκειµένη περίπτωση, αφού το κύκλωµα διατρέχει και πάλι οκτώ διαφορετικές
καταστάσεις.

Άσκηση Αυτοαξιολόγησης 1 / Κεφάλαιο 3

Σχεδιάστε το λογικό κύκλωµα του Σχήµατος 3.1α χρησιµοποιώντας FFs τύπου Τ


θετικής ακµής πυροδότησης. Ποιες οι αντίστοιχες κυµατοµορφές εξόδου του
κυκλώµατος;

∆ραστηριότητα 1 / Κεφάλαιο 3

Μπορείτε να προτείνετε κύκλωµα, το οποίο να απαριθµεί προς τα πάνω ή προς τα


κάτω ανάλογα µε την τιµή µιας εισόδου ελέγχου;

7
Είναι χρήσιµο σε πολλές εφαρµογές να µπορούµε να επιλέγουµε αν θα µετρήσουµε
προς τα πάνω ή προς τα κάτω. Θα µπορούσαµε να προτείνουµε διάφορα κυκλώµατα. Για
παράδειγµα, στην περίπτωση του απαριθµητή του Σχήµατος 3.1α, αφού οι κανονικές
καταστάσεις µετρούν προς τα πάνω, ενώ οι συµπληρωµατικές τους προς τα κάτω, θα
µπορούσαµε να σκεφτούµε ένα απλό κύκλωµα πολυπλέκτη 2-σε-1, το οποίο να επιλέγει
µεταξύ των δύο εξόδων. Μια δεύτερη λύση είναι η ακόλουθη. Κάθε κανονική κατάσταση
Q να την οδηγούµε σε µια πύλη XOR δύο εισόδων. Στην άλλη είσοδο της πύλης να
συνδέεται το σήµα επιλογής Ε, όπως δείχνεται στο Σχήµα 3.3 για την περίπτωση ενός
απαριθµητή µε 3 FFs.

O0 O1 O2

Ε • •
Q0 Q1 Q2
Σχήµα 3.3 Κύκλωµα για τη µετατροπή ενός προσθετικού απαριθµητή των 3-bits σε προσθετικό /
αφαιρετικό.

Η είσοδος Ε καθορίζει αν στις εξόδους θα έχουµε τα ίδια τα Q ή τα συµπληρώµατά


τους. Έτσι για Ε=0, Oi =Qi, ενώ για Ε=1 Oi =Qi΄, όπου i=0,1,2. ∆ηλαδή, αν το κύκλωµα
του Σχήµατος 3.3 προσαρµοστεί στις εξόδους του Σχήµατος 3.1α, τότε ο απαριθµητής
που προκύπτει για Ε=0 θα µετράει προς τα πάνω και για Ε=1 προς τα κάτω. Τέλος, µια
διαφορετική προσέγγιση στο πρόβληµα είναι εκείνη κατά την οποία η επιλογή µας δεν
εφαρµόζεται στις εξόδους (καταστάσεις) των FFs, αλλά στους παλµούς πυροδότησής
τους. ∆είτε για παράδειγµα το κύκλωµα του Σχήµατος 3.4. Το κάθε FF πυροδοτείται από
την κανονική ή συµπληρωµατική κατάσταση του προηγούµενου FF. Αυτό το
πετυχαίνουµε µε τη βοήθεια ενός απλού πολυπλέκτη 2-σε-1, ο έλεγχος του οποίου γίνεται
µέσω της εισόδου επιλογής Ε. Οι κυµατοµορφές του κυκλώµατος είναι ίδιες µε εκείνες
των Σχηµάτων 3.1β ή 3.2β, ανάλογα µε το εάν ο απαριθµητής είναι προσθετικός ή
αφαιρετικός, δηλαδή ανάλογα αν Ε=0 ή Ε=1. Οι έξοδοι του απαριθµητή είναι οι Q2, Q1,
Q0 µε περισσότερο σηµαντικό bit το Q2. Είναι φανερό ότι χρησιµοποιώντας περισσότερα
FFs µπορούµε να κατασκευάσουµε απαριθµητές µε µεγαλύτερες δυνατότητες
απαρίθµησης. Σηµειώνεται ότι οι πύλες του πολυπλέκτη εισάγουν κάποια επιπρόσθετη

8
καθυστέρηση στους ωρολογιακούς παλµούς του κυκλώµατος και θα πρέπει να
λαµβάνεται υπόψη κατά τον υπολογισµό της µέγιστης συχνότητας λειτουργίας του
απαριθµητή.

Ε •

"1" T0 Q0 "1" T1 Q1 "1" T2 Q2


CLK
Q0 ' Q1' Q2 '

Σχήµα 3.4 Προσθετικός / Αφαιρετικός απαριθµητής των 3 bits.

3.1.2. ΑΣΥΓΧΡΟΝΟΙ ΜΗ-∆ΥΑ∆ΙΚΟΙ ΑΠΑΡΙΘΜΗΤΕΣ

Είδαµε ότι δυαδικοί απαριθµητές είναι εκείνοι, οι οποίοι έχουν κύκλο απαρίθµησης Ν
δύναµη του 2, δηλαδή Ν=2n. Τις περισσότερες, όµως, φορές θα θέλαµε να µετράµε κατά
δεκάδες, αφού το δεκαδικό είναι το σύστηµα αρίθµησης που χρησιµοποιούµε ή κατά
δωδεκάδες ή κατά οποιοδήποτε άλλο αριθµό. Είναι απαραίτητο, λοιπόν, να µελετήσουµε
τον τρόπο για τη σχεδίαση τέτοιων απαριθµητών, δηλαδή µη-δυαδικών απαριθµητών µε
κύκλο απαρίθµησης Ν≠2n.
Η σχεδίαση µη-δυαδικών απαριθµητών γίνεται εύκολα µε τη χρήση µιας πύλης
NAND ως αποκωδικοποιητή. Οι είσοδοι της πύλης NAND αποκωδικοποιούν την
κατάσταση Ν των FFs, ενώ η έξοδος αυτής τροφοδοτεί τις εισόδους άµεσου µηδενισµού
όλων των FFs. Ας εξετάσουµε την περίπτωση των µη-δυαδικών απαριθµητών µέσω ενός
παραδείγµατος.

Παράδειγµα 1 / Κεφάλαιο 3

Να σχεδιαστεί ένας δεκαδικός ασύγχρονος απαριθµητής.

Παρατηρούµε ότι Ν=10 (23<10<24) και συνεπώς θα χρειαστούµε 4 FFs για την
υλοποίησή του. Θα σχεδιάσουµε, λοιπόν, έναν δυαδικό απαριθµητή των 4 bits, ο οποίος
θα µπορεί να διέρχεται από όλες τις καταστάσεις από 0 µέχρι και 15, αλλά θα
αναγκάσουµε αυτόν να αρχίζει την απαρίθµηση από την αρχή κάθε φορά που µετράει
τους 10 πρώτους παλµούς. Στο Σχήµα 3.5 δείχνεται το ζητούµενο κύκλωµα. Η πύλη

9
NAND τροφοδοτείται από τις εξόδους Q1 και Q3. Αυτό συµβαίνει, επειδή ο αριθµός
(10)10 γράφεται στο δυαδικό ως 1010, δηλαδή Ν=(Q3Q2Q1Q0)2=(1010)2. Παρατηρείστε
ότι το Q0 είναι το LSB. Άρα, ο απαριθµητής λειτουργεί κανονικά, όπως τον έχουµε
γνωρίσει από το Σχήµα 3.1, αρχίζοντας από το 0 και αυξανόµενος κατά 1 µε την έλευση
κάθε αρνητικού παλµού. Η έξοδος G της πύλης NAND βρίσκεται στη λογική κατάσταση
1 (G= (Q1Q3)΄=1). Μετά από 10 παλµούς του ρολογιού, ο απαριθµητής έχει φτάσει στην
κατάσταση (Q3Q2Q1Q0)2=(1001)2=910. Με τον επόµενο ωρολογιακό παλµό οι έξοδοι των
FFs αλλάζουν κατάσταση µεταβαίνοντας στο (1010)2.

1 T0 1 T1 Q1 1 T2 Q2 1 T3 Q3
Q0
FF1 FF2 FF3
FF0 G
CLR CLR CLR CLR

(α)

Αιχµή λόγω 'στιγµιαίας'


εµφάνισης του αριθµού 10

CLK

Q0

Q1

Q2

Q3
G
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
(Q3 Q2 Q1Q0 )10
(β)
Σχήµα 3.5. Ασύγχρονος δεκαδικός απαριθµητής: (α) λογικό κύκλωµα, (β) κυµατοµορφές εξόδου.

Τότε, όµως, η έξοδος της πύλης NAND γίνεται 0 (G=(Q3Q1)΄=0), επιβάλλοντας την
εκκαθάριση όλων των FFs. Έτσι, µε τον επόµενο ωρολογιακό παλµό η απαρίθµηση
αρχίζει και πάλι από την αρχή. Γίνεται φανερό ότι ο αριθµός Ν=10 εµφανίζεται στιγµιαία
στην έξοδο του απαριθµητή, δηµιουργώντας έναν λεπτό παλµό (αιχµή, glitch), για χρόνο
ίσο µε την καθυστέρηση διάδοσης µέσω της πύλης NAND και του χρόνου που
απαιτείται, για να µηδενιστούν οι έξοδοι Qi από τη στιγµή που οι είσοδοι CLR
ενεργοποιηθούν. Το άθροισµα των δύο αυτών καθυστερήσεων είναι της τάξεως των ns
(π.χ. 10 ns). Για τη λειτουργία τέτοιων κυκλωµάτων σε πολύ υψηλές συχνότητες
ενδέχεται η εµφάνιση αυτής της αιχµής να δηµιουργήσει πρόβληµα.

10
Άσκηση Αυτοαξιολόγησης 2 / Κεφάλαιο 3

Σχεδιάστε ασύγχρονο προσθετικό απαριθµητή µε κύκλο απαρίθµησης 12 (mod-12),


χρησιµοποιώντας FFs τύπου Τ αρνητικής ακµής πυροδότησης .

Άσκηση Αυτοαξιολόγησης 3 / Κεφάλαιο 3

Με FFs τύπου Τ αρνητικής ακµής πυροδότησης, να σχεδιάσετε ασύγχρονο προσθετικό


απαριθµητή µε κύκλο απαρίθµησης 5 (mod-5), o οποίος να απαριθµεί από το 6 µέχρι και
το 10.

∆ραστηριότητα 2 / Κεφάλαιο 3

Μπορείτε να προτείνεται ασύγχρονο κύκλωµα, το οποίο να παράγει την ακολουθία


παλµών 6-5-4-3-2-6-5-4-3-2-6-...;

Σύνοψη Ενότητας

Στην ενότητα αυτή µελετήσαµε τους ασύγχρονους απαριθµητές (δυαδικούς και µη-
δυαδικούς). Καθένας από αυτούς χωρίζεται σε προσθετικούς και αφαιρετικούς, ανάλογα
µε το αν η απαρίθµηση γίνεται προς τα πάνω ή προς τα κάτω. Είδαµε ότι ο τύπος
πυροδότησης των FFs είναι ουσιώδους σηµασίας σ' αυτούς τους απαριθµητές, αφού µε
αντικατάσταση των αρνητικής ακµής πυροδότησης FFs µε αντίστοιχα θετικής ακµής
πυροδότησης, ένας προσθετικός απαριθµητής γίνεται αφαιρετικός απαριθµητής. Οι
ασύγχρονοι απαριθµητές ονοµάζονται και απαριθµητές κυµατώσεως , επειδή κάθε FF
πυροδοτείται από την έξοδο του προηγουµένου του. Ο ασύγχρονος αυτός τρόπος
πυροδότησης εισάγει καθυστερήσεις στη διάδοση των παλµών από FF σε FF,
δηµιουργώντας προβλήµατα για υψηλές συχνότητες λειτουργίας.

11
ΕΝΟΤΗΤΑ 3.2. ΣΥΓΧΡΟΝΟΙ ΑΠΑΡΙΘΜΗΤΕΣ

Στην προηγούµενη ενότητα γνωρίσαµε τους ασύγχρονους απαριθµητές και


διαπιστώσαµε ότι παρουσιάζεται πρόβληµα κατά τη λειτουργία τους σε υψηλές
συχνότητες, εξαιτίας της καθυστέρησης που εισάγεται στην πυροδότηση των FFs. Το
πρόβληµα αυτό το επιλύουµε εύκολα µε την πυροδότηση όλων των FFs µε ένα κοινό
ρολόι. Στην περίπτωση αυτή έχουµε να κάνουµε µε σύγχρονα ακολουθιακά κυκλώµατα,
των οποίων η ανάλυση και σχεδίαση έχει µελετηθεί εκτενώς στο προηγούµενο κεφάλαιο.
Εδώ θα ασχοληθούµε µε τους σύγχρονους απαριθµητές (δυαδικούς και µη-δυαδικούς)
και θα περιγράψουµε επίσης έναν εναλλακτικό τρόπο για τη σχεδίασή τους.

3.2.1. ΣΥΓΧΡΟΝΟΙ ∆ΥΑ∆ΙΚΟΙ ΑΠΑΡΙΘΜΗΤΕΣ

Πρόκειται για απαριθµητές, των οποίων ο κύκλος απαρίθµησης Ν είναι δύναµη του 2,
δηλαδή Ν=2n. Ένας τέτοιος απαριθµητής αποτελείται από n FFs, τα οποία χρονίζονται
από ένα κοινό ωρολογιακό παλµό. Στο Σχήµα 3.6α δείχνεται ένας σύγχρονος
απαριθµητής µε κύκλο απαρίθµησης 8 (mod-8), βασισµένος σε FFs τύπου Τ αρνητικής
ακµής πυροδότησης. Οι κυµατοµορφές εξόδου αυτού δείχνονται στο Σχήµα 3.6β και
είναι ίδιες µε εκείνες του Σχήµατος 3.1β.

T0 Q0 T1 Q1 T2 Q2
1 •
CLK FF0 FF1 FF2

(α)

CLK

Q0

Q1

Q2
(Q2Q1Q0 )10 0 1 2 3 4 5 6 7 0 1

(β)
Σχήµα 3.6. Σύγχρονος προσθετικός δυαδικός απαριθµητής (mod-8): (α) λογικό κύκλωµα, (β)
κυµατοµορφές εξόδου.

Ο τρόπος λειτουργίας του έχει ως εξής: Η είσοδος Τ0=1, γεγονός που σηµαίνει ότι το FF0
αλλάζει κατάσταση κάθε φορά που ο ωρολογιακός παλµός µεταβαίνει από το 1 στο 0

12
(αρνητική ακµή). Όταν Τ1=1 και ο ωρολογιακός παλµός µεταβαίνει από το 1 στο 0, τότε
το FF1 αλλάζει κατάσταση. Παρόµοια συµβαίνουν και για το FF2, το οποίο αλλάζει
κατάσταση κατά την αρνητική ακµή του ρολογιού, εφόσον Τ2=1. Παρατηρείστε ότι
Τ2=Q1T1=Q1Q0, δηλαδή το FF2 αλλάζει κατάσταση, όταν όλα τα προηγούµενα από αυτό
FFs βρίσκονται στην κατάσταση 1. Γενικά ισχύει ότι Tn=Qn-1...Q1Q0, όπου Tn η είσοδος
του n-οστού FF και Qn-1, ..., Q1, Q0 οι έξοδοι όλων των προηγούµενων FFs. Ας σηµειωθεί
ότι στο κύκλωµα του Σχήµατος 3.6α Q0 θα είναι το λιγότερο σηµαντικό ψηφίο (LSB) της
λέξης εξόδου και Q2 το περισσότερο σηµαντικό ψηφίο (MSB) αυτής.

∆ραστηριότητα 3 / Κεφάλαιο 3

Προτείνετε κύκλωµα, ώστε ο απαριθµητής του Σχήµατος 3.6(α). να απαριθµεί προς τα


πάνω ή προς τα κάτω, ανάλογα µε το αν η είσοδος ελέγχου Ε είναι 0 ή 1 αντίστοιχα.

∆ραστηριότητα 4 / Κεφάλαιο 3

Σχεδιάστε ένα σύγχρονο προσθετικό απαριθµητή mod-16 µε FFs τύπου JK θετικής


ακµής πυροδότησης. Προτείνετε τρόπους, ώστε το κύκλωµα αυτό να απαριθµεί προς τα
κάτω.

Άσκηση Αυτοαξιολόγησης 4 / Κεφάλαιο 3

Σχεδιάστε σύγχρονο προσθετικό απαριθµητή mod-8 µε FFs τύπου Τ θετικής ακµής


πυροδότησης. Προτείνετε τρόπους, ώστε το κύκλωµα αυτό να απαριθµεί προς τα κάτω.

Στο σηµείο αυτό θα ήταν σκόπιµο να παρατηρήσουµε τα εξής σχετικά µε τους


σύγχρονους δυαδικούς απαριθµητές:
• Η είσοδος Τ κάθε FF τροφοδοτείται µε το γινόµενο των εξόδων Q όλων των
προηγούµενων FFs.
• H συµπεριφορά ενός σύγχρονου απαριθµητή δεν αλλάζει, αν τα FFs από τα οποία
αποτελείται, αντικατασταθούν από όµοια FFs διαφορετικού όµως τύπου
πυροδότησης. (Θυµηθείτε ότι κατά τη σχεδίαση των σύγχρονων ακολουθιακών
κυκλωµάτων του Κεφαλαίου 2 δεν λάβαµε υπόψη µας στους πίνακες καταστάσεων
τον τύπο πυροδότησης των FFs).

13
• Για να πάρουµε αφαιρετικό απαριθµητή, θα πρέπει να επιλέξουµε τις εξόδους Q΄ ή
να τροποποιήσουµε τις εισόδους των FFs, αλλά όχι τις εισόδους του ρολογιού,
αφού η αλλαγή της πυροδότησης δεν επηρεάζει τη λειτουργία του σύγχρονου
ακολουθιακού κυκλώµατος.
• Εφόσον όλα τα FFs πυροδοτούνται από το ίδιο ρολόι, δεν υπάρχουν προβλήµατα
καθυστέρησης διάδοσης των παλµών πυροδότησης, όπως αυτά που συναντήσαµε
στους ασύγχρονους απαριθµητές. Έτσι, ανεξάρτητα από το πλήθος των FFs, η
µέγιστη συχνότητα λειτουργίας ενός τέτοιου κυκλώµατος καθορίζεται από την
καθυστέρηση διάδοσης ενός FF. Για µια τυπική καθυστέρηση των 10ns, ένας
τέτοιος απαριθµητής, από οσαδήποτε FFs και αν αποτελείται, θα µπορεί να
λειτουργεί µε ρολόι µεγίστης συχνότητας 1/10ns=100MHz.

3.2.2. ΣΥΓΧΡΟΝΟΙ ΜΗ-∆ΥΑ∆ΙΚΟΙ ΑΠΑΡΙΘΜΗΤΕΣ

Μη-δυαδικοί απαριθµητές είναι εκείνοι που απαριθµούν πλήθος καταστάσεων Ν, το


οποίο δεν είναι δύναµη του 2, δηλαδή Ν≠2n. Για τη σχεδίαση τέτοιων απαριθµητών
χρησιµοποιούµε συνήθως τις γενικές τεχνικές σχεδίασης σύγχρονων ακολουθιακών
κυκλωµάτων, που γνωρίσαµε στο προηγούµενο κεφάλαιο (ενότητα 2.2). Χαρακτηριστική
περίπτωση µη-δυαδικού απαριθµητή είναι εκείνη του δεκαδικού απαριθµητή (mod-10), ο
οποίος δείχνεται στο Σχήµα 2.22. Κατά τη σχεδίαση σύγχρονων απαριθµητών
αποφεύγουµε να χρησιµοποιούµε τις άµεσες εισόδους CLEAR και PRESET των FFs.
Αυτό το κάνουµε, για να µην διαταράξουµε τον συγχρονισµό του κυκλώµατος και να µην
υποβιβάσουµε την ταχύτητα λειτουργίας αυτού. Εκτός αυτού, σε πολλές περιπτώσεις οι
άµεσες είσοδοι των FFs δεν είναι διαθέσιµες.

∆ραστηριότητα 5 / Κεφάλαιο 3

Με FFs τύπου JK αρνητικής ακµής πυροδότησης σχεδιάστε το κύκλωµα και τις


κυµατοµορφές εξόδου ενός σύγχρονου προσθετικού απαριθµητή µε κύκλο απαρίθµησης
3 (mod-3).

14
Άσκηση Αυτοαξιολόγησης 5 / Κεφάλαιο 3

Με FFs τύπου JK αρνητικής ακµής πυροδότησης να σχεδιαστεί το κύκλωµα και οι


κυµατοµορφές εξόδου ενός σύγχρονου προσθετικού απαριθµητή µε κύκλο απαρίθµησης
5 (mod-5).

Άσκηση Αυτοαξιολόγησης 6 / Κεφάλαιο 3

Σχεδιάστε σύγχρονο δεκαδικό απαριθµητή µε FFs τύπου Τ αρνητικής ακµής


πυροδότησης εκµεταλλευόµενοι την ύπαρξη των εισόδων άµεσης εκκαθάρισης των FFs
και συγκρίνετε αυτόν µε τον αντίστοιχο ασύγχρονο απαριθµητή.

Εναλλακτική σχεδίαση σύγχρονων µη-δυαδικών απαριθµητών

Η σχεδίαση σύγχρονων µη-δυαδικών απαριθµητών µε βάση τα βήµατα σχεδίασης της


ενότητας 2.2. είναι η πλέον ενδεδειγµένη µέθοδος. Είναι σίγουρο ότι µ' αυτή θα
οδηγηθούµε στο βέλτιστο κύκλωµα από άποψη αριθµού πυλών. Η µέθοδος αυτή, όµως,
παρουσιάζει κάποια δυσκολία στην εφαρµογή της, όταν καλούµαστε να σχεδιάσουµε
απαριθµητές µεγάλου κύκλου απαρίθµησης. Σκεφτείτε, δηλαδή, να θέλουµε να
σχεδιάσουµε έναν σύγχρονο προσθετικό απαριθµητή mod-60, για να µετατρέπουµε τα
δευτερόλεπτα σε λεπτά της ώρας. Σε µια τέτοια περίπτωση θα πρέπει να εµπλακούµε στη
διαδικασία απλοποίησης συναρτήσεων µε χάρτες Karnaugh των 6 µεταβλητών, πράγµα
εξαιρετικά δύσκολο. Σε περιπτώσεις σαν κι αυτές χρησιµοποιούµε µια άλλη µέθοδο
σχεδίασης, η οποία περιγράφεται στη συνέχεια. ∆ιευκρινίζεται ότι η µέθοδος αυτή
χρησιµοποιείται στις περιπτώσεις που θέλουµε να σχεδιάσουµε σύγχρονους µη-
δυαδικούς απαριθµητές κανονικής όµως απαρίθµησης, δηλαδή απαριθµητές που είναι
προσθετικοί ή αφαιρετικοί διατρέχοντας διαδοχικούς ακεραίους. Για παράδειγµα, ένας
απαριθµητής που διατρέχει τις καταστάσεις 0-1-2-3-4-5-6-7-8-9 είναι ένας δεκαδικός
απαριθµητής κανονικής απαρίθµησης, ενώ εκείνος ο οποίος διατρέχει τις ίδιες
καταστάσεις µε τη σειρά 0-1-3-2-6-7-5-4-8-9 είναι επίσης δεκαδικός απαριθµητής µη-
κανονικής απαρίθµησης. Τα βήµατα της εναλλακτικής σχεδίασης µε FFs τύπου JK ενός
σύγχρονου µη-δυαδικού απαριθµητή mod-N είναι τα ακόλουθα:
Βήµα 1. Σχεδιάζουµε τον αντίστοιχο σύγχρονο δυαδικό απαριθµητή, ο οποίος
αποτελείται από n FFs, όπου 2n-1<Ν<2n.

15
Βήµα 2. Με τη βοήθεια µιας πύλης NAND αποκωδικοποιούµε την κατάσταση Ν-1.
Έστω G η έξοδος της πύλης NAND.
Βήµα 3. Εντοπίζουµε τα FFs, τα οποία στην κατάσταση Ν-1 βρίσκονται στο 0 και
στην κατάσταση Ν µεταβαίνουν στο 1. Εµποδίζουµε τη µετάβαση αυτή,
τροφοδοτώντας την έξοδο G στην πύλη AND, που ελέγχει την είσοδο του
αντίστοιχου FF (Βλ. Σχήµα 3.7α).
Βήµα 4. Εντοπίζουµε τα FFs, τα οποία στην κατάσταση Ν-1 βρίσκονται στο 1 και
στην κατάσταση Ν παραµένουν στο 1. Προκαλούµε την εκκαθάριση αυτών,
τροφοδοτώντας την έξοδο G΄ µέσω µιας πύλης OR στην είσοδο Κ του
αντίστοιχου FF (Βλ. Σχήµα 3.7β).
Σηµειώνεται ότι οι ενέργειες για την εµπόδιση µετάβασης ενός FF από το 0 στο 1 και
την εκκαθάριση αυτού, όταν αυτό τείνει να παραµείνει στην κατάσταση 1 µε την έλευση
του ενεργού ωρολογιακού παλµού, υπαγορεύονται από τους πίνακες διέγερσης των FFs
του Σχήµατος 2.11. Για να γίνει κατανοητή η διαδικασία εναλλακτικής σχεδίασης ενός
σύγχρονου απαριθµητή, θα προχωρήσουµε άµεσα σε ένα σχετικό παράδειγµα.

Ti Ji Qi T i −1 Ji Qi
Qi −−11 • Q i −1 •

G Κi
Κi G'

(α) (β)

Σχήµα 3.7. Παρεµβάσεις στο κύκλωµα ενός σύγχρονου δυαδικού απαριθµητή (α) για την εµπόδιση
µετάβασης ενός FF από το 0 στο 1 και (β) για την εκκαθάριση ενός FF που παραµένει στο 1.

Παράδειγµα 2 / Κεφάλαιο 3

Να σχεδιαστεί σύγχρονος προσθετικός απαριθµητής µε κύκλο απαρίθµησης 20 (mod-


20), χρησιµοποιώντας FFs τύπου JK αρνητικής ακµής πυροδότησης.

Για τη σχεδίαση του απαριθµητή αυτού ακολουθούµε τα βήµατα της εναλλακτικής


µεθόδου.
Βήµα 1. Σχεδιάζουµε τον αντίστοιχο δυαδικό προσθετικό απαριθµητή mod-32 (Σχήµα
3.8α), ο οποίος αποτελείται από 5 FFs, αφού 24<20<25. Στο Σχήµα 3.8α δεν
δείχνουµε τις εισόδους CLK των FFs, οι οποίες τροφοδοτούνται µε τους

16
ίδιους ωρολογιακούς παλµούς, αφού το κύκλωµα είναι σύγχρονο. Ας
σηµειώσουµε, επίσης, ότι Q0 είναι το LSB και Q4 το MSB του απαριθµητή.
Βήµα 2. Γράφουµε τους αριθµούς N-1=19 και N=20 σε δυαδική µορφή, όπως φαίνεται
στο Σχήµα 3.8β. Αποκωδικοποιούµε την κατάσταση Ν-1 µε τη βοήθεια µιας
πύλης NAND (Σχήµα 3.8γ).
Βήµα 3. Από το Σχήµα 3.8 παρατηρούµε ότι τα FF0 και FF1 µε την έλευση του 21ου
ωρολογιακού παλµού µεταβαίνουν από το 1 στο 0, πράγµα που είναι
επιθυµητό. Επίσης το FF3 βρισκόταν στο 0 και παραµένει στο 0, πράγµα που
επίσης το θέλουµε, αφού µετά τον αριθµό 19 θέλουµε ο απαριθµητής να
µεταβεί στο 0 και όχι στο 20. Άρα, εκεί που θα πρέπει να παρέµβουµε είναι
στα FF2 και FF4. Το FF2 µεταβαίνει από το 0 στο 1 και πρέπει να το
εµποδίσουµε, ενώ το FF4 παραµένει στο 1 και πρέπει να το εκκαθαρίσουµε.
Το FF2 το εµποδίζουµε σύµφωνα µε τον τρόπο που δείχνεται στο Σχήµα
3.7α, δηλαδή τροφοδοτώντας το G στην είσοδο της πύλης G1. Στην πράξη
αυτό γίνεται µε αντικατάσταση της πύλης G1, η οποία είναι δύο εισόδων, από
µια άλλη πύλη AND τριών εισόδων.
Βήµα 4. Προκαλούµε την εκκαθάριση του FF4 µε τον τρόπο που δείχνεται στο Σχήµα
3.7β, δηλαδή τροφοδοτώντας το G΄ σε µια OR, η έξοδος της οποίας συνδέεται στην
είσοδο Κ του FF. Η άλλη είσοδος της πύλης OR τροφοδοτείται από την έξοδο της G3.
Το τελικό κύκλωµα του mod-20 απαριθµητή, το οποίο προέκυψε µετά τις παρεµβάσεις
που κάναµε στον mod-32 απαριθµητή, δείχνεται στο Σχήµα 3.8δ. Η διαδικασία που µόλις
εφαρµόσαµε είναι γενική και πιθανόν να µην οδηγεί στο βέλτιστο κύκλωµα από άποψη
πλήθους πυλών. Γι’ αυτό πολλές φορές µπορεί να χρειαστεί να επανεξετάσουµε το
κύκλωµα που σχεδιάσαµε και εκµεταλλευόµενοι κάποια χαρακτηριστικά του να το
βελτιώσουµε.

17
G1 • G2 •
1 G3
J0 Q0 J1 Q1 J2 Q2 J3 Q3 J4 Q4
• • • • •
FF0 FF1 FF2 FF3 FF4

K0 K1 K2 K3 K4

(α)

Q4 Q3 Q2 Q1 Q0 Q0
Q1 G
Ν-1=19 → 1 0 0 1 1 Q4
Ν=20 → 1 0 1 0 0
(γ)
(β)

G
1
G1 • G2 • G3
J0 Q0 J1 Q1 J2 Q2 J3 Q3 J4 Q4
• • • • •
FF0 FF1 FF2 FF3 FF4

K0 K1 K2 K3 K4

G
(δ)

Σχήµα 3.8 Στάδια σχεδίασης ενός απαριθµητή mod-20: (α) κύκλωµα απαριθµητή mod-32, (β) οι
αριθµοί 19 και 20 στο δυαδικό, (γ) αποκωδικοποίηση του αριθµού 19, (δ) κύκλωµα
απαριθµητή mod-20

Άσκηση Αυτοαξιολόγησης 7 / Κεφάλαιο 3


Σχεδιάστε σύγχρονο προσθετικό δεκαδικό απαριθµητή, χρησιµοποιώντας FFs τύπου
JK θετικής ακµής πυροδότησης.

∆ραστηριότητα 6 / Κεφάλαιο 3
Προτείνετε σύγχρονο απαριθµητή µε κύκλο απαρίθµησης 60. Χρησιµοποιείστε FFs
τύπου JK αρνητικής ακµής πυροδότησης για τη σχεδίασή σας.

Σηµείωση
Μια άλλη κατηγορία σύγχρονων µη-δυαδικών απαριθµητών µη-κανονικής
απαρίθµησης, οι οποίοι χρησιµοποιούνται για τη δηµιουργία σηµάτων χρονισµού, είναι
οι λεγόµενοι κυκλικοί απαριθµητές (ring counters). Αυτοί προκύπτουν εύκολα από τους
καταχωρητές ολίσθησης (shift registers) και γι' αυτό εξετάζονται στο επόµενο κεφάλαιο.

18
Σύνοψη Ενότητας

Στην ενότητα αυτή µελετήσαµε τους σύγχρονους απαριθµητές. Είδαµε ότι η σχεδίαση
και ανάλυση δυαδικών και µη-δυαδικών σύγχρονων απαριθµητών γίνεται µε τη βοήθεια
της αντίστοιχης µεθοδολογίας που αναπτύξαµε στο Κεφάλαιο 2. Για την περίπτωση των
µη-δυαδικών απαριθµητών κανονικής απαρίθµησης, περιγράψαµε µία εναλλακτική
µέθοδο σχεδίασης, η οποία εύκολα εφαρµόζεται για οποιαδήποτε τιµή του Ν, όπου Ν ο
κύκλος απαρίθµησης. ∆ύο σπουδαίες διαπιστώσεις που έγιναν είναι οι εξής: (α) ο τύπος
πυροδότησης των FFs δεν επηρεάζει τον τρόπο λειτουργίας ενός σύγχρονου απαριθµητή
και (β) η καθυστέρηση διάδοσης σ' έναν σύγχρονο απαριθµητή είναι η ίδια και ίση µε την
καθυστέρηση ενός FF, ανεξάρτητα από το πλήθος των FFs του απαριθµητή.

ΕΝΟΤΗΤΑ 3.3. ∆ΙΑΙΡΕΤΕΣ ΣΥΧΝΟΤΗΤΑΣ ΠΑΛΜΩΝ

Μέχρι εδώ γνωρίσαµε τους απαριθµητές ως κυκλώµατα κατάλληλα για την


απαρίθµηση παλµών. Με άλλα λόγια, είδαµε ότι "διαβάζοντας" την κατάσταση QnQn-
1...Q1Q0 του ασύγχρονου ή σύγχρονου κυκλώµατος, µπορούµε να απαριθµούµε το
πλήθος των παλµών που "καταφθάνουν" στην είσοδο του ρολογιού. Τα ίδια αυτά
κυκλώµατα, όµως, έχουν και µια άλλη σηµαντική εφαρµογή στον υποβιβασµό της
συχνότητας των παλµών εισόδου. Πράγµατι, αν κοιτάξουµε τις κυµατοµορφές CLK και
Q2 του Σχήµατος 3.1β, παρατηρούµε ότι η περίοδος των παλµών Q2 είναι 8πλάσια της
περιόδου CLK, δηλαδή σε µια περίοδο του Q2 περιέχονται 8 περίοδοι του CLK. Κατά
συνέπεια η συχνότητα των παλµών του Q2 είναι 8 φορές µικρότερη της συχνότητας των
ωρολογιακών παλµών. Το ίδιο ακριβώς ισχύει και για την περίπτωση των κυµατοµορφών
του Σχήµατος 3.6β. Στην περίπτωση του δεκαδικού απαριθµητή του Σχήµατος 3.5
παρατηρούµε επίσης ότι η περίοδος του Q3 είναι δεκαπλάσια εκείνης των ωρολογιακών
παλµών. Γίνεται φανερό, λοιπόν, ότι µε έναν απαριθµητή mod-N πετυχαίνουµε τη
διαίρεση της συχνότητας των ωρολογιακών παλµών διά Ν.
Επανερχόµενοι στο κύκλωµα του ασύγχρονου δυαδικού απαριθµητή του Σχήµατος
3.1, παρατηρούµε ότι η έξοδος Q0 έχει περίοδο 2πλάσια εκείνης των ωρολογιακών
παλµών. ∆ηλαδή η συχνότητα των παλµών Q0 είναι υποδιπλάσια της συχνότητας των
ωρολογιακών παλµών. Άρα, το FF0 αποτελεί στην ουσία έναν απαριθµητή mod-2.

19
Εξετάζοντας την κυµατοµορφή Q1, καταλήγουµε στο συµπέρασµα ότι το FF1 αποτελεί
επίσης έναν απαριθµητή mod-2, ο οποίος υποδιπλασιάζει τη συχνότητα των παλµών της
εισόδου του CLK, δηλαδή τη συχνότητα των παλµών Q0. Το ίδιο συµβαίνει και για το
FF2, το οποίο υποδιπλασιάζει την συχνότητα των παλµών Q1. Καταλαβαίνουµε, λοιπόν,
πως συνδέοντας τρεις απαριθµητές mod-2 σε σειρά καταλήγουµε σε έναν απαριθµητή
mod-8, όπου 8=2x2x2. Γενικά, η σύνδεση σε σειρά (δηλαδή η έξοδος του ενός συνδέεται
ως είσοδος ωρολογιακών παλµών του εποµένου) κ απαριθµητών µε κύκλους
απαρίθµησης Ν1, Ν2, ..., Νκ οδηγεί σε έναν απαριθµητή µε κύκλο απαρίθµησης Ν, όπου
Ν=Ν1xΝ2xxxΝκ το γινόµενο των κύκλων απαρίθµησης του καθενός. Ας δούµε ένα σχετικά
απλό παράδειγµα, για να κατανοήσουµε τον τρόπο λειτουργίας αυτών των απαριθµητών.

Παράδειγµα 3 / Κεφάλαιο 3

Να σχεδιαστεί απαριθµητής mod-3, καθώς και οι κυµατοµορφές εξόδου του. Με τη


βοήθεια αυτού και µε τη χρήση ενός επιπλέον FF να σχεδιαστεί ένας απαριθµητής mod-
6. Για τη σχεδίαση να χρησιµοποιηθούν FFs τύπου JK αρνητικής ακµής πυροδότησης.

Η σχεδίαση του mod-3 απαριθµητή γίνεται, όπως στο Παράδειγµα 4 / Κεφάλαιο 2. Το


κύκλωµα και οι κυµατοµορφές εξόδου του φαίνονται στο Σχήµα 3.9.
Q0 Q1

J0 Q0 J1 Q1
CLκ mod 3
CLκ •
1 Κ0 Q0 ' 1 Κ1 Q 1'

(β)

(α)

CLκ

Q0

Q1
(Q1Q0 )10 0 1 2 0 1 2 0 1 2

(γ)
Σχήµα 3.9. Σύγχρονος απαριθµητής mod-3: (α) λογικό κύκλωµα, (β) σύµβολο, (γ) κυµατοµορφές
εξόδου.

Παρατηρούµε ότι αυτός διατρέχει διαδοχικά τις καταστάσεις 0-1-2-0-1-2-0-... και ότι
η έξοδος Q1 διαιρεί τη συχνότητα των ωρολογιακών παλµών δια 3. (Παρατηρείστε ότι 3
παλµοί του ρολογιού περιέχονται σ' ένα παλµό του Q1). Για να σχεδιάσουµε έναν

20
απαριθµητή mod-6, βασιζόµενοι στον απαριθµητή mod-3, που µόλις είδαµε, υπάρχουν
δύο δυνατότητες: είτε ως 3x2 είτε ως 2x3. Ας δούµε και τις δύο περιπτώσεις, όπως αυτές
δείχνονται στο Σχήµα 3.10. Από τα κυκλώµατα και τις κυµατοµορφές εξόδου
συµπεραίνουµε ότι:
• Και τα δύο κυκλώµατα διατρέχουν 6 διαφορετικές καταστάσεις, δηλαδή
απαριθµούν. Η διαφορά, όµως, είναι ότι το 3x2 κύκλωµα απαριθµεί µη κανονικά
(0-1-2-4-5-6-0...).
• Και τα δύο κυκλώµατα διαιρούν τη συχνότητα των ωρολογιακών παλµών δια 6. Η
έξοδος, όµως, του κυκλώµατος 3x2 είναι συµµετρική* , δηλαδή βρίσκεται για το
ίδιο χρονικό διάστηµα στην κατάσταση HIGH και στην κατάσταση LOW. Αυτό
δεν ισχύει για το κύκλωµα 2x3, για το οποίο η έξοδος βρίσκεται στην κατάσταση
HIGH για το 1/3 της περιόδου της (δηλαδή ο κύκλος εργασίας είναι περίπου 33%).
• Και τα δύο κυκλώµατα δεν είναι πλέον σύγχρονα, αφού δεν χρονίζονται από τον
ίδιο ωρολογιακό παλµό.

Q0 Q1 (έξοδος)
Q0 Q1


1 J Q
1 J Q mod -3
(έξοδος)
CLκ CLκ
mod -3 CLκ
1 Κ
1 Κ

(α) (γ)

CLκ CLκ

Q
Q0

Q0
Q1

Q1
Q
0 1 2 4 5 6 0 1 2 4 (Q1Q0Q)10 0 1 2 3 4 5 0 1 2 3
(QQ1Q0 )10 (δ)
(β)

Σχήµα 3.10. Απαριθµητής mod-6: (α,β) κύκλωµα και κυµατοµορφές εξόδου της 3x2 σχεδίασης, (γ,δ)
κύκλωµα και κυµατοµορφές εξόδου της 2x3 σχεδίασης.

*
Στην περίπτωση αυτή λέµε ότι η κυµατοµορφή έχει κύκλο εργασίας (duty cycle) 50%, δηλαδή
για το µισό χρονικό διάστηµα της περιόδου βρίσκεται στην κατάσταση HIGH και για το
υπόλοιπο µισό στην κατάσταση LOW.

21
Άσκηση Αυτοαξιολόγησης 8 / Κεφάλαιο 3

Με FFs τύπου JK αρνητικής ακµής πυροδότησης να σχεδιάσετε το κύκλωµα και τις


κυµατοµορφές εξόδου ενός διαιρέτη δια 10.

∆ραστηριότητα 7 / Κεφάλαιο 3

Προτείνετε δύο διαφορετικά κυκλώµατα, τα οποία να υποβιβάζουν µια συχνότητα


27MHz σε συχνότητα 1MHz.

∆ραστηριότητα 8 / Κεφάλαιο 3

Προτείνετε το λογικό κύκλωµα ενός ψηφιακού ρολογιού, το οποίο να λειτουργεί µε


ωρολογιακούς παλµούς συχνότητας 60 Hz και να δείχνει στην οθόνη του τις ώρες, τα
λεπτά και τα δευτερόλεπτα της ώρας.

Τα ψηφιακά ρολόγια, που χρησιµοποιούµε καθηµερινά, αποτελούν την πιο


ενδιαφέρουσα εφαρµογή των κυκλωµάτων διαίρεσης συχνότητας. Ας δούµε την
περίπτωση ενός τέτοιου ρολογιού, το οποίο τροφοδοτείται µε ωρολογιακούς παλµούς
συχνότητας 60Hz. ∆ιευκρινίζεται στο σηµείο αυτό ότι συνήθως η συχνότητα των
ωρολογιακών παλµών είναι πολύ µεγαλύτερη και προέρχεται από ένα κρυσταλλικό
ταλαντωτή (quartz-crystal oscillator). Όποια όµως και να είναι η συχνότητα αυτή, το
πρώτο στάδιο του κυκλώµατος είναι ο υποβιβασµός της στο 1Hz. ∆ηλαδή, για την
περίπτωση των 60Hz, απαιτείται η διαίρεση της συχνότητας των παλµών δια 60 (÷60).
Στη συνέχεια διαιρούµε και πάλι ÷60 για να ‘πάρουµε’ έναν ωρολογιακό παλµό ανά
λεπτό (1ppm). Τέλος, τη συχνότητα αυτή τη διαιρούµε και πάλι ÷60 για να ‘πάρουµε’
έναν ωρολογιακό παλµό ανά ώρα (1pph). Το όλο λογικό κύκλωµα του ψηφιακού
ρολογιού δείχνεται στο Σχήµα 3.11. Παρατηρούµε ότι τη διαίρεση των παλµών ÷60 την
πραγµατοποιούµε µε ένα δεκαδικό απαριθµητή ακολουθούµενο από έναν απαριθµητή
mod-6. Αυτό είναι αναµενόµενο, αφού θέλουµε να οδηγούµε τα κυκλώµατα επίδειξης, τα
οποία µας δείχνουν το χρόνο (την ώρα). Τα κυκλώµατα επίδειξης είναι συνήθως του
τύπου 7-τµηµάτων (7-segment displays) και οι έξοδοι των απαριθµητών οδηγούνται στις
εισόδους των κατάλληλων κυκλωµάτων αποκωδικοποίησης.

22
΄Ωρες Λεπτά ∆ευτερόλεπτα

∆εκάδες Μονάδες ∆εκάδες Μονάδες ∆εκάδες Μονάδες


0-1 0-9 0-5 0-9 0-5 0-9

• • • • •

÷ 2 ÷ 10 1pph ÷ 6 ÷ 10 1ppm ÷ 6 ÷ 10

1 Hz
(1pph)

60 Hz
÷ 60
Σηµείωση: Παλµοί ανά δευτερόλεπτο (pulses per second, pps)
Παλµοί ανά λεπτό (pulses per minute, ppm)
Παλµοί ανά ώρα (pulses per hour, pph)

Σχήµα 3.11. Λογικό κύκλωµα ψηφιακού ρολογιού


Είδαµε λοιπόν ότι, διασυνδέοντας σε σειρά απαριθµητές, παίρνουµε ένα νέο
απαριθµητή µε κύκλο απαρίθµησης ίσο µε το γινόµενο των επιµέρους κυκλωµάτων. Θα
αναρωτηθείτε, ίσως, γιατί θα έπρεπε να εξετάσουµε αυτά τα κυκλώµατα ως µια
ξεχωριστή ενότητα. Οι λόγοι είναι δύο:
(i) Επειδή µας ενδιέφερε να σχεδιάσουµε κύκλωµα διαίρεσης συχνότητας παλµών,
δηλαδή µας ενδιέφερε το τελικό αποτέλεσµα να είναι µια κυµατοµορφή
συµµετρική ή µη συµµετρική συχνότητας ίσης µε το 1/Ν της συχνότητας των
ωρολογιακών παλµών. ∆εν µας ενδιέφερε αν το κύκλωµα απαριθµεί κανονικά ή
όχι, δηλαδή δεν µας ενδιέφεραν οι ενδιάµεσες καταστάσεις του κυκλώµατος.
(ii) Επειδή τα κυκλώµατα που προκύπτουν είναι συνδυασµός ασύγχρονων και
σύγχρονων απαριθµητών.
Γνωρίζοντας πλέον όλες τις δυνατότητες και τις ιδιαιτερότητες των απαριθµητών,
είναι θέµα του µηχανικού που σχεδιάζει ένα ψηφιακό σύστηµα για το ποιο από τα
κυκλώµατα θα χρησιµοποιήσει. Για παράδειγµα, ένα διαιρέτης δια 27 θα µπορούσε να
υλοποιηθεί ως ένας σύγχρονος ή ασύγχρονος απαριθµητής mod-27 ή ως συνδυασµός
τριών mod-3 απαριθµητών (27=3x3x3). Στην πρώτη περίπτωση απαιτούνται 5 FFs
(24<27<25) και πρόσθετες πύλες, ενώ στη δεύτερη περίπτωση απαιτούνται µόνο 6 FFs.

Σύνοψη Ενότητας
Στην παρούσα ενότητα αντιµετωπίσαµε τους απαριθµητές ως κυκλώµατα κατάλληλα
για τον υποβιβασµό της συχνότητας παλµών. Είδαµε ότι το MSB της εξόδου ενός
απαριθµητή mod-N αποτελεί ουσιαστικά ένα παλµό συχνότητας ίσης µε το 1/Ν της
συχνότητας των ωρολογιακών παλµών του απαριθµητή. Είδαµε, επίσης, ότι η σύνδεση
απαριθµητών σε σειρά ισοδυναµεί µε ένα νέο απαριθµητή µε κύκλο απαρίθµησης ίσο µε
το γινόµενο των κύκλων απαρίθµησης των επιµέρους απαριθµητών.

23
ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ

Στο κεφάλαιο αυτό µελετήσαµε τα διαφορετικά κυκλώµατα απαρίθµησης παλµών.


Είδαµε ότι υπάρχουν δύο µεγάλες κατηγορίες κυκλωµάτων, τα ασύγχρονα και τα
σύγχρονα. Τα ασύγχρονα κυκλώµατα απαιτούν συνήθως µικρότερο αριθµό πυλών απ' ότι
τα αντίστοιχα σύγχρονα, παρουσιάζουν όµως προβλήµατα, λόγω της καθυστέρησης
διάδοσης των παλµών πυροδότησης από FF σε FF. Επίσης, η σχεδίαση απαριθµητών µη-
κανονικής απαρίθµησης δεν είναι εύκολη. Οι σύγχρονοι απαριθµητές σχεδιάζονται πολύ
πιο εύκολα και λειτουργούν αξιόπιστα σε υψηλότερες συχνότητες, αφού η καθυστέρηση
διάδοσης των παλµών είναι ανεξάρτητη του πλήθους των FFs του απαριθµητή.
Για τους ασύγχρονους απαριθµητές ο τύπος πυροδότησης των FFs παίζει καθοριστικό
ρόλο στον τρόπο απαρίθµησης (προς τα πάνω ή προς τα κάτω). Αυτό δεν ισχύει για την
περίπτωση των σύγχρονων απαριθµητών.
Τέλος, είδαµε ότι µπορούµε να σχεδιάσουµε απαριθµητές µεγάλου κύκλου
απαρίθµησης Ν συνδέοντας σε σειρά κ απαριθµητές µικρότερου κύκλου απαρίθµησης Νi,
κ
όπου Ni<N και N = ∏ N i . Με τον τρόπο αυτό κατασκευάζουµε συνήθως κυκλώµατα
i =1

υποβιβασµού συχνότητας κατά Ν φορές.

24
ΒΙΒΛΙΟΓΡΑΦΙΑ

ΕΛΛΗΝΟΓΛΩΣΣΗ
Mano Morris M., Ψηφιακή Σχεδίαση, Εκδόσεις Παπασωτηρίου, 1992.

Millman J., Χαλκιάς Χ., Ολοκληρωµένη Ηλεκτρονική, Τόµος Β, Εκδόσεις ΤΕΕ, 1972.

ΞΕΝΟΓΛΩΣΣΗ
Daniels J. D., Digital Design from Zero to One, J. Wiley & Sons, 1996.

Greenfield J. D., Practical Digital Design Using ICs, J. Wiley & Sons, 1977.

Malvino A. P., Leach D. P., Digital Principles and Applications, McGraw-Hill, 1986.

Tocci R. J., Widmer N. S., Digital Systems: Principles and Applications, Prentice Hall,
1998.

Ο∆ΗΓΟΣ ΠΕΡΑΙΤΕΡΩ ΜΕΛΕΤΗΣ

Greenfield J. D., Practical Digital Design Using ICs, J. Wiley & Sons, 1977.

Το Κεφάλαιο 7 του βιβλίου είναι αφιερωµένο στους απαριθµητές. Περιέχει πολλά


παραδείγµατα και ασκήσεις.

Malvino A. P., Leach D. P., Digital Principles and Applications, McGraw-Hill, 1986.

Περιγραφές πολλών απαριθµητών, που κυκλοφορούν στο ελεύθερο εµπόριο, θα βρείτε


στο Κεφάλαιο 11 του βιβλίου αυτού.

Mano Morris M., Ψηφιακή Σχεδίαση, Εκδόσεις Παπασωτηρίου, 1992.

Στο Κεφάλαιο 7 του βιβλίου µπορείτε να βρείτε µια περιγραφή ενός δυαδικού
απαριθµητή µε δυνατότητα παράλληλης φόρτωσης δεδοµένων. Τέτοια κυκλώµατα
απαριθµητών υπάρχουν σε ολοκληρωµένη µορφή στο ελεύθερο εµπόριο.

25
ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ

Απάντηση Άσκησης Αυτοαξιολόγησης 1 / Κεφάλαιο 3

Το ζητούµενο κύκλωµα και οι αντίστοιχες κυµατοµορφές δείχνονται στο Σχήµα 3.12.

Vcc • •

T0 Q0 T1 Q1 T2 Q2

CLK FF0 FF1 FF2

(α)

CLK

Q0

Q1

Q2
(Q2 Q1Q0 )10 0 7 6 5 4 3 2 1 0 7

(β)
Σχήµα 3.12. Ο απαριθµητής του Σχήµατος 3.1. µε FF τύπου Τ θετικής ακµής: (α) λογικό κύκλωµα, (β)
κυµατοµορφές εξόδου.

Παρατηρούµε ότι πρόκειται για έναν αφαιρετικό δυαδικό απαριθµητή! ∆ηλαδή,


αλλάζοντας τον τύπο πυροδότησης των FFs, πήραµε έναν αφαιρετικό απαριθµητή, αντί
του προσθετικού που είχαµε. Παρόµοια αποτελέσµατα θα έχουµε και στην περίπτωση
που αλλάξουµε τα FFs του Σχήµατος 3.2α από αρνητικής σε θετικής ακµής πυροδότησης.
Εξετάστε την περίπτωση µε ένα σχήµα, όπως το παραπάνω.

Απάντηση Άσκησης Αυτοαξιολόγησης 2 / Κεφάλαιο 3

Το κύκλωµα ενός mod-12 είναι ίδιο µε εκείνο του Σχήµατος 3.5α, µε τη διαφορά ότι
στην πύλη NAND εφαρµόζονται ως είσοδοι τα Q3 και Q2 και όχι τα Q3 και Q1, αφού
(12)10=(1100)2 και Q3 είναι το MSB.

26
Απάντηση Άσκησης Αυτοαξιολόγησης 3 / Κεφάλαιο 3

Ο απαριθµητής πρέπει να διατρέχει µε τη σειρά τους αριθµούς 6, 7, 8, 9, 10, 6, 7, 8, 9,


10, 6, 7, ... Παρόλο που είναι µόνο 5 οι διαφορετικές καταστάσεις, που πρέπει να
διατρέχει, οι καταστάσεις αυτές θα πρέπει να σχηµατίζουν τους αριθµούς 6 µέχρι και 10.
Αυτό σηµαίνει ότι για την υλοποίηση του κυκλώµατος απαιτούνται 4 FFs.
Ο απαριθµητής, που θα σχεδιάσουµε, θα πρέπει να είναι (α) ασύγχρονος προσθετικός,
(β) να µετρά µέχρι και το 10, δηλαδή µόλις εµφανίζεται το 11 αυτός να ξεκινά και πάλι
από την αρχή, και (γ) να µην αρχίζει από το 0, αλλά από το 6, δηλαδή το 0110 στο
δυαδικό. Λαµβάνοντας υπόψη µας τα τρία αυτά στοιχεία, σχεδιάζουµε το κύκλωµα του
Σχήµατος 3.13. Η πύλη NAND αποκωδικοποιεί τον αριθµό (11)10, δηλαδή G=(Q3Q1Q0)΄.
Μόλις ο αριθµός αυτός παρουσιαστεί, η έξοδος G γίνεται 0 αναγκάζοντας το πρώτο και
τελευταίο FF να µηδενιστούν (CLR=0), και το δεύτερο και τρίτο FF να πάρουν την τιµή
1, ενεργοποιώντας την είσοδο PRESET (PR=0). Έτσι δηµιουργείται η λέξη
Q3Q2Q1Q0=0110, που είναι ο αριθµός 6 του δεκαδικού συστήµατος. Με κάθε επόµενο
ωρολογιακό παλµό το κύκλωµα συνεχίζει την απαρίθµηση διατρέχοντας τους αριθµούς 7,
8, 9, 10. Με τη στιγµιαία εµφάνιση του 11 πηγαίνει και πάλι στο 6.

PR PR PR PR
1 T0 Q0 • 1 T1 Q1 • 1 T2 Q2 1 T3 Q3
CLK

CLR CLR
G
CLR CLR

1 1
• •

Σχήµα 3.13. Ασύγχρονος απαριθµητής από το 6 µέχρι και το 10.

Απάντηση Άσκησης Αυτοαξιολόγησης 4 / Κεφάλαιο 3

Το κύκλωµα είναι ακριβώς ίδιο µε εκείνο του Σχήµατος 3.6α, όπου φυσικά στη θέση
των αρνητικής ακµής πυροδότησης FFs βάζουµε τα θετικής ακµής πυροδότησης. Αυτό
ήταν αναµενόµενο, αφού, όπως είδαµε στο προηγούµενο κεφάλαιο, κατά τη σχεδίαση
των σύγχρονων ακολουθιακών κυκλωµάτων δεν χρησιµοποιήσαµε τους ωρολογιακούς

27
παλµούς, αλλά µόνο την παρούσα κατάσταση, την επόµενη κατάσταση και τις εισόδους
του κάθε FF.
Ο απλούστερος τρόπος, για να έχουµε το κύκλωµα που απαριθµεί προς τα κάτω, είναι
να πάρουµε ως εξόδους τα Q΄ των FFs.

Απάντηση Άσκησης Αυτοαξιολόγησης 5 / Κεφάλαιο 3

Για έναν απαριθµητή mod-5 απαιτούνται 3 FFs (22<5<23). Ακολουθώντας τα βήµατα


σχεδίασης σύγχρονων ακολουθιακών κυκλωµάτων της ενότητας 2.2 καταλήγουµε στο
κύκλωµα του Σχήµατος 3.14α και στις αντίστοιχες κυµατοµορφές του Σχήµατος 3.14β.

J0 Q0 J1 Q1 J2 Q2

CLκ •
1 Κ0 Q0' Κ1 Q 1' 1 Κ2 Q 2'


(α)

CLκ

Q0

Q1

Q2
0 1 2 3 4 0 1
( Q 2 Q 1 Q 0 ) 10
(β)
Σχήµα 3.14. Σύγχρονος απαριθµητής mod-5: (α) λογικό κύκλωµα, (β) κυµατοµορφές εξόδου

Απάντηση Άσκησης Αυτοαξιολόγησης 6 / Κεφάλαιο 3

Θέλουµε να σχεδιάσουµε ένα σύγχρονο προσθετικό απαριθµητή mod-10. Άρα


χρειαζόµαστε 4 FFs, τα οποία και συνδέουµε έτσι, ώστε αυτά να µετρούν από το 0 στο
15. Μόλις, όµως, φτάσουν στον αριθµό 9, οπότε και θα έχουν απαριθµήσει 10
ωρολογιακούς παλµούς, µηδενίζουµε τα FFs και η απαρίθµηση ξεκινά από την αρχή (Βλ.
Σχήµα 3.15). Η λογική εκκαθάριση των FFs είναι ακριβώς ίδια µε εκείνη του ασύγχρονου
δεκαδικού απαριθµητή. Κάνουµε, δηλαδή, ασύγχρονη εκκαθάριση, ενεργοποιώντας τις
εισόδους CLEAR , όταν παρουσιαστεί ο αριθµός (10)10 στις εξόδους των FFs. Αυτό

28
γίνεται και πάλι µε τη βοήθεια µιας πύλης NAND, η έξοδος G της οποίας ισούται µε
G=(Q1Q3)΄.

• Q1 Q3

T0 Q0 T1 Q1 T2 Q2 T3 Q3

CLK CLK CLK CLK

CLR CLR CLR CLR


G

• • •
Σχήµα 3.15. Σύγχρονος δεκαδικός απαριθµητής

Απάντηση Άσκησης Αυτοαξιολόγησης 7 / Κεφάλαιο 3

Θέλουµε να σχεδιάσουµε ένα σύγχρονο προσθετικό απαριθµητή mod-10, δηλαδή


Ν=10. Ακολουθούµε τα τέσσερα βήµατα της εναλλακτικής σχεδίασης και έχουµε:
Βήµα 1. Σχεδιάζουµε τον αντίστοιχο σύγχρονο δυαδικό απαριθµητή mod-16 (Σχήµα
3.16α). Παρατηρείστε ότι έχουµε προσθέσει και την πύλη G0, αν και δεν
είναι απαραίτητη, αφού στην προκειµένη περίπτωση η έξοδός της ισούται µε
1⋅Q0=Q0. Σηµειώστε, επίσης, ότι για να είναι το σχήµα ευανάγνωστο, δεν
έχουµε συµπεριλάβει σ’ αυτό τους ωρολογιακούς παλµούς των FFs.
Βήµα 2. Γράφουµε τους αριθµούς Ν-1=9 και Ν=10 σε δυαδική µορφή (Σχήµα 3.16β),
ώστε να µπορέσουµε να ελέγξουµε ποια FFs δεν µεταβαίνουν από µόνα τους
στην κατάσταση 0 µετά το δέκατο παλµό. Αποκωδικοποιούµε την κατάσταση
9 µε τη βοήθεια µιας πύλης NAND (Σχήµα 3.16γ).
Βήµα 3. Εµποδίζουµε το FF1 να µεταβεί από το 0 στο 1 µε την έλευση του 11ου
παλµού. Αυτό το πετυχαίνουµε οδηγώντας το σήµα G στην είσοδο της πύλης
G0. Με την εµφάνιση του αριθµού 9 η έξοδος G της πύλης NAND γίνεται 0,
οπότε µε J1=K1=0 το FF1 παραµένει στην κατάσταση που βρισκόταν, δηλαδή
στο λογικό 0.
Βήµα 4. Προκαλούµε την εκκαθάριση του FF3 οδηγώντας το σήµα G΄ µέσω µιας
πύλης OR στην είσοδο Κ3 αυτού. Έτσι, µε την εµφάνιση του αριθµού 9 και
µόνον τότε, έχουµε G΄=1 και άρα Κ3=1, οπότε οποιαδήποτε και αν είναι η
τιµή του J3, το FF3 θα µεταβεί στο λογικό 0. ∆ηλαδή, αν J3=0 και αφού Κ3=1,
τότε αυτό θα εκκαθαριστεί (reset), ενώ αν J3=1 και αφού Κ3=1, τότε αυτό θα

29
µεταπέσει (toggle) στη συµπληρωµατική της κατάστασης στην οποία
βρισκόταν, άρα στο 0, αφού ήδη ήταν στο λογικό 1.
Το ζητούµενο κύκλωµα του σύγχρονου δεκαδικού απαριθµητή δίνεται στο Σχήµα
3.16δ.
G0 • G1 • G2
J0 Q0 J1 Q1 J2 Q2 J3 Q3
1 • • • •
FF0 FF1 FF2 FF3

K0 K1 K2 K3

(α)

Q3 Q2 Q1 Q0
Ν-1=9 → 1 0 0 1 Q0
Q3 G
Ν=10 → 1 0 1 0
Εκκαθάριση Εµπόδιση (γ)

(β)

1 G
G0 • G1 G2
J0 Q0 J1 Q1 J2 Q2 J3 Q3
• • • •
FF0 FF1 FF2 FF3

K0 K1 K2 K3

G
(δ)

Σχήµα 3.16. Στάδια σχεδίασης ενός απαριθµητή mod-10: (α) κύκλωµα απαριθµητή mod-16, (β) οι
αριθµοί 9 και 10 στο δυαδικό, (γ) αποκωδικοποίηση του αριθµού 9, (δ) κύκλωµα απαριθµητή
mod-10

Απάντηση Άσκησης Αυτοαξιολόγησης 8 / Κεφάλαιο 3

Θέλουµε να σχεδιάσουµε ένα κύκλωµα, το οποίο να υποδεκαπλασιάζει τη συχνότητα


των ωρολογιακών παλµών εισόδου. Έχουµε µάθει τέσσερις διαφορετικές µεθόδους
σχεδίασης ενός τέτοιου κυκλώµατος:
• ως σύγχρονος δεκαδικός απαριθµητής (βλ. Σχήµα2.22 ή Σχήµα 3.14)
• ως ασύγχρονος δεκαδικός απαριθµητής (βλ. Σχήµα 3.5)
• ως ασύγχρονος απαριθµητής 5x2 (βλ. Σχήµα 3.17α)
• ως ασύγχρονος απαριθµητής 2x5 (βλ. Σχήµα 3.17γ)
Ο απαριθµητής mod-5 δείχνεται στο Σχήµα 3.14 και γι’ αυτό χρησιµοποιούµε εδώ
µόνο το σύµβολό του. Από τις κυµατοµορφές του Σχήµατος 3.17 εξάγουµε τα ίδια
συµπεράσµατα µε εκείνα του Παραδείγµατος 3 / Κεφάλαιο3.

30
Q0 Q1 Q2

• CLK

1 J Q Q0

CLK mod-5
1 Q1
Κ

Q2
(α)
(β)
Q
(QQ2 Q1Q0 )10 0 1 2 3 4 8 9 10 11 12 0

Q 0 Q1 Q 2
CLK

Q
J Q
CLK mod-5 Q0
(δ)
Κ
Q1

(γ)
Q2
(Q2 Q1Q0 Q )10 0 1 2 3 4 5 6 7 8 9

Σχήµα 3.17. Κύκλωµα και κυµατοµορφές εξόδου διαιρέτη συχνότητας δια 10: (α,β) 5x2 σχεδίαση,
(γ,δ) 2x5 σχεδίαση

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

asynchronous ασύγχρονος
count-down απαρίθµηση προς τα κάτω
counter απαριθµητής, µετρητής, κύκλωµα απαρίθµησης παλµών
count-up απαρίθµηση προς τα πάνω
glitch αιχµή, παλµός πολύ µικρού εύρους
LSB, Least Significant Bit λιγότερο σηµαντικό ψηφίο
modulo / modulus / mod υπόλοιπο, κύκλος απαρίθµησης
MSB, Most Significant Bit περισσότερο σηµαντικό ψηφίο
propagation delay καθυστέρηση διάδοσης
ring counter απαριθµητής δακτυλίου
ripple counter απαριθµητής κυµατώσεως
serial σειριακός
shift registers καταχωρητής ολίσθησης
synchronous σύγχρονος

31
ΚΕΦΑΛΑΙΟ 4 ΚΑΤΑΧΩΡΗΤΕΣ

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ............................................................................................................ 3

ΕΝΟΤΗΤΑ 4.1. ΣΕΙΡΙΑΚΟΙ ΚΑΙ ΠΑΡΑΛΛΗΛΟΙ ΚΑΤΑΧΩΡΗΤΕΣ .................................................. 4


4.1.1. ΚΑΤΑΧΩΡΗΤΕΣ ΣΕΙΡΙΑΚΗΣ-ΕΙΣΟ∆ΟΥ-ΣΕΙΡΙΑΚΗΣ-ΕΞΟ∆ΟΥ ................................................................... 5
4.1.2. ΚΑΤΑΧΩΡΗΤΕΣ ΣΕΙΡΙΑΚΗΣ-ΕΙΣΟ∆ΟΥ-ΠΑΡΑΛΛΗΛΗΣ-ΕΞΟ∆ΟΥ ............................................................ 10
4.1.3. ΚΑΤΑΧΩΡΗΤΕΣ ΠΑΡΑΛΛΗΛΗΣ-ΕΙΣΟ∆ΟΥ-ΠΑΡΑΛΛΗΛΗΣ-ΕΞΟ∆ΟΥ ...................................................... 11
4.1.4. ΚΑΤΑΧΩΡΗΤΕΣ ΠΑΡΑΛΛΗΛΗΣ-ΕΙΣΟ∆ΟΥ-ΣΕΙΡΙΑΚΗΣ-ΕΞΟ∆ΟΥ ............................................................ 13
ΕΝΟΤΗΤΑ 4.2. ΚΥΚΛΙΚΟΙ ΚΑΤΑΧΩΡΗΤΕΣ...................................................................................... 16
4.2.1. ΑΠΑΡΙΘΜΗΤΕΣ ∆ΑΚΤΥΛΙΟΥ .............................................................................................................. 17
4.2.2. ΑΠΑΡΙΘΜΗΤΕΣ JOHNSON .................................................................................................................. 18
ΒΙΒΛΙΟΓΡΑΦΙΑ ......................................................................................................................................... 23

ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ......................................................................... 24

ΑΠΟ∆ΟΣΗ ΑΓΓΛΙΚΩΝ ΟΡΩΝ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ............................................................................ 32

1
ΚΕΦΑΛΑΙΟ 4 ΚΑΤΑΧΩΡΗΤΕΣ

Σκοπός:

Σκοπός του παρόντος κεφαλαίου είναι η µελέτη των καταχωρητών. Πρόκειται για
σύγχρονα ακολουθιακά κυκλώµατα, τα οποία χρησιµοποιούνται κυρίως για την
προσωρινή αποθήκευση δυαδικής πληροφορίας, αλλά και για την εκτέλεση απλών
πράξεων, όπως πολλαπλασιασµού και διαίρεσης µε δυνάµεις του 2 ή και εύρεσης του
συµπληρώµατος αριθµού.

Προσδοκώµενα αποτελέσµατα:
Μετά τη µελέτη αυτού του κεφαλαίου θα είστε σε θέση να:
• σχεδιάζετε καταχωρητές µε δυνατότητα ολίσθησης προς τα αριστερά ή τα δεξιά
• κατανοείτε και σχεδιάζετε καταχωρητές µε δυνατότητα παράλληλης φόρτωσης και
ολίσθησης
• σχεδιάζετε κυκλώµατα χρονισµού, βασισµένα σε καταχωρητές ολίσθησης
• σχεδιάζετε καταχωρητές παράλληλης-εισόδου-σειριακής-εξόδου ή σειριακής-
εισόδου-παράλληλης-εξόδου
• σχεδιάζετε κυκλώµατα υποβιβασµού συχνότητας παλµών βασιζόµενα σε
καταχωρητές ολίσθησης.

Έννοιες κλειδιά:
• Καταχωρητές • Κυκλικοί καταχωρητές
• Καταχωρητές ολίσθησης • Σήµατα χρονισµού
• Παράλληλη - Σειριακή µετατροπή • Σειριακή - Παράλληλη µετατροπή

2
ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ

Στο Κεφάλαιο 2 γνωρίσαµε τα σύγχρονα ακολουθιακά κυκλώµατα και µελετήσαµε τη


µεθοδολογία ανάλυσης και σχεδίασης τέτοιων κυκλωµάτων. Στο Κεφάλαιο 3
ασχοληθήκαµε µε τους απαριθµητές, ασύγχρονους και σύγχρονους. Είδαµε ότι οι
σύγχρονοι απαριθµητές δεν είναι παρά σύγχρονα ακολουθιακά κυκλώµατα, τα οποία
σχεδιάζονται έτσι ώστε να βρίσκουν εφαρµογή στην απαρίθµηση παλµών ή στον
υποβιβασµό της συχνότητας αυτών. Στο παρόν κεφάλαιο θα γνωρίσουµε µια άλλη
κατηγορία σύγχρονων ακολουθιακών κυκλωµάτων, τους καταχωρητές. Τονίζουµε ότι
πρόκειται και πάλι για σύγχρονα ακολουθιακά κυκλώµατα, τα οποία βρίσκουν εφαρµογή
στην προσωρινή αποθήκευση δυαδικών αριθµών και στην εκτέλεση στοιχειωδών
πράξεων σ' αυτούς. Είναι ακριβώς αυτή η εφαρµογή τους, η οποία µας οδηγεί να
εξετάζουµε αυτά τα σύγχρονα ακολουθιακά κυκλώµατα ξεχωριστά στο παρόν κεφάλαιο.
Καταχωρητής είναι ένα σύνολο από FFs στα οποία µπορούµε να αποθηκεύσουµε
δυαδική πληροφορία. Ας θυµηθούµε ότι σε κάθε FF µπορεί να αποθηκευτεί 1 bit
πληροφορίας. Έτσι, σ' έναν καταχωρητή, ο οποίος αποτελείται από n FFs, µπορούµε να
αποθηκεύσουµε n bits πληροφορίας.
Η εισαγωγή (φόρτωση, εγγραφή, είσοδος) της δυαδικής πληροφορίας σ' έναν
καταχωρητή µπορεί να γίνει είτε σειριακά, δηλαδή 1 bit µε κάθε ωρολογιακό παλµό, είτε
παράλληλα, δηλαδή και τα n bits µε έναν ωρολογιακό παλµό. Το ίδιο ισχύει και για την
εξαγωγή (έξοδο, ανάγνωση) της πληροφορίας. Έτσι, διακρίνουµε 4 κατηγορίες
καταχωρητών, όπως δείχνονται στο Σχήµα 4.1: καταχωρητές σειριακής εισόδου -
σειριακής εξόδου, καταχωρητές σειριακής εισόδου - παράλληλης εξόδου, καταχωρητές
παράλληλης εισόδου - σειριακής εξόδου και καταχωρητές παράλληλης εισόδου -
παράλληλης εξόδου. Όλοι αυτοί οι τύποι των καταχωρητών διατίθενται σε
ολοκληρωµένη µορφή στο ελεύθερο εµπόριο.
Πριν αρχίσουµε την εξέταση καθενός από αυτούς τους τύπους καταχωρητών, θα ήταν
χρήσιµο να θυµίσουµε το αποτέλεσµα της ολίσθησης ενός δυαδικού αριθµού προς τα
αριστερά ή προς τα δεξιά. Ολίσθηση, λοιπόν, ενός δυαδικού αριθµού Ν προς τα αριστερά
κατά m θέσεις, συνεπάγεται τον πολλαπλασιασµό αυτού επί 2m, δηλαδή ο αριθµός που
προκύπτει είναι ο Νx2m. Εξυπακούεται, φυσικά, ότι µε καθεµία αριστερή ολίσθηση το
LSB του αριθµού "γεµίζει" µε το δυαδικό ψηφίο 0. Αντίστοιχα, ολίσθηση ενός δυαδικού
αριθµού Ν κατά m θέσεις δεξιά, συνεπάγεται τη διαίρεση του αριθµού µε το 2m, δηλαδή
ο αριθµός που προκύπτει είναι ο Νx2-m. Εξυπακούεται και πάλι ότι µε κάθε δεξιά

3
ολίσθηση το MSB του αριθµού "γεµίζει" µε το δυαδικό ψηφίο 0. Αυτού του είδους η
αριστερή ή δεξιά ολίσθηση ονοµάζεται και αριθµητική ολίσθηση (arithmetic shift), σε
αντιδιαστολή µε τη λογική ολίσθηση (logical shift) κατά την οποία τη θέση του ψηφίου
που "λείπει" την παίρνει το ψηφίο που "περισσεύει". Η λογική ολίσθηση ονοµάζεται και
κυκλική ολίσθηση (circular shift).
Στις ενότητες που ακολουθούν θα µελετήσουµε όλους τους τύπους καταχωρητών.
Συγκεκριµένα, στην ενότητα 4.1 ασχολούµαστε µε τους καταχωρητές σειριακής εισόδου
και συνεχίζουµε µε εκείνους παράλληλης εισόδου. Όλοι οι τύποι καταχωρητών, µε
εξαίρεση εκείνον της παράλληλης-εισόδου-παράλληλης-εξόδου, είναι καταχωρητές
ολίσθησης. Στην ενότητα 4.2 µελετούµε τους κυκλικούς καταχωρητές, οι οποίοι
βρίσκουν εφαρµογή ιδιαίτερα στη δηµιουργία σηµάτων χρονισµού.
Παράλληλη Έξοδος
∆εδοµένων
....
Σειριακή Σειριακή
Είσοδος
n bits Έξοδος
∆εδοµένων ∆εδοµένων n bits

(α)

(β)
Παράλληλη Έξοδος
∆εδοµένων
.... Σειριακή
n bits Έξοδος
∆εδοµένων
n bits

....
....
Παράλληλη Είσοδος
∆εδοµένων
Παράλληλη Είσοδος
∆εδοµένων

(γ) (δ)

Σχήµα 4.1. Τύποι καταχωρητών: (α) σειριακής-εισόδου-σειριακής-εξόδου, (β) σειριακής-εισόδου-


παράλληλης-εξόδου, (γ) παράλληλης-εισόδου-παράλληλης-εξόδου, (δ) παράλληλης-
εισόδου-σειριακής-εξόδου.

ΕΝΟΤΗΤΑ 4.1. ΣΕΙΡΙΑΚΟΙ ΚΑΙ ΠΑΡΑΛΛΗΛΟΙ ΚΑΤΑΧΩΡΗΤΕΣ

Στην ενότητα αυτή θα ασχοληθούµε σχολαστικά µε τους τέσσερεις τύπους


καταχωρητών που αναφέραµε προηγουµένως, δηλαδή τους καταχωρητές σειριακής
εισόδου - σειριακής εξόδου, σειριακής εισόδου - παράλληλης εξόδου, παράλληλης
εισόδου - σειριακής εξόδου και παράλληλης εισόδου - παράλληλης εξόδου. Τα FFs, που

4
χρησιµοποιούµε για την κατασκευή των καταχωρητών, είναι συνήθως τύπου D θετικής ή
αρνητικής ακµής πυροδότησης. Τα D FFs όµως προέρχονται από JK ή RS flip-flops, στα
οποία η µία είσοδος είναι συµπληρωµατική της άλλης (Βλ. Σχήµα 1.10(α) και Σχήµα
1.34). Έτσι στην πράξη οι καταχωρητές κατασκευάζονται κυρίως µε FF τύπου JK ή RS.
Η απροσδιοριστία των RS FFs δεν είναι πρόβληµα στην προκειµένη περίπτωση, αφού
αυτά χρησιµοποιούνται µόνο για αποθήκευση δεδοµένων και είναι πάντοτε R = S΄. Μετά
την ολοκλήρωση της µελέτης της ενότητας αυτής, θα είστε σε θέση να αναγνωρίζετε και
να κατανοείτε τη λειτουργία των διαφόρων τύπων καταχωρητών σειριακής ή παράλληλης
εισόδου και σειριακής ή παράλληλης εξόδου, να σχεδιάζετε καταχωρητές µε δυνατότητα
ολίσθησης προς τα δεξιά ή προς τα αριστερά και τέλος να σχεδιάζετε καταχωρητές µε
δυνατότητα παράλληλης ή σειριακής φόρτωσης.

4.1.1. Καταχωρητές σειριακής-εισόδου-σειριακής-εξόδου

Ένας καταχωρητής ολίσθησης σειριακής-εισόδου-σειριακής-εξόδου αποτελείται από


µία συστοιχία FFs τύπου D, όπου η είσοδος καθενός (πλην του πρώτου στη σειρά)
τροφοδοτείται από την έξοδο του προηγούµενού του. Όλα τα FFs χρονίζονται µε τον ίδιο
ωρολογιακό παλµό. Ένα παράδειγµα καταχωρητή ολίσθησης σειριακής-εισόδου-
σειριακής-εξόδου των 4 bits δείχνεται στο Σχήµα 4.2. Με κάθε ενεργό του ωρολογιακού
παλµού (δηλαδή µε την αρνητική ακµή κάθε παλµού στην προκειµένη περίπτωση) το
κάθε FF διαβάζει την έξοδο του προηγούµενού του και τη µεταφέρει στην έξοδό του,
εκτός από το πρώτο αριστερά FF, το οποίο διαβάζει τη σειριακή είσοδο. Για παράδειγµα,
αν όλα τα FFs του Σχήµατος 4.2(α) είχαν εκκαθαριστεί και στην είσοδο D0 (στη σειριακή
είσοδο) εφαρµόζαµε το λογικό 1, τότε οι κυµατοµορφές των εξόδων όλων των FFs για
τους 4 πρώτους ωρολογιακούς παλµούς θα ήταν όπως αυτές του Σχήµατος 4.2(δ). Στα
Σχήµατα 4.2(β) και 4.2(γ) δείχνεται ο ίδιος καταχωρητής ολίσθησης κατασκευασµένος,
όµως, µε FF τύπου JK και SR αντίστοιχα. Παρατηρούµε ότι η σειριακή είσοδος
εφαρµόζεται στη µία είσοδο του πρώτου αριστερά FF, ενώ στην άλλη είσοδο
εφαρµόζεται η συµπληρωµατική της. Έτσι το δεδοµένο εισόδου εισέρχεται στο πρώτο FF
µε την εµφάνιση της ενεργού ακµής του ωρολογιακού παλµού. Έστω ότι η σειριακή
είσοδος ισούται µε 1. Τότε J0=1 και K0=J0΄=0 (S0=1 και R0=S0΄ αντίστοιχα για το SR FF),
οπότε η έξοδος Q0=1 και Q’0 =0. Στην περίπτωση που η σειριακή είσοδος ισούται µε 0,

5
γίνεται φανερό ότι η έξοδος Q0 θα γίνει και αυτή 0 µε την εµφάνιση της ενεργού ακµής
του ωρολογιακού παλµού.

Σειριακή
Είσοδος D0 Q0 D1 Q1 D2 Q2 D3 Q3 Σειριακή
Έξοδος
FF0 FF1 FF2 FF3

CLK • • •
(α)

Σειριακή J0 J1 Q1 J2 Q2 J3 Q3
• Q0 Σειριακή
Είσοδος
Έξοδος

K0 Q'0 K1 Q'1 K2 Q'2 K3 Q'3

CLK • • •
(β)

Σειριακή S0 Q0 S1 Q1 S2 Q2 S3 Q3 Σειριακή
Είσοδος • Έξοδος

R0 Q'0 R1 Q'1 R2 Q'2 R3 Q'3

CLK • • •
(γ)

CLK
Σειριακή Είσοδος D0=1
Q0

Q1

Q2

Σειριακή Έξοδος Q3
(δ)
Σχήµα 4.2. Καταχωρητής ολίσθησης σειριακής-εισόδου-σειριακής-εξόδου των 4 bits τύπου: (α) D, (β) JK,
(γ) SR και (δ) κυµατοµορφές εξόδου για τέσσερεις ωρολογιακούς παλµούς.

Σηµειώνεται ότι ο καταχωρητής ολίσθησης του Σχήµατος 4.2 εκτελεί την ολίσθηση
ενός αριθµού προς τα δεξιά. Αν ο αριθµός που έχει αποθηκευτεί σ' αυτόν (µε διαδοχικές
ολισθήσεις προς τα δεξιά) έχει το MSB στο FF0 και το LSB στο FF3, δεξιά ολίσθηση
κατά µία θέση θα έχει ως αποτέλεσµα τη διαίρεση του αριθµού δια 2 (µε την προϋπόθεση
ότι η σειριακή είσοδος κρατείται στο µηδέν). Αν ο αριθµός έχει αποθηκευτεί κατά την
αντίθετη φορά, δηλαδή το MSB στο FF3 και το LSB στο FF0, τότε δεξιά ολίσθηση κατά
µία θέση θα έχει ως αποτέλεσµα τον πολλαπλασιασµό αυτού επί 2.

6
Άσκηση αυτοαξιολόγησης 1 / Κεφάλαιο 4

Υποθέστε ότι σ' έναν καταχωρητή σειριακής-εισόδου-σειριακής-εξόδου των 4 bits µε


FFs τύπου D αρνητικής ακµής πυροδότησης είναι αποθηκευµένη η δυαδική λέξη 1010.
Σχεδιάστε τις κυµατοµορφές εξόδου καθενός FF. Θεωρήστε ότι η σειριακή είσοδος
βρίσκεται στο λογικό 0.

∆ραστηριότητα 1 / Κεφάλαιο 4

Προτείνετε κύκλωµα το οποίο να έχει τη δυνατότητα ολίσθησης ενός δυαδικού


αριθµού των 4 bits προς τα αριστερά ή προς τα δεξιά, ανάλογα µε τη λογική στάθµη µιας
πρόσθετης εισόδου ελέγχου.

Παράδειγµα 1 / Κεφάλαιο 4

Μία πολύ χρήσιµη εφαρµογή των καταχωρητών ολίσθησης είναι αυτή της υλοποίησης
ενός σειριακού αθροιστή, δηλαδή ενός ψηφιακού συστήµατος, το οποίο να προσθέτει δύο
δυαδικούς αριθµούς bit προς bit, χρησιµοποιώντας µόνο έναν πλήρη αθροιστή (FA, Full
Adder). Στο βιβλίο της Ψηφιακής Σχεδίασης Ι γνωρίσαµε το κύκλωµα ενός πλήρους
αθροιστή / αφαιρέτη δύο δυαδικών αριθµών των n bits ο καθένας. Είδαµε ότι απαιτούνται
n πλήρεις αθροιστές, ένας για κάθε bit για την πράξη αυτή. Και από τη στιγµή που τα
δεδοµένα (οι προσθετέοι) είναι διαθέσιµα, η πράξη της πρόσθεσης γίνεται ταυτόχρονα
και στους n πλήρεις αθροιστές µέσα σε έναν κύκλο του ρολογιού. Στο Σχήµα 4.3
δείχνεται το αντίστοιχο κύκλωµα του σειριακού αθροιστή δύο n-bit αριθµών.
Παρατηρούµε ότι απαιτείται ένας µόνο FA, αλλά η πράξη της πρόσθεσης, όπως θα
διαπιστώσουµε, ολοκληρώνεται σε n κύκλους του ρολογιού. Ο αθροιστής αυτός
προσθέτει τους n-bit αριθµούς Α και Β και το αποτέλεσµα επιστρέφει στη θέση του
αριθµού Α. Αποτελείται από δύο καταχωρητές ολίσθησης σειριακής-εισόδου-σειριακής-
εξόδου των n-bits ο καθένας, έναν FA και έναν καταχωρητή του 1 bit για την προσωρινή
αποθήκευση του κρατούµενου. Όλοι οι καταχωρητές χρονίζονται µε τους ίδιους
ωρολογιακούς παλµούς. Οι προσθετέοι Α και Β αποθηκεύονται σειριακά στους
αντίστοιχους καταχωρητές ολίσθησης, µε τρόπο ώστε το LSB αυτών να εισάγεται πρώτα,
δηλαδή να βρίσκεται στο δεξιό άκρο του κάθε καταχωρητή. Από τη στιγµή που θα
αποθηκευτούν οι δύο προσθετέοι µπορεί να αρχίσει η διαδικασία της πρόσθεσής τους.
Με τον πρώτο ωρολογιακό παλµό προστίθενται τα δύο LSB των αριθµών και το
κρατούµενο, το οποίο αρχικά είναι 0. Το άθροισµα S επιστρέφει στην πρώτη θέση του
καταχωρητή Α, η οποία έµεινε κενή λόγω της δεξιάς ολίσθησης των περιεχοµένων του,

7
ενώ το κρατούµενο C αποθηκεύεται προσωρινά στον καταχωρητή του 1 bit. Η
διαδικασία αυτή συνεχίζεται µέχρι και το n-οστό παλµό, οπότε και ολοκληρώνεται η
πρόσθεση των αριθµών. Τη στιγµή αυτή, ο καταχωρητής Α περιέχει το αποτέλεσµα του
αθροίσµατος. Στον καταχωρητή Β συνήθως προνοούµε να αποθηκευτεί σειριακά,
(ταυτόχρονα µε την πρόσθεση των Α και Β), η τιµή του νέου προσθετέου, ώστε άµεσα να
προχωρήσουµε στον υπολογισµό του επόµενου αθροίσµατος.

Επιλογή
Εισόδου

Ολίσθηση
δεξιά • Καταχωρητής
• ολίσθησης Α Σειριακή
x
Σειριακή CLK Έξοδος
είσοδος S
Α y FA

C
z
Σειριακή
είσοδος Καταχωρητής

Β • ολίσθησης Β Σειριακή
Έξοδος
Q D

Μηδενισµό
ς

Σχήµα 4.3. Λογικό διάγραµµα σειριακού αθροιστή.

Οι καταχωρητές ολίσθησης που γνωρίσαµε µέχρι στιγµής (βλ. Σχήµα 4.2) έχουν τη
δυνατότητα ολίσθησης των δεδοµένων µόνο προς τα δεξιά. Όµως, πολλές φορές είναι
απαραίτητο, ιδιαίτερα σε ψηφιακά συστήµατα για την εκτέλεση αριθµητικών πράξεων, η
ολίσθηση να γίνεται είτε προς τα δεξιά είτε προς τα αριστερά. Ένας τέτοιος καταχωρητής
ολίσθησης ονοµάζεται αµφίδροµος ή διπλής κατεύθυνσης. Η κατεύθυνση της ολίσθησης
ελέγχεται από ένα διακόπτη. Το κύκλωµα ενός αµφίδροµου καταχωρητή ολίσθησης των
4 bits δείχνεται στο Σχήµα 4.4.

8
Σειριακή
Είσοδος
για ∆εξιά
Σειριακή
ολίσθηση
• • Είσοδος
για Αριστερή
ολίσθηση

E X0 E X1 E X2 E X3

D0 Q0 • D1 Q1 D2 Q2 D3 Q3 •
Σειριακή
FF0 FF1 FF2 FF3 Έξοδος
Σειριακή για Αριστερή
Έξοδος ολίσθηση
για ∆εξιά
ολίσθηση
CLK
• • •
(α)

Qi−1 Qi+1
E •

Xi

Di
(β)
Σχήµα 4.4. (α) Καταχωρητής ολίσθησης σειριακής-εισόδου-σειριακής-εξόδου διπλής κατεύθυνσης, (β)
κύκλωµα του πολυπλέκτη Χi.
Πρόκειται ουσιαστικά για τον καταχωρητή ολίσθησης σειριακής-εισόδου-σειριακής-
εξόδου του Σχήµατος 4.2, στις εισόδους του οποίου όµως έχουµε παρέµβει,
τοποθετώντας από έναν πολυπλέκτη 2 γραµµών σε 1 (Σχήµα 4.4(β)). Μέσω του κάθε
πολυπλέκτη ελέγχουµε αν στην είσοδο του FF θα συνδεθεί η έξοδος του προηγούµενου ή
του επόµενου από αυτό FF. Συγκεκριµένα, στις εισόδους του πολυπλέκτη Χi συνδέουµε
τις εισόδους Qi-1 και Qi+1. Αν η είσοδος επιλογής Ε=1, τότε επιτρέπεται στην είσοδο Qi-1
να εµφανιστεί στην έξοδο Di του πολυπλέκτη, δηλαδή Di=Qi-1. Αν Ε=0, τότε Di=Qi+1.
Έτσι, για Ε=1 έχουµε το γνωστό κύκλωµα του Σχήµατος 4.2, το οποίο υλοποιεί τη δεξιά
ολίσθηση του αριθµού. Η σειριακή είσοδος γίνεται µέσω της εισόδου D0 του FF0 και η
σειριακή έξοδος µέσω του Q3 (FF3). Για Ε=0 το κύκλωµα υλοποιεί την αριστερή
ολίσθηση των περιεχοµένων του (δεδοµένων). Η σειριακή είσοδος γίνεται τώρα µέσω
του D3 του FF3 και η σειριακή έξοδος µέσω του Q0 του FF0.

9
4.1.2. Καταχωρητές σειριακής-εισόδου-παράλληλης-εξόδου

Οι καταχωρητές σειριακής-εισόδου-παράλληλης-εξόδου είναι ακριβώς ίδιοι µε τους


καταχωρητές σειριακής-εισόδου-σειριακής-εξόδου, µε µόνη διαφορά ότι µας είναι
διαθέσιµες οι έξοδοι Q όλων των FFs και όχι µόνον η έξοδος του τελευταίου. Στο Σχήµα
4.5 δείχνεται ο αντίστοιχος του Σχήµατος 4.2(α) καταχωρητής ολίσθησης σειριακής-
εισόδου-παράλληλης-εξόδου των 4 bits.

Παράλληλη Έξοδος

Q0 Q1 Q2 Q3

Σειριακή
Είσοδος D0 Q0 • D1 Q1 • D2 Q2 • D3 Q3
FF0 FF1 FF2 FF3

CLK
• • •

Σχήµα 4.5. Καταχωρητής ολίσθησης σειριακής-εισόδου-παράλληλης-εξόδου των 4 bits.

Οι κυµατοµορφές εισόδου-εξόδου του Σχήµατος 4.2(δ) είναι επίσης ίδιες και στην
περίπτωση του καταχωρητή ολίσθησης του Σχήµατος 4.5. Συνήθως οι καταχωρητές
ολίσθησης έχουν επιπλέον εισόδους CLEAR ή και PRESET , οι οποίες συνδέονται στις
αντίστοιχες εισόδους όλων των FFs για την άµεση (ασύγχρονη) εκκαθάριση (δηλαδή
όλες οι έξοδοι γίνονται 0) ή καθορισµό της υψηλής στάθµης του καταχωρητή (δηλαδή
όλες οι έξοδοι γίνονται 1).

Άσκηση αυτοαξιολόγησης 2 / Κεφάλαιο 4

Σχεδιάστε τις κυµατοµορφές εισόδου-εξόδου ενός καταχωρητή ολίσθησης σειριακής-


εισόδου-παράλληλης-εξόδου των 4 bits, του οποίου η είσοδος CLEAR γίνεται
"στιγµιαία" 0 πριν τον 1ο ωρολογιακό παλµό και αµέσως µετά τον 3ο ωρολογιακό
παλµό, ενώ η σειριακή είσοδος παραµένει µόνιµα στο λογικό 1.

Ένα σηµείο που πρέπει να τονιστεί και το οποίο ισχύει για όλους τους καταχωρητές
ολίσθησης είναι ότι για την αποθήκευση σ' αυτούς µιας λέξης των n bits απαιτούνται n
ωρολογιακοί παλµοί. Αν οι παλµοί είναι λιγότεροι ή περισσότεροι, τότε τµήµα της λέξης
από τα αριστερά ή τα δεξιά αυτής χάνεται. Θα δούµε στην ενότητα 4.2. κυκλώµατα

10
κατάλληλα για την παραγωγή σηµάτων χρονισµού κατάλληλων για τέτοιου είδους
σειριακής µεταφοράς δεδοµένων.

Άσκηση αυτοαξιολόγησης 3 / Κεφάλαιο 4

Πόσος χρόνος θα απαιτηθεί για τη σειριακή ολίσθηση ενός αριθµού των 8 bits σ' έναν
καταχωρητή ολίσθησης, ο οποίος λειτουργεί µε ωρολογιακό παλµό συχνότητας 10 ΜHz;

4.1.3. Καταχωρητές παράλληλης-εισόδου-παράλληλης-εξόδου

Ένας καταχωρητής παράλληλης-εισόδου-παράλληλης-εξόδου προκύπτει εύκολα από


FF τύπου D, στα οποία ελέγχουµε ανεξάρτητα τις εισόδους και εξόδους τους, όπως
δείχνεται για την περίπτωση ενός 4 bit καταχωρητή στο Σχήµα 4.6(α). Φυσικά όλα τα
FFs χρονίζονται µε τους ίδιους ωρολογιακούς παλµούς.

Παράλληλη Έξοδος

Q0 Q1 Q2 Q3

D0 Q0 D1 Q1 D2 Q2 D3 Q3
FF0 FF1 FF2 FF3

CLK • • •
Ε
CLK
D0 D1 D2 D3
Παράλληλη Είσοδος
(β)
(α)
Σχήµα 4.6. Καταχωρητής παράλληλης-εισόδου-παράλληλης-εξόδου µε FFs τύπου D.

Κάθε φορά που ενεργοποιείται ο ωρολογιακός παλµός (κατά την αρνητική ακµή στην
προκειµένη περίπτωση), οι είσοδοι Di θα "διαβάζονται" και θα περνούν στις εξόδους Qi,
όπου i=0,1,2,... Παρατηρούµε, δηλαδή, ότι όλες οι είσοδοι φορτώνονται παράλληλα στον
καταχωρητή µ' έναν µόνο ωρολογιακό παλµό. Υπάρχει, όµως, ένα σοβαρό µειονέκτηµα
στο κύκλωµα αυτό, ότι δηλαδή µε κάθε νέο ωρολογιακό παλµό, νέα δεδοµένα θα
φορτώνονται στον καταχωρητή. Με άλλα λόγια, αν εµείς θέλουµε να φυλάξουµε τα
δεδοµένα, θα πρέπει να σταµατήσουµε τους ωρολογιακούς παλµούς. Αυτό γίνεται
εύκολα µε τη βοήθεια µιας πύλης AND, όπως φαίνεται στο Σχήµα 4.6(β). Όταν η είσοδος

11
ελέγχου Ε=1, τότε CLK=clock και το κύκλωµα λειτουργεί όπως περιγράψαµε στα
προηγούµενα. Όταν όµως Ε=0, τότε CLK=0 και οι ωρολογιακοί παλµοί παύουν.
Αν και φαίνεται πως µε την προσθήκη της πύλης AND έχουµε επιλύσει το πρόβληµα,
στην πράξη αυτό δεν γίνεται. Το να παρεµβάλλουµε µια πύλη στην πορεία των
ωρολογιακών παλµών, σηµαίνει ότι προσθέτουµε καθυστερήσεις ανάµεσα στο κύριο
ρολόι του συστήµατος και στα επιµέρους ρολόγια των FFs. Κάτι τέτοιο µπορεί να
οδηγήσει σε αποσυγχρονισµό του ψηφιακού συστήµατος και τελικά σε αδυναµία
λειτουργίας αυτού. Γι' αυτόν το λόγο, αφήνουµε τους ωρολογιακούς παλµούς ως έχουν
και παρεµβαίνουµε στις εισόδους των FFs για τον έλεγχο της φόρτωσης των δεδοµένων.
E
• G 0S
S0 Q0 Q0
I0
FF 0
• G 0R
R0

• S1 Q1 Q1
I1
• FF 1

R1

• S2 Q2 Q2
I2
• FF 2

R2

• S3 Q3
I3 • Q3
• FF 3

R3
CLK •
CLEAR

Σχήµα 4.7. Καταχωρητής παράλληλης-εισόδου-παράλληλης-εξόδου των 4 bits µε FFs τύπου SR.

Ένας τέτοιος καταχωρητής παράλληλης-εισόδου-παράλληλης-εξόδου των 4 bits


κατασκευασµένος µε FFs τύπου SR, δείχνεται στο Σχήµα 4.7. Παρατηρούµε ότι:
1. Σε όλα τα FFs τροφοδοτούµε τους ίδιους ωρολογιακούς παλµούς CLK.
2. Υπάρχει µία είσοδος CLEAR για την άµεση εκκαθάριση του καταχωρητή, δηλαδή
όλων των FFs.
3. Ο έλεγχος της παράλληλης εισόδου (φόρτωσης) των δεδοµένων γίνεται µέσω της
εισόδου E. Όταν E=1, τότε επιτρέπεται η φόρτωση των δεδοµένων εισόδου Ιi,
i=0,1,2,3. Για να γίνει αυτό κατανοητό, µπορούµε να δούµε τι συµβαίνει µε τις
πύλες AND που οδηγούν τις εισόδους S0, R0 του FF0. Βλέπουµε ότι για E=1, η
πύλη G S0 επιτρέπει την διέλευση του δεδοµένου Ι0 (δηλαδή S0=I0) και η πύλη G 0R
επιτρέπει τη διέλευση από αυτή του Ι0΄ (δηλαδή R0=I0΄). Έτσι αν Ι0=1, τότε στο FF0

12
καταχωρείται το λογικό 1 (αφού S0=1 και R0=0), ενώ για Ι0=0, τότε στο FF0
καταχωρείται το λογικό 0 (S0=0 και R0=1). Για E=0, οι έξοδοι όλων των πυλών
AND είναι 0, ανεξάρτητα από τις τιµές των εισόδων Ii. Συνεπώς, Si=Ri=0 και άρα
το FF δεν αλλάζει κατάσταση. ∆ιευκρινίζεται ότι οι είσοδοι δεδοµένων Ii και η
είσοδος ελέγχου E µπορούν να αλλάζουν οποτεδήποτε, αρκεί να λαµβάνονται
υπόψη οι χρόνοι προετοιµασίας και παραµονής σε σχέση µε την ενεργό ακµή του
ρολογιού (βλ. ενότητα 1.2). Η φόρτωση των δεδοµένων γίνεται κατά την άφιξη της
πρώτης ενεργού ακµής των ωρολογιακών παλµών.

Άσκηση αυτοαξιολόγησης 4 / Κεφάλαιο 4

Σχεδιάστε το κύκλωµα καταχωρητή παράλληλης-εισόδου-παράλληλης-εξόδου όµοιο


µε αυτό του Σχήµατος 4.7, αποτελούµενο όµως από FFs τύπου D αρνητικής ακµής
πυροδότησης. Σχολιάστε τον τρόπο λειτουργίας του.

4.1.4. Καταχωρητές παράλληλης-εισόδου-σειριακής-εξόδου

Τα κυκλώµατα αυτά έχουν τη δυνατότητα να φορτώνουν τα δεδοµένα παράλληλα και


να τα αποστέλλουν στην έξοδο σειριακά. Η φόρτωση n δυαδικών ψηφίων, όπως είναι
φυσικό, γίνεται σε ένα κύκλο ρολογιού, ενώ η σειριακή έξοδος αυτών γίνεται σε n
κύκλους του ρολογιού. Πρόκειται ουσιαστικά για έναν καταχωρητή ολίσθησης, ο οποίος
όµως έχει επιπλέον τη δυνατότητα παράλληλης φόρτωσης των δεδοµένων. Το κύκλωµα
ενός τέτοιου καταχωρητή των 4 bits δίνεται στο Σχήµα 4.8.
Παράλληλη Είσοδος

D0 D1 D2 D3
Ε
• • • •
Σειριακή
• • • Έξοδος
Σειριακή
Είσοδος

S0 Q0 S1 Q1 S2 Q2 • S3 Q3
• • •
FF0 FF1 FF1 FF1

R0 R1 R2 R3
CLK
• • •

Q0 Q1 Q2

Παράλληλη 'Εξοδος

Σχήµα 4.8. Καταχωρητής παράλληλης-εισόδου-σειριακής-εξόδου των 4 bits.

13
Αυτό αποτελείται από 4 FFs τύπου SR αρνητικής ακµής πυροδότησης. Οι είσοδοι Si, Ri
(i=0,1,2,3) του κάθε FF είναι συµπληρωµατικές µεταξύ τους και τροφοδοτούνται από ένα
συνδυασµό πυλών AND - OR. Ο συνδυασµός των πυλών εισόδου αποτελεί ένα απλό
κύκλωµα πολύπλεξης 2 γραµµών σε 1. Συγκεκριµένα, όταν Ε=1, τότε µόνον η δεξιά
AND επιτρέπει την είσοδο της Di να περάσει από αυτή, οπότε Si=Di και Ri=Di΄. Έτσι το
δεδοµένο Di καταχωρείται στο αντίστοιχο FFi. Όταν E=0, τότε µόνον η αριστερή AND
επιτρέπει στην άλλη είσοδό της να περάσει από αυτή, οπότε Si=Qi-1 και Ri= Q 'i-1 . ∆ηλαδή
η έξοδος Qi-1 του FFi-1 τροφοδοτείται στις εισόδους του FFi. Με τον τρόπο αυτό
επιτυγχάνεται η ολίσθηση των δεδοµένων προς τα δεξιά, και κατά συνέπεια η σειριακή
τους έξοδος. Άρα, για Ε=1 έχουµε παράλληλη φόρτωση, ενώ για Ε=0 έχουµε ολίσθηση
προς τα δεξιά. Εννοείται ότι η φόρτωση ή η ολίσθηση συµβαίνουν πάντοτε κατά τη
στιγµή της αρνητικής ακµής των ωρολογιακών παλµών για το συγκεκριµένο κύκλωµα.
Παρατηρείστε ότι το κύκλωµα που µόλις περιγράψαµε διαθέτει και µια σειριακή
είσοδο. Θα µπορούσε εποµένως να χρησιµοποιηθεί και ως ένας καταχωρητής ολίσθησης
σειριακής-εισόδου-σειριακής-εξόδου. Επίσης, µπορούµε να δούµε ότι αν είχαµε
διαθέσιµες τις εξόδους Qi (διακεκοµµένες γραµµές του Σχήµατος 4.8), τότε το ίδιο
κύκλωµα θα µπορούσε να έχει επιπρόσθετα τη δυνατότητα παράλληλης εξόδου των
δεδοµένων. Ένα τέτοιο κύκλωµα έχει στην πράξη όλες τις δυνατότητες των διαφορετικών
καταχωρητών που περιγράψαµε µέχρι τώρα, δηλαδή σειριακής-εισόδου-σειριακής-
εξόδου, σειριακής-εισόδου-παράλληλης-εξόδου, παράλληλης-εισόδου-παράλληλης-
εξόδου, παράλληλης-εισόδου-σειριακής-εξόδου. Στο εµπόριο διατίθενται σήµερα
ολοκληρωµένα κυκλώµατα καταχωρητών αυτού του είδους.
Ένα άλλο στοιχείο που πρέπει να σηµειωθεί για τον καταχωρητή που εξετάζουµε,
αλλά και για όλους τους τύπους των καταχωρητών που µελετήσαµε µέχρι τώρα, είναι η
δυνατότητά τους να συνδέονται ο ένας µετά τον άλλον για την καταχώρηση και ολίσθηση
λέξεων πολλαπλάσιου µήκους. Έτσι, συνδέοντας δύο καταχωρητές των 4 bits ο καθένας,
όπως αυτός του Σχήµατος 4.8, µπορούµε να κατασκευάζουµε έναν καταχωρητή των 8
bits (βλ. Σχήµα 4.9). Εξυπακούεται ότι οι δύο καταχωρητές θα πρέπει να συγχρονίσουν
τη λειτουργία τους τροφοδοτούµενοι µε τους ίδιους ωρολογιακούς παλµούς (CLK) και
την ίδια είσοδο επιλογής Ε. Η σειριακή έξοδος του πρώτου συνδέεται στη σειριακή
είσοδο του δεύτερου καταχωρητή.

14
Παράλληλη Είσοδος

Σειριακή Είσοδος Σειρ. Σειρ. Σειριακή Έξοδος


Έξοδος Είσοδος Καταχωρητής
Καταχωρητής
E • 4- bits 4- bits
CLK

Παράλληλη Έξοδος

Σχήµα 4.9. Καταχωρητής των 8 bits κατασκευασµένος από δύο καταχωρητές των 4 bits.

Οι καταχωρητές παράλληλης-εισόδου-σειριακής-εξόδου και σειριακής-εισόδου-


παράλληλης-εξόδου βρίσκουν ευρεία εφαρµογή στη σειριακή επικοινωνία ψηφιακών
συστηµάτων. Συγκεκριµένα, τα ψηφιακά συστήµατα είναι συνήθως σχεδιασµένα ώστε να
λειτουργούν παράλληλα, επιτυγχάνοντας έτσι µεγαλύτερες ταχύτητες επεξεργασίας. Η
επικοινωνία δύο τέτοιων συστηµάτων, τα οποία βρίσκονται σε µεγάλη απόσταση το ένα
από το άλλο, γίνεται σειριακά. Για τη σειριακή λοιπόν µετάδοση, απαιτείται ένας
καταχωρητής παράλληλης-εισόδου-σειριακής-εξόδου, ενώ για τη σειριακή λήψη
δεδοµένων απαιτείται ένας καταχωρητής σειριακής-εισόδου-παράλληλης-εξόδου.

Άσκηση αυτοαξιολόγησης 5 / Κεφάλαιο 4

Σας δίνεται το κύκλωµα του Σχήµατος 4.10. Προσδιορίστε τον τρόπο λειτουργίας του.
Ποια η χρησιµότητα καθεµιάς από τις εισόδους Χ1, Χ2, Χ3 Χ4 ; Υπενθυµίζεται ότι ένας
πολυπλέκτης 4-σε-1 οδηγεί στην έξοδό του µία από τις 4 εισόδους (0,1,2,3), ανάλογα µε
την τιµή στις εισόδους Ε1Ε0 (αντίστοιχα 00, 01, 10, 11).

15
Παράλληλες έξοδοι

Q0 Q1 Q2 Q3

• • • •

Q Q Q Q
X1 • CLEAR FF0 CLEAR FF1 CLEAR FF2 CLEAR FF3
D0 D0 D0 D0
• •
X2 • • •

E1
4x1 4x1 4x1 4x1
MUX MUX MUX MUX
(LSB) E0
3 2 10 3 2 10 3 2 10 3 2 10

• • • •

X3 X4
I0 I1 I2 I3
Παράλληλες είσοδοι
Σχήµα 4.10. Σύγχρονο ακολουθιακό κύκλωµα της άσκησης αυτοαξιολόγησης 5 / Κεφάλαιο 4.

Σύνοψη Ενότητας

Στην ενότητα αυτή γνωρίσαµε όλους τους τύπους καταχωρητών για παράλληλη και
σειριακή είσοδο των δεδοµένων, καθώς και για παράλληλη και σειριακή έξοδο αυτών.
Είδαµε ότι πρόκειται για σύγχρονα ακολουθιακά κυκλώµατα, τα οποία κατασκευάζονται
µε FFs τύπου D, RS ή JK. Τα κυκλώµατα αυτά µπορούµε να τα χρησιµοποιήσουµε για
την προσωρινή αποθήκευση δεδοµένων τα οποία µεταφέρονται παράλληλα ή σειριακά,
για τη µετατροπή δεδοµένων από παράλληλα σε σειριακά και το αντίθετο, και τέλος για
την υλοποίηση ορισµένων απλών πράξεων πολλαπλασιασµού ή διαίρεσης αριθµών µε
δυνάµεις του 2.

ΕΝΟΤΗΤΑ 4.2. ΚΥΚΛΙΚΟΙ ΚΑΤΑΧΩΡΗΤΕΣ

Η ακολουθία των λειτουργιών σε ένα ψηφιακό σύστηµα καθορίζεται από κάποια


µονάδα ελέγχου του συστήµατος. Μια τέτοια µονάδα παράγει συνήθως ορισµένα σήµατα
χρονισµού, τα οποία καθορίζουν τη χρονική ακολουθία εκτέλεσης των λειτουργιών. Οι
απαριθµητές, που είδαµε στο προηγούµενο Κεφάλαιο, όπως και οι καταχωρητές, που
µελετάµε στο παρόν Κεφάλαιο, είναι τα βασικά κυκλώµατα, τα οποία σε συνδυασµό µε
κάποιες πύλες αποκωδικοποίησης χρησιµοποιούνται για τη δηµιουργία σηµάτων
χρονισµού.

16
Τα κυκλώµατα που εξετάζουµε στην ενότητα αυτή ανήκουν στην κατηγορία των
κυκλικών καταχωρητών, γιατί πρόκειται για καταχωρητές ολίσθησης των οποίων οι
έξοδοι ανατροφοδοτούνται στις εισόδους. Επειδή όµως τα ίδια αυτά κυκλώµατα µπορούν
να θεωρηθούν και ως απαριθµητές, αφού οι έξοδοι των FFs είναι διαθέσιµες και µάλιστα
απαριθµούν µε κάποιο µη-κανονικό τρόπο, γι' αυτό ονοµάζονται και απαριθµητές
ολίσθησης (shift counters). Θα ασχοληθούµε αµέσως τώρα µε τις δύο κατηγορίες
απαριθµητών ολίσθησης, τους απαριθµητές δακτυλίου (ring counters ή ring shift
counters) και τους απαριθµητές Johnson (Johnson shift counters). Η διαφορά τους, όπως
θα διαπιστώσουµε, βρίσκεται στο γεγονός ότι στους πρώτους ανατροφοδοτείται στη
σειριακή είσοδο η ίδια η σειριακή έξοδος, ενώ στους δεύτερους ανατροφοδοτείται η
συµπληρωµατική της σειριακής εξόδου.
Με την ολοκλήρωση της µελέτης της παρούσας ενότητας θα είστε σε θέση να
αναλύετε και να σχεδιάζετε καταχωρητές ολίσθησης (δακτυλίου ή Johnson) για την
παραγωγή κατάλληλων σηµάτων χρονισµού.

4.2.1. Απαριθµητές δακτυλίου

Ο απαριθµητής δακτυλίου είναι ένας κυκλικός καταχωρητής ολίσθησης, στον οποίο


µόνο ένα FF βρίσκεται στην κατάσταση 1 σε κάθε χρονική στιγµή, ενώ τα υπόλοιπα
βρίσκονται στην κατάσταση 0. Το ότι είναι κυκλικός καταχωρητής σηµαίνει ότι η
σειριακή έξοδος οδηγείται στη σειριακή είσοδο. Στο Σχήµα 4.11 δείχνεται ένας
απαριθµητής δακτυλίου των 4 bits κατασκευασµένος µε FFs τύπου D και µε FFs τύπου
JK αρνητικής ακµής πυροδότησης. Στο ίδιο σχήµα φαίνονται και οι κυµατοµορφές
εξόδου των κυκλωµάτων, οι οποίες είναι ίδιες και για τις δύο περιπτώσεις. Παρατηρούµε
ότι µε τα συγκεκριµένα κυκλώµατα των 4 FFs το καθένα δηµιουργούµε 4 σήµατα
χρονισµού, ένα από κάθε έξοδο Q. Εννοείται ότι στο πρώτο από τα FFs έχουµε αρχικά
"φορτώσει" τον αριθµό 1, τον οποίο µεταφέρουµε κυκλικά από FF σε FF µε κάθε
αρνητική ακµή των ωρολογιακών παλµών. Γενικά, για τη δηµιουργία Ν σηµάτων
χρονισµού ο απαριθµητής δακτυλίου πρέπει να αποτελείται από Ν FFs.

17
D3 Q3 D2 Q2 D1 Q1 D0 Q0
1 0 0 0

CLK • • •
(α)

J3 Q3 J2 Q2 J1 Q1 J0 Q0
1 0 0 0
K3 Q'3 K2 Q'2 K1 Q'1 K0 Q'0

CLK • • •

(β)

CLK

Q3

Q2

Q1

Q0

(Q3Q2 Q1Q0 )10 8 4 2 1 8 4 2 1

(γ)

Σχήµα 4.11. Απαριθµητής δακτυλίου των 4 bits: (α) µε FFs τύπου D (β) µε FFs τύπου JK, (γ)
κυµατοµορφές εξόδου.

Άσκηση αυτοαξιολόγησης 6 / Κεφάλαιο 4

Προτείνετε κύκλωµα για την παραγωγή των κυµατοµορφών του Σχήµατος 4.11(γ), το
οποίο να αποτελείται µόνον από 2 FFs.

4.2.2. Απαριθµητές Johnson

Ο απαριθµητής Johnson είναι κι αυτός ένας κυκλικός καταχωρητής ολίσθησης, του


οποίου όµως η συµπληρωµατική έξοδος συνδέεται στην είσοδο. Για το λόγο αυτό
ονοµάζεται και απαριθµητής δακτυλίου µε αντιστροφή ουράς (switch tail). Το κύκλωµα
ενός απαριθµητή Johnson των 4 bits σχεδιασµένο µε FFs τύπου D και µε FFs τύπου JK,
καθώς και οι αντίστοιχες κυµατοµορφές εξόδου δείχνονται στο Σχήµα 4.12.
Παρατηρούµε ότι, αν θεωρήσουµε πως µε την έναρξη των ωρολογιακών παλµών όλα τα
FFs είναι µηδενισµένα, τότε το κύκλωµα από µόνο του αρχίζει να παράγει συµµετρικούς
παλµούς περιόδου 8πλάσιας της περιόδου των ωρολογιακών παλµών. Άρα το κύκλωµα,

18
από µια πρώτη άποψη, λειτουργεί ως διαιρέτης των παλµών του ρολογιού δια 8.
Παρατηρήστε την ακολουθία απαρίθµησης αυτού του κυκλώµατος: {0, 8, 12, 14, 15, 7,
3, 1}, δηλαδή στις 4 πρώτες ολισθήσεις ένα “1” εισέρχεται στο FF3, ενώ στις επόµενες 4
ολισθήσεις εισέρχεται “0”. Σε δυαδική µορφή έχουµε:
Q3 Q2 Q1 Q0
0 0 0 0
1 0 0 0
1 1 0 0
1 1 1 0
1 1 1 1
0 1 1 1
0 0 1 1
0 0 0 1
Αυτό που δεν κάνει µέχρι στιγµής το κύκλωµα είναι να δηµιουργεί µια αλληλουχία
σηµάτων χρονισµού, καθένα από τα οποία να είναι ενεργό για χρόνο ίσο µε µια περίοδο
του ωρολογιακού παλµού και να µην υπάρχει επικάλυψη µε κάποιο από τα άλλα σήµατα,
έτσι όπως συνέβαινε στο Σχήµα 4.11(γ).

D3 Q3 D2 Q2 D1 Q1 D0 Q0
0 0 0 0
Q'0

CLK • • •
(α)

J3 Q3 J2 Q2 J1 Q1 J0 Q0
0 0 0 0
K3 Q'3 K2 Q'2 K1 Q'1 K0 Q'0

CLK • • •

(β)

CLK

Q3

Q2

Q1

Q0
(Q3Q2Q1Q0 )10 0 8 12 14 15 7 3 1 0 8 12 14 15 7

(γ)

Σχήµα 4.12. Απαριθµητής Johnson των 4 bits: (α) µε FFs τύπου D, (β) µε FFs τύπου JK, (γ)
κυµατοµορφές εξόδου. (Στο εσωτερικό κάθε FF φαίνεται η αρχική του κατάσταση).

19
Για να το πετύχουµε αυτό µε τον απαριθµητή Johnson, πρέπει να χρησιµοποιήσουµε
ορισµένες πύλες AND για την αποκωδικοποίηση των σηµάτων εξόδου του απαριθµητή.
Επειδή η περίοδος των σηµάτων εξόδου είναι 8πλάσια εκείνης των ωρολογιακών
παλµών, θα χρειαστούµε 8 πύλες AND και θα δηµιουργήσουµε 8 σήµατα χρονισµού µε
το κύκλωµα του Σχήµατος 4.12, το οποίο αποτελείται από 4 FFs. Οι πύλες
αποκωδικοποίησης των εξόδων, καθώς και τα συνεπαγόµενα σήµατα χρονισµού
δείχνονται στο Σχήµα 4.13.

Πύλη AND για την CLK

Q3 Q2 Q1 Q0 αποκωδικοποίηση
X1
0 0 0 0 X 1 = Q 3′ Q 0′
X 2 = Q3Q2′
X2
1 0 0 0
X3
1 1 0 0 X 3 = Q2 Q1′
X4
1 1 1 0 X 4 = Q1Q0′
X5
1 1 1 1 X 5 = Q3Q0
0 1 1 1 X 6 = Q3′Q2 X6

0 0 1 1 X 7 = Q2′ Q1 X7

0 0 0 1 X 8 = Q 1′Q 0 X8

Σχήµα 4.13. Αποκωδικοποίηση των καταστάσεων εξόδου του Σχήµατος 4.12 και κυµατοµορφές
εξόδου των πυλών AND.
Το συµπέρασµα είναι ότι µε έναν απαριθµητή Johnson των 4 bits καταφέραµε να
έχουµε 8 σήµατα χρονισµού, χρησιµοποιώντας φυσικά 8 πύλες AND για την
αποκωδικοποίηση των καταστάσεων εξόδου. Γενικά, για την παραγωγή Ν σηµάτων
χρονισµού µε έναν απαριθµητή Johnson απαιτούνται Ν/2 FFs και Ν πύλες AND των δύο
εισόδων η καθεµιά.

∆ραστηριότητα 2 / Κεφάλαιο 4

Περιγράψτε τη λειτουργία των κυκλωµάτων του Σχήµατος 4.12 ως κυκλικών


καταχωρητών, θεωρώντας αρχικά ότι όλα τα FFs έχουν εκκαθαριστεί.

∆ραστηριότητα 3 / Κεφάλαιο 4

Το κύκλωµα του Σχήµατος 4.12(β), όπως και όλα τα κυκλώµατα των καταχωρητών
του παρόντος Κεφαλαίου, είναι ένα σύγχρονο ακολουθιακό κύκλωµα. Αναλύστε το
σύµφωνα µε αυτά που µάθαµε στο Κεφάλαιο 2. Τι θα συµβεί, αν αυτό βρεθεί στην
κατάσταση (Q3Q2Q1Q0)10 = 210 ;

20
Ας µην ξεχνάµε ότι τα κυκλώµατα του Σχήµατος 4.12 µπορούµε να τα δούµε είτε ως
καταχωρητές είτε ως απαριθµητές. Στην τελευταία γραµµή του Σχήµατος 4.12(γ)
δείχνονται οι καταστάσεις των FFs ως δεκαδικοί αριθµοί, διαπιστώνοντας ότι πράγµατι
τα κυκλώµατα αυτά απαριθµούν µη-κανονικά µε κύκλο απαρίθµησης 8. ∆ηλαδή, από τις
16 δυνατές καταστάσεις, τις οποίες µπορούµε να έχουµε µε 4 FFs, εµείς διατρέχουµε
µόνο τις 8. Τι γίνεται µε τις υπόλοιπες 8; Τι θα συµβεί, αν το κύκλωµα για κάποιο λόγο
(π.χ. κατά την εκκίνηση αυτού µε την εφαρµογή της τάσης τροφοδοσίας) βρεθεί σε µια
από τις µη επιτρεπτές καταστάσεις; Η ανάλυση του κυκλώµατος µας δείχνει ότι
πράγµατι, αν βρεθεί σε µία από τις µη επιτρεπτές καταστάσεις, αυτό εγκλωβίζεται σε
έναν άλλο κύκλο απαρίθµησης των 8 µη επιτρεπτών τιµών, από τον οποίο και δεν µπορεί
να “βγει” από µόνο του (Σχήµα 4.14(α)). Για να απεγκλωβιστεί, θα πρέπει να
παρέµβουµε αναγκάζοντάς το να µεταβεί σε µια από τις επιτρεπτές καταστάσεις, όπως
δείχνεται για παράδειγµα στο Σχήµα 4.14(β) ή να το κάνουµε CLEAR στην αρχή.

CLK

Q3

Q2

Q1

Q0
(Q3Q2Q1Q0 )10 2 5 11 6 13 10 4 9 2 5 11 6 13

(α)

Q'0
Q'1 Προς τις εισόδους PRESET
Q'2 των FF2, FF3

(β)
Σχήµα 4.14. (α) Κυµατοµορφές εξόδου του απαριθµητή Johnson του Σχήµατος 4.12, όταν βρεθεί σε µία
από τις µη επιτρεπτές καταστάσεις, (β) κύκλωµα για την αποφυγή των µη επιτρεπτών
καταστάσεων.

Άσκηση αυτοαξιολόγησης 7 / Κεφάλαιο 4

Με FFs τύπου JK αρνητικής ακµής πυροδότησης, σχεδιάστε απαριθµητή Johnson για


την παραγωγή 6 σηµάτων χρονισµού. Σχεδιάστε επίσης τις κυµατοµορφές εξόδου του
κυκλώµατος.

21
Άσκηση αυτοαξιολόγησης 8 / Κεφάλαιο 4

Με FFs τύπου JK αρνητικής ακµής πυροδότησης, σχεδιάστε απαριθµητή Johnson για


την παραγωγή 5 σηµάτων χρονισµού. Σχεδιάστε επίσης τις κυµατοµορφές εξόδου του
κυκλώµατος.

Σύνοψη Ενότητας

Στην ενότητα αυτή ασχοληθήκαµε µε τους κυκλικούς καταχωρητές, δηλαδή τους


καταχωρητές ολίσθησης, στους οποίους η έξοδος ανατροφοδοτείται στην είσοδο. Τα
κυκλώµατα αυτά χρησιµοποιούνται για την παραγωγή σηµάτων χρονισµού και όχι για
την καταχώρηση δεδοµένων. Γι' αυτό και η αντιµετώπισή τους ως κυκλωµάτων
απαρίθµησης παλµών µας ήταν πολύ φυσική και η ονοµατολογία τους προέκυψε ως
συνδυασµός καταχωρητών και απαριθµητών. Συγκεκριµένα, γνωρίσαµε δύο κατηγορίες
κυκλωµάτων, τους απαριθµητές δακτυλίου και τους απαριθµητές Johnson. Στους
απαριθµητές δακτυλίου, η είσοδος του πρώτου FF τροφοδοτείται από την έξοδο του
τελευταίου FF, ενώ στους απαριθµητές Johnson αυτή τροφοδοτείται από τη
συµπληρωµατική έξοδο του τελευταίου FF. Για τη δηµιουργία Ν σηµάτων χρονισµού,
χρειαζόµαστε Ν FFs για έναν απαριθµητή δακτυλίου ή Ν/2 FF και Ν πύλες AND για
έναν απαριθµητή Johnson.

ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ

Στο Κεφάλαιο αυτό µελετήσαµε όλα τα είδη των καταχωρητών. Είδαµε ότι οι
καταχωρητές, ανεξάρτητα από τον τύπο τους, είναι σύγχρονα ακολουθιακά κυκλώµατα.
Οι παράλληλοι και σειριακοί καταχωρητές χρησιµοποιούνται για την προσωρινή
αποθήκευση δεδοµένων, ενώ οι κυκλικοί καταχωρητές για τη δηµιουργία σηµάτων
χρονισµού. Οι καταχωρητές ολίσθησης χρησιµοποιούνται επίσης και για την υλοποίηση
των αριθµητικών πράξεων του πολλαπλασιασµού και της διαίρεσης αριθµών µε δυνάµεις
του 2. Οι καταχωρητές παράλληλης-εισόδου-παράλληλης-εξόδου χρησιµοποιούνται για
την παράλληλη επικοινωνία ψηφιακών µονάδων, ενώ οι καταχωρητές παράλληλης-
εισόδου-σειριακής-εξόδου και σειριακής-εισόδου-παράλληλης-εξόδου χρησιµοποιούνται
συνήθως για τη σειριακή επικοινωνία ψηφιακών µονάδων. Για τη δηµιουργία σηµάτων
χρονισµού, χρησιµοποιούνται κυκλικοί καταχωρητές ολίσθησης, δηλαδή καταχωρητές

22
στους οποίους ανακυκλώνονται κάποια συγκεκριµένα δεδοµένα. Για Ν σήµατα
χρονισµού ένας απαριθµητής δακτυλίου θα αποτελείται από Ν FFs, ενώ ένας
απαριθµητής Johnson θα αποτελείται από Ν/2 FFs και Ν πύλες AND.

ΒΙΒΛΙΟΓΡΑΦΙΑ

ΕΛΛΗΝΟΓΛΩΣΣΗ
Mano Morris M., Ψηφιακή Σχεδίαση, Εκδόσεις Παπασωτηρίου, 1992.

ΞΕΝΟΓΛΩΣΣΗ
Daniels J. D., Digital Design from Zero to One, J. Wiley & Sons, 1996.

Kleitz W., Digital Electronics: A Practical Approach, 4th Edition, Prentice Hall, 1996.

Malvino A. P., Leach D. P., Digital Principles and Applications, McGraw-Hill, 1986.

Tocci R. J., Widmer N. S., Digital Systems: Principles and Applications, Prentice Hall,
1998.

Ο∆ΗΓΟΣ ΠΕΡΑΙΤΕΡΩ ΜΕΛΕΤΗΣ

Malvino A. P., Leach D. P., Digital Principles and Applications, McGraw-Hill, 1986.

Στο Κεφάλαιο 10 του βιβλίου γίνεται µια λεπτοµερής περιγραφή όλων των τύπων των
καταχωρητών ολίσθησης, µε εκτενή αναφορά σε ολοκληρωµένα κυκλώµατα που
κυκλοφορούν στο εµπόριο.

Mano Morris M., Ψηφιακή Σχεδίαση, Εκδόσεις Παπασωτηρίου, 1992.

Στο Κεφάλαιο 7 του βιβλίου µπορείτε να βρείτε µια καλή περιγραφή όλων των
καταχωρητών.

Kleitz W., Digital Electronics: A Practical Approach, 4th Edition, Prentice Hall, 1996.

Το Κεφάλαιο 13 του βιβλίου είναι αφιερωµένο στους καταχωρητές ολίσθησης.


Παρατίθενται πολλά παραδείγµατα µε πολλά διαγράµµατα χρονισµού και δίνονται
ορισµένα πρακτικά κυκλώµατα για διαφορετικές εφαρµογές.

23
ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ

Απάντηση άσκησης αυτοαξιολόγησης 1 / Κεφάλαιο 4

Αφού στον καταχωρητή είναι αποθηκευµένη η λέξη 1010 και η σειριακή είσοδος είναι
στο λογικό 0, περιµένουµε µε κάθε αρνητική ακµή του ωρολογιακού παλµού να
ολισθαίνει ο αριθµός κατά µία θέση προς τα δεξιά και να χάνεται το δεξιό ψηφίο, ενώ το
πρώτο ψηφίο να "γεµίζει" µε 0. Αυτό παραστατικά δείχνεται στο Σχήµα 4.15(α), ενώ οι
κυµατοµορφές εισόδου-εξόδου δείχνονται στο Σχήµα 4.15(β). Ο καταχωρητής, στον
οποίο αναφερόµαστε, είναι εκείνος του Σχήµατος 4.2(α).

Αρχικά 1ος 2ος 3ος 4ος

Q 0 Q1 Q2 Q3 CLK
Αρχικά
1 0 1 0 Σειριακή 1
Είσοδος 0
1ος παλµός

0 1 0 1 Q0 1
2ος παλµός

0 0 1 0 Q1 0
3ος παλµός

0 0 0 1 Q2 1
4ος παλµός
Σειριακή
0 0 0 0 Έξοδος Q3 0

(α) (β)

Σχήµα 4.15. Ολίσθηση προς τα δεξιά του αριθµού 1010 σε καταχωρητή ολίσθησης των 4 bits.

Αν οι κυµατοµορφές εξόδου, που σχεδιάσατε, συµφωνούν µε αυτές του Σχήµατος


4.15β, τότε µπράβο σας. Έχετε κατανοήσει τον τρόπο λειτουργίας του καταχωρητή
σειριακής εισόδου – σειριακής εξόδου. Αν πάλι δεν τα καταφέρατε, µην απογοητευθείτε.
∆ιαπιστώνετε και µόνοι σας ότι πρόκειται για απλές έννοιες και απλά κυκλώµατα, τα
οποία όµως µας δυσκολεύουν, όταν προσπαθούµε να αναλύσουµε µε ακρίβεια τη
λειτουργία τους. Μελετήστε και πάλι την υποενότητα 4.1.1. Στη συνέχεια επιχειρήστε να
σχεδιάσετε τις κυµατοµορφές εξόδου αρχίζοντας από τους ωρολογιακούς παλµούς
(CLK), τη σειριακή είσοδο (η οποία είναι συνεχώς στο λογικό 0) και την κατάσταση των
FFs στη διάρκεια του 1ου παλµού, και µάλιστα πριν αυτά ενεργοποιηθούν µε την πρώτη
αρνητική ακµή. Παρατηρήστε ότι στις εξόδους των FFs ‘φαίνεται’ η λέξη
Q0Q1Q2Q3=1010. Με την έλευση της αρνητικής (ενεργού) ακµής, κάθε FF θα ‘περάσει’

24
στην έξοδό του ό,τι ‘βλέπει’ στην είσοδό του τη στιγµή εκείνη. Έτσι, το FF0 ‘βλέπει’ το 0
της σειριακής εισόδου και το ‘περνάει στην έξοδο, δηλαδή Q0=0. Την ίδια στιγµή, το FF1
‘βλέπει’ το 1 της Q0 και το ‘περνάει στην έξοδο, δηλαδή Q1=1. Προσοχή, αναφερόµαστε
στην αρνητική ακµή του 1ου παλµού και µάλιστα στα αριστερά αυτής, δηλαδή στην
κατάσταση των FFs µόλις πριν την έλευση της αρνητικής ακµής! Συνεχίζουµε µε τον ίδιο
τρόπο και για τις υπόλοιπες εξόδους Q. Ολοκληρώστε και ξαναπροσπαθήστε για την
περίπτωση που η σειριακή είσοδος είναι µόνιµα στο λογικό 1.

Απάντηση άσκησης αυτοαξιολόγησης 2 / Κεφάλαιο 4

Αν δεν υπήρχε η είσοδος CLEAR , η οποία, όταν γίνεται 0, προκαλεί την εκκαθάριση
όλων των FFs, τότε το διάγραµµα θα ήταν ίδιο µε εκείνο του Σχήµατος 4.2(δ). Η
εµφάνιση του λογικού 0 στην είσοδο CLEAR συνεπάγεται την άµεση (ασύγχρονη)
εκκαθάριση του καταχωρητή, όπως φαίνεται στο Σχήµα 4.16.

CLK
Σειριακή 1
Είσοδος D0 0

CLEAR

Q0

Q1

Q2

Q3

Σχήµα 4.16. Κυµατοµορφές εισόδου-εξόδου καταχωρητή σειριακής-εισόδου-παράλληλης-εξόδου των 4


bits.

Παρατηρούµε ότι ο πρώτος παλµός εκκαθάρισης ( CLEAR =0) εφαρµόστηκε κατά τη


διάρκεια που ο ωρολογιακός παλµός ήταν ίσος µε 1 (CLK=1), ενώ ο δεύτερος κατά τη
διάρκεια που ο ωρολογιακός παλµός ήταν ίσος µε 0 (CLK=0). Το αποτέλεσµα και στις
δύο περιπτώσεις είναι το ίδιο: η άµεση εκκαθάριση όλων των FFs. Αν καταφέρατε να
σχεδιάσετε τις σωστές κυµατοµορφές, τότε σας αξίζουν συγχαρητήρια. Αν πάλι αυτό δεν
έγινε, τότε επαναλάβετε τη µελέτη της υποενότητας 4.1.1 και την άσκηση

25
αυτοαξιολόγησης 1 / Κεφάλαιο 4 και ξαναπροσπαθήστε. Είναι θέµα χρόνου να
εξοικειωθείτε µε τον τρόπο λειτουργίας των καταχωρητών αυτών.

Απάντηση άσκησης αυτοαξιολόγησης 3 / Κεφάλαιο 4

∆ιαπιστώνουµε ότι η άσκηση αυτή µας αναγκάζει να εξετάσουµε µια διαφορετική


παράµετρο των καταχωρητών. ∆εν µας ζητάει τις κυµατοµορφές εξόδου, αλλά το
συνολικό χρόνο για τη σειριακή µεταφορά (φόρτωση ή ανάγνωση) ενός αριθµού των 8
bits. Έτσι λοιπόν για τη σειριακή µεταφορά ενός 8 bit αριθµού απαιτούνται 8
ωρολογιακοί παλµοί. Αφού η περίοδος των ωρολογιακών παλµών είναι 100ns, απαιτείται
χρόνος τουλάχιστον 800ns.
Αν δεν βρήκατε το σωστό αποτέλεσµα, εξετάστε και πάλι το Σχήµα 4.2δ και δείτε
πόσους ωρολογιακούς παλµούς χρειάζεται ένα δεδοµένο, το οποίο εισάγεται στο FF0 για
να φτάσει στο FF3. Θα διαπιστώσετε ότι χρειάζεται 4 ωρολογιακούς παλµούς. Κατ’
αντιστοιχία, αν επρόκειτο για καταχωρητή των 8 bits, 8 ωρολογιακοί παλµοί θα ήταν
απαραίτητοι. Και αφού η περίοδος των παλµών είναι 100ns, ο συνολικός χρόνος που
απαιτείται είναι 800ns.

Απάντηση άσκησης αυτοαξιολόγησης 4 / Κεφάλαιο 4

Το κύκλωµα ενός καταχωρητή παράλληλης-εισόδου-παράλληλης-εξόδου των 4 bits


µε FFs τύπου D δείχνεται στο Σχήµα 4.17(α), ενώ στο Σχήµα 4.17(β) δείχνεται ένα µόνο
από τα FFs µε τις αντίστοιχες πύλες που επηρεάζουν την είσοδό του. Η κύρια διαφορά
µεταξύ αυτού και του καταχωρητή του Σχήµατος 4.7 είναι η προσθήκη µιας πύλης OR
µετά από τις πύλες AND. Ο συνδυασµός των δύο πυλών AND και της πύλης OR,
λαµβάνοντας φυσικά υπόψη µας και την ύπαρξη της πύλης ΝΟΤ µετά την είσοδο L,
αποτελεί ουσιαστικά ένα κύκλωµα πολυπλέκτη 2 εισόδων σε 1. Έτσι, όταν E=1, γίνεται
και πάλι η παράλληλη είσοδος των δεδοµένων Ii, i=0,1,2,3, αφού οι πύλες AND G Si

δίνουν έξοδο 0 και άρα Di=Ii. Όταν E=0, οι πύλες AND G iR δίνουν πλέον έξοδο 0 µε
συνέπεια Di=Qi. Παρατηρούµε, δηλαδή, ότι, επειδή τα D FFs δεν έχουν τη δυνατότητα
µη-αλλαγής κατάστασης µε την εµφάνιση της ενεργού ακµής του ωρολογιακού παλµού,
στην πράξη ανατροφοδοτούµε τις εισόδους Qi των FFs στις αντίστοιχες εισόδους Di
αυτών, ώστε η κατάσταση του καταχωρητή να παραµείνει αµετάβλητη.

26
E

G 0S D0 Q0
I0 • G0 •
R
• G 0

• D1 Q1 •
• •

I2 • D2 Q2 •
• •

I3 D3 Q3 •

CLK •
CLEAR

(α)

L •

GiS Gi Qi
Di
Ii R FF i
G i CLK

CLEAR
(β)
Σχήµα 4.17. (α) Καταχωρητής παράλληλης-εισόδου-παράλληλης-εξόδου των 4 bits µε FFs τύπου D, (β)
ένα από τα FFs µε τις πύλες εισόδου του.

Αν απαντήσατε σωστά, τότε σας αξίζουν συγχαρητήρια. Ήταν µια δύσκολη άσκηση,
αφού έπρεπε να σκεφτούµε το θέµα της ανατροφοδότησης των εξόδων Qi στις εισόδους
Di µέσω του αντίστοιχου συνδυαστικού κυκλώµατος AND-OR. Αν από την άλλη πλευρά
δεν τα καταφέρατε, µην απογοητευθείτε. Αυτή δεν είναι από τις εύκολες ασκήσεις, όπως
ήδη το έχουµε αναφέρει. Προσπαθήστε να την κατανοήσετε, αφού πρώτα σιγουρευτείτε
ότι έχετε εµπεδώσει τον τρόπο λειτουργίας του κυκλώµατος του Σχήµατος 4.7.

Απάντηση άσκησης αυτοαξιολόγησης 5 / Κεφάλαιο 4

Αρχίζουµε την ανάλυση της λειτουργίας του κυκλώµατος (Σχήµα 4.10) από τα πλέον
προφανή. Έτσι, η είσοδος Χ1 βλέπουµε ότι συνδέεται στις εισόδους CLEAR όλων των
FFs και άρα αποτελεί την είσοδο άµεσου (ασύγχρονου) µηδενισµού αυτών. Είναι

27
φανερό, επίσης, ότι στην είσοδο Χ2 θα πρέπει να συνδεθούν οι ωρολογιακοί παλµοί CLK
για τη σύγχρονη λειτουργία του κυκλώµατος. Η συστοιχία αυτών των τεσσάρων FFs µας
θυµίζει τον καταχωρητή παράλληλης-εισόδου-παράλληλης-εξόδου του Σχήµατος 4.6.
Πράγµατι πρόκειται για έναν καταχωρητή παράλληλης-εισόδου-παράλληλης-εξόδου (Qi,
i=0,1,2,3 οι έξοδοι αυτού). Κάθε είσοδος Di όµως τροφοδοτείται από την έξοδο ενός
πολυπλέκτη 4-σε-1. Και οι τέσσερεις πολυπλέκτες ελέγχονται από τα ίδια σήµατα Ε1, Ε0.
Ας δούµε λοιπόν τι συµβαίνει για τις διαφορετικές τιµές των εισόδων Ε1, Ε0.
• Για Ε1=Ε0=1, η είσοδος 3 του κάθε πολυπλέκτη "διοχετεύεται" στην έξοδό του.
Άρα Di=Ii και συνεπώς έχουµε έναν καταχωρητή παράλληλης-εισόδου-
παράλληλης-εξόδου.
• Για Ε1=1, Ε0=0, η είσοδος 2 του κάθε πολυπλέκτη "διοχετεύεται" στην έξοδό του.
Η είσοδος 2, όµως, οδηγείται από την έξοδο του FFi+1, που βρίσκεται στα δεξιά του
FFi που εξετάζουµε, δηλαδή Di=Qi+1. Για την περίπτωση του FF3, επειδή στα δεξιά
του δεν υπάρχει άλλο FF, η είσοδος 2 αποτελεί ουσιαστικά τη σειριακή είσοδο του
κυκλώµατος. Άρα, στην περίπτωση αυτή έχουµε έναν καταχωρητή σειριακής
ολίσθησης των δεδοµένων προς τα αριστερά. Χ4 είναι η σειριακή είσοδος και Q0
είναι η σειριακή έξοδος. Επίσης, υπάρχει η δυνατότητα παράλληλης εξόδου των
δεδοµένων, αφού οι έξοδοι Qi των FFs είναι διαθέσιµες.
• Για Ε1=0, Ε0=1, η είσοδος 1 του κάθε πολυπλέκτη "διοχετεύεται" στην έξοδό του
και κατά συνέπεια στην αντίστοιχη είσοδο του D FF. Η είσοδος 1, όµως,
τροφοδοτείται από την έξοδο του FFi-1, που βρίσκεται στα αριστερά του FFi,
δηλαδή Di=Qi-1. Για την περίπτωση του FF0, το οποίο δεν έχει άλλο προς τα
αριστερά του, το σήµα X3 αποτελεί και τη σειριακή είσοδο αυτού. Άρα, στην
περίπτωση αυτή έχουµε έναν καταχωρητή ολίσθησης των δεδοµένων προς τα
δεξιά. Χ3 είναι η σειριακή είσοδος και Q3 η σειριακή έξοδος του καταχωρητή. Και
αφού οι έξοδοι Qi όλων των FFs είναι διαθέσιµες, καταλαβαίνουµε ότι το κύκλωµα
έχει επιπλέον τη δυνατότητα παράλληλης εξόδου των δεδοµένων.
• Τέλος, για Ε1=Ε0=0, η είσοδος 0 κάθε πολυπλέκτη "διοχετεύεται" στην έξοδό του.
Και επειδή στην είσοδο 0 συνδέεται η έξοδος του αντίστοιχου FF, θα έχουµε Di=Qi.
∆ηλαδή, ο καταχωρητής διατηρεί τα δεδοµένα που υπάρχουν αποθηκευµένα σ'
αυτόν.
Συµπεραίνουµε, εποµένως, ότι το κύκλωµα του Σχήµατος 4.10 είναι ένας
καταχωρητής που συνδυάζει τις δυνατότητες όλων των τύπων καταχωρητών που

28
γνωρίσαµε στην ενότητα 4.1. Πρόκειται, δηλαδή, για έναν αµφίδροµο καταχωρητή
παράλληλης-εισόδου-παράλληλης-εξόδου, µε δυνατότητα σειριακής ολίσθησης προς τα
δεξιά και προς τα αριστερά.
Αν προσδιορίσατε το σωστό τρόπο λειτουργίας του κυκλώµατος, τότε έχετε
κατανοήσει απόλυτα τους καταχωρητές και µπορείτε να συνεχίσετε τη µελέτη του
υπόλοιπου κεφαλαίου. Αν πάλι αυτό δεν έγινε, τότε φαίνεται πως θα πρέπει να
επαναλάβετε την ενότητα 4.1 και ειδικότερα την υποενότητα 4.1.4. Απαραίτητη, επίσης
για την άσκηση αυτή είναι η εξοικείωση µε τον τρόπο λειτουργίας των πολυπλεκτών.
Ανατρέξτε στο βιβλίο της Ψηφιακής Σχεδίασης Ι, όπου περιγράφονται τα αντίστοιχα
συνδυαστικά Κυκλώµατα.

Απάντηση άσκησης αυτοαξιολόγησης 6 / Κεφάλαιο 4

Με δύο FFs µπορούµε να κατασκευάσουµε έναν απαριθµητή mod-4, πράγµα που το


χρειαζόµαστε, αφού όλες οι κυµατοµορφές του Σχήµατος 4.11(γ) έχουν περίοδο 4πλάσια
αυτής των ωρολογιακών παλµών. Αυτό που µένει είναι να προτείνουµε κύκλωµα, το
οποίο να δίνει λογικό 1 µόνο µία φορά στη διάρκεια των τεσσάρων παλµών του
ρολογιού. Με άλλα λόγια, χρειαζόµαστε έναν αποκωδικοποιητή 2 γραµµών σε 4. Το
κύκλωµα που προκύπτει δίνεται στο Σχήµα 4.18(α).
Q 0 Q 1 Q2 Q3

CLK

Αποκωδικοποιητής
2-σε-4 Α0

Α0 Α1 Α1

Απαριθµητής
CLK
mod-4 (β)

Q0 Q1 Q2 Q3
(α)

Α'1Α'0 Α'1Α0 Α1Α'0 Α1Α0

(γ)

Σχήµα 4.18. (α) Συνδυασµός απαριθµητή και αποκωδικοποιητή για τη δηµιουργία 4 σηµάτων χρονισµού,
(β) Κυµατοµορφές εξόδου του απαριθµητή, (γ) Ο αποκωδικοποιητής 2-σε-4.

29
Ο απαριθµητής αποτελείται από 2 FFs. Αν αυτά είναι τύπου JK αρνητικής ακµής
πυροδότησης, τότε J0=K0=1 και J1=K1=Α0, όπου Α0, Α1 οι έξοδοι των FFs, µε Α0 το LSB.
Οι κυµατοµορφές εξόδου δείχνονται στο Σχήµα 4.18(β). Ο αποκωδικοποιητής 2 γραµµών
σε 4 αποτελείται ουσιαστικά από 4 πύλες AND, όπως δείχνεται στο Σχήµα 4.18(γ).
Παρατηρούµε ότι για τη δηµιουργία 4 σηµάτων χρονισµού χρειαστήκαµε 2 FFs και 4
πύλες AND των 2 εισόδων η καθεµιά. Ο αντίστοιχος απαριθµητής δακτυλίου αποτελείται
από 4 FFs µόνο (Σχήµα 4.11).
Αν δεν καταφέρατε να απαντήσετε σωστά αυτή την άσκηση, µην απογοητευθείτε. ∆εν
πρόκειται για κάποιο πολύπλοκο κύκλωµα, αλλά απλά έχει την ιδιαιτερότητα ότι απαιτεί
το συνδυασµό δύο διαφορετικών τύπων κυκλωµάτων, δηλαδή ενός συνδυαστικού (του
αποκωδικοποιητή) και ενός ακολουθιακού (δηλαδή του απαριθµητή). Ανατρέξτε στο
βιβλίο της Ψηφιακής Σχεδίασης Ι, για να ξαναθυµηθείτε τους αποκωδικοποιητές, καθώς
και στο Κεφάλαιο 3 του παρόντος βιβλίου, για να ξαναθυµηθείτε τους απαριθµητές.
Κατόπιν, προσπαθήστε και πάλι να λύσετε την άσκηση. Τη φορά αυτή δοκιµάστε να
σχεδιάσετε το κύκλωµα για τη δηµιουργία 8 σηµάτων χρονισµού. Είναι φανερό ότι στην
περίπτωση αυτή θα χρειαστείτε 3 FFs και έναν αποκωδικοποιητή 3-σε-8.

Απάντηση άσκησης αυτοαξιολόγησης 7 / Κεφάλαιο 4

Εφόσον πρέπει να δηµιουργήσουµε 6 σήµατα χρονισµού, θα χρειαστούµε 3 FFs για το


κύκλωµα του απαριθµητή Johnson. Το κύκλωµα αυτό δείχνεται στο Σχήµα 4.19(α) και οι
αντίστοιχες κυµατοµορφές εξόδου στο Σχήµα 4.19(β). Για την παραγωγή των τελικών 6
σηµάτων χρονισµού θα χρησιµοποιήσουµε επιπλέον 6 πύλες AND των δύο εισόδων η
καθεµιά, κατ' αντιστοιχία µε την περίπτωση του Σχήµατος 4.13. Αν συµβολίσουµε µε X1,
X2, X3, X4, X5, X6 καθεµία από τις πύλες AND, τότε θα έχουµε X1=Q2’Q0’, X2=Q2Q1’,
X3=Q1Q0’, X4=Q2Q0, X5=Q2’Q1 και X6=Q1’Q0.
Αν απαντήσατε σωστά, τότε έχετε κατανοήσει τον απαριθµητή Johnson.
Συγχαρητήρια. Αν όµως δεν δώσατε τη σωστή απάντηση, τότε θα πρέπει να
ξαναπροσπαθήσετε. Μελετήστε και πάλι την υποενότητα 4.2.2, επιµένοντας στην
κατανόηση των κυµατοµορφών 4.12γ και 4.13.

30
J2 Q2 J1 Q1 J0 Q0

K2 Q'2 K1 Q'1 K0 Q'0

CLK • • •

(α)

CLK

Q2

Q1

Q0

(β)

Σχήµα 4.19. (α) Απαριθµητής Johnson για τη δηµιουργία 6 σηµάτων χρονισµού, (β) κυµατοµορφές
εξόδου του απαριθµητή.

Απάντηση άσκησης αυτοαξιολόγησης 8 / Κεφάλαιο 4

Για τη δηµιουργία 5 σηµάτων χρονισµού χρησιµοποιούµε µια παραλλαγή του


απαριθµητή Johnson για 6 σήµατα χρονισµού, στον οποίο αντί να τροφοδοτήσουµε την
είσοδο Κ του πρώτου FF από την έξοδο του τελευταίου FF, την τροφοδοτούµε από την
έξοδο του προτελευταίου. Στο συµπέρασµα αυτό καταλήξαµε µε τη βοήθεια του
Σχήµατος 4.19 για την περίπτωση του απαριθµητή Johnson για 6 σήµατα χρονισµού.
Εκεί παρατηρούµε ότι, εάν το Q2 γίνει 0 κατά µία περίοδο του ρολογιού νωρίτερα, τότε
το Q1 γίνεται και αυτό 0 κατά µία περίοδο του ρολογιού νωρίτερα, όπως τελικά και το
Q0. Αυτό σηµαίνει ότι τα Q2, Q1, Q0 είναι όλα 1 µόνο για δύο περιόδους του ρολογιού,
αλλά εξακολουθούν να είναι 0 για τρεις περιόδους του ρολογιού. Εποµένως, ο
απαριθµητής διαιρεί τώρα δια 5 και όχι δια 6, όπως προηγουµένως. Άρα, χρειάζεται να
τροφοδοτήσουµε την είσοδο Κ2 του πρώτου αριστερά FF από την έξοδο του προ-
τελευταίου FF, αντί του τελευταίου. Το κύκλωµα και οι κυµατοµορφές εξόδου δείχνονται
στο Σχήµα 4.20. Οι 5 πύλες AND, που χρειάζονται για την τελική παραγωγή των 5
σηµάτων χρονισµού, είναι οι X1, X2, X3, X4, X5, όπου X1=Q2’Q0’, X2=Q2Q1’, X3=Q1Q0’,
X4=Q1Q0, X5=Q1’Q0.
Γενικά, το κύκλωµα για τη δηµιουργία Ν-1 σηµάτων χρονισµού, όπου Ν άρτιος,
προκύπτει από το αντίστοιχο κύκλωµα δηµιουργίας Ν σηµάτων, τροφοδοτώντας, όµως,

31
την είσοδο Κ του πρώτου FF από την έξοδο Q του προτελευταίου FF, αντί του
τελευταίου FF.

J2 Q2 J1 Q1 • J0 Q0

K2 Q'2 K1 Q'1 K0 Q'0

CLK • •

(α)

CLK

Q2

Q1

Q0

(β)
Σχήµα 4.20. (α) Απαριθµητής Johnson για τη δηµιουργία 5 σηµάτων χρονισµού, (β) κυµατοµορφές
εξόδου του απαριθµητή.
Αν απαντήσατε σωστά την άσκηση αυτή, τότε σας αξίζουν συγχαρητήρια. Αν ωστόσο
δεν τα καταφέρατε, µην απογοητευθείτε. ∆εν είναι από τις εύκολες ασκήσεις και κυρίως
η απόδειξή της δεν βασίστηκε σε κάποια από τις γνωστές διαδικασίες σχεδίασης
σύγχρονων ακολουθιακών κυκλωµάτων. Μελετήστε και πάλι τον απαριθµητή Johnson
και ξαναπροσπαθήστε. Θα δείτε ότι τώρα θα τα καταφέρετε. ∆οκιµάστε µάλιστα να
σχεδιάσετε ένα αντίστοιχο κύκλωµα, το οποίο να δηµιουργεί 7 σήµατα χρονισµού και
αναλύστε το, επαληθεύοντας την ορθότητα της απάντησής σας.
ΑΠΟ∆ΟΣΗ ΑΓΓΛΙΚΩΝ ΟΡΩΝ ΣΤΗΝ ΕΛΛΗΝΙΚΗ
Arithmetic shift Αριθµητική ολίσθηση
asynchronous Ασύγχρονος
Bidirectional Αµφίδροµος, διπλής κατεύθυνσης
Circular shift Κυκλική ολίσθηση
Full adder Πλήρης αθροιστής
Logical shift Λογική ολίσθηση
LSB, Least Significant Bit λιγότερο σηµαντικό ψηφίο
MSB, Most Significant Bit περισσότερο σηµαντικό ψηφίο
Register Καταχωρητής
Ring counter Απαριθµητής δακτυλίου
Serial adder Σειριακός αθροιστής
Serial in Σειριακή είσοδος
Serial out Σειριακή έξοδος
Shift counter Απαριθµητής ολίσθησης
shift registers καταχωρητής ολίσθησης
Switch tail Αντιστροφή ουράς
synchronous σύγχρονος

32
ΚΕΦΑΛΑΙΟ 5

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΗΧΑΝΕΣ ΚΑΤΑΣΤΑΣΕΩΝ

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ……………………………………………………………………...3

ENOTHTA 5.1. ∆ΙΑΓΡΑΜΜΑΤΑ ΑΛΓΟΡΙΘΜΙΚΩΝ ΜΗΧΑΝΩΝ ΚΑΤΑΣΤΑΣΕΩΝ……………5

ENOTHTA 5.2. ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΜΟΝΑ∆ΑΣ ΕΛΕΓΧΟΥ……………………………………….11


5.2.1. ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΜΟΝΑ∆ΑΣ ΕΛΕΓΧΟΥ ΜΕ FFS ΤΥΠΟΥ JK ...............................................................15
5.2.2. ΥΛΟΠΟΙΗΣΗ ΜΟΝΑ∆ΑΣ ΕΛΕΓΧΟΥ ΜΕ FFS ΤΥΠΟΥ D ΚΑΙ ΑΠΟΚΩ∆ΙΚΟΠΟΙΗΤΗ .................................18
5.2.3. ΥΛΟΠΟΙΗΣΗ ΜΟΝΑ∆ΑΣ ΕΛΕΓΧΟΥ ΜΕ ΕΝΑ FF ΤΥΠΟΥ D ΑΝΑ ΚΑΤΑΣΤΑΣΗ ......................................20
ΒΙΒΛΙΟΓΡΑΦΙΑ…………………………………………………………………………………………24

ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ……………………………………………..24

ΑΠΟ∆ΟΣΗ ΑΓΓΛΙΚΩΝ ΟΡΩΝ ΣΤΗΝ ΕΛΛΗΝΙΚΗ………………………………………………..31

1
ΚΕΦΑΛΑΙΟ 5

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΗΧΑΝΕΣ ΚΑΤΑΣΤΑΣΕΩΝ

Σκοπός
Στο Κεφάλαιο αυτό αντιµετωπίζουµε τα σύγχρονα ακολουθιακά κυκλώµατα ως µηχανές
καταστάσεων και ασχολούµαστε µε τη σχεδίαση τέτοιων κυκλωµάτων. Τα κυκλώµατα
αυτά αποτελούν συνήθως τη µονάδα ελέγχου ενός ψηφιακού συστήµατος, δηλαδή το
κύκλωµα εκείνο που συντονίζει τη λειτουργία του όλου συστήµατος. Στόχος µας είναι
να γνωρίσουµε τη διαδικασία σχεδίασης τέτοιων κυκλωµάτων, καθώς και τις
διαφορετικές τεχνικές υλοποίησής τους.

Προσδοκώµενα αποτελέσµατα
Μετά τη µελέτη του Κεφαλαίου θα είστε σε θέση να:
• σχεδιάζετε διαγράµµατα αλγοριθµικών µηχανών καταστάσεων
• σχεδιάζετε σύγχρονα ακολουθιακά κυκλώµατα µεγάλης πολυπλοκότητας,
αντιµετωπίζοντας αυτά ως µηχανές καταστάσεων
• υλοποιείτε µονάδες ελέγχου ψηφιακών συστηµάτων µε τρεις διαφορετικούς τρόπους

Έννοιες κλειδιά
• µηχανή καταστάσεων
• µονάδα ελέγχου
• διάγραµµα αλγοριθµικής µηχανής καταστάσεων
• διάγραµµα καταστάσεων
• σύγχρονο ακολουθιακό κύκλωµα

2
ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ

Στα προηγούµενα Κεφάλαια γνωρίσαµε τα FFs και µάθαµε να σχεδιάζουµε σύγχρονα


ακολουθιακά κυκλώµατα, όπως απαριθµητές και καταχωρητές. Με τα κυκλώµατα αυτά
µπορούµε να κάνουµε διάφορες αριθµητικές ή λογικές πράξεις στα δεδοµένα. Για
παράδειγµα, να αυξήσουµε ή να µειώσουµε την τιµή ενός αριθµού κατά 1, πράγµα που
µπορεί να γίνει µε τη βοήθεια ενός προσθετικού (count-up) ή αφαιρετικού (count-down)
απαριθµητή. Μπορούµε, επίσης, να πολλαπλασιάσουµε ή να διαιρέσουµε έναν αριθµό
µε το 2, ολισθαίνοντας κατά µία θέση το περιεχόµενο ενός καταχωρητή προς τα
αριστερά ή τα δεξιά, αντίστοιχα. Επίσης, στο βιβλίο της Ψηφιακής Σχεδίασης Ι έχουµε
ασχοληθεί µε όλα τα συνδυαστικά κυκλώµατα, τα οποία µπορούµε να
χρησιµοποιήσουµε, για να εκτελέσουµε και άλλες πράξεις, όπως για παράδειγµα
πρόσθεση ή αφαίρεση δύο αριθµών, σύγκριση αριθµών, κ.ά. Γενικά, είµαστε σε θέση να
σχεδιάζουµε κυκλώµατα για την επεξεργασία δεδοµένων. Σ' ένα ψηφιακό σύστηµα, τα
κυκλώµατα αυτού του είδους αποτελούν τη λεγόµενη µονάδα δεδοµένων (data unit) του
συστήµατος.
Εκτός, όµως, από τη µονάδα δεδοµένων σ' ένα ψηφιακό σύστηµα πρέπει να υπάρχει
και η µονάδα ελέγχου (control unit), το κύκλωµα εκείνο που συντονίζει την εκτέλεση
των διαφόρων πράξεων και λειτουργιών. Η µονάδα ελέγχου είναι στην πράξη ένα
σύγχρονο ακολουθιακό κύκλωµα1, οι καταστάσεις του οποίου αποτελούν τα σήµατα
ελέγχου προς τη µονάδα δεδοµένων. Το γενικό διάγραµµα ενός σύγχρονου ψηφιακού
συστήµατος, το οποίο αποτελείται από τη µονάδα ελέγχου και τη µονάδα δεδοµένων,
δείχνεται στο Σχήµα 5.1.

Είσοδος Σήµατα ελέγχου


Κατάστασης ΜΟΝΑ∆Α
ΕΛΕΓΧΟΥ ΜΟΝΑ∆Α
(ΜΗΧΑΝΗ ∆εδοµένα
∆Ε∆ΟΜΕΝΩΝ
Εντολές ΚΑΤΑΣΤΑΣΕΩΝ) Εισόδου ∆εδοµένα
Εισόδου Εξόδου

CLOCK

Σχήµα 5.1. Γενικό διάγραµµα ενός σύγχρονου ψηφιακού συστήµατος

1
Υπενθυµίζεται ότι σ' ένα σύγχρονο σύστηµα όλα τα FFs τροφοδοτούνται µε το ίδιο (κοινό)
ρολόι και οι είσοδοι PRESET και CLEAR δεν χρησιµοποιούνται, παρά µόνο για την αρχική
εκκίνηση (initialization) του συστήµατος.

3
Η µονάδα ελέγχου είναι εκείνη που συντονίζει την έναρξη ή τη λήξη κάποιων
ενεργειών της µονάδας δεδοµένων, ελέγχει τους δείκτες κατάστασης, π.χ. αν το
αποτέλεσµα µιας πράξης είναι 0, και αποφασίζει για τις επόµενες ενέργειες ανάλογα µε
τις περιστάσεις. ∆έχεται στις εισόδους της τις εντολές, οι οποίες καθορίζουν τον τρόπο
λειτουργίας της, καθώς και τις καταστάσεις, οι οποίες προκύπτουν από τη µονάδα
δεδοµένων. Οι εντολές εισόδου µπορεί να προέρχονται από κάποιο άλλο ψηφιακό
υποσύστηµα ή από το χρήστη, ο οποίος καθορίζει τον τρόπο λειτουργίας, π.χ. Run/Halt,
Normal/Turbo, κ.ά. Οι είσοδοι κατάστασης επιτρέπουν στη µονάδα ελέγχου να
προσαρµόζει τη συµπεριφορά της ανάλογα µε την κατάσταση της µονάδας δεδοµένων,
π.χ. αποτέλεσµα µηδέν, αποτέλεσµα αρνητικό, υπερχείλιση, µνήµη πλήρης, κ.ά.
Το βασικό χαρακτηριστικό του συστήµατος του Σχήµατος 5.1 είναι ότι τόσο η
µονάδα ελέγχου, όσο και η µονάδα δεδοµένων χρησιµοποιούν το ίδιο (κοινό) ρολόι για
το συγχρονισµό τους.
Ο όρος µηχανή καταστάσεων (state machine) αναφέρεται στα ακολουθιακά
κυκλώµατα. Πρόκειται για µια διαφορετική ονοµασία των ακολουθιακών κυκλωµάτων.
Στο παρόν Κεφάλαιο θα ασχοληθούµε µε τη σχεδίαση τέτοιων κυκλωµάτων, δηλαδή
µηχανών καταστάσεων. Η µονάδα ελέγχου πρέπει να σχεδιαστεί ως µηχανή
καταστάσεων. Η µονάδα δεδοµένων συνήθως αντιµετωπίζεται σε ένα πιο υψηλό
επίπεδο, αφού αποτελείται από καταχωρητές, απαριθµητές, αθροιστές, µνήµη
ανάγνωσης/εγγραφής, κ.ά. Θα αναρωτηθείτε, βέβαια, γιατί θα πρέπει να ασχοληθούµε
και πάλι µε τη σχεδίαση σύγχρονων ακολουθιακών κυκλωµάτων ως µηχανών
καταστάσεων, αφού ήδη το έχουµε κάνει στο Κεφάλαιο 2. Ο λόγος είναι η
πολυπλοκότητα των κυκλωµάτων που εξετάζουµε τώρα, δηλαδή των µονάδων ελέγχου.
Ο τρόπος σχεδίασης σύγχρονων ακολουθιακών κυκλωµάτων, που µάθαµε στο
Κεφάλαιο 2, µε τους πίνακες διέγερσης είναι δύσκολο να εφαρµοστεί εδώ, όπου έχουµε
µεγάλο πλήθος καταστάσεων και εισόδων. Με εξαίρεση τα πολύ απλά κυκλώµατα
ελέγχου, ο τρόπος αυτός είναι πρακτικά µη εφαρµόσιµος και γι' αυτό στο παρόν
Κεφάλαιο θα γνωρίσουµε άλλες τεχνικές. Στην ενότητα 5.1 θα παρουσιάσουµε τα
διαγράµµατα αλγοριθµικών µηχανών καταστάσεων, ενώ στην ενότητα 5.2 θα
ασχοληθούµε µε τους διαφορετικούς τρόπους υλοποίησης τέτοιων διαγραµµάτων.

4
ENOTHTA 5.1. ∆ΙΑΓΡΑΜΜΑΤΑ ΑΛΓΟΡΙΘΜΙΚΩΝ ΜΗΧΑΝΩΝ
ΚΑΤΑΣΤΑΣΕΩΝ

Στην ενότητα αυτή θα γνωρίσουµε τα διαγράµµατα αλγοριθµικών µηχανών


καταστάσεων, δηλαδή εκείνα τα διαγράµµατα που περιγράφουν µε λεπτοµερή τρόπο τη
συµπεριφορά µιας µηχανής καταστάσεων. Μετά τη µελέτη της παρούσας ενότητας θα
είστε σε θέση να αναλύετε και να σχεδιάζετε τέτοια διαγράµµατα αλγοριθµικών
µηχανών καταστάσεων, απεικονίζοντας έτσι µε ένα συστηµατικό τρόπο τα βήµατα που
πρέπει να ακολουθηθούν από µία µονάδα ελέγχου για την επίτευξη των επιθυµητών
λειτουργιών.
Ένα διάγραµµα αλγοριθµικής µηχανής καταστάσεων (ASM, Algorithmic State
Machine) είναι ένας γραφικός προσδιορισµός της συµπεριφοράς της µηχανής
καταστάσεων. Μοιάζει, δηλαδή, περισσότερο µε ένα διάγραµµα ροής, το οποίο
χρησιµοποιούµε κατά τον προγραµµατισµό, παρά µε ένα διάγραµµα καταστάσεων. Το
διάγραµµα ASM είναι ένας ειδικός τύπος διαγράµµατος ροής, κατάλληλο για την
περιγραφή των ακολουθιακών λειτουργιών σ' ένα ψηφιακό σύστηµα. Όπως και ένα
συµβατικό διάγραµµα ροής περιγράφει τη σειρά των βηµάτων και αποφάσεων για την
επίτευξη ενός συγκεκριµένου στόχου, για παράδειγµα τον πολλαπλασιασµό δύο
αριθµών. Όµως, ενώ ένα συµβατικό διάγραµµα ροής δεν ενδιαφέρεται για τη χρονική
συσχέτιση των βηµάτων αυτών, ένα διάγραµµα ASM περιγράφει τόσο τη σειρά των
γεγονότων, όσο και τη χρονική σχέση µεταξύ των καταστάσεων, καθώς και τα γεγονότα
που συµβαίνουν κατά τη µετάβαση από τη µία κατάσταση στην επόµενη. Τα βασικά
στοιχεία, που απαρτίζουν ένα διάγραµµα ASM, φαίνονται στο Σχήµα 5.2 και είναι τα
ακόλουθα:
y Το στοιχείο κατάστασης (state box). Ένα διάγραµµα ASM έχει ένα µόνο στοιχείο
κατάστασης ανά κατάσταση. Συνηθίζουµε να συµβολίζουµε το στοιχείο
κατάστασης µε ένα ορθογώνιο και να σηµειώνουµε το όνοµα και τον κώδικα της
κατάστασης έξω από αυτό, αριστερά και δεξιά αντίστοιχα. Στο εσωτερικό του
στοιχείου σηµειώνουµε τον κατάλογο των ενεργειών, δηλ. τις πράξεις των
καταχωρητών ή τα σήµατα εξόδου, τα οποία ενεργοποιούνται, όταν ο έλεγχος
βρίσκεται στη συγκεκριµένη κατάσταση. Στο Σχήµα 5.2α΄ δίνεται ένα
παράδειγµα ενός στοιχείου κατάστασης. Αυτό ονοµάζεται S0 και έχει το δυαδικό

5
κώδικα 00. Όταν ο έλεγχος βρεθεί στο στοιχείο αυτό, τότε ο καταχωρητής2 Α θα
µηδενιστεί και ο καταχωρητής Β θα αυξηθεί κατά 1. Στο Κεφάλαιο 2 γνωρίσαµε
τα διαγράµµατα καταστάσεων. Αυτά τα συµβολίζαµε ως µικρούς κύκλους, στους
οποίους καταλήγουν ή αναχωρούν γραµµές (τόξα) προς άλλους κύκλους
(καταστάσεις). Η κύρια διαφορά, λοιπόν, µεταξύ ενός στοιχείου κατάστασης και
µιας κατάστασης ενός διαγράµµατος καταστάσεων είναι ότι το στοιχείο
κατάστασης έχει µία µοναδική έξοδο (σε αντίθεση µε την κατάσταση που µπορεί
να έχει τόσες εξόδους, όσες είναι οι διαφορετικές είσοδοι). Αυτή αντιπροσωπεύει
τη µετάβαση στην επόµενη κατάσταση και, όπως είδαµε, συµβολίζεται µε ένα
τόξο, το οποίο "φεύγει" από το στοιχείο. Το τόξο αυτό οδηγεί σε ένα και µόνο
στοιχείο κατάστασης ή σε ένα στοιχείο απόφασης (decision box).
y Το στοιχείο απόφασης (decision box). Είναι το στοιχείο, το οποίο µας δίνει τη
δυνατότητα εναλλακτικών µεταβάσεων, ανάλογα µε τη συνθήκη που
αναγράφεται σ' αυτό. Η συνθήκη είναι συνήθως µια λογική συνάρτηση, στην
οποία εµπλέκονται οι µεταβλητές εισόδου της ASM. Αν η τιµή της λογικής
συνάρτησης είναι αληθής, τότε επιλέγεται η έξοδος 1. Σε διαφορετική περίπτωση,
επιλέγεται η έξοδος 0. Για παράδειγµα, στο Σχήµα 5.2β΄ αν Α=1, τότε η
µετάβαση θα γίνει προς την έξοδο 1, ενώ αν Α=0, τότε θα ακολουθηθεί η άλλη
διαδροµή. Η έξοδος ενός στοιχείου απόφασης οδηγεί σε ένα νέο στοιχείο
κατάστασης ή σ' ένα άλλο στοιχείο απόφασης. Γίνεται φανερό ότι, όταν µία
κατάσταση οδηγεί σε περισσότερες από δύο επόµενες καταστάσεις, τότε
απαιτούνται πολλά στοιχεία απόφασης το ένα µετά το άλλο, µε διαφορετικές
συνθήκες (λογικές εκφράσεις) το καθένα.
y Το στοιχείο εξόδου από συνθήκη (conditional output box or conditional box). Το
στοιχείο αυτό τοποθετείται πριν την έξοδο ενός στοιχείου απόφασης και

2
Στα ψηφιακά συστήµατα, και κατ' επέκταση στα υπολογιστικά συστήµατα, συνηθίζουµε να
χρησιµοποιούµε τον όρο “καταχωρητής” µε την ευρύτερη έννοια, στην οποία
συµπεριλαµβάνονται οι καταχωρητές αποθήκευσης, οι καταχωρητές ολίσθησης, οι
απαριθµητές, ακόµη και τα µεµονωµένα FFs (καταχωρητές του 1 bit). Οι πράξεις των
καταχωρητών συµβολίζονται συνήθως ως εξής:
Α←0 Εκκαθάριση του καταχωρητή Α.
Α ← Α+1 Αύξηση της τιµής του καταχωρητή Α κατά 1.
Α ← Α−1 Μείωση της τιµής του καταχωρητή Α κατά 1.
Α ← Α+Β Πρόσθεση της τιµής του καταχωρητή Β στον καταχωρητή Α.
Α←Β Μεταφορά της τιµής του καταχωρητή Β στον καταχωρητή Α.

6
περιγράφει τις πράξεις των καταχωρητών ή τα σήµατα εξόδου, που
ενεργοποιούνται, όταν η συνθήκη είναι αληθής. Το στοιχείο αυτό το συναντάµε
µόνο στα διαγράµµατα ASM, και όχι στα συµβατικά διαγράµµατα ροής. Μοιάζει
µε το στοιχείο κατάστασης, ως προς τον τύπο των ενεργειών που πρέπει να
εκτελεστούν. Η ουσιαστική διαφορά του, όµως, είναι ότι οι ενέργειες που
περιγράφονται εκτελούνται στη διάρκεια του ίδιου κύκλου ρολογιού, στον οποίο
ανήκει το στοιχείο απόφασης, δηλαδή εκτελούνται στη διάρκεια της ίδιας
κατάστασης, από την οποία παίρνει είσοδο. Για παράδειγµα, το τµήµα του
διαγράµµατος ASM του Σχήµατος 5.2γ΄ µας λεει ότι, εφόσον η συνθήκη Α=1
είναι αληθής, τότε - και στη διάρκεια του ίδιου ωρολογιακού παλµού, κατά τον
οποίο έγινε ο έλεγχος της συνθήκης - ο καταχωρητής Β µηδενίζεται και ο
καταχωρητής C µειώνεται κατά 1. Μετά από την εκτέλεση αυτών των ενεργειών,
ο έλεγχος πηγαίνει στην επόµενη κατάσταση, δηλαδή στο επόµενο στοιχείο
κατάστασης στο διάγραµµα ASM.
είσοδος στη
κατάσταση

όνοµα κώδικας S0 00
κατάστασης κατάστασης
A ← 0
κατάλογος
ενεργειών
B ← B +1

έξοδος από
την κατάσταση (α')
(α)

έξοδος όταν η
έξοδος όταν η
συνθήκη είναι
συνθήκη είναι 0 1
ψευδής
0 1 αληθής A
Συνθήκη

(β) (β')
έξοδος από
στοιχείο απόφασης

0 1
A
κατάλογος ενεργειών

B←0
έξοδος C ← C −1

(γ')
(γ)

Σχήµα 5.2. Σύµβολα των βασικών στοιχείων των διαγραµµάτων ASM: (α, α΄) σύµβολο και παράδειγµα
στοιχείου κατάστασης, (β, β΄) σύµβολο και παράδειγµα στοιχείου απόφασης, (γ, γ΄)
σύµβολο και παράδειγµα στοιχείου εξόδου από συνθήκη.

7
Έχοντας ολοκληρώσει την παρουσίαση των στοιχείων, τα οποία συνθέτουν ένα
διάγραµµα ASM, θα ήταν χρήσιµο να διευκρινίσουµε τα εξής:
1. Κάθε στοιχείο κατάστασης µαζί µε τα πιθανά στοιχεία απόφασης ή και στοιχεία
εξόδου από συνθήκη αποτελούν ένα τµήµα του διαγράµµατος ASM (ASM block),
το χαρακτηριστικό του οποίου είναι ότι όλες οι ενέργειες, που περικλείονται σ'
αυτό, εκτελούνται στη διάρκεια της ίδιας περιόδου του ρολογιού. Κάθε τέτοιο
τµήµα έχει µόνο µία είσοδο και µία ή περισσότερες εξόδους, ανάλογα µε τα
στοιχεία απόφασης που πιθανόν περιέχει. Ένα παράδειγµα ενός τέτοιου τµήµατος
ASM δείχνεται στο Σχήµα 5.3α. Όλες οι ενέργειες, που φαίνονται στα στοιχεία
που περικλείονται στο τµήµα µε τις διακεκοµµένες γραµµές, εκτελούνται στη
διάρκεια της κατάστασης S0, δηλαδή στη διάρκεια της ίδιας περιόδου των
ωρολογιακών παλµών (Σχήµα 5.3β).

S0 00
L←x
R← y
A ← A −1 Παρούσα Επόµενη
κατάσταση S0 κατάσταση
S1 ή S2 ή S3

0 1
K=A+L⋅R (β)

00 K=1 11
0 1
L
KL=00
KL=01

R←0 01 10

S1 01 S2 10 S3 11
(γ)

(α)
Σχήµα 5.3. (α) Τµήµα διαγράµµατος ASM, (β) ωρολογιακοί παλµοί χρονισµού της µηχανής
καταστάσεων, (γ) διάγραµµα καταστάσεων.
Το αντίστοιχο διάγραµµα καταστάσεων, όπως το γνωρίσαµε στο Κεφάλαιο 2,
δείχνεται στο Σχήµα 5.3γ. Το διάγραµµα καταστάσεων µας δείχνει τις συνθήκες,
υπό τις οποίες συµβαίνει µία µετάβαση, αλλά δεν µας δείχνει τις ενέργειες που
πρέπει να εκτελεστούν στη διάρκεια µιας κατάστασης.

8
2. ∆εν είναι απαραίτητο µετά από κάθε στοιχείο κατάστασης να ακολουθεί ένα
στοιχείο απόφασης. Για παράδειγµα, δείτε το διάγραµµα ASM του Σχήµατος 5.4α,
,το οποίο αντιστοιχεί σ' έναν απαριθµητή mod-4, ο οποίος απαριθµεί συνεχώς.
3. ∆εν είναι απαραίτητο µετά από κάθε στοιχείο απόφασης να ακολουθεί ένα
στοιχείο εξόδου από συνθήκη. Για παράδειγµα, δείτε το Σχήµα 5.3α, όπου για Κ=1
µεταβαίνουµε στην επόµενη κατάσταση S3, ενώ για KL=01 µεταβαίνουµε στην
κατάσταση S2. Ένα πιο πρακτικό παράδειγµα είναι αυτό του Σχήµατος 5.4β.
Πρόκειται για τον απαριθµητή mod-4, ο οποίος όµως αρχίζει την απαρίθµηση από
τη στιγµή που ο διακόπτης Ε γίνει 1.
4. Οι ενέργειες (λειτουργίες, πράξεις), που περιγράφονται σ' ένα στοιχείο
κατάστασης ή στοιχείο εξόδου από συνθήκη, εκτελούνται στη µονάδα δεδοµένων.
Η αλλαγή από τη µια κατάσταση στην επόµενη γίνεται στη µονάδα ελέγχου.

S0 00 S0 00

S1 01 0
E

1
S1 01
S2 10

S2 10
S3 11

S3 11

(α)

(β)
Σχήµα 5.4. ∆ιάγραµµα ASM (α) απαριθµητή mod-4, (β) απαριθµητή mod-4 µε δυνατότητα ελέγχου της
έναρξης απαρίθµησης.

Άσκηση Αυτοαξιολόγησης 1 / Κεφάλαιο 5

Να σχεδιάσετε το διάγραµµα ASM ενός απαριθµητή mod-4, ο οποίος να έχει τη


δυνατότητα έναρξης και παύσης της απαρίθµησης σε οποιαδήποτε χρονική στιγµή. Με

9
άλλα λόγια, όταν Ε=1, τότε ο απαριθµητής να µετρά, ενώ, όταν Ε=0, τότε αυτός να
σταµατά στην κατάσταση που βρίσκεται.

Άσκηση Αυτοαξιολόγησης 2 / Κεφάλαιο 5

Να αναλύσετε τον τρόπο λειτουργίας µιας µηχανής καταστάσεων, της οποίας το


διάγραµµα ASM δείχνεται στο Σχήµα 5.5. Να σηµειώσετε µε διακεκοµµένες γραµµές τα
διαφορετικά τµήµατα ASM του διαγράµµατος αυτού.

S0 000
A←0

0
G
G

1
S1 001
A←B

0 1
X

0 1 0 1
Y Y
S2 100 S3 101 S4 110 S5 111
A ←A+1 A ← A −1 A ← 2A A← A/ 2

Σχήµα 5.5. ∆ιάγραµµα ASM της Άσκησης Αυτοαξιολόγησης 2 / Κεφάλαιο 5.

Σύνοψη Ενότητας

Στην ενότητα αυτή γνωρίσαµε τα διαγράµµατα ASM. Πρόκειται για ένα γραφικό
τρόπο λεπτοµερούς περιγραφής της συµπεριφοράς µιας µηχανής καταστάσεων. Ένα
διάγραµµα ASM αποτελείται από τρία στοιχεία: το στοιχείο κατάστασης, το στοιχείο
απόφασης και το στοιχείο εξόδου από συνθήκη. Ένα στοιχείο κατάστασης µαζί µε το
στοιχείο απόφασης και/ή το στοιχείο εξόδου από συνθήκη, που πιθανόν ακολουθεί µετά
από αυτό, αποτελούν ένα ενιαίο τµήµα, που ονοµάζεται τµήµα ASM. Το

10
χαρακτηριστικό ενός τέτοιου τµήµατος είναι ότι όλες οι ενέργειες και οι έλεγχοι των
συνθηκών, που περιλαµβάνονται σ' αυτό, γίνονται στη διάρκεια της ίδιας περιόδου του
ρολογιού, δηλαδή στη διάρκεια της ίδιας κατάστασης. Οι ενέργειες, που περιγράφονται
σ' ένα στοιχείο κατάστασης ή σ' ένα στοιχείο εξόδου από συνθήκη, εκτελούνται στη
µονάδα δεδοµένων του συστήµατος, ενώ η αλλαγή από τη µια κατάσταση στην επόµενη
γίνεται στη µονάδα ελέγχου αυτού.

ENOTHTA 5.2. ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΜΟΝΑ∆ΑΣ ΕΛΕΓΧΟΥ

Στην ενότητα 5.1 γνωρίσαµε τα διαγράµµατα ASM, µε τα οποία περιγράφουµε τη


λειτουργία µιας µηχανής καταστάσεων, δηλαδή ενός σύγχρονου ακολουθιακού
κυκλώµατος. Το διάγραµµα ASM ενός τέτοιου κυκλώµατος είναι στην ουσία οι
προδιαγραφές που µας δίνονται γι' αυτό. Εκείνο που µας ζητείται είναι η σχεδίαση του
κυκλώµατος και η τελική υλοποίησή του µε FFs και πύλες. Το πώς σχεδιάζουµε
σύγχρονα ακολουθιακά κυκλώµατα το µάθαµε στο Κεφάλαιο 2. Συνεπώς, είµαστε σε
θέση να αξιοποιήσουµε εκείνες τις γνώσεις µας και να τις εφαρµόσουµε στην
προκειµένη περίπτωση της σχεδίασης µιας µονάδας ελέγχου. Πιο συγκεκριµένα,
µπορούµε να καταστρώσουµε τον πίνακα καταστάσεων, όπου θα φαίνεται η παρούσα
και η επόµενη κατάσταση, και από αυτόν να προσδιορίσουµε τις εισόδους των FFs,
καθώς και τις εξόδους Si, i=0, 1, 2,..., οι οποίες αποτελούν τα σήµατα ελέγχου προς τη
µονάδα δεδοµένων. Θα διαπιστώσουµε γρήγορα ότι η υλοποίηση του κυκλώµατος κατά
τα γνωστά, δηλαδή µε FFs τύπου JK και πύλες, δεν είναι η πλέον κατάλληλη µέθοδος,
λόγω της δυσκολίας που παρουσιάζεται στην υλοποίηση των συναρτήσεων εισόδου των
FFs. Αυτό οφείλεται στο µεγάλο µέγεθος του πίνακα καταστάσεων. Έτσι, θα
γνωρίσουµε κάποιες άλλες τεχνικές υλοποίησης µε FFs τύπου D. Μετά τη µελέτη της
παρούσας ενότητας θα είστε σε θέση να σχεδιάζετε τη µονάδα ελέγχου ενός ψηφιακού
συστήµατος µε τρεις διαφορετικούς τρόπους, δηλαδή µε FFs τύπου JK, µε FFs τύπου D
και αποκωδικοποιητή και µε τη χρήση ενός FF τύπου D ανά κατάσταση. Με άλλα
λόγια, θα µπορείτε να υλοποιήσετε ένα διάγραµµα ASM µε οποιονδήποτε από τους
τρεις αυτούς τρόπους, ανάλογα µε τις απαιτήσεις του προβλήµατος. Ας αρχίσουµε,
λοιπόν, να εξετάζουµε όλες αυτές τις τεχνικές υλοποίησης µε τη βοήθεια ενός
παραδείγµατος.

11
Παράδειγµα 1 / Κεφάλαιο 5

Να υλοποιηθεί η µονάδα ελέγχου ενός σύγχρονου ψηφιακού συστήµατος, το οποίο


να δέχεται έναν αριθµό και να τον αυξάνει κατά 1 ή να τον µειώνει κατά 1 ή να τον
πολλαπλασιάζει επί 2 ή να τον διαιρεί δια 2, ανάλογα µε το αν οι δύο από τις εισόδους
του κυκλώµατος είναι 00, 01, 10 ή 11 αντίστοιχα. Μία τρίτη είσοδος δίνει το έναυσµα
για την έναρξη της όλης διαδικασίας.

Λύση: Η υλοποίηση της συγκεκριµένης µονάδας ελέγχου, όπως και οποιασδήποτε


άλλης σύγχρονης µηχανής καταστάσεων, γίνεται σε τρία στάδια, τα εξής:

1. Σχεδίαση του διαγράµµατος ASM.


2. Κατάστρωση του πίνακα καταστάσεων.
3. Υλοποίηση µε FFs και πύλες.
Η σχεδίαση του διαγράµµατος ASM είναι το πιο δύσκολο από τα στάδια, αφού
πρέπει η φραστική περιγραφή του προβλήµατος να αποδοθεί γραφικά µε τρόπο τέτοιο,
ώστε να περιγράφεται µε σαφήνεια η λειτουργία του κυκλώµατος (hardware). Το
διάγραµµα ASM για το συγκεκριµένο παράδειγµα είναι εκείνο του Σχήµατος 5.5. Χ, Υ
είναι οι δύο είσοδοι του κυκλώµατος, που καθορίζουν τον τύπο της πράξης που θα γίνει
στα δεδοµένα (καταχωρητής Α), και G η είσοδος για την έναρξη ενός νέου κύκλου
πράξεων. Στο διάγραµµα αυτό υπάρχουν 6 στοιχεία κατάστασης, τα οποία συµβολίσαµε
ως S0, S1, ..., S5. Για την κωδικοποίηση της κάθε κατάστασης από αυτές απαιτούνται 3
bits, αφού 23=8>6. Μάλιστα δύο από τους συνδυασµούς θα µείνουν αχρησιµοποίητοι. Ο
κώδικας κάθε κατάστασης αναγράφεται στο πάνω δεξιά µέρος κάθε στοιχείου
κατάστασης.
Το επόµενο στάδιο είναι η κατάστρωση του πίνακα καταστάσεων. Θυµηθείτε ότι
ένας πίνακας καταστάσεων αποτελείται από τρία τµήµατα. Στο πρώτο καταγράφονται
όλοι οι δυνατοί συνδυασµοί των εισόδων και της παρούσας κατάστασης. Στο δεύτερο
γράφουµε την επόµενη κατάσταση και στο τρίτο τις εισόδους των FFs καθώς και τις
πιθανές εξόδους του κυκλώµατος. Η γενική µορφή ενός πίνακα καταστάσεων για την
περίπτωση των µονάδων ελέγχου, που µελετάµε στο παρόν κεφάλαιο, είναι αυτή που
ακολουθεί.

12
ΠΙΝΑΚΑΣ ΚΑΤΑΣΤΑΣΕΩΝ
ΠΑΡΟΥΣΑ ΕΠΟΜΕΝΗ ΕΙΣΟ∆ΟΙ
ΕΙΣΟ∆ΟΙ ΚΑΤΑΣΤΑΣΗ ΚΑΤΑΣΤΑΣΗ ΕΞΟ∆ΟΙ ΤΩΝ FFs
Xk-1 …X1X0 Qn-1 … Q1 Q0 Qn-1 … Q1 Q0 S0 S1… SN-1 Jn-1 Kn-1 … J1K1 J0K0

(2 n+k δυνατοί συνδυασµοί)

Παρατηρήστε ότι οι δυνατοί συνδυασµοί, δηλαδή οι γραµµές του πίνακα, είναι 2n+k,
όπου n το πλήθος των FFs του κυκλώµατος και k το πλήθος των εισόδων αυτού. Για την
περίπτωση του παραδείγµατος που µελετάµε έχουµε 3 εισόδους (τις G, X, Y) και 3 FFs
µε εξόδους Q2, Q1, Q0 (όσα και τα bits για την κωδικοποίηση κάθε κατάστασης).
Συνεπώς, οι γραµµές του πίνακα θα είναι 26=64. Ευτυχώς, όµως, δεν θα χρειαστεί να
καταγράψουµε όλους αυτούς τους δυνατούς συνδυασµούς, αφού, όπως εύκολα
µπορούµε να διαπιστώσουµε, υπάρχουν πολλοί αδιάφοροι όροι. Για παράδειγµα, όταν η
είσοδος G=0, τότε, ανεξάρτητα από την τιµή των άλλων εισόδων, το κύκλωµα
παραµένει στην κατάσταση 000. Μας αρκεί λοιπόν µια µόνο γραµµή του Πίνακα.

Πίνακας 5.1. Πίνακας καταστάσεων της µονάδας ελέγχου του Παραδείγµατος 1 / Κεφάλαιο 5.
ΠΑΡΟΥΣΑ ΕΠΟΜΕΝΗ ΕΙΣΟ∆ΟΙ
ΕΙΣΟ∆ΟΙ ΚΑΤΑΣΤΑΣΗ ΚΑΤΑΣΤΑΣΗ ΕΞΟ∆ΟΙ ΤΩΝ FFs
G X Y Q 2 Q1 Q0 Q2 Q1 Q0 S0 S1 S2 S3 S4 S5 J2 K2 J1K1 J0K0
0 X X 0 0 0 0 0 0 1 0 0 0 0 0 0X 0X 0X
1 X X 0 0 0 0 0 1 1 0 0 0 0 0 0X 0X 1X
X 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1X 0X X1
X 0 1 0 0 1 1 0 1 0 1 0 0 0 0 1X 0X X0
X 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1X 1X X1
X 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1X 1X X0
X XX 1 0 0 0 0 0 0 0 1 0 0 0 X1 0X 0X
X X X 1 0 1 0 0 0 0 0 0 1 0 0 X1 0X X1
X X X 1 1 0 0 0 0 0 0 0 0 1 0 X1 X1 0X
X X X 1 1 1 0 0 0 0 0 0 0 0 1 X1 X1 X1

Για να βοηθηθούµε στην κατάστρωση του πίνακα καταστάσεων του παραδείγµατος


που µελετάµε, είναι χρήσιµο να διακρίνουµε τα διάφορα τµήµατα ASM, στα οποία
χωρίζεται το διάγραµµα ASM, που σχεδιάσαµε. Τα τµήµατα αυτά δείχνονται µε

13
διακεκοµµένες γραµµές στο Σχήµα 5.12β. Κάθε µετάβαση από το ένα στοιχείο
κατάστασης στο επόµενο θα αντιστοιχεί σε µια γραµµή του πίνακα καταστάσεων. Ο
Πίνακας 5.1 είναι ο πίνακας καταστάσεων, που αντιστοιχεί στη µηχανή καταστάσεων
του Παραδείγµατος 1 / Κεφάλαιο 5. Παρατηρούµε ότι οι γραµµές του πίνακα είναι 10
και όχι 64, γιατί 10 είναι και οι δυνατές µεταβάσεις του κυκλώµατος. Ας δούµε
αναλυτικά πώς προέκυψε ο πίνακας αυτός.
Όταν η είσοδος G=0 και ανεξάρτητα από τις τιµές των εισόδων Χ, Υ, το κύκλωµα
παραµένει στην κατάσταση S0=000. Αν η είσοδος G γίνει 1, τότε από την κατάσταση
S0=000 µεταβαίνει στην κατάσταση S1=001, ανεξάρτητα και πάλι από τις τιµές των
εισόδων Χ, Υ. (Οι συνθήκες αδιαφορίας σηµειώνονται µε το σύµβολο Χ). Όταν ο
έλεγχος βρίσκεται στην κατάσταση S1, τότε εξετάζονται οι είσοδοι Χ, Υ και ανάλογα µε
την τιµή τους ο έλεγχος µεταφέρεται σε µια από τις καταστάσεις S2, S3, S4, S5 (3η µέχρι
και 6η γραµµή του Πίνακα 5.1). Σε όλες αυτές τις περιπτώσεις η τιµή της εισόδου G µας
είναι αδιάφορη. Τέλος, µετά από καθεµιά από τις καταστάσεις S2, S3, S4, S5 ο έλεγχος
µεταφέρεται στην κατάσταση S0 χωρίς όρους, δηλαδή ανεξάρτητα από τις τιµές των G,
X, Y (γραµµές 7 έως 10 του Πίνακα 5.1).
Στο σηµείο αυτό έχει σχεδόν ολοκληρωθεί η διαδικασία κατάστρωσης του πίνακα.
Είναι το πιο δύσκολο µέρος της διαδικασίας, αφού θα πρέπει να συµπεριλάβουµε όλες
τις δυνατές µεταβάσεις. Μέχρι αυτό το σηµείο έχουµε συµπληρώσει τις δύο πρώτες
στήλες του πίνακα. Η τρίτη στήλη, που δίνει τις εξόδους S0, ..., S5 της µονάδας ελέγχου,
µπορεί πολύ εύκολα να συµπληρωθεί από τη στήλη της παρούσας κατάστασης (όχι της
επόµενης κατάστασης). Έτσι, αν η παρούσα κατάσταση είναι 000, τότε S0=1 και όλες οι
άλλες έξοδοι είναι 0. Όµοια, αν η παρούσα κατάσταση είναι 1, τότε S1=1, και οι
υπόλοιπες έξοδοι 0, κ.ο.κ.
Έχοντας ολοκληρώσει τον πίνακα καταστάσεων, αυτό που αποµένει είναι η
υλοποίηση του κυκλώµατος. Η υλοποίηση αυτή θα µπορούσε να γίνει µε FFs τύπου JK,
όπως έχουµε µάθει στο Κεφάλαιο 2. Αυτή τη µέθοδο υλοποίησης θα τη δούµε στην
επόµενη υποενότητα 5.2.1. Στη συνέχεια θα µελετήσουµε και άλλες εναλλακτικές
µεθόδους υλοποίησης µε FFs τύπου D (υποενότητες 5.2.2 και 5.2.3).

14
5.2.1. Υλοποίηση της µονάδας ελέγχου µε FFs τύπου JK

Σύµφωνα µε αυτή τη µέθοδο υλοποίησης, χρησιµοποιούµε ένα FF τύπου JK για κάθε


Qi, i=0, 1, ..., n-1 του πίνακα καταστάσεων3. Προσδιορίζουµε τις συναρτήσεις εισόδου
για κάθε Ji, Κi και σχεδιάζουµε το σύγχρονο ακολουθιακό κύκλωµα. Για να γίνει
κατανοητό αυτό, ας συνεχίσουµε την υλοποίηση της µονάδας ελέγχου του
Παραδείγµατος 1 / Κεφάλαιο 5. Εδώ χρειαζόµαστε τρία FFs τύπου JK. Με βάση τον
πίνακα διέγερσης του JK FF και την παρούσα και επόµενη κατάσταση του Πίνακα 5.1,
συµπληρώνουµε το τελευταίο τµήµα των εισόδων των FFs του ίδιου πίνακα. Έτσι
προσδιορίζουµε τις συναρτήσεις εισόδου για κάθε Ji, Κi, i=0, 1, 2. Η καλύτερη
απλοποίηση των συναρτήσεων εισόδου επιτυγχάνεται µε τη βοήθεια των χαρτών
Karnaugh. Αυτή, όµως, είναι µια πολύ επίπονη διαδικασία, όταν υπάρχουν 6 µεταβλητές
(G, X, Y, Q2, Q1, Q0), όπως στην περίπτωσή µας. Αυτός είναι άλλωστε και ο λόγος, για
τον οποίο θα µελετήσουµε και άλλες εναλλακτικές µεθόδους υλοποίησης αµέσως µετά.
Ας προχωρήσουµε στον προσδιορισµό των συναρτήσεων εισόδου χωρίς τη χρήση
χαρτών. Από τον Πίνακα 5.1 έχουµε:
J2 = X΄Υ΄W + X΄ΥW + XΥ΄W + XΥW = (X΄Υ + XΥ΄)W + (X΄Υ΄ + XY)W =
=(X⊕Y)W + (X⊕Y)΄W = AW + A΄W = (A + A΄)W = W,
όπου W = Q2 ′ Q1 ′ Q0 και Α = Χ⊕Υ
Κ2 = 1
J1 = XΥ΄W + XΥW = (Y΄ + Υ)XW = XW
K1 = 1
J 0 = GQ2 ′ Q1 ′ Q0 ′ = GR , όπου R = Q2 ′ Q1 ′ Q0 ′
K0 = X΄Υ΄W + XΥ΄W + Q2Q1 ′ Q0 + Q2Q1Q0 = (X΄ + Χ)Υ΄W + ( Q1′ + Q1)Q2Q0 =
= Y΄W + Q2Q0

3
Υπενθυµίζεται ότι η υλοποίηση ενός σύγχρονου ακολουθιακού κυκλώµατος, όπως είναι µια
µονάδα ελέγχου, θα µπορούσε να γίνει και µε FFs τύπου T, D, SR. Μας συµφέρει, όµως, να
χρησιµοποιούµε FFs τύπου JK, γιατί ο πίνακας διέγερσης αυτών περιέχει περισσότερες
συνθήκες αδιαφορίας και τα κυκλώµατα που προκύπτουν είναι απλούστερα.

15
Για να ολοκληρωθεί η διαδικασία υλοποίησης της µονάδας ελέγχου, πρέπει να
προσδιορίσουµε και τις εξόδους της S0, S1, ..., S5. Από το 1ο και 3ο τµήµα του Πίνακα
5.1 βρίσκουµε ότι:
S0 = G΄R + GR = (G΄ + G)R = R S3 = Q2Q1 ′ Q0
S1 = J2 = W S4 = Q2Q1Q0 ′
S2 = Q2 ′ Q1 ′ Q0 ′ S5 = Q2Q1Q0
Άρα, το τελικό κύκλωµα της µονάδας ελέγχου του Παραδείγµατος 1 / Κεφάλαιο 5,
υλοποιηµένο µε FFs τύπου JK, είναι αυτό του Σχήµατος 5.6α.
ΜΟΝΑ∆Α ΕΛΕΓΧΟΥ

• •

J2 Q2
FF2

1 Κ2 Q'2 • • S0

J1 Q1
X
FF1

1 Κ1 Q'1 • • • S1

J0 Q0 S2
G • •
FF0

Y Κ0 Q'0
Q2
Q'1 S3
Q0

Q2
Q1 S4
CLK Q'0

Q2
Q1 S5
Q0

(α)

ΜΟΝΑ∆Α ΕΛΕΓΧΟΥ

J2 Q2
FF2

1 Κ2

Ε0 • S0
• J1 Q1 Ε1 • S1
Αποκωδικοποίηση

X
• Ε2
FF1
• Ε3
3-σε-8

1 Κ1 Ε4 S2
Ε5 S3
Ε6 S4
Ε7 S5

J0 Q0
G •
FF0

Y Κ0
CLK

(β)

Σχήµα 5.6. Υλοποίηση της µονάδας ελέγχου του διαγράµµατος ASM του Σχήµατος 5.5 µε FF τύπου
JK: (α) µόνο µε πύλες, (β) µε τη χρήση ενός αποκωδικοποιητή.

16
∆ραστηριότητα 1 / Κεφάλαιο 5

Προτείνετε εναλλακτικές λύσεις για τη µείωση της πολυπλοκότητας του


συνδυαστικού κυκλώµατος της εξόδου µιας µονάδας ελέγχου, η οποία έχει υλοποιηθεί µε
FFs τύπου JK.

Παρατηρώντας το κύκλωµα αυτό, διαπιστώνουµε ότι η µεγαλύτερη πολυπλοκότητα


βρίσκεται στη δηµιουργία των σηµάτων ελέγχου S0, S1, ..., S5, όπου χρειαζόµαστε 6
πύλες AND των τριών εισόδων η καθεµιά. Στην πράξη, οι πύλες αυτές συντελούν στην
αποκωδικοποίηση των καταστάσεων Q2Q1Q0. Εποµένως, είναι φυσικό επακόλουθο να
προχωρήσουµε στην αντικατάσταση όλων αυτών των πυλών από ένα κύκλωµα
αποκωδικοποίησης 3 εισόδων σε 8 εξόδους (3-to-8 decoder). Το νέο κύκλωµα της
µονάδας ελέγχου δίνεται στο Σχήµα 5.6β.

Άσκηση Αυτοαξιολόγησης 3 / Κεφάλαιο 5

Το διάγραµµα ASM του Σχήµατος 5.7 περιγράφει τη λειτουργία της µονάδας ελέγχου
ενός δυαδικού πολλαπλασιαστή. Να υλοποιήσετε αυτή µε FFs τύπου JK.

Αρχική κατάσταση

0
G

1
A←0
E←0
C←n

C ← C −1

0 1
Yt
A← A+ B
E ← Count

Σχήµα 5.7. ∆ιάγραµµα ASM ενός δυαδικού πολλαπλασιαστή.

17
5.2.2. Υλοποίηση µονάδας ελέγχου µε FFs τύπου D και αποκωδικοποιητή

Είδαµε ότι η υλοποίηση µιας µονάδας ελέγχου µε FFs τύπου JK παρουσιάζει δυσκολία
στην απλοποίηση των συναρτήσεων εισόδου των FFs, καθώς και των συναρτήσεων
εξόδου της µονάδας. Ένας εναλλακτικός τρόπος σχεδίασης είναι αυτός, κατά τον οποίο
χρησιµοποιούµε FFs τύπου D, αντί για FFs τύπου JK. Έτσι, το τελευταίο τµήµα του
πίνακα καταστάσεων, όπου καταγράφονται οι είσοδοι των FFs, όπως αυτές προκύπτουν
από τον πίνακα διέγερσης, δεν χρειάζεται πλέον. Αυτό συµβαίνει, επειδή στο FF τύπου D
η επόµενη κατάσταση ισούται µε την τιµή της εισόδου του D. Έτσι, διατρέχοντας τις
στήλες της επόµενης κατάστασης του πίνακα καταστάσεων και εντοπίζοντας τις
περιπτώσεις, που το κάθε D FF πρέπει να γίνει 1, γράφουµε τη συνάρτηση της εισόδου µε
βάση τις µεταβλητές της παρούσας κατάστασης. Για την περίπτωση του Πίνακα 5.1
έχουµε:
D2 = X΄Υ΄W + X΄ΥW + XΥ΄W + XΥW = W, όπου W = Q2Q1Q0 ′
D1 = XΥ΄W + XΥW = (Υ΄+ Y)XW = XW
D0 = G Q2 ′ Q1 ′ Q0 ′ + X΄YW + XYW = G Q2 ′ Q1 ′ Q0 ′ + YW
Για την απλοποίηση του κυκλώµατος, που απαιτείται για τη δηµιουργία των σηµάτων
ελέγχου S0 έως S5, χρησιµοποιούµε έναν αποκωδικοποιητή 3-σε-8, όπως κάναµε και
προηγουµένως (Σχήµα 5.6β). Ο αποκωδικοποιητής αυτός δέχεται στις εισόδους του τις
εξόδους των FFs Q2, Q1, Q0 και παράγει τις εξόδους Ε0 έως Ε7. Καθεµία από αυτές
γίνεται 1, µόνον όταν ο αντίστοιχος ελαχιστόρος γίνει 1. Για παράδειγµα, η έξοδος Ε1
γίνεται 1, όταν στην είσοδο παρουσιαστεί ο αριθµός 001, δηλαδή όταν Q2Q1Q0=001. Με
άλλα λόγια, ισχύει Ε1= Q2 ′ Q1 ′ Q0 . Εποµένως, εύκολα καταλαβαίνουµε ποιες από τις
εξόδους Ej, j=0, 1, ..., 7 του αποκωδικοποιητή είναι αυτές που αντιστοιχούν στα σήµατα
ελέγχου S0, S1, ..., S5. Έχουµε, δηλαδή, S0=E0, S1=E1, S2=E4, S3=E5, S4=E6, S5=E7.
Επανερχόµενοι τώρα στις εισόδους D των FFs, διαπιστώνουµε ότι θα µπορούσαµε να
υλοποιήσουµε εύκολα τις συναρτήσεις, µε χρήση των σηµάτων εξόδου S0, S1, ..., S5.
Βλέπουµε ότι:
D2 = W = Q2 ′ Q1 ′ Q0 = S1
D1 = XW = XS1
D0 = G Q2 ′ Q1 ′ Q0 ′ + YW = GS0 + YS1
Το τελικό κύκλωµα της υπό συζήτηση µονάδας ελέγχου, υλοποιηµένο µε FFs τύπου D
και αποκωδικοποιητή, δείχνεται στο Σχήµα 5.8.

18

D2 Q2
FF2

Ε0 • S0
Ε1 • S1

Αποκωδικοποίηση
Ε2
D1 Q1 Ε3

3-σε-8
X
FF1 Ε4 S2
Ε5 S3
• Ε6 S4
Ε7 S5

G D0 Q0
FF0

CLK
Y

Σχήµα 5.8. Υλοποίηση του διαγράµµατος ASM του Σχήµατος 5.5 µε FFs τύπου D και
αποκωδικοποιητή.

Άσκηση Αυτοαξιολόγησης 4 / Κεφάλαιο 5

Να υλοποιηθεί το διάγραµµα ASM του Σχήµατος 5.7 µε FFs τύπου D και


αποκωδικοποιητή.

5.2.3. Υλοποίηση µονάδας ελέγχου µε ένα FF τύπου D ανά κατάσταση

Ένας άλλος τρόπος υλοποίησης µιας µονάδας ελέγχου είναι µε τη χρήση ενός FF
τύπου D για κάθε κατάσταση S0, S1, ... του κυκλώµατος. Σε κάθε χρονική στιγµή ένα
µόνο από τα FFs είναι ενεργοποιηµένο. Αυτός ο τρόπος παρουσιάζει το πλεονέκτηµα ότι
το κύκλωµα µπορεί να υλοποιηθεί κατ' ευθείαν από το διάγραµµα καταστάσεων, και όχι
από τον πίνακα καταστάσεων. Το µειονέκτηµα είναι ότι ο αριθµός των FFs, που
απαιτούνται, δεν είναι ο ελάχιστος δυνατός. Έτσι, για την περίπτωση του Παραδείγµατος
1 / Κεφάλαιο 5, στο οποίο έχουµε 6 καταστάσεις, απαιτούνται 6 FFs και όχι 3, όπως
έγινε στην περίπτωση των προηγούµενων δύο τεχνικών υλοποίησης. Ας γνωρίσουµε,

19
λοιπόν, αυτόν τον τρόπο υλοποίησης, εφαρµόζοντάς τον για τη µονάδα ελέγχου, της
οποίας η λειτουργία δίνεται από το διάγραµµα ASM του Σχήµατος 5.5.
Κατ' αρχήν, µε βάση το διάγραµµα ASM, σχεδιάζουµε το διάγραµµα καταστάσεων
του κυκλώµατος (Σχήµα 5.9).

G=0

S0
1
G=

S1 S2 S3 S4 S5
0
xy=0
1
x y =0 0
xy=1
1
xy=1

Σχήµα 5.9. ∆ιάγραµµα καταστάσεων της µονάδας ελέγχου του Σχήµατος 5.5.

Παρατηρούµε ότι τα 10 βέλη του διαγράµµατος αυτού αντιστοιχούν, στην ουσία, στις
10 γραµµές του πίνακα καταστάσεων (Πίνακας 5.1). Όπως αναφέραµε στην
προηγούµενη παράγραφο, θα χρειαστούµε 6 FFs τύπου D, όσες είναι και οι έξοδοι
(σήµατα ελέγχου) της µονάδας ελέγχου. Η είσοδος D κάθε FF καθορίζεται από τα βέλη,
που καταλήγουν στην κατάσταση που αντιπροσωπεύει το συγκεκριµένο FF. Η αφετηρία
ενός βέλους και οι συνθήκες, που αναγράφονται κατά µήκος αυτού, αποτελούν τη
συνάρτηση εισόδου του FF. Για παράδειγµα, η είσοδος D2 του FF2, από το οποίο θα
πάρουµε την κατάσταση S2, θα ισούται µε D2 = X΄Υ΄S1, γιατί, µόνον εφόσον το κύκλωµα
βρίσκεται στην κατάσταση S1 και X=Y=0, επιτρέπεται να µεταβεί στην κατάσταση S2,
δηλαδή επιτρέπεται η έξοδος S2 να γίνει 1. Όµοια προκύπτει ότι: D3 = X΄YS1, D4 =
XY΄S1, D5 = XYS1, D1 = GS0. Στην κατάσταση S0 καταλήγουν πολλά βέλη, και συνεπώς
η συνάρτηση θα προκύψει ως το λογικό OR όλων των γινοµένων, που αντιπροσωπεύουν
καθένα από τα βέλη αυτά, δηλαδή S0 = G΄S0 + S2 + S3 + S4 + S5. Η µετάβαση από
οποιαδήποτε των καταστάσεων S2, S3, S4, S5 στην κατάσταση S0 γίνεται χωρίς όρους, γι'
αυτό και στα αντίστοιχα βέλη δεν αναγράφεται οποιαδήποτε συνθήκη. Το κύκλωµα της
µονάδας ελέγχου, υλοποιηµένο µε ένα FF τύπου D ανά κατάσταση, δείχνεται στο Σχήµα
5.10.

20
D0 Q0
FF0 • S0

D1 Q1
G • • S1
• FF1

X •

D2 Q2
Y • • S2
FF2


D3 Q3
• • S3
FF3

D4 Q4
• • S4
FF4

D5 Q5
S5
FF5

CLK

Σχήµα 5.10. Υλοποίηση του διαγράµµατος ASM του Σχήµατος 5.5 µε ένα FF τύπου D ανά κατάσταση.

Άσκηση Αυτοαξιολόγησης 5 / Κεφάλαιο 5

Να υλοποιηθεί το διάγραµµα ASM του Σχήµατος 5.7, χρησιµοποιώντας ένα FF τύπου


D ανά κατάσταση.

∆ραστηριότητα 2 / Κεφάλαιο 5

Προτείνετε µεθόδους για την υλοποίηση των µονάδων ελέγχου µε το µικρότερο


δυνατό πλήθος ολοκληρωµένων κυκλωµάτων.

Εκτός από τις τρεις µεθόδους υλοποίησης που περιγράψαµε στην παρούσα ενότητα,
υπάρχουν και άλλες, όπως η υλοποίηση µε πολυπλέκτες ή η υλοποίηση µε
προγραµµατιζόµενες λογικές διατάξεις (PLA, Programmable Logic Arrays). Η βασική
φιλοσοφία υλοποίησης έχει παρουσιαστεί µέσα από τις µεθόδους που γνωρίσαµε µέχρι
τώρα. Έγινε κατανοητό ότι µπορούν να γίνουν διάφοροι συνδυασµοί για την αποφυγή
των διάσπαρτων πυλών, που προκύπτουν από καθεµία από τις µεθόδους. Έτσι, είδαµε
στο Σχήµα 5.6 ότι µπορούµε να αποφύγουµε τις πύλες αποκωδικοποίησης,
χρησιµοποιώντας ένα ολοκληρωµένο κύκλωµα αποκωδικοποιητή. Με παρόµοιο τρόπο,

21
θα µπορούσαµε να αντικαταστήσουµε τις πύλες των εισόδων των FFs µε κυκλώµατα
πολυπλεκτών (mux, multiplexer) ή να αντικαταστήσουµε όλο το συνδυαστικό µέρος της
µονάδας ελέγχου µε µια προγραµµατιζόµενη λογική διάταξη. Αυτό ακριβώς είναι που
κάνουν οι δύο άλλες µέθοδοι που προαναφέραµε, αλλά η λεπτοµερής περιγραφή τους
είναι εκτός των στόχων του παρόντος βιβλίου. Ο ενδιαφερόµενος αναγνώστης µπορεί να
ανατρέξει στη βιβλιογραφία που δίνεται στο τέλος του Κεφαλαίου.

Σύνοψη Ενότητας
Στην ενότητα αυτή µελετήσαµε τους τρόπους υλοποίησης µιας µονάδας ελέγχου,
δηλαδή µιας σύγχρονης µηχανής καταστάσεων. Η µονάδα ελέγχου είναι ένα σύγχρονο
ακολουθιακό κύκλωµα, και συνεπώς η σχεδίαση αυτής αρχίζει µε την κατάστρωση του
πίνακα καταστάσεων και τον προσδιορισµό µέσω αυτού των λογικών συναρτήσεων των
εισόδων των FFs και των τελικών εξόδων (σηµάτων ελέγχου). Τα FFs, που συνήθως
χρησιµοποιούµε, είναι τύπου JK ή D. Έτσι γνωρίσαµε δύο σχετικές µεθόδους
υλοποίησης, την υλοποίηση µε FFs τύπου JK και την υλοποίηση µε FFs τύπου D, µε ή
χωρίς αποκωδικοποιητή. Τέλος, είδαµε τη µέθοδο υλοποίησης µε ένα FF τύπου D ανά
κατάσταση. Για την υλοποίηση µε βάση τη µέθοδο αυτή, δεν χρειάζεται ο πίνακας
καταστάσεων, αλλά το διάγραµµα καταστάσεων του κυκλώµατος. Το πλήθος των FFs,
που απαιτούνται, είναι ίσο µε το πλήθος των σηµάτων ελέγχου, που θέλουµε να
δηµιουργήσουµε.
ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ
Στο Κεφάλαιο αυτό µελετήσαµε τις αλγοριθµικές µηχανές καταστάσεων. Γνωρίσαµε
τα διαγράµµατα ASM, τα οποία περιγράφουν τον τρόπο λειτουργίας των µηχανών
καταστάσεων. Στη συνέχεια ασχοληθήκαµε µε τις διαφορετικές µεθόδους υλοποίησης
της µονάδας ελέγχου, δίνοντας έµφαση στις µεθόδους υλοποίησης µε FFs τύπου JK ή D,
καθώς και στη µέθοδο υλοποίησης µε ένα FF ανά κατάσταση. Η µονάδα ελέγχου είναι
εκείνο το τµήµα ενός ψηφιακού συστήµατος το οποίο συντονίζει την έναρξη ή τη λήξη
κάποιων ενεργειών της µονάδας δεδοµένων, ελέγχει τους δείκτες κατάστασης και
αποφασίζει για τις επόµενες ενέργειες. Είναι σηµαντικό να αναφερθεί και πάλι ότι τόσο η
µονάδα ελέγχου, όσο και η µονάδα δεδοµένων χρησιµοποιούν το ίδιο (κοινό) ρολόι για
το συγχρονισµό τους.

22
ΒΙΒΛΙΟΓΡΑΦΙΑ

ΕΛΛΗΝΟΓΛΩΣΣΗ
Mano Morris M., Ψηφιακή Σχεδίαση, (Κεφ. 8), Εκδόσεις Παπασωτηρίου, 1992.

ΞΕΝΟΓΛΩΣΣΗ
Daniels J. D., Digital Design from Zero to One, (Chap. 7), J. Wiley & Sons, 1996.

Wakerly J. F., Digital Design: Principles and Practices, 2nd Edition, (Chap. 8), Prentice
Hall, 1994.
Ο∆ΗΓΟΣ ΠΕΡΑΙΤΕΡΩ ΜΕΛΕΤΗΣ

Mano Morris M., Ψηφιακή Σχεδίαση, (Κεφ. 8), Εκδόσεις Παπασωτηρίου, 1992.

Συστηµατική παρουσίαση των διαγραµµάτων ASM καθώς και των µεθόδων υλοποίησης
µονάδων ελέγχου γίνεται στο Κεφάλαιο 8 του βιβλίου.

Wakerly J. F., Digital Design: Principles and Practices, 2nd Edition, (Chap. 8), Prentice
Hall, 1994.
Το Κεφάλαιο 8 του βιβλίου είναι αποκλειστικά αφιερωµένο στη σχεδίαση σύγχρονων
κυκλωµάτων, όπου και παρουσιάζονται ορισµένα ενδιαφέροντα παραδείγµατα.

ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ

Απάντηση Άσκησης Αυτοαξιολόγησης 1 / Κεφάλαιο 5

Για να το πετύχουµε αυτό, θα πρέπει να ελέγχουµε την είσοδο Ε µετά από κάθε
κατάσταση. Αν Ε=1, τότε η µέτρηση θα συνεχίζεται, ενώ, αν Ε=0, τότε η µέτρηση θα
σταµατά στην κατάσταση που έγινε ο έλεγχος. Το διάγραµµα ASM, που πετυχαίνει αυτή
τη λειτουργία, φαίνεται στο Σχήµα 5.11. Πρόκειται για ένα διάγραµµα όµοιο µε εκείνο
του Σχήµατος 5.4β, στο οποίο όµως ο έλεγχος του Ε γίνεται µετά από κάθε κατάσταση.

23
S0 00

0
E

1
S1 01

0
E

1
S2 10

0
E

1
S3 11

0
E

Σχήµα 5.11. ∆ιάγραµµα ASM ενός απαριθµητή mod-4 µε δυνατότητα έναρξης και παύσης της
απαρίθµησης σε οποιαδήποτε στιγµή.
Αν δεν καταφέρατε να απαντήσετε σωστά, µην απογοητευθείτε. Πρόκειται για νέες
έννοιες, οι οποίες στην αρχή προκαλούν κάποια σύγχυση. Μελετήστε και πάλι την
ενότητα 5.1 και προσπαθήστε να κατανοήσετε τους ορισµούς. Στη συνέχεια επιχειρήστε
ξανά να απαντήσετε την άσκηση. Αν από την άλλη πλευρά, απαντήσατε σωστά, τότε
µπράβο σας. Σηµειώστε τα διαφορετικά τµήµατα ASM στο σχήµα που σχεδιάσατε και
συνεχίστε µε την επίλυση της επόµενης άσκησης.

Απάντηση Άσκησης Αυτοαξιολόγησης 2 / Κεφάλαιο 5

∆εν είναι δύσκολο να καταλάβουµε ότι το διάγραµµα ASM, που µας δίνεται,
αντιπροσωπεύει τον τρόπο λειτουργίας µιας µονάδας ελέγχου, η οποία δέχεται 3
εισόδους, τις G, X, Y, και έχει ως εξόδους τα 6 σήµατα ελέγχου S0, S1, S2, S3, S4, S5
(Σχήµα 5.12α). Ας δούµε τη λειτουργία αυτής της µηχανής καταστάσεων, όπως αυτή
προκύπτει από το διάγραµµα ASM.

S0
G Μονάδα S1
Ελέγχου S2
X
S3
Y S4
S5

(α)

24
S0 000
A← 0

0 G

1
S1 001
X A← B X

0
1
X

0 1 0 Y
1
Y

S2 100 S3 101 S4 110 S5 111


A ← A +1 A ← A −1 A ← 2A A ← A/ 2

(β)
Σχήµα 5.12. (α) Γενικό λογικό διάγραµµα και (β) διάγραµµα ASM της µηχανής καταστάσεων της
άσκησης αυτοαξιολόγησης 2 / Κεφάλαιο 5.

Το στοιχείο κατάστασης S0 µας λέει ότι γίνεται εκκαθάριση του καταχωρητή Α και ο
έλεγχος "περνάει" στο στοιχείο απόφασης. Όταν G=0, τότε ο έλεγχος µεταφέρεται και
πάλι στην κατάσταση S0. Η είσοδος G δίνει το σύνθηµα για την έναρξη της λειτουργίας.
Έτσι, όταν G=1, ο έλεγχος µεταφέρεται στην επόµενη κατάσταση S1, κατά την οποία
στον καταχωρητή Α φορτώνεται το περιεχόµενο του καταχωρητή Β. Ακολουθεί ο
έλεγχος των εισόδων Χ και Υ. Για ΧΥ=00, ο καταχωρητής Α αυξάνεται κατά 1, ενώ για
ΧΥ=01, αυτός µειώνεται κατά 1. Για ΧΥ=10, ο καταχωρητής Α πολλαπλασιάζεται επί 2
(π.χ. αριστερή ολίσθηση κατά 1 θέση), ενώ για ΧΥ=11, αυτός διαιρείται δια 2 (π.χ. δεξιά
ολίσθηση κατά 1 θέση). Μετά από οποιαδήποτε από τις τελευταίες τέσσερεις
καταστάσεις, ο έλεγχος µεταφέρεται στην αρχική κατάσταση S0 και παραµένει εκεί µέχρι
να δοθεί το έναυσµα για ένα νέο κύκλο, δηλαδή µέχρις ότου G=1. Τα τµήµατα ASM
δείχνονται µε διακεκοµµένες γραµµές στο Σχήµα 5.12β. Υπάρχουν 6 τµήµατα, όσα και
τα στοιχεία κατάστασης του διαγράµµατος. Υπενθυµίζεται ότι όλες οι ενέργειες, που
εµπεριέχονται σ' ένα τµήµα, γίνονται στη διάρκεια µιας περιόδου του ωρολογιακού
παλµού.
Η απάντηση της άσκησης αυτής ήταν πραγµατικά δύσκολη, γι’ αυτό µην
απογοητευθείτε, αν δεν καταφέρατε να την απαντήσετε σωστά και ολοκληρωµένα.

25
Πρόκειται, όπως είδατε, για ένα πλήρες “σενάριο” ενός ολόκληρου αλγορίθµου.
Μελετήστε και πάλι την άσκηση. Θα διαπιστώσετε ότι ο διαχωρισµός των τµηµάτων
ASM δεν είναι τελικά δύσκολη υπόθεση, αφού συµφωνεί απόλυτα µε τον ορισµό που
δώσαµε στην ενότητα 5.1.

Απάντηση Άσκησης Αυτοαξιολόγησης 3 / Κεφάλαιο 5

Παρατηρούµε ότι το διάγραµµα ASM του δυαδικού πολλαπλασιαστή του Σχήµατος


5.7 αποτελείται από 4 στοιχεία κατάστασης. Ονοµάζουµε αυτά S0, S1, S2, S3 και τα
κωδικοποιούµε ως 00, 01, 10 και 11 αντίστοιχα. ∆ιακρίνουµε και τα 4 τµήµατα ASM µε
διακεκοµµένες γραµµές, όπως φαίνεται στο Σχήµα 5.13α, για να βοηθηθούµε στην
κατάστρωση του πίνακα καταστάσεων. Σηµειώνεται ότι οι ενέργειες, που καθορίζονται
από κάθε κατάσταση, εκτελούνται στη µονάδα δεδοµένων και όχι στη µονάδα ελέγχου,
γι' αυτό και δεν αναγράφονται στα στοιχεία κατάστασης και εξόδου από συνθήκη του
Σχήµατος 5.13α. Στόχος µας είναι η υλοποίηση της µονάδας ελέγχου, το γενικό
διάγραµµα της οποίας δείχνεται στο Σχήµα 5.13β. Για να το πετύχουµε αυτό,
καταστρώνουµε τον πίνακα καταστάσεων του κυκλώµατος (Πίνακας 5.2). Ο πίνακας
αυτός προκύπτει από το διάγραµµα ASM. Κάθε γραµµή του πίνακα καταστάσεων
αντιστοιχεί σε µια διαφορετική µετάβαση του διαγράµµατος ASM.

S0 00

0 G
G S0
1 01 Μονάδα S1
S1 Y ελέγχου S2
Z S3

S2 10 (β)

0 1
Y

Σχήµα 5.13. (α) ∆ιάγραµµα ASM και (β) γενική


S3 11
µορφή της µονάδας ελέγχου του
δυαδικού πολλαπλασιαστή
0 1
Z

(α)

26
Πίνακας 5.2. Πίνακας καταστάσεων της µονάδας ελέγχου του δυαδικού πολλαπλασιαστή.
ΠΑΡΟΥΣΑ ΕΠΟΜΕΝΗ ΕΙΣΟ∆ΟΙ
ΕΙΣΟ∆ΟΙ ΚΑΤΑΣΤΑΣΗ ΚΑΤΑΣΤΑΣΗ ΕΞΟ∆ΟΙ ΤΩΝ FFs
G Y Z Q1 Q0 Q1 Q0 S0 S1 S2 S3 J1K1 J0K0
0 X X 0 0 0 0 1 0 0 0 0X 0X
1 X X 0 0 0 1 1 0 0 0 0X 1X
X X X 0 1 1 0 0 1 0 0 1X X1
X X X 1 0 1 1 0 0 1 0 X0 1X
X X 0 1 1 1 0 0 0 0 1 X0 X1
X X 1 1 1 0 0 0 0 0 1 X1 X1

Με βάση την παρούσα κατάσταση βρίσκουµε τις εξόδους S0, S1, S2, S3 και µε βάση
την παρούσα και επόµενη κατάσταση, καθώς και µε τη βοήθεια του πίνακα διέγερσης
του FF τύπου JK, προσδιορίζουµε τις εισόδους J1, K1, J0, K0. Έχοντας συµπληρώσει τον
πίνακα καταστάσεων, προχωρούµε στον προσδιορισµό των λογικών συναρτήσεων των
εισόδων των FFs και των εξόδων Si, i=0, 1, 2, 3 της µονάδας ελέγχου. Έχουµε εποµένως:
S0 = Q1 ′ Q0 ′ , S1 = Q1 ′ Q0 , S2 = Q1Q0 ′ , S3 = Q1Q0
και
J1 = Q1 ′ Q0 , K1 = Z Q1Q0 = ZS3, J0 = G Q1′ Q0 ′ + Q1Q0 ′ = GS0 + S2, K0 = 1
Τελικά, το κύκλωµα της µονάδας ελέγχου, υλοποιηµένο µε FFs τύπου JK, είναι αυτό
του Σχήµατος 5.14.
Μονάδα Ελέγχου

J1 Q1
FF1

Z Κ1 Q'1 • • S0

• S1

J0 Q0
G • • •

FF0 S2
Y 1 Κ 0 Q'0 •
• S3

CLK
Σχήµα 5.14. Το κύκλωµα της µονάδας ελέγχου του δυαδικού πολλαπλασιαστή υλοποιηµένο µε FFs
τύπου JK.

27
Αν καταφέρατε να απαντήσετε σωστά, τότε συγχαρητήρια. ∆εν θα αντιµετωπίσετε
δυσκολία ούτε στα επόµενα, αφού το δύσκολο µέρος της όλης υλοποίησης είναι η
κατάστρωση του πίνακα καταστάσεων. Αν όµως δεν τα καταφέρατε, τότε µελετήστε και
πάλι το Παράδειγµα 1 / Κεφάλαιο 5, καθώς και την υποενότητα 5.2.1 και
ξαναπροσπαθήστε.

Απάντηση Άσκησης Αυτοαξιολόγησης 4 / Κεφάλαιο 5

Για να βρούµε τις λογικές συναρτήσεις των εισόδων D των FFs, χρησιµοποιούµε και
πάλι τον πίνακα καταστάσεων 5.2 της άσκησης αυτοαξιολόγησης 3 / Κεφάλαιο 5.
∆ιατρέχοντας τις γραµµές του πίνακα και προσδιορίζοντας πότε η επόµενη κατάσταση
είναι 1, γράφουµε τη λογική έκφραση για κάθε είσοδο Di, i=0, 1, 2, 3. Οι εκφράσεις των
εξόδων Si της µονάδας ελέγχου είναι ίδιες µε εκείνες της προηγούµενης άσκησης
αυτοαξιολόγησης, δηλαδή S0 = Q1 ′ Q0 ′ , S1 = Q1 ′ Q0 , S2 = Q1Q0 ′ , S3 = Q1Q0.
Έτσι, για τις εισόδους των FFs έχουµε:
D1 = Q1 ′ Q0 + Q1Q0 ′ + ZQ1Q0 = S1 + S2 + ZS3
D0 = G Q1′ Q0 ′ + Q1Q0 ′ = GS0 + S2
Το κύκλωµα που προκύπτει φαίνεται στο Σχήµα 5.15.

ΜΟΝΑ∆Α ΕΛΕΓΧΟΥ

• D0 Q0
Z
• S0
Αποκωδικοποιητής

FF0
• S1
2-σε-4

Y
• S2

• S3

G D1 Q1
FF1

CLK

Σχήµα 5.15. Το κύκλωµα της µονάδας ελέγχου του δυαδικού πολλαπλασιαστή, υλοποιηµένο µε FFs
τύπου D, και αποκωδικοποιητή.

28
Αν σχεδιάσατε το σωστό κύκλωµα, τότε σας αξίζουν συγχαρητήρια. Αυτό σηµαίνει
ότι έχετε κατανοήσει την όλη µεθοδολογία υλοποίησης µονάδων ελέγχου και µπορείτε να
συνεχίσετε µε την επόµενη τεχνική, η οποία θα σας φανεί ακόµα πιο εύκολη. Αν ωστόσο
δεν τα καταφέρατε, µην συνεχίσετε ακόµη, πριν επαναλάβετε και πάλι τη διαδικασία.
Ανατρέξτε στο Κεφάλαιο 2, για να ξαναθυµηθείτε τον τρόπο σχεδίασης των σύγχρονων
ακολουθιακών κυκλωµάτων µε FF τύπου D, και µελετήστε ξανά την υποενότητα 5.2.2.

Απάντηση Άσκησης Αυτοαξιολόγησης 5 / Κεφάλαιο 5

Για να µπορέσουµε να υλοποιήσουµε τη µονάδα ελέγχου µε ένα FF τύπου D ανά


κατάσταση, θα πρέπει πρώτα να σχεδιάσουµε το διάγραµµα καταστάσεων του
κυκλώµατος. Αυτό προκύπτει από το διάγραµµα ASM του Σχήµατος 5.7 και φαίνεται στο
Σχήµα 5.16α. Από το διάγραµµα καταστάσεων µπορούµε να προσδιορίσουµε τις λογικές
συναρτήσεις των εισόδων των FFs τύπου D. Έχουµε 4 καταστάσεις S0, S1, S2, S3 και
συνεπώς θα χρειαστούµε 4 FFs (ένα για κάθε κατάσταση), οι είσοδοι των οποίων θα
είναι:
D0 = G΄S0 + ZS3
D1 = GS0
D2 = S1 + Z΄S3
D3 = S2
Θυµηθείτε ότι παίρνουµε το λογικό OR των µεταβάσεων, που καταλήγουν σε µια
κατάσταση, λαµβάνοντας συγχρόνως υπόψη µας τις συνθήκες, υπό τις οποίες γίνεται
κάθε µετάβαση, δηλαδή τις συνθήκες που αναγράφονται στα βέλη του διαγράµµατος
καταστάσεων. Για παράδειγµα, στην κατάσταση S2 µπορούµε να µεταβούµε είτε από την
κατάσταση S1 χωρίς όρους είτε από την κατάσταση S3 υπό τον όρο ότι Ζ=0. Άρα, D3 = S1
+ Z΄S3. Με παρόµοιο τρόπο προέκυψαν και οι εκφράσεις των εισόδων των υπόλοιπων
FFs. Το κύκλωµα της µονάδας ελέγχου για την περίπτωση αυτή φαίνεται στο Σχήµα
5.16β.

29
ΜΟΝΑ∆Α ΕΛΕΓΧΟΥ

Z • D0 Q0 • S0
G=0
FF0


S0
1 Z=1 G • D1 Q1 • S1
G= FF1

S1 S3
S2
D2 Q2 • S2
Z=0 FF2
Y

(α)
D3 Q3
• S3
FF3

(β)

Σχήµα 5.16. (α) ∆ιάγραµµα καταστάσεων και (β) κύκλωµα της µονάδας ελέγχου του δυαδικού
πολλαπλασιαστή.
Αν απαντήσατε σωστά, τότε µπράβο σας. Αν πάλι δεν τα καταφέρατε, τότε
ξαναπροσπαθήστε, αφού πρώτα επαναλάβετε τη µελέτη της υποενότητας 5.2.3. Θα
διαπιστώσετε ότι αυτός ο τρόπος υλοποίησης είναι πιο εύκολος από τους άλλους, κυρίως
επειδή αποφεύγουµε να καταστρώσουµε τον πίνακα καταστάσεων και χρησιµοποιούµε
το διάγραµµα καταστάσεων, το οποίο εξάγεται άµεσα από τις προδιαγραφές του
προβλήµατος.

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


ASM, algorithmic State Machine Αλγοριθµική µηχανή καταστάσεων
Command input Εντολή εισόδου
Condition box Στοιχείο εξόδου από συνθήκη
Conditional output box Στοιχείο εξόδου από συνθήκη
Control unit Μονάδα ελέγχου
Count-down counter Αφαιρετικός απαριθµητής
Count-up counter Προσθετικός απαριθµητής
Data unit Μονάδα δεδοµένων
Decision box Στοιχείο απόφασης
Decoder Αποκωδικοποιητής
Initialization Αρχική εκκίνηση
Multiplexer, MUX Πολυπλέκτης
Programmable Logic Array, PLA Προγραµµατιζόµενη λογική διάταξη
State box Στοιχείο κατάστασης
State diagram ∆ιάγραµµα καταστάσεων
State machine Μηχανή καταστάσεων

30
ΚΕΦΑΛΑΙΟ 6

ΑΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ............................................................................................................ 3

ΕΝΟΤΗΤΑ 6.1 ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕ∆ΙΑΣΗ ΑΣΥΓΧΡΟΝΩΝ ΑΚΟΛΟΥΘΙΑΚΩΝ


ΚΥΚΛΩΜΑΤΩΝ .......................................................................................................................................... 5
6.1.1. ΑΝΑΛΥΣΗ ........................................................................................................................................... 6
6.1.2. ΣΧΕ∆ΙΑΣΗ ........................................................................................................................................... 9
ΕΝΟΤΗΤΑ 6.2 ΘΕΜΑΤΑ ΕΥΣΤΑΘΕΙΑΣ ΚΑΙ ΣΥΝΘΗΚΕΣ ΑΝΤΑΓΩΝΙΣΜΟΥ ........................... 12
6.2.1. ΘΕΜΑΤΑ ΕΥΣΤΑΘΕΙΑΣ....................................................................................................................... 12
6.2.2. ΣΥΝΘΗΚΕΣ ΑΝΤΑΓΩΝΙΣΜΟΥ ............................................................................................................. 14
ΕΝΟΤΗΤΑ 6.3 ΣΠΙΝΘΗΡΕΣ ................................................................................................................... 18
6.3.1. ΣΠΙΝΘΗΡΕΣ ΣΕ ΣΥΝ∆ΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ ...................................................................................... 18
6.3.2. ΣΠΙΝΘΗΡΕΣ ΣΕ ΑΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ................................................................ 20
ΒΙΒΛΙΟΓΡΑΦΙΑ ......................................................................................................................................... 23

ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ......................................................................... 23

ΑΠΟ∆ΟΣΗ ΑΓΓΛΙΚΩΝ ΟΡΩΝ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ............................................................................ 32

1
ΚΕΦΑΛΑΙΟ 6
ΑΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

Σκοπός
Στο Κεφάλαιο αυτό µελετάµε τα ασύγχρονα ακολουθιακά κυκλώµατα. Πρόκειται για
κυκλώµατα µε ‘µνήµη’, η λειτουργία των οποίων, όµως, δεν συγχρονίζεται µε κάποιο
κεντρικό ρολόι. Σκοπός µας είναι να γνωρίσουµε τον τρόπο ανάλυσης και σχεδίασης
τέτοιων κυκλωµάτων, καθώς και τα προβλήµατα που συνδέονται µε αυτά (π.χ. αστάθεια,
ανταγωνισµοί, σπινθήρες), όπως και τα πλεονεκτήµατα που αυτά παρουσιάζουν (π.χ.
δυνατότητα άµεσης ανταπόκρισης σε εξωτερικά ερεθίσµατα, µικρότερο µέγεθος
κυκλωµάτων, κά).

Προσδοκώµενα αποτελέσµατα
Μετά τη µελέτη του Κεφαλαίου θα είστε σε θέση να:
• αναλύετε ασύγχρονα ακολουθιακά κυκλώµατα
• σχεδιάζετε ασύγχρονα ακολουθιακά κυκλώµατα, τα οποία λειτουργούν σύµφωνα µε
δοσµένες προδιαγραφές
• εντοπίζετε και να αντιµετωπίζετε τα προβλήµατα αστάθειας, που παρουσιάζονται
στα ασύγχρονα ακολουθιακά κυκλώµατα
• εντοπίζετε και να αντιµετωπίζετε τις συνθήκες ανταγωνισµού, που παρουσιάζονται
στα ασύγχρονα ακολουθιακά κυκλώµατα
• εντοπίζετε και να αντιµετωπίζετε τους σπινθήρες, που παρουσιάζονται στα
συνδυαστικά και στα ασύγχρονα ακολουθιακά κυκλώµατα

Έννοιες κλειδιά
• ασύγχρονα ακολουθιακά κυκλώµατα • συνθήκες ανταγωνισµού (race
• κυκλώµατα µε ανάδραση conditions)
(ανατροφοδότηση) • ασταθής πολυδονητής
• σπινθήρες (hazards) • πίνακας µεταβάσεων
• αστάθεια κυκλωµάτων • πίνακας ροής

2
ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ
Στα προηγούµενα κεφάλαια ασχοληθήκαµε µε τα σύγχρονα ακολουθιακά κυκλώµατα,
δηλαδή µε εκείνα τα ακολουθιακά κυκλώµατα η λειτουργία των οποίων συγχρονίζεται µε
τους παλµούς ενός ρολογιού. Αναφερθήκαµε µε συντοµία σε ασύγχρονα ακολουθιακά
κυκλώµατα στο Κεφάλαιο 3, όταν µελετούσαµε τους απαριθµητές (ασύγχρονους
απαριθµητές ή απαριθµητές κυµάτωσης). Στο παρόν κεφάλαιο θα ασχοληθούµε µε τη
µελέτη των ασύγχρονων ακολουθιακών κυκλωµάτων και κατ' αντιστοιχία µε τα
σύγχρονα ακολουθιακά κυκλώµατα, θα γνωρίσουµε τον τρόπο ανάλυσης και σχεδίασης
τέτοιων κυκλωµάτων.
Είδαµε στο Κεφάλαιο 1 ότι ακολουθιακά κυκλώµατα είναι εκείνα των οποίων οι
έξοδοι σε κάθε χρονική στιγµή εξαρτώνται όχι µόνον από τις τιµές των εισόδων τη
χρονική εκείνη στιγµή, αλλά και από τις τιµές των εξόδων των στοιχείων µνήµης του
κυκλώµατος την προηγούµενη χρονική στιγµή. Με άλλα λόγια, τα ακολουθιακά
κυκλώµατα έχουν µνήµη. Αυτή η δυνατότητα της "µνήµης" µπορεί να προέρχεται είτε από
την ύπαρξη κάποιου ή κάποιων FFs στο κύκλωµα είτε από την ύπαρξη στοιχείων
χρονικής καθυστέρησης1. Κατά συνέπεια, ένα συνδυαστικό κύκλωµα µε ανάδραση
(ανατροφοδότηση, feedback) είναι στην ουσία ένα ασύγχρονο ακολουθιακό κύκλωµα. Γι'
αυτό το λόγο, τα ασύγχρονα ακολουθιακά κυκλώµατα τα βλέπουµε και ως ακολουθιακά
κυκλώµατα µε ανάδραση (feedback sequential circuits) στη διεθνή βιβλιογραφία. Το
γενικό σχηµατικό διάγραµµα ενός τέτοιου κυκλώµατος φαίνεται στο Σχήµα 6.1.
Πρόκειται για ένα συνδυαστικό κύκλωµα, του οποίου ορισµένες από τις εξόδους του
ανατροφοδοτούνται στην είσοδο. Αποτελείται από n εισόδους, m εξόδους και k βρόχους
ανάδρασης, δηλαδή k µεταβλητές κατάστασης, οι οποίες του δίνουν τη δυνατότητα να
µπορεί να βρίσκεται σε 2k καταστάσεις. Τις µεταβλητές yi, i=1, 2, ..., k της παρούσας ή
εσωτερικής κατάστασης τις ονοµάζουµε και δευτερεύουσες µεταβλητές (secondary
variables), ενώ τις µεταβλητές Yi, i=1, 2, ..., k της επόµενης κατάστασης τις ονοµάζουµε
και µεταβλητές διέγερσης (excitation variables). Όταν η τιµή µιας µεταβλητής εισόδου xj,

1
Η χρονική καθυστέρηση ενυπάρχει σε κάθε ηλεκτρονικό στοιχείο. Μια πύλη NAND της
βασικής σειράς TTL (π.χ. η πύλη 7400) παρουσιάζει καθυστέρηση διάδοσης (propagation
delay) περίπου 10 ns, ενώ η αντίστοιχη της προηγµένης σειράς Schottky χαµηλής ισχύος (π.χ. η
πύλη 74ALS00) παρουσιάζει καθυστέρηση περίπου 4 ns. Η καθυστέρηση διάδοσης
αντιπροσωπεύει τη διαφορά χρόνου από τη στιγµή που εφαρµόστηκε η είσοδος σε µια πύλη
µέχρι τη στιγµή που η πύλη άλλαξε κατάσταση ανταποκρινόµενη στο σήµα της εισόδου.

3
j=1, 2, ..., n αλλάξει, οι δευτερεύουσες µεταβλητές δεν αλλάζουν αµέσως, αφού
απαιτείται κάποιος χρόνος για τη διάδοση των σηµάτων µέσω του συνδυαστικού
κυκλώµατος και των στοιχείων καθυστέρησης. Έτσι, κατά τη µεταβατική κατάσταση οι
µεταβλητές Υ και y δεν είναι ίδιες. Κατά τη µόνιµη κατάσταση οι µεταβλητές αυτές
µπορεί να είναι ίδιες. Ας γίνουµε πιο συγκεκριµένοι: Αν, για κάποιες τιµές των
µεταβλητών εισόδου, το κύκλωµα καταλήγει σε συνθήκες µόνιµης κατάστασης yi=Υi,
i=1, 2, ..., k, τότε αυτό είναι ευσταθές (stable). Σε διαφορετική περίπτωση, το κύκλωµα
βρίσκεται συνεχώς σε µεταβατική κατάσταση, δηλαδή είναι ασταθές (unstable). Η
αλλαγή ενός ασύγχρονου ακολουθιακού κυκλώµατος από τη µία ευσταθή κατάσταση
στην άλλη προκαλείται από την αλλαγή µιας µεταβλητής εισόδου, σε αντίθεση µε τα
σύγχρονα ακολουθιακά κυκλώµατα στα οποία προκαλείται από τους ωρολογιακούς
παλµούς. Επιπλέον, προϋποθέτουµε ότι οι µεταβλητές εισόδου δεν αλλάζουν
ταυτόχρονα. Με άλλα λόγια, µόνο µία είσοδος αλλάζει κάθε φορά, αφήνοντας αρκετό
χρόνο ώστε το κύκλωµα να µεταβεί σε µία ευσταθή εσωτερική κατάσταση, πριν
εφαρµοστεί κάποια άλλη είσοδος. Τέτοια ασύγχρονα ακολουθιακά κυκλώµατα
ονοµάζονται κυκλώµατα βασικού τύπου (fundamental-mode circuits). Θυµηθείτε ότι στα
σύγχρονα ακολουθιακά κυκλώµατα περισσότερες από µία είσοδοι µπορούν να αλλάξουν
σε οποιαδήποτε χρονική στιγµή, χωρίς να επηρεαστεί η κατάσταση του κυκλώµατος,
αφού η δειγµατοληψία των εισόδων και η αλλαγή της κατάστασης γίνεται κατά την
έλευση της ενεργού ακµής του ωρολογιακού παλµού.

x1 z1
n µεταβλητές x2 z m µεταβλητές
εισόδου M M 2 εισόδου
xn zm
k δευτερεύουσες
y1 Y1 k µεταβλητές
Συνδυαστικό
µεταβλητές
y2 κύκλωµα Y2 διέργεσης
(παρούσα (επόµενη
κατάσσταση) yk M M Yk κατάσταση)

Καθυστέ-
ρηση

Καθυστέ-
ρηση

Καθυστέ-
ρηση

Σχήµα 6.1. Γενικό σχηµατικό διάγραµµα ενός ασύγχρονου ακολουθιακού κυκλώµατος.

4
Τα ασύγχρονα ακολουθιακά κυκλώµατα παρουσιάζουν ορισµένα πλεονεκτήµατα
έναντι των σύγχρονων ακολουθιακών κυκλωµάτων (π.χ. δυνατότητα άµεσης
ανταπόκρισης σε εξωτερικά ερεθίσµατα, µικρότερο µέγεθος κυκλωµάτων, κά) και
χρησιµοποιούνται σε εφαρµογές, όπου τα σύγχρονα ακολουθιακά κυκλώµατα δεν
µπορούν να ανταποκριθούν ή είναι µη συµφέρουσα η χρήση τους. Για παράδειγµα, όταν
ένα ψηφιακό σύστηµα πρέπει να ανταποκριθεί άµεσα σε ένα τυχαίο γεγονός πολύ µικρής
χρονικής διάρκειας, χωρίς να είναι ανάγκη να "περιµένει" τον παλµό συγχρονισµού, τότε
απαιτείται να χρησιµοποιήσουµε κάποιο ασύγχρονο ακολουθιακό κύκλωµα. Σχετικό
παράδειγµα αποτελεί ο µετρητής Geiger, ο οποίος απαριθµεί το πλήθος των ραδιενεργών
σωµατιδίων από τις διασπάσεις που καταγράφονται. Κάθε τέτοιο γεγονός είναι πολύ
µικρής διάρκειας και χρονικά τυχαίο. Από την άλλη πλευρά, σε ορισµένες απλές
εφαρµογές είναι περισσότερο συµφέρον (από άποψη χώρου και κόστους) να
χρησιµοποιηθεί ένα ασύγχρονο ακολουθιακό κύκλωµα αντί ενός σύγχρονου
ακολουθιακού κυκλώµατος, αφού το πρώτο δεν συνοδεύεται από κυκλώµατα παραγωγής
ωρολογιακών παλµών.
Τα ασύγχρονα ακολουθιακά κυκλώµατα είτε θα µας δίνονται έτοιµα, οπότε θα πρέπει
να τα αναλύσουµε, για να προσδιορίσουµε τον τρόπο λειτουργίας τους, είτε θα µας
δίνεται ο επιθυµητός τρόπος λειτουργίας και θα µας ζητείται να σχεδιάσουµε το
κατάλληλο κύκλωµα. Έτσι, όπως και στα σύγχρονα ακολουθιακά κυκλώµατα, θα
ασχοληθούµε µε την ανάλυση και τη σχεδίαση ασύγχρονων ακολουθιακών κυκλωµάτων
(ενότητα 6.1). Στη συνέχεια θα εξετάσουµε τα προβλήµατα τα σχετικά µε την ευστάθεια
και µε τις συνθήκες ανταγωνισµού που παρουσιάζονται στα ασύγχρονα ακολουθιακά
κυκλώµατα (ενότητα 6.2). Τέλος, θα περιγράψουµε το φαινόµενο των σπινθήρων
(hazards), όπως αυτό εµφανίζεται σε συνδυαστικά και ακολουθιακά κυκλώµατα (ενότητα
6.3).

ΕΝΟΤΗΤΑ 6.1 ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕ∆ΙΑΣΗ ΑΣΥΓΧΡΟΝΩΝ


ΑΚΟΛΟΥΘΙΑΚΩΝ ΚΥΚΛΩΜΑΤΩΝ

Στην ενότητα αυτή θα µελετήσουµε τα ασύγχρονα ακολουθιακά κυκλώµατα.


Πρόκειται στην ουσία για απλά συνδυαστικά κυκλώµατα µε ανάδραση. Θα γνωρίσουµε
αρχικά τον τρόπο ανάλυσης τέτοιων κυκλωµάτων και στη συνέχεια τη µεθοδολογία
σχεδίασης αυτών. Με την ολοκλήρωση της µελέτης της ενότητας θα έχετε εξοικειωθεί µε

5
τις µεθόδους αντιµετώπισης των ασύγχρονων ακολουθιακών κυκλωµάτων και θα είστε
πλέον σε θέση να αναλύετε ασύγχρονα ακολουθιακά κυκλώµατα, καθώς επίσης και να
σχεδιάζετε ασύγχρονα ακολουθιακά κυκλώµατα, τα οποία πληρούν ορισµένες
προδιαγραφές.

6.1.1. ΑΝΑΛΥΣΗ

Όπως και στην περίπτωση των σύγχρονων ακολουθιακών κυκλωµάτων, µε τον όρο
ανάλυση εννοούµε τον προσδιορισµό ενός πίνακα ή ενός διαγράµµατος, που περιγράφει
την ακολουθία των εσωτερικών καταστάσεων και εξόδων του κυκλώµατος, ως
συνάρτηση των µεταβολών των εισόδων αυτού. Πράγµατι, ξεκινώντας από το ασύγχρονο
ακολουθιακό κύκλωµα που µας δίνεται, καταλήγουµε, αναλύοντάς το, στον πίνακα
µεταβάσεων (transition table), στον οποίο καταγράφονται όλες οι δυνατές καταστάσεις
και οι είσοδοι του κυκλώµατος. Οι ευσταθείς καταστάσεις σηµειώνονται συνήθως µε
έναν κύκλο, όπως θα δούµε στο παράδειγµα που ακολουθεί.

Παράδειγµα 1 / Κεφάλαιο 6

Να προσδιοριστεί η λειτουργία του κυκλώµατος του Σχήµατος 6.2.

x1 x2
x1 • Y y
x2 • •
00 01 11 10

0 0 0 1 0

1 0 1 1 1
y

Σχήµα 6.2. Ασύγχρονο ακολουθιακό κύκλωµα Σχήµα 6.3. Πίνακας µεταβάσεων του
µε ανάδραση κυκλώµατος του Σχήµατος 6.2.

Λύση: Κατ' αρχήν εντοπίζουµε όλους τους βρόχους ανάδρασης και τους
συµβολίζουµε ως Y και y. Στο κύκλωµα του Σχήµατος 6.2 υπάρχει ένας µόνο τέτοιος
βρόχος. Εκφράζουµε την έξοδο Υ ως συνάρτηση των εισόδων και της y. Στην
προκειµένη περίπτωση βρίσκουµε ότι
Y = x1 x 2 + y( x1′ x 2 ) ′ = x1 x 2 + y( x1 + x 2′ ) = x 1 x 2 + x 1 y + x 2′ y . Τώρα είµαστε σε θέση να
σχεδιάσουµε έναν πίνακα, ο οποίος δείχνει τις τιµές της µεταβλητής Υ για οποιονδήποτε
συνδυασµό των µεταβλητών εισόδου x και παρούσας κατάστασης y. Ο πίνακας αυτός

6
δείχνεται στο Σχήµα 6.3 και αποτελεί το λεγόµενο πίνακα µεταβάσεων. Συνηθίζεται οι
µεταβλητές x να αποτελούν τις στήλες του πίνακα µεταβάσεων, ενώ οι µεταβλητές y τις
γραµµές αυτού. Έτσι, ο πίνακας µεταβάσεων ενός ασύγχρονου ακολουθιακού
κυκλώµατος µε n µεταβλητές εισόδου και k δευτερεύουσες µεταβλητές θα αποτελείται
από 2n στήλες και 2k γραµµές. Παρατηρούµε ότι οι πίνακες µεταβάσεων είναι όµοιοι µε
τους χάρτες Karnaugh που γνωρίσαµε στα συνδυαστικά κυκλώµατα. Μόνο µία
µεταβλητή εισόδου αλλάζει από στήλη σε στήλη, γεγονός που συµφωνεί µε το ότι
πρόκειται για ασύγχρονο ακολουθιακό κύκλωµα βασικού τύπου.

Στον πίνακα του Σχήµατος 6.3 έχουµε σηµειώσει µε κύκλο τις ευσταθείς καταστάσεις
του κυκλώµατος. Θυµηθείτε ότι ευσταθής είναι µια κατάσταση όταν Y=y. Οι υπόλοιπες
καταστάσεις είναι ασταθείς. Γίνεται φανερό ότι ένα ευσταθές ασύγχρονο ακολουθιακό
κύκλωµα θα έχει τουλάχιστον έναν κύκλο (µια ευσταθή κατάσταση) σε κάθε στήλη του
πίνακα µεταβάσεων. Ας µελετήσουµε για λίγο τη λειτουργία του κυκλώµατος που µας
δίνεται, µέσα από τον πίνακα µεταβάσεων αυτού.
Έστω ότι η είσοδος x1 βρίσκεται στο λογικό 0 και η είσοδος x2 στο λογικό 0, δηλαδή
x1x2=00. Η κατάσταση Υ του κυκλώµατος θα είναι 0, η οποία είναι µια ευσταθής
κατάσταση για το κύκλωµα. Αν η είσοδος x2 αλλάξει λογική στάθµη και µεταβεί στο 1,
δηλαδή x1x2=01, τότε το Υ παραµένει στην κατάσταση 0, η οποία είναι πάλι µία
ευσταθής κατάσταση για το κύκλωµα (1η γραµµή, 2η στήλη του πίνακα)2. Αν τώρα η
είσοδος x1 αλλάξει (προσοχή: µόνο µία είσοδος επιτρέπεται να αλλάζει κάθε φορά) και
από 0 γίνει 1, δηλαδή η ολική κατάσταση του κυκλώµατος γίνει 011, τότε το κύκλωµα
µεταβαίνει στην κατάσταση Υ=1, η οποία είναι ασταθής (1η γραµµή, 3η στήλη του
πίνακα). Μόλις όµως το σήµα Υ=1 ανατροφοδοτηθεί στο κύκλωµα θα γίνει y=1. Η ολική
κατάσταση 111 είναι ευσταθής (2η γραµµή, 3η στήλη του πίνακα) και το κύκλωµα θα
παραµείνει στην κατάσταση αυτή. Αλλαγή της εισόδου x2 από 1 σε 0 θα φέρει το
κύκλωµα στην ολική κατάσταση 110, η οποία είναι επίσης ευσταθής. Τέλος, αν η είσοδος
x1 από 1 γίνει 0, τότε η ολική κατάσταση του κυκλώµατος γίνεται 100, η οποία είναι
ασταθής, αφού y=1 και Υ=0. Μόλις όµως η τιµή Υ=0 ανατροφοδοτηθεί στο κύκλωµα

2
Για λόγους σαφήνειας, συνηθίζουµε να αναφερόµαστε στην ολική κατάσταση (total state) ενός
κυκλώµατος βασικού τύπου, δηλαδή στο συνδυασµό της παρούσας (εσωτερικής) κατάστασης
και των εισόδων. Για την περίπτωση του πίνακα του Σχήµατος 6.3 η ολική κατάσταση θα είναι
της µορφής yx1x2. Έτσι, για παράδειγµα, η ολική κατάσταση yx1x2=001 είναι ευσταθής, ενώ η
κατάσταση yx1x2=100 είναι ασταθής.

7
αυτό, θα µεταβεί στην ολική κατάσταση 000, η οποία είναι ευσταθής και είναι αυτή απ'
όπου ξεκινήσαµε την ανάλυση.
Τυποποιώντας τα βήµατα, που απαιτούνται για την ανάλυση ενός ασύγχρονου
ακολουθιακού κυκλώµατος, καταλήγουµε στα εξής:
Βήµα Α1: Εντοπίζουµε όλους τους βρόχους ανάδρασης και συµβολίζουµε ως Y και y
καθέναν από αυτούς, σύµφωνα µε το γενικό διάγραµµα του Σχήµατος 6.1.
Βήµα Α2: Εκφράζουµε κάθε µεταβλητή Υ ως συνάρτηση Boole των εισόδων x και
των εσωτερικών καταστάσεων y.
Βήµα Α3: Καταστρώνουµε τον πίνακα µεταβάσεων του κυκλώµατος και
σηµειώνουµε πάνω σ' αυτόν τις ευσταθείς καταστάσεις, δηλαδή τις τιµές
του Υ που είναι ίσες µε τις τιµές y της ίδιας γραµµής.

Άσκηση Αυτοαξιολόγησης 1 / Κεφάλαιο 6

Αναλύστε τη λειτουργία του ασύγχρονου ακολουθιακού κυκλώµατος του Σχήµατος


6.4. Ποια είναι η κατάσταση του κυκλώµατος, αν αυτό βρίσκεται στην ολική κατάσταση
110 και η είσοδος αλλάξει από 0 σε 1;
x1 • R1
• • Y1

y1 • • S1
x
Y1 y2

• •
y1
R2
y2 • • Y2

Y2
S2
x2 •

Σχήµα 6.4. Ασύγχρονο ακολουθιακό κύκλωµα Σχήµα 6.5. Ασύγχρονο ακολουθιακό κύκλωµα
της άσκησης αυτοαξιολόγησης 1/ Κεφάλαιο 6. της άσκησης αυτοαξιολόγησης 2 / Κεφάλαιο 6

Άσκηση Αυτοαξιολόγησης 2 / Κεφάλαιο 6

Να αναλυθεί η λειτουργία του ασύγχρονου ακολουθιακού κυκλώµατος του Σχήµατος


6.5.

8
6.1.2. ΣΧΕ∆ΙΑΣΗ

Η σχεδίαση ενός ασύγχρονου ακολουθιακού κυκλώµατος είναι η αντίστροφη


διαδικασία της ανάλυσης, που µόλις περιγράψαµε. Εδώ, µας δίνεται ο επιθυµητός τρόπος
λειτουργίας του κυκλώµατος και µας ζητείται να προσδιορίσουµε το αντίστοιχο λογικό
διάγραµµα του κυκλώµατος. Αρχίζουµε τη σχεδίαση από τον πίνακα µεταβάσεων, που
είναι και το πιο δύσκολο τµήµα της όλης σχεδίασης, αφού πρέπει να κωδικοποιήσουµε
την περιγραφή που µας δίνεται σε διαφορετικές καταστάσεις. Συνήθως, συµβολίζουµε τις
καταστάσεις µε αλφαβητικά ονόµατα, αντί για δυαδικές τιµές. Ο πίνακας που προκύπτει
ονοµάζεται πίνακας ροής (flow table) και µας βοηθά στην ελαχιστοποίηση των
καταστάσεων και στην αποφυγή των προβληµάτων ανταγωνισµού (κυνηγητών, races).
(Το θέµα της ελαχιστοποίησης των καταστάσεων ξεφεύγει από τους στόχους του
παρόντος βιβλίου και δεν θα το αντιµετωπίσουµε εδώ. Το θέµα των συνθηκών
ανταγωνισµού θα το γνωρίσουµε στην ενότητα 6.2). Όταν ένας πίνακας ροής περιέχει µία
µόνο ευσταθή κατάσταση σε κάθε γραµµή του, τότε αυτός ονοµάζεται πρωτόγονος
(primitive). Τέλος, θα πρέπει να αναφέρουµε ότι στον πίνακα ροής σηµειώνονται και οι
τιµές των εξόδων του κυκλώµατος. Ας γνωρίσουµε τη διαδικασία σχεδίασης ενός απλού
ασύγχρονου ακολουθιακού κυκλώµατος µέσα από ένα παράδειγµα.

Παράδειγµα 2 / Κεφάλαιο 6

Να σχεδιαστεί ασύγχρονο ακολουθιακό κύκλωµα, το οποίο να λειτουργεί ως εξής:


Όταν οι είσοδοι είναι 01, τότε η κατάσταση του κυκλώµατος να είναι 0. Όταν οι είσοδοι
είναι 10, τότε η κατάσταση να είναι 1. Για τους υπόλοιπους συνδυασµούς, η κατάσταση
να διατηρεί την προηγούµενη τιµή της.

Λύση: Το κύκλωµα αποτελείται από δύο εισόδους και µία έξοδο, που είναι η
µεταβλητή διέγερσης Υ. Άρα, ο πίνακας ροής του κυκλώµατος θα αποτελείται από 4
στήλες και 2 γραµµές, όπως δείχνεται στο Σχήµα 6.6α.

9
x1 x 2 x1 x 2 x1 x 2
y y y
00 01 11 10 00 01 11 10 00 01 11 10

a a a a a b

b b a b a b

(α) (β) (γ)

x1 x 2 x1 x 2 x1 x 2
y 00 01 11 10 y 00 01 11 10 y 00 01 11 10

a a a a b a a b a a a a b

b a b b b a b b b b a b b

(δ) (ε) (στ)

x1 x 2
x1 •
y 00 01 11 10 Y
x2 •
0 0 0 0 1

1 1 0 1 1
y

(j)
(n)

Σχήµα 6.6. (α)-(στ) ∆ιαδοχικά στάδια προσδιορισµού του πίνακα ροής του Παραδείγµατος 2 / Κεφάλαιο
6, (ζ) πίνακας µεταβάσεων, (η) λογικό διάγραµµα του ζητούµενου κυκλώµατος.

Για x1x2=01, η κατάσταση του κυκλώµατος είναι a (Σχήµα 6.6β). Συµβολίζουµε µε a,


b τις καταστάσεις 0, 1 αντίστοιχα3. Για x1x2=00 ή x1x2=11 το κύκλωµα διατηρεί την
προηγούµενη τιµή. Ας δούµε ποια είναι αυτή. Κατ' αρχήν σηµειώνουµε τις ευσταθείς
καταστάσεις του κυκλώµατος, όπως αυτές δείχνονται στο Σχήµα 6.6γ. Πριν οι είσοδοι x1,
x2 γίνουν και οι δύο 0 ή και οι δύο 1, δηλ. x1x2=00 ή x1x2=11, είχαµε είτε x1x2=01 είτε
x1x2=10. Θυµηθείτε ότι το κύκλωµα είναι βασικού τύπου και κατά συνέπεια µία µόνο
είσοδος θα αλλάζει λογική στάθµη κάθε φορά, αφήνοντας αρκετό χρόνο, ώστε το
κύκλωµα να µεταβεί σε µία ευσταθή εσωτερική κατάσταση, πριν αλλάξει η άλλη
είσοδος. Έτσι, όταν x1x2=01, η ευσταθής κατάσταση του κυκλώµατος είναι η a. Όταν
γίνει x1x2=00 ή x1x2=11, τότε το κύκλωµα, σύµφωνα µε την εκφώνηση, παραµένει στην
ίδια κατάσταση a (Σχήµα 6.6δ 1η γραµµή, 1η και 3η στήλη). Όταν x1x2=10, τότε η

3
Στη προκειµένη περίπτωση φαίνεται χωρίς νόηµα ο συµβολισµός των καταστάσεων µε γράµµατα, αφού
πρόκειται για δύο µόνο καταστάσεις. Στη γενική περίπτωση όµως, ο συµβολισµός αυτός πράγµατι έχει

10
ευσταθής κατάσταση του κυκλώµατος είναι η b. Έτσι, όταν γίνει x1x2=00 ή x1x2=11, τότε
το κύκλωµα παραµένει στην ίδια κατάσταση b (Σχήµα 6.6ε. 2η γραµµή, 1η και 3η
στήλη). Ο συνολικός πίνακας ροής του κυκλώµατος φαίνεται στο Σχήµα 6.6στ. Οι
ευσταθείς καταστάσεις σηµειώνονται σε κύκλο. Έχοντας πλέον καταστρώσει τον πίνακα
ροής, µετατρέπουµε αυτόν σε πίνακα µεταβάσεων, αντιστοιχίζοντας το a στη δυαδική
τιµή 0 και το b στη δυαδική τιµή 1. Έτσι προκύπτει ο πίνακας µεταβάσεων του Σχήµατος
6.6ζ. Από τον πίνακα αυτό, ο οποίος ουσιαστικά αποτελεί ένα χάρτη Karnaugh για τη
µεταβλητή Υ, µπορούµε εύκολα να προσδιορίσουµε τη λογική έκφρασή της, η οποία
είναι Y = x1 x 2 ′+ x1 y + x 2 ′ y = x 1 x 2 ′+ ( x 1 + x 2 ′) y . Το τελευταίο στάδιο της σχεδίασης
που µας απέµεινε, είναι πλέον το λογικό διάγραµµα του κυκλώµατος, το οποίο δείχνεται
στο Σχήµα 6.6η και αποτελεί µια απλή απεικόνιση της συνάρτησης Υ που µόλις
προσδιορίσαµε.
Τυποποιώντας τα βήµατα που πρέπει να ακολουθήσουµε για τη σχεδίαση ενός
ασύγχρονου ακολουθιακού κυκλώµατος, καταλήγουµε στα ακόλουθα:
Βήµα Σ1: Καταστρώνουµε τον πίνακα ροής, µε βάση την επιθυµητή λειτουργία του
κυκλώµατος.
Βήµα Σ2: Κωδικοποιούµε τις καταστάσεις και προσδιορίζουµε τις λογικές
συναρτήσεις για κάθε µεταβλητή διέγερσης Υ.
Βήµα Σ3: Σχεδιάζουµε το λογικό διάγραµµα του κυκλώµατος.
Θα πρέπει να αναφερθεί ότι στην περίπτωση της σχεδίασης πολύπλοκων ασύγχρονων
ακολουθιακών κυκλωµάτων, µεταξύ των βηµάτων Σ1 και Σ2, παρεµβάλλεται ένα ακόµη
βήµα, αυτό της ελαχιστοποίησης των καταστάσεων. Πιο συγκεκριµένα, από τις
προδιαγραφές που µας δίνονται, καταστρώνουµε έναν πρωτόγονο πίνακα ροής, δηλαδή
έναν πίνακα, ο οποίος έχει µόνο µία ευσταθή κατάσταση σε κάθε γραµµή. Στη συνέχεια,
απλοποιούµε αυτόν στον ελάχιστο δυνατό αριθµό καταστάσεων και µετά κωδικοποιούµε
την κάθε κατάσταση, ώστε να προκύψει ο πίνακας µεταβάσεων. Αυτή η διαδικασία
δικαιολογεί και την ύπαρξη του πίνακα ροής, ο οποίος για το Παράδειγµα 2 / Κεφάλαιο
6, που είδαµε, συµπίπτει µε τον πίνακα µεταβάσεων.

Άσκηση Αυτοαξιολόγησης 3 / Κεφάλαιο 6

Να σχεδιάσετε ασύγχρονο ακολουθιακό κύκλωµα µε δύο εισόδους, του οποίου η


κατάσταση να ισούται µε 0, όταν η µία είσοδος είναι 0, και µε 1, όταν η ίδια είσοδος

νόηµα, γιατί έχουµε πολλές καταστάσεις, τις οποίες µάλιστα πρέπει να ελαχιστοποιήσουµε στο µικρότερο

11
είναι 1. Στην περίπτωση που και οι δύο είσοδοι είναι στη λογική στάθµη 1, τότε αυτό να
παραµένει στην ευσταθή κατάσταση που βρισκόταν και µία έξοδος του κυκλώµατος (όχι
µεταβλητή διέγερσης) να µεταβαίνει στη λογική στάθµη 1.

Σύνοψη Ενότητας

Στην ενότητα αυτή ασχοληθήκαµε µε την ανάλυση και τη σχεδίαση ασύγχρονων


ακολουθιακών κυκλωµάτων. Συστηµατοποιήσαµε την καθεµιά από αυτές τις διαδικασίες
σε τρία διαφορετικά βήµατα. Στην περίπτωση της ανάλυσης ενός ασύγχρονου
ακολουθιακού κυκλώµατος, εντοπίζουµε όλους τους βρόχους ανάδρασης, εκφράζουµε τη
µεταβλητή Υ κάθε βρόχου συναρτήσει των εισόδων x και των εσωτερικών καταστάσεων
y και τέλος προσδιορίζουµε τον πίνακα µεταβάσεων, όπου σηµειώνουµε τις ευσταθείς
καταστάσεις. Μία κατάσταση είναι ευσταθής, όταν Υ=y. Στην περίπτωση της σχεδίασης
ενός ασύγχρονου ακολουθιακού κυκλώµατος, η διαδικασία είναι αντίστροφη αυτής που
µόλις περιγράψαµε. Πρώτα καταστρώνουµε τον πίνακα ροής και από αυτόν τον πίνακα
µεταβάσεων, απ' όπου προκύπτουν οι λογικές συναρτήσεις για καθεµιά από τις
µεταβλητές Υ. Τέλος, σχεδιάζουµε το λογικό διάγραµµα του κυκλώµατος.

ΕΝΟΤΗΤΑ 6.2 ΘΕΜΑΤΑ ΕΥΣΤΑΘΕΙΑΣ ΚΑΙ ΣΥΝΘΗΚΕΣ


ΑΝΤΑΓΩΝΙΣΜΟΥ

Στην ενότητα αυτή θα ασχοληθούµε µε δύο πολύ σηµαντικά θέµατα των ασύγχρονων
ακολουθιακών κυκλωµάτων: το θέµα της ευστάθειας των κυκλωµάτων και το θέµα των
ανταγωνισµών (κυνηγητών). Και τα δύο αυτά θέµατα είναι ουσιαστικής σηµασίας για την
επιτυχή σχεδίαση ενός ασύγχρονου ακολουθιακού κυκλώµατος. Με την ολοκλήρωση της
µελέτης της ενότητας θα είστε σε θέση να εντοπίζετε και να αντιµετωπίζετε µε επιτυχία
τόσο τα προβλήµατα αστάθειας, όσο και τις συνθήκες ανταγωνισµού, που
παρουσιάζονται στα ασύγχρονα ακολουθιακά κυκλώµατα.

6.2.1. ΘΕΜΑΤΑ ΕΥΣΤΑΘΕΙΑΣ

δυνατό αριθµό, πριν τις κωδικοποιήσουµε.

12
Ένα ασύγχρονο ακολουθιακό κύκλωµα είναι ολικά ευσταθές όταν έχει µία
τουλάχιστον ευσταθή κατάσταση για οποιαδήποτε τιµή της εισόδου, δηλαδή όταν ο
πίνακας µεταβάσεων περιέχει τουλάχιστον µία ευσταθή κατάσταση σε κάθε στήλη
αυτού. Ας γνωρίσουµε το θέµα της ευστάθειας ενός κυκλώµατος µέσα από ένα
παράδειγµα.

Παράδειγµα 3 / Κεφάλαιο 6

Να αναλυθεί το κύκλωµα του Σχήµατος 6.7α.

x1 x 2
y 00 01 11 10
x1 Y
0 0 0 1 1
x2
y 1 0 0 0 1

(α) (β)
Σχήµα 6.7. (α) Λογικό διάγραµµα ενός ασταθούς κυκλώµατος, (β) πίνακας µεταβάσεων του
κυκλώµατος.

Λύση: Ακολουθούµε τα βήµατα Α1 έως Α3 για την ανάλυση ενός ασύγχρονου


ακολουθιακού κυκλώµατος

Βήµα Α1: Εντοπίζουµε τους βρόχους ανάδρασης.


Βήµα Α2: Εκφράζουµε τη µεταβλητή Υ ως συνάρτηση των x και y. Στην προκειµένη
περίπτωση έχουµε Y = x 1 ( x 2 y)′ = x 1 ( x 2 ′ + y′) = x 1 x 2 ′ + x 1 y′ .
Βήµα Α3: Καταστρώνουµε τον πίνακα µεταβάσεων του κυκλώµατος και
σηµειώνουµε τις ευσταθείς καταστάσεις (Σχήµα 6.7β). Παρατηρούµε ότι η
στήλη x1x2=11 δεν έχει ευσταθείς καταστάσεις. Με άλλα λόγια, εάν
εφαρµοστούν οι είσοδοι x1=x2=1, τότε οι τιµές Y και y δεν θα είναι ποτέ
ίδιες. Όταν y=0, τότε Υ=1 (1η γραµµή, 3η στήλη), οπότε θα µεταβαίνουµε
στη 2η γραµµή του πίνακα, όπου y=1. Αλλά τότε Y=0 (2η γραµµή, 3η
στήλη), οπότε επανερχόµαστε στην προηγούµενη κατάσταση. Ο κύκλος
αυτός επαναλαµβάνεται συνεχώς, εφόσον x1x2=11, δηλαδή το κύκλωµα
είναι ασταθές. Αυτή η αστάθεια πρέπει να αποφεύγεται (µη επιτρέποντας
το συνδυασµό x1x2=11), εκτός κι αν ο στόχος µας είναι να σχεδιάσουµε
έναν ταλαντωτή (ασταθή πολυδονητή), δηλαδή µία γεννήτρια

13
τετραγωνικών παλµών (ρολόι). Πράγµατι, αν υποθέσουµε ότι το κύκλωµα
του Σχήµατος 6.7α είναι κατασκευασµένο µε πύλες της βασικής σειράς της
οικογένειας TTL, στην οποία κάθε πύλη παρουσιάζει καθυστέρηση
διάδοσης 10 ns, τότε το Υ θα βρίσκεται για 20 ns4 στην κατάσταση 0 και
για 20 ns στην κατάσταση 1. Άρα, η περίοδος των τετραγωνικών παλµών,
που θα παράγονται, θα είναι 40 ns, δηλαδή η αντίστοιχη συχνότητα θα
είναι 25 MHz.

Άσκηση Αυτοαξιολόγησης 4 / Κεφάλαιο 6

Να εξεταστεί ως προς την ευστάθεια το JK FF του Σχήµατος 1.12α, θεωρώντας ότι η


είσοδος CLK είναι συνδεδεµένη µόνιµα στο λογικό 1.

6.2.2. ΣΥΝΘΗΚΕΣ ΑΝΤΑΓΩΝΙΣΜΟΥ

Με τον όρο "ανταγωνισµός" ή "κυνηγητό" (race) εννοούµε εκείνη την περίπτωση ενός
ασύγχρονου ακολουθιακού κυκλώµατος, κατά την οποία δύο ή περισσότερες µεταβλητές
κατάστασης (εσωτερικές µεταβλητές) αλλάζουν τιµή ως αποτέλεσµα της αλλαγής µιας
εισόδου. Έτσι, εάν οι καθυστερήσεις είναι διαφορετικές για κάθε εσωτερική µεταβλητή,
αυτές µπορεί να αλλάζουν µε απρόβλεπτη σειρά. Τα λογικά σήµατα ποτέ δεν αλλάζουν
"ταυτόχρονα". Για παράδειγµα, εάν οι δύο µεταβλητές παρούσας κατάστασης y1y2 είναι
να αλλάξουν από 00 σε 11, η αλλαγή αυτή µπορεί να γίνει είτε ως 00 → 01 → 11 είτε ως
00 → 10 → 11. Στην πρώτη περίπτωση, η µεταβλητή y2 άλλαξε κατάσταση πιο γρήγορα
απ' ότι η µεταβλητή y1. Το αντίθετο συνέβη στη δεύτερη περίπτωση. Η σειρά αλλαγής
κατάστασης δεν είναι γνωστή εκ των προτέρων. Εάν η ευσταθής κατάσταση, στην οποία
θα καταλήξει το κύκλωµα, δεν εξαρτάται από τη σειρά µε την οποία αλλάζουν οι
εσωτερικές µεταβλητές, τότε ο ανταγωνισµός είναι µη καθοριστικής σηµασίας (µη
κρίσιµος, non-critical). Σε διαφορετική περίπτωση, ο ανταγωνισµός είναι καθοριστικής
σηµασίας (κρίσιµος, critical). Οι κρίσιµοι ανταγωνισµοί πρέπει να αποφεύγονται, γιατί
αλλιώς η συµπεριφορά (λειτουργία) του κυκλώµατος είναι απρόβλεπτη. Την αποφυγή
των κρίσιµων ανταγωνισµών την πετυχαίνουµε κατά τη διαδικασία της σχεδίασης του

4
Το σήµα θα πρέπει να διαδοθεί µέσα από δύο πύλες µέχρι να φτάσει στην έξοδο Υ, και κάθε
πύλη εισάγει καθυστέρηση 10 ns.

14
κυκλώµατος, αναγκάζοντας το κύκλωµα να διατρέχει ασταθείς καταστάσεις, επιλεγµένες
έτσι ώστε µία µόνο εσωτερική µεταβλητή να αλλάζει κάθε φορά.
Ας δούµε ορισµένα παραδείγµατα ανταγωνισµών µη-κρίσιµων και κρίσιµων. Στο
Σχήµα 6.8 δίνονται δύο πίνακες µεταβάσεων, οι οποίοι περιέχουν µη-κρίσιµους
ανταγωνισµούς, ενώ στο Σχήµα 6.9 φαίνονται δύο πίνακες, που περιέχουν κρίσιµους
ανταγωνισµούς. Έστω ότι το κύκλωµα, µε τον πίνακα µεταβάσεων του Σχήµατος 6.8α
βρίσκεται στην ευσταθή ολική κατάσταση y1y2x=000. Αλλάζουµε την είσοδο x από 0 σε
1. Η εσωτερική κατάσταση αλλάζει από 00 σε 11 (1η γραµµή, 2η στήλη). Άρα, θα
έχουµε την περίπτωση του ανταγωνισµού των µεταβλητών y1 και y2, ως προς το ποια θα
αλλάξει πρώτη. Αν η y2 αλλάξει πριν από την y1, τότε το κύκλωµα θα διατρέξει τις
καταστάσεις 00 → 01. Η κατάσταση 01 είναι ευσταθής, οπότε το κύκλωµα παραµένει σ'
αυτή. Αν η y1 αλλάξει πριν την y2, τότε το κύκλωµα θα διατρέξει τις καταστάσεις 00 →
10 → 11 → 01, οπότε και πάλι θα καταλήξει στην ευσταθή κατάσταση 01 (2η γραµµή,
2η στήλη). Με άλλα λόγια, ο ανταγωνισµός των µεταβλητών, που µόλις
παρακολουθήσαµε, δεν ήταν κρίσιµος.

x x1 x 2
y1 y2 0 1 y1 y 2 y 3 00 01 11 10

000 010 010 000 000


00 00 11
001 011 011 000 000
01 11 01
011 011 111 111 000

11 10 01 010 010 110 110 000

110 010 110 111 111


10 00 11
111 011 111 111 111

101 011 011 111 111


(α)
100 010 010 111 111

(β )

Σχήµα 6.8. Πίνακες µεταβάσεων που περιέχουν µη-κρίσιµους ανταγωνισµούς.

15
x1 x2
y1 y 2 y3 00 01 11 10

x 000 010 010 000 000


y1 y 2 0 1

00 00 11 001 011 011 000 000

01 11 01 011 011 111 111 000

11 10 11 010 010 110 110 110

10 00 10 110 010 110 111 111

111 011 111 111 111


(α)
101 011 011 111 111

100 010 010 111 111

(β)
Σχήµα 6.9. Πίνακες µεταβάσεων που περιέχουν κρίσιµους ανταγωνισµούς.

Παρόµοια είναι και η περίπτωση του Σχήµατος 6.8β. Έστω ότι το κύκλωµα βρίσκεται
στην ευσταθή ολική κατάσταση y1y2y3x1x2=01100 (3η γραµµή, 1η στήλη του πίνακα
µεταβάσεων του Σχήµατος 6.8β). Αλλαγή της εισόδου x1 από 0 σε 1 προκαλεί µια
συνθήκη ανταγωνισµού, αφού η εσωτερική κατάσταση αλλάζει από 011 σε 000 (1η
γραµµή, 4η στήλη). Ο ανταγωνισµός θα συµβεί µεταξύ των µεταβλητών y2 και y3. Έτσι,
αν η y3 αλλάξει πρώτη, το κύκλωµα θα διατρέξει τις καταστάσεις 011 → 010 → 000,
καταλήγοντας στην κατάσταση 000, η οποία είναι ευσταθής. Αν η y2 αλλάξει πρώτη, τότε
το κύκλωµα θα διατρέξει τις καταστάσεις 011 → 001 → 000, καταλήγοντας και πάλι
στην ευσταθή κατάσταση 000. Άρα, και στις δύο περιπτώσεις καταλήγουµε στην
ευσταθή ολική κατάσταση 00010, ανεξάρτητα από τη σειρά µε την οποία άλλαξαν οι
µεταβλητές, δηλαδή έχουµε ένα µη-κρίσιµο ανταγωνισµό.
Ας επαναλάβουµε την ίδια διαδικασία για τις περιπτώσεις των πινάκων µεταβάσεων
του Σχήµατος 6.9. Έστω ότι βρισκόµαστε στην ευσταθή ολική κατάσταση y1y2x=000 και
ότι η είσοδος x από 0 γίνεται 1. Η κατάσταση y1y2 από 00 γίνεται 11, οπότε έχουµε µία
περίπτωση ανταγωνισµού. Αν η y2 αλλάξει κατάσταση πριν την y1, τότε το κύκλωµα θα
διατρέξει τις καταστάσεις: 00 → 01. Η κατάσταση 01 είναι ευσταθής και, εποµένως, το
κύκλωµα παραµένει σ' αυτή. Αν πάλι η y1 αλλάξει κατάσταση πριν από την y2, τότε θα
έχουµε 00 → 10. Η κατάσταση 10 είναι επίσης ευσταθής για το συγκεκριµένο κύκλωµα
και έτσι θα παραµείνει σ' αυτή την κατάσταση. Με άλλα λόγια, η τελική κατάσταση του

16
κυκλώµατος εξαρτάται από τη σειρά µε την οποία άλλαξαν οι εσωτερικές µεταβλητές και
συνεπώς πρόκειται για µια περίπτωση κρίσιµου ανταγωνισµού.

Άσκηση Αυτοαξιολόγησης 5 / Κεφάλαιο 6

Με αφετηρία την ολική κατάσταση 01100 του πίνακα µεταβάσεων του Σχήµατος 6.9β,
αλλάξτε την είσοδο x1 από 0 σε 1. Εξετάστε αν υπάρχει κρίσιµος ανταγωνισµός και
προσδιορίστε την ευσταθή κατάσταση του κυκλώµατος µετά την αλλαγή της εισόδου.

Άσκηση Αυτοαξιολόγησης 6 / Κεφάλαιο 6

Εξετάστε αν υπάρχει κρίσιµος ανταγωνισµός στην περίπτωση του κυκλώµατος της


Άσκησης Αυτοαξιολόγησης 2 / Κεφάλαιο 6. (Υπόδειξη: Αρχίστε από την ολική
κατάσταση 1101 και αλλάξτε την είσοδο x2 από 1 σε 0).

Σύνοψη Ενότητας

Στην ενότητα αυτή ασχοληθήκαµε µε δύο πολύ σηµαντικά θέµατα, τα οποία


παρουσιάζονται κατά τη σχεδίαση των ασύγχρονων ακολουθιακών κυκλωµάτων Το ένα
θέµα είχε να κάνει µε την ευστάθεια ενός ασύγχρονου ακολουθιακού κυκλώµατος.
Είδαµε ότι εύκολα µπορούµε να διαπιστώσουµε αν ένα ασύγχρονο ακολουθιακό
κύκλωµα είναι ευσταθές από τον πίνακα µεταβάσεων αυτού. Ένα ευσταθές κύκλωµα
περιέχει τουλάχιστον µία ευσταθή κατάσταση σε κάθε στήλη του πίνακα. Το άλλο θέµα
είχε να κάνει µε τις συνθήκες ανταγωνισµού, που παρουσιάζονται κατά τη σχεδίαση ενός
κυκλώµατος και που οφείλονται στην καθυστέρηση αλλαγής της κάθε εσωτερικής
κατάστασης y, ως αποτέλεσµα της αλλαγής µιας εισόδου x. Οι ανταγωνισµοί µπορεί να
είναι κρίσιµοι ή µη. Οι κρίσιµοι ανταγωνισµοί πρέπει να αποφεύγονται. Αυτό
επιτυγχάνεται µε κατάλληλη κωδικοποίηση των καταστάσεων κατά τη διαδικασία της
σχεδίασης ασύγχρονων ακολουθιακών κυκλωµάτων.

17
ΕΝΟΤΗΤΑ 6.3 ΣΠΙΝΘΗΡΕΣ

Με τον όρο "σπινθήρες" (hazards) εννοούµε τα ανεπιθύµητα µεταβατικά σήµατα, που


εµφανίζονται στις εξόδους κυκλωµάτων, εξαιτίας της διαφοράς στην καθυστέρηση
διαδόσεως των λογικών σηµάτων µέσω διαφορετικών δρόµων. Οι σπινθήρες µπορεί να
συµβούν τόσο στα συνδυαστικά, όσο και στα ακολουθιακά κυκλώµατα. Η εµφάνιση ενός
σπινθήρα σ' ένα συνδυαστικό κύκλωµα προκαλεί µια στιγµιαία εσφαλµένη αλλαγή της
εξόδου, ενώ η εµφάνιση ενός σπινθήρα σ' ένα ακολουθιακό κύκλωµα µπορεί να
προκαλέσει τη µετάβαση αυτού σε µια εσφαλµένη ευσταθή κατάσταση. Στην ενότητα
αυτή θα εξετάσουµε χωριστά τις δύο αυτές περιπτώσεις. Ολοκληρώνοντας τη µελέτη της
ενότητας, θα είστε σε θέση να εντοπίζετε και να αντιµετωπίζετε αποτελεσµατικά τους
σπινθήρες, που παρουσιάζονται τόσο στα συνδυαστικά, όσο και στα ασύγχρονα
ακολουθιακά ψηφιακά κυκλώµατα.

6.3.1. ΣΠΙΝΘΗΡΕΣ ΣΕ ΣΥΝ∆ΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

Όπως αναφέραµε προηγουµένως, οι σπινθήρες εµφανίζονται λόγω της διαφορετικής


καθυστέρησης που µπορεί να υπάρχει µεταξύ δύο διαφορετικών δρόµων διάδοσης ενός
σήµατος. Η καθυστέρηση αυτή µπορεί να οφείλεται στην ύπαρξη διαφορετικού πλήθους
πυλών ή στο διαφορετικό µήκος των καλωδιώσεων ή και στα δύο. Ας δούµε ένα
χαρακτηριστικό παράδειγµα συνδυαστικού κυκλώµατος, στο οποίο εµφανίζεται
σπινθήρας.
x1 1 F1
1→ 0 1
x2 •

x3 2
1 F2

Σχήµα 6.10. Συνδυαστικό κύκλωµα που παρουσιάζει σπινθήρες.

Το κύκλωµα του Σχήµατος 6.10 για x1=x2=x3=1 δίνει έξοδο Υ=1, αφού
Y = x 1 x 2 + x 2 ′ x 3 . Αν η είσοδος x2 αλλάξει λογική στάθµη και από 1 γίνει 0, τότε η
έξοδος Υ θα παραµείνει στο λογικό 1. Αν όµως λάβουµε υπόψη µας την καθυστέρηση
διάδοσης κάθε πύλης (η οποία για τη βασική σειρά TTL είναι 10 ns), τότε θα
διαπιστώσουµε ότι "στιγµιαία" η έξοδος Υ θα γίνει 0 και µετά θα επιστρέψει στο λογικό
1, όπως µας υπαγορεύει η έκφραση Y = x1 x 2 + x 2 ′ x 3 . Πράγµατι, για x1=x2=x3=1 έχουµε

18
F1=1, F2=0 και Υ=1. Όταν η είσοδος x2 αλλάξει και γίνει 0, τότε F1=0. Η έξοδος F2
εξακολουθεί να βρίσκεται στο λογικό 0, γιατί παρεµβάλλεται ο αντιστροφέας και η
είσοδός της δεν άλλαξε ακόµη από 0 σε 1. Με άλλα λόγια, µεταξύ των δρόµων F1 και F2
υπάρχει µια διαφορά στην καθυστέρηση διάδοσης, ίση µε µια πύλη (10 ns). Στη διάρκεια
αυτού του χρόνου, η έξοδος Υ από 1 γίνεται 0, δηλαδή παρουσιάζεται ένας στατικός
σπινθήρας στο 1 (static-1 hazard), όπως φαίνεται στο Σχήµα 6.11α. Παρόµοια, θα
µπορούσαµε σε άλλα κυκλώµατα να έχουµε ένα στατικό σπινθήρα στο 0 (static-0
hazard), όπως στο Σχήµα 6.11β, ή ένα δυναµικό σπινθήρα (dynamic hazard), όταν
προκαλείται αλλαγή της εξόδου περισσότερες από µία φορές (Σχήµα 6.11γ).

1 1 1

0 0
0

(α) (β) (γ)

Σχήµα 6.11. Τύποι σπινθήρων: (α) στατικός σπινθήρας στο 1, (β) στατικός σπινθήρας στο 0, (γ)
δυναµικός σπινθήρας.

Η ύπαρξη σπινθήρων σε ένα συνδυαστικό κύκλωµα µπορεί εύκολα να διαπιστωθεί


από το χάρτη Karnaugh του κυκλώµατος. Ο χάρτης του κυκλώµατος που εξετάζουµε
δείχνεται στο Σχήµα 6.12α. Για x1=x2=x3=1 βρισκόµαστε στον ελαχιστόρο5 111. Αλλαγή
του x2 από 1 σε 0 σηµαίνει µετάβαση στον ελαχιστόρο 101. Οι δύο αυτοί ελαχιστόροι
καλύπτονται από διαφορετικά γινόµενα, δηλαδή ο ελαχιστόρος 111 από το γινόµενο x1x2
(πύλη 1 στο κύκλωµα του Σχήµατος 6.10) και ο ελαχιστόρος 101 από το γινόµενο x 2 ′ x 3
(πύλη 2 στο κύκλωµα του Σχήµατος 6.10). Κάθε φορά που το κύκλωµα µεταβαίνει από
το ένα γινόµενο στο άλλο, υπάρχει η πιθανότητα εµφάνισης σπινθήρα, αφού το ένα
γινόµενο µπορεί να γίνει 0, πριν το άλλο προλάβει να γίνει 1. Η εξάλειψη της
πιθανότητας εµφάνισης σπινθήρα επιτυγχάνεται µε την προσθήκη ενός επιπλέον
γινοµένου (µιας επιπλέον πύλης AND), το οποίο να οµαδοποιεί τους παραπάνω
ελαχιστόρους. Στην προκειµένη περίπτωση η οµαδοποίηση αυτή επιτυγχάνεται µε το
γινόµενο x1x3, όπως φαίνεται στο Σχήµα 6.12β. Το νέο κύκλωµα, το οποίο δεν
παρουσιάζει προβλήµατα εµφάνισης σπινθήρων, δείχνεται στο Σχήµα 6.12γ. Η λογική
συνάρτηση που υλοποιεί είναι Y = x1 x 2 + x 2 ′ x 3 + x1 x 3 .

19
x2 x3 x2 x3 x1 •
00 01 11 10 00 01 11 10 x2 •
0 1 0 1

x3 • Y
1 1 1 1 1 1 1 1

(α) (β)
(γ)

Σχήµα 6.12. (α) Χάρτης Karnaugh του κυκλώµατος του Σχήµατος 6.10, (β) διορθωµένος χάρτης
Karnaugh, (γ) διορθωµένο κύκλωµα, που δεν παρουσιάζει το πρόβληµα των σπινθήρων.

Άσκηση Αυτοαξιολόγησης 7 / Κεφάλαιο 6

Να εξετάσετε αν το συνδυαστικό κύκλωµα του Σχήµατος 6.13 παρουσιάζει


προβλήµατα σπινθήρων. Ελέγξτε την περίπτωση, κατά την οποία η είσοδος x2 από 1
γίνεται 0, ενώ οι άλλες δύο είσοδοι παραµένουν στο λογικό 0. Αν παρουσιάζεται
σπινθήρας, προσδιορίστε τον τύπο του και προτείνετε κύκλωµα για την εξάλειψη αυτού.

x1
x2 •
Y

x3

Σχήµα 6.13. ∆ιάγραµµα κυκλώµατος της Άσκησης Αυτοαξιολόγησης 7 / Κεφάλαιο 6.

Σηµείωση: Είδαµε ότι οι σπινθήρες είναι ανεπιθύµητα µεταβατικά σήµατα, τα οποία


προσπαθούµε να εξαλείψουµε. Αυτός είναι ο κανόνας. Η εξαίρεση είναι να µας
χρειάζεται η ύπαρξη τέτοιων σπινθήρων. Τέτοια περίπτωση είναι εκείνη του Σχήµατος
1.27, όπου, εκµεταλλευόµενοι τις καθυστερήσεις διάδοσης των σηµάτων,
κατασκευάσαµε κυκλώµατα, που ανιχνεύουν την ύπαρξη θετικών ή αρνητικών ακµών.

6.3.2. ΣΠΙΝΘΗΡΕΣ ΣΕ ΑΣΥΓΧΡΟΝΑ ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

Στα ασύγχρονα ακολουθιακά κυκλώµατα το πρόβληµα των σπινθήρων είναι πολύ πιο
σηµαντικό, αφού εξαιτίας αυτού µπορεί ένα κύκλωµα να βρεθεί σε µια εσφαλµένη

5
Εκτενής αναφορά στις έννοιες των ελαχιστόρων (ελαχίστων όρων, minterms) και των µεγιστόρων

20
ευσταθή κατάσταση. Στην περίπτωση των σύγχρονων ακολουθιακών κυκλωµάτων, οι
σπινθήρες δεν δηµιουργούν προβλήµατα, αφού µόνο η τελική τιµή των σηµάτων, κατά
την εµφάνιση της ενεργού ακµής του ρολογιού, είναι αυτή που θα καθορίσει την
κατάσταση του κυκλώµατος. Ας δούµε λοιπόν την περίπτωση ενός ασύγχρονου
ακολουθιακού κυκλώµατος, όπως αυτό προκύπτει, αν στο κύκλωµα του Σχήµατος 6.10
ανατροφοδοτήσουµε την έξοδο Υ στην είσοδο x3. Το νέο αυτό κύκλωµα δείχνεται στο
Σχήµα 6.14α.

x1
1
x2 •
Y = x1 x 2 + x ′2 y

2
y

(α)

x1 x 2 x1 x 2 x1 x 2
y 00 01 11 10 y 00 01 11 10 y 00 01 11 10

0 0 0 1 0 0 1 0 1

1 1 0 1 1 1 1 1 1 1 1 1 1

(β) (γ) (δ)

Σχήµα 6.14. (α) Λογικό διάγραµµα του ασύγχρονου ακολουθιακού κυκλώµατος, (β) πίνακας
µεταβάσεων, (γ) χάρτης της µεταβλητής Υ, (δ) εξάλειψη του σπινθήρα.

Ουσιαστικά πρόκειται για έναν µανταλωτή τύπου-D (D latch) µε x1 την είσοδο D και
x2 την είσοδο CLK. Έστω ότι το κύκλωµα αυτό βρίσκεται στην ολική κατάσταση
yx1x2=111 (2η γραµµή, 3η στήλη), η οποία είναι ευσταθής (βλ. πίνακα µεταβάσεων του
Σχήµατος 6.14β). Αλλαγή της εισόδου x2 από 1 σε 0, θα οδηγήσει στην επίσης ευσταθή
ολική κατάσταση yx1x2=110 (2η γραµµή, 4η στήλη). Αν όµως εµφανιστεί σπινθήρας
στην έξοδο Υ, αυτή θα γίνει "στιγµιαία" 0. Η ανατροφοδότηση αυτού στην είσοδο της
πύλης 2 θα οδηγήσει το κύκλωµα στην ολική κατάσταση yx1x2=010 (1η γραµµή, 4η
στήλη), η οποία είναι ευσταθής. Με άλλα λόγια, το κύκλωµα οδηγείται σε µια εσφαλµένη
ευσταθή κατάσταση. Στο Σχήµα 6.14γ δείχνεται ο χάρτης του κυκλώµατος και η
οµαδοποίηση των ελαχιστόρων. Η µετάβαση από το ένα γινόµενο στο άλλο είναι η αιτία
του προβλήµατος και η λύση είναι ακριβώς ίδια µε εκείνη του αντίστοιχου συνδυαστικού

(µεγίστων όρων, max terms) γίνεται στο βιβλίο της Ψηφιακής Σχεδίασης I.

21
κυκλώµατος, δηλαδή η χρήση µιας επιπλέον που να οµαδοποιεί τους κατάλληλους
ελαχιστόρους (Σχήµα 6.14δ).

Άσκηση Αυτοαξιολόγησης 8 / Κεφάλαιο 6

Εξετάστε αν το κύκλωµα της Άσκησης Αυτοαξιολόγησης 1 / Κεφάλαιο 6 (Σχήµα 6.4)


παρουσιάζει το πρόβληµα των σπινθήρων. Θεωρήστε ότι το κύκλωµα βρίσκεται στην
ευσταθή ολική κατάσταση y1y2x=011 και ότι η είσοδος x αλλάζει από 1 σε 0. Προτείνετε
τρόπο για την εξάλειψη του προβλήµατος.

Σύνοψη Ενότητας

Στην ενότητα αυτή γνωρίσαµε το πρόβληµα των σπινθήρων, οι οποίοι παρουσιάζονται


τόσο στα ασύγχρονα ακολουθιακά κυκλώµατα, όσο και στα συνδυαστικά κυκλώµατα. Οι
σπινθήρες είναι ανεπιθύµητα µεταβατικά σήµατα, τα οποία εµφανίζονται στις εξόδους
των κυκλωµάτων, λόγω της διαφοράς που υπάρχει στην καθυστέρηση διαδόσεως των
σηµάτων µέσω διαφορετικών δρόµων. Είδαµε ότι οι σπινθήρες µπορούν εύκολα να
εξαλειφτούν µε τη βοήθεια επιπλέον πυλών, οι οποίες να "γεφυρώνουν" το κενό που
παρουσιάζεται από την ανεξάρτητη οµαδοποίηση των ελαχιστόρων στους χάρτες
Karnaugh του κυκλώµατος.

ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ

Στο κεφάλαιο αυτό ασχοληθήκαµε µε τη µελέτη των ασύγχρονων ακολουθιακών


κυκλωµάτων. Είδαµε ότι ένα ασύγχρονο ακολουθιακό κύκλωµα είναι στην πράξη ένα
συνδυαστικό κύκλωµα µε ανάδραση. Η αλλαγή της κατάστασης ενός ασύγχρονου
ακολουθιακού κυκλώµατος γίνεται µε την αλλαγή κάποιας από τις εισόδους του, και όχι
ενός ρολογιού, όπως συµβαίνει στα σύγχρονα ακολουθιακά κυκλώµατα. Γνωρίσαµε τις
διαδικασίες ανάλυσης και σχεδίασης ασύγχρονων ακολουθιακών κυκλωµάτων. Ο
πίνακας µεταβάσεων ενός ασύγχρονου ακολουθιακού κυκλώµατος είναι ό,τι και ο
πίνακας καταστάσεων ενός σύγχρονου ακολουθιακού κυκλώµατος. Ο πίνακας
µεταβάσεων απεικονίζει τις µεταβλητές διέγερσης Υ ενός κυκλώµατος, ως συνάρτηση
των εισόδων x και των εσωτερικών µεταβλητών y. Ευσταθής κατάσταση είναι εκείνη για
την οποία ισχύει Y=y. Ένα ασύγχρονο ακολουθιακό κύκλωµα είναι ευσταθές, όταν έχει
τουλάχιστον µία ευσταθή κατάσταση για κάθε δυνατό συνδυασµό των εισόδων του.

22
Κατά τη σχεδίαση ασύγχρονων ακολουθιακών κυκλωµάτων θα πρέπει να προσέχουµε το
θέµα της ευστάθειας, καθώς και το θέµα των ανταγωνισµών που παρουσιάζονται. Οι
κρίσιµοι ανταγωνισµοί, δηλαδή οι ανταγωνισµοί που οδηγούν σε διαφορετικές ευσταθείς
καταστάσεις, θα πρέπει να αποφεύγονται. Τέλος, κατά τη σχεδίαση ασύγχρονων
ακολουθιακών κυκλωµάτων αλλά και συνδυαστικών κυκλωµάτων, θα πρέπει να
ελέγχουµε και την περίπτωση εµφάνισης σπινθήρων και να τροποποιούµε το κύκλωµα
για την αποφυγή τους.

ΒΙΒΛΙΟΓΡΑΦΙΑ
ΕΛΛΗΝΟΓΛΩΣΣΗ
Mano Morris M., Ψηφιακή Σχεδίαση, (Κεφ. 9), Εκδόσεις Παπασωτηρίου, 1992.

ΞΕΝΟΓΛΩΣΣΗ
McClaskey J. F., Logic Design Principles: With Emphasis on Testable Semiconductor
Circuits, (Chap. 7), Prentice Hall, 1986.
Wakerly J. F., Digital Design: Principles and Practices, 2nd Edition, (Chap. 7), Prentice
Hall, 1994.
Ο∆ΗΓΟΣ ΠΕΡΑΙΤΕΡΩ ΜΕΛΕΤΗΣ

Mano Morris M., Ψηφιακή Σχεδίαση, (Κεφ. 9), Εκδόσεις Παπασωτηρίου, 1992.

Το Κεφάλαιο 9 του βιβλίου είναι αφιερωµένο στα ασύγχρονα ακολουθιακά


κυκλώµατα. Παρουσιάζεται µε τρόπο συστηµατικό και κατανοητό, τόσο η διαδικασία
ανάλυσης των ασύγχρονων ακολουθιακών κυκλωµάτων, όσο και η διαδικασία σχεδίασης
αυτών. ∆ίνεται µεγάλη έµφαση στην ελαχιστοποίηση των πινάκων ροής, γεγονός πολύ
σηµαντικό για την αποδοτική σχεδίαση τέτοιων κυκλωµάτων.

ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ


Απάντηση Άσκησης Αυτοαξιολόγησης 1 / Κεφάλαιο 6

Η άσκηση αυτή διαφέρει από το Παράδειγµα 1 / Κεφάλαιο 6 κατά το ότι έχει µόνο µία
είσοδο x και δύο βρόχους ανάδρασης και εποµένως δύο µεταβλητές διέγερσης Υ1, Υ2.
Άρα, η µόνη δυσκολία που πιθανόν αντιµετωπίσατε είναι στο να καταστρώσετε τον

23
πίνακα µεταβάσεων, ο οποίος στην προκειµένη περίπτωση θα πρέπει να αποτελείται από
4 γραµµές και 2 στήλες. Ας ακολουθήσουµε, όµως, τα βήµατα σχεδίασης από την αρχή.
Βήµα Α1: Οι βρόχοι ανάδρασης είναι εµφανείς, οπότε το µόνο που έχουµε να
κάνουµε είναι να συµβολίσουµε σωστά τα yi, Yi.
Βήµα Α2: Προσδιορίζουµε τις εκφράσεις Boole Yi, i=1, 2.

Y1 = (( xy 1 )′⋅( x′ y 2 ) ′) = xy 1 + x′ y 2


Y2 = (( x′ y 2 ) ′⋅( xy 1 ′)′ ) = xy 1 ′+ x′ y 2

Βήµα Α3: Καταστρώνουµε τον πίνακα µεταβάσεων και σηµειώνουµε σ' αυτόν τις
ευσταθείς καταστάσεις. Επειδή έχουµε 2 µεταβλητές διέγερσης, τις Υ1 και
Υ2, θα έχουµε έναν πίνακα µε 22 γραµµές και 21 στήλες, όπως αυτός
φαίνεται στο Σχήµα 6.15.

x
y1 y 2 0 1

00 00 01

01 11 01

11 11 10

10 00 10

Σχήµα 6.15. Πίνακας µεταβάσεων του κυκλώµατος του Σχήµατος 6.4.

Κάθε θέση του πίνακα περιέχει δύο τιµές. Η πρώτη αντιστοιχεί στην τιµή
Υ1 και η δεύτερη στην τιµή Υ2, όπως αυτές προκύπτουν από τις εκφράσεις
του βήµατος Α2. Για παράδειγµα, για την ολική κατάσταση y1y2x=011, η
µεταβλητή Υ1 γίνεται 0 και η µεταβλητή Υ2 γίνεται 1, οπότε στην
αντίστοιχη θέση του πίνακα (2η γραµµή και 2η στήλη) τοποθετείται η τιµή
Υ1Υ2=01. Σηµειώνουµε µε κύκλο όλες τις ευσταθείς καταστάσεις, δηλαδή
τις καταστάσεις για τις οποίες Υ1Υ2=y1y2. Όταν το κύκλωµα βρίσκεται
στην ολική κατάσταση 110 (3η γραµµή, 1η στήλη), η οποία είναι
ευσταθής και η είσοδος γίνει 1, τότε αυτό µεταβαίνει προσωρινά στην
ολική κατάσταση 111, η οποία είναι ασταθής (3η γραµµή, 2η στήλη),
αφού y1y2=11, ενώ Y1Y2=10. Μόλις όµως η κατάσταση Υ1Υ2
ανατροφοδοτηθεί στο κύκλωµα, έχουµε y1y2=10. Για y1y2=10 οι

24
καταστάσεις Υ1Υ2=10, οπότε πρόκειται για µια ευσταθή κατάσταση (4η
γραµµή, 2η στήλη), στην οποία και παραµένει το κύκλωµα.
Αν απαντήσατε σωστά, τότε µπράβο σας. Αυτό σηµαίνει ότι έχετε κατανοήσει τα όσα
αναφέρθηκαν µέχρι εδώ σχετικά µε την ανάλυση των ασύγχρονων ακολουθιακών
κυκλωµάτων. Συνεχίστε µε την επόµενη άσκηση. Αν πάλι δεν καταφέρατε να αναλύσετε
το κύκλωµα, µην απογοητευθείτε. Χρειάζεται κάποια προσπάθεια για την εξοικείωση µε
τις νέες έννοιες, που εισάγονται στο Κεφάλαιο αυτό. Μελετήστε ξανά την υποενότητα
6.1.1 και προσπαθήστε πάλι να λύσετε την άσκηση. Μετά συνεχίστε µε την επόµενη
άσκηση αυτοαξιολόγησης.

Απάντηση Άσκησης Αυτοαξιολόγησης 2 / Κεφάλαιο 6

Αρχίζουµε την ανάλυση του κυκλώµατος, ξανασχεδιάζοντας αυτό, έτσι ώστε να


φαίνεται ο βρόχος ανάδρασης, που υπάρχει σε καθένα από τα FFs, που αυτό περιέχει
(Σχήµα 6.16α). Στη συνέχεια ακολουθούµε τα τρία βήµατα της ανάλυσης.
Βήµα Α1: Εντοπίζουµε τους βρόχους και τους συµβολίζουµε ως Υ και y.
Βήµα Α2: Εκφράζουµε κάθε µεταβλητή Υ ως συνάρτήση των εισόδων x και των
εσωτερικών καταστάσεων y. Από το Σχήµα 6.16α βρίσκουµε ότι:

Y1 = ( x 1 ′ x 2 ′+ ( x 1 y 2 + y 1 )′ ) = ( x 1 ′ x 2 ′) ′⋅( x 1 y 2 + y 1 ) =

= ( x1 + x 2 ) ( x1 y 2 + y1 ) = x1 y 2 + x1 y1 + x1 x 2 y 2 + x 2 y1


Y2 = ( x 2 ′ y 1 + ( x 1 x 2 + y 2 )′ ) = ( x 2 ′ y 1 ) ′⋅ ( x 1 x 2 + y 2 ) =

= ( x 2 + y 1 ′ ) ( x 1 x 2 + y 2 ) = x 1 x 2 + x 2 y 2 + x 1 x 2 y 1 ′+ y 1 ′ y 2
Βήµα Α3: Καταστρώνουµε τον πίνακα µεταβάσεων και σηµειώνουµε τις ευσταθείς
καταστάσεις, όπως αυτός δείχνεται στο Σχήµα 6.16β. Με κύκλο έχουµε
σηµειώσει τις ευσταθείς καταστάσεις. Παρατηρούµε ότι το κύκλωµα αυτό
είναι γενικά ευσταθές, αφού για οποιαδήποτε τιµή των εισόδων, αυτό
µεταβαίνει σε µια ευσταθή κατάσταση.

25
x1 • Y1

x1 x 2
y1 y 2 00 01 11 10

y2 00 00
00 00
00 01 00
00

• 01 01 01 11 11
y1
y1 Y2 11 00 11 11 10
• •
10 00 10 11 10

x2 (β)


y2
(α)

Σχήµα 6.16. (α) Το λογικό κύκλωµα του Σχήµατος 6.5, όπου φαίνονται οι βρόχοι ανάδρασης, (β) ο
πίνακας µεταβάσεων του κυκλώµατος.

Η άσκηση αυτή είχε την ιδιοµορφία ότι κάποιοι από τους βρόχους ανάδρασης δεν
ήταν εµφανείς. Κατά τα υπόλοιπα, η αντιµετώπισή της ήταν ίδια µε αυτή που γνωρίσαµε
µέχρι τώρα, παρά το γεγονός ότι είχε δύο µεταβλητές εισόδου και δύο εσωτερικές
καταστάσεις. Αν απαντήσατε σωστά, τότε συγχαρητήρια, γιατί έχετε κατανοήσει τον
τρόπο ανάλυσης των ασύγχρονων ακολουθιακών κυκλωµάτων. Αν όχι, τότε
ξαναπροσπαθήστε, επαναλαµβάνοντας τη µελέτη της ενότητας 6.1.

Απάντηση Άσκησης Αυτοαξιολόγησης 3 / Κεφάλαιο 6

Η άσκηση αυτή είναι παρόµοια µε το Παράδειγµα 2 / Κεφάλαιο 6. Το κύκλωµα που


θα σχεδιάσουµε θα πρέπει να διαθέτει δύο εισόδους x1, x2 και ένα βρόχο ανάδρασης Υ. Η
µόνη διαφορά βρίσκεται στο ότι το παρόν κύκλωµα θα διαθέτει και µία έξοδο z.
Ακολουθούµε τα βήµατα σχεδίασης Σ1 έως Σ3 και έχουµε:
Βήµα Σ1: Καταστρώνουµε τον πίνακα ροής του κυκλώµατος. Συµβολίζουµε µε a την
κατάσταση 0 και µε b την κατάσταση 1. Όταν x1=0, τότε το κύκλωµα
βρίσκεται στην ευσταθή κατάσταση a (1η και 2η γραµµή, 1η και 2η στήλη
του πίνακα ροής του Σχήµατος 6.17α). Όταν x1=1, τότε το κύκλωµα
βρίσκεται στην ευσταθή κατάσταση b (1η γραµµή, 4η στήλη και 2η
γραµµή, 3η και 4η στήλη). Για να γίνει x1x2=11, πρέπει είτε να ήταν
x1x2=01 είτε x1x2=10. Στην πρώτη περίπτωση, η ευσταθής κατάσταση
είναι η a, οπότε και παραµένει σ' αυτή (1η γραµµή, 3η στήλη). Στη

26
δεύτερη περίπτωση, η ευσταθής κατάσταση είναι η b, οπότε παραµένει σ'
αυτή (2η γραµµή, 3η στήλη). Η έξοδος φαίνεται στον ίδιο πίνακα (µετά το
κόµµα). Σύµφωνα µε την εκφώνηση, αυτή είναι πάντοτε 0, εκτός της
περίπτωσης κατά την οποία x1x2=11.
Βήµα Σ2: Κωδικοποιούµε τις καταστάσεις και προσδιορίζουµε τις λογικές
συναρτήσεις. Κωδικοποιούµε το a µε 0 και το b µε 1, οπότε προκύπτει ο
πίνακας µεταβάσεων του Σχήµατος 6.17β. Οι τιµές της εξόδου
καταγράφονται χωριστά στο χάρτη του Σχήµατος 6.17γ. Από τα Σχήµατα
6.17β,γ προσδιορίζουµε τις λογικές συναρτήσεις για τη µεταβλητή
διέγερσης Υ και την έξοδο z. Βρίσκουµε ότι: Y = x1 x 2 ′+ x1 y και z=x1x2.
Βήµα Σ3: Σχεδιάζουµε το λογικό διάγραµµα του κυκλώµατος (Σχήµα 6.17δ). Αυτό
είναι το ζητούµενο κύκλωµα.

x1 x 2 x1 x 2 x1 x 2
y 00 01 11 10 y 00 01 11 10 y 00 01 11 10

α α ,0 α ,0 α ,1 b,0 0 0 0 0 1 0 0 0 1 0

b α ,0 α ,0 b ,1 b ,0 1 0 0 1 1 1 0 0 1 0

(α ) (β) (γ)

x1 •
x2 •
Υ

(δ )

Σχήµα 6.17. (α) Πίνακας ροής, (β) πίνακας καταστάσεων, (γ) χάρτης της εξόδου, (δ) λογικό κύκλωµα.
Αν απαντήσατε σωστά την άσκηση αυτή, τότε σας αξίζουν συγχαρητήρια. Σηµαίνει
ότι έχετε πλέον εξοικειωθεί µε τους πίνακες µεταβάσεων των ασύγχρονων ακολουθιακών
κυκλωµάτων και συνεπώς µπορείτε να συνεχίσετε χωρίς δυσκολία τη µελέτη του
κεφαλαίου. Αν πάλι δεν τα καταφέρατε, µην απογοητευθείτε. ∆εν είναι και από τις πλέον
εύκολες έννοιες αυτές που εξετάζουµε εδώ. Επιµείνετε, µελετώντας από την αρχή την
ενότητα 6.1. Είναι θέµα χρόνου το να εξοικειωθείτε.

27
Απάντηση Άσκησης Αυτοαξιολόγησης 4 / Κεφάλαιο 6

Για να αποφανθούµε σχετικά µε την ευστάθεια του κυκλώµατος, θα πρέπει να το


αναλύσουµε σύµφωνα µε τα γνωστά. Ξανασχεδιάζουµε το κύκλωµα, όπως φαίνεται στο
Σχήµα 6.18α, και ακολουθούµε τα τρία βήµατα ανάλυσης των ασύγχρονων
ακολουθιακών κυκλωµάτων.

x1 x 2
y1 y 2 00 01 11 10

y1 00 11 11 11 11

x2 Y1
• 01 01 01 00 00
1 •
11 00 00 00 00
x1
• Y2
y2 y1
10 10 00 00 10

(α) (β)

Σχήµα 6.18. (α) Λογικό διάγραµµα και (β) πίνακας καταστάσεων του κυκλώµατος.

Βήµα Α1: Εντοπίζουµε τους βρόχους ανάδρασης. Το συγκεκριµένο κύκλωµα έχει


δύο βρόχους.
Βήµα Α2: Εκφράζουµε τις µεταβλητές Υ ως συνάρτηση των x και y και βρίσκουµε
ότι:
Y1 = ( x 2 y 1 + y 2 )′ = ( x 2 y 1 ) ′⋅y 2 ′ = ( x 2 ′+ y 1 ′)⋅ y 2 ′ = x 2 ′ y 2 ′+ y 1 ′ y 2 ′

Y2 = ( x 1 y 2 + y 1 )′ = ( x 1 y 2 )′⋅y 1 ′ = ( x 1 ′+ y 2 ′ )⋅ y 1 ′ = x 1 ′ y 1 ′+ y 1 ′ y 2 ′
Βήµα Α3: Καταστρώνουµε τον πίνακα µεταβάσεων (Σχήµα 6.18β) και σηµειώνουµε
τις ευσταθείς καταστάσεις. Παρατηρούµε ότι για είσοδο x1x2=11, το
κύκλωµα δεν έχει ευσταθή κατάσταση. Συγκεκριµένα, αν y1y2=00, τότε
Υ1Υ2=11 (1η γραµµή, 3η στήλη του πίνακα). Όταν τώρα y1y2=11, τότε
Υ1Υ2=00 (3η γραµµή, 3η στήλη του πίνακα). Ο κύκλος αυτός
επαναλαµβάνεται συνέχεια για όσο χρονικό διάστηµα οι είσοδοι x1 και x2
βρίσκονται στο λογικό 1 και οι δύο. Αν κάποια από αυτές γίνει 0, τότε το
κύκλωµα θα µεταβεί σε µία από τις ευσταθείς καταστάσεις 01 ή 10. Αν
x1x2=01, τότε το κύκλωµα βρίσκεται στην κατάσταση Υ1Υ2=01, η οποία
είναι ευσταθής. Αν τώρα η είσοδος x2 γίνει 0, δηλαδή x1x2=00, τότε το
κύκλωµα παραµένει στην ίδια κατάσταση Υ1Υ2=01. Αυτό ήταν
αναµενόµενο, αν θυµηθούµε τη λειτουργία του JK FF και δούµε ότι x1=J
και x2=Κ. Αντίστοιχα, όταν x1x2=10, τότε το κύκλωµα βρίσκεται στην

28
ευσταθή κατάσταση Υ1Υ2=10. Αν το x1 γίνει 0, οπότε x1x2=00, το
κύκλωµα "θυµάται" την προηγούµενη κατάσταση και παραµένει σ' αυτή
(4η γραµµή, 1η στήλη του πίνακα).
Αν δώσατε τη σωστή απάντηση, τότε µπράβο σας. Συνεχίστε. Αν όµως δεν τα
καταφέρατε, τότε µελετήστε και πάλι την ανάλυση των ασύγχρονων ακολουθιακών
κυκλωµάτων (υποενότητα 6.1.1) και ξαναπροσπαθήστε. Πρόκειται για ένα γνωστό
κύκλωµα (το FF τύπου JK), του οποίου γνωρίζουµε καλά τον τρόπο λειτουργίας και τις
αδυναµίες του.

Απάντηση Άσκησης Αυτοαξιολόγησης 5 / Κεφάλαιο 6

Η αλλαγή της εισόδου x1 από 0 σε 1 αναγκάζει το κύκλωµα να αλλάξει κατάσταση και


από 011 (3η γραµµή, 1η στήλη του πίνακα του Σχήµατος 6.9β) να µεταβεί στην
κατάσταση 000 (3η γραµµή, 4η στήλη). Άρα, έχουµε µια συνθήκη ανταγωνισµού, αφού
και οι δύο εσωτερικές µεταβλητές y2 και y3 αλλάζουν. Αν η y2 αλλάξει πριν από την y3,
θα έχουµε τη διαδοχή των καταστάσεων: 011 → 001 → 000. Αν η y3 αλλάξει πριν από
την y2, θα έχουµε τη διαδοχή των καταστάσεων: 011 → 010 → 110 → 111. Άρα, η
ευσταθής κατάσταση, στην οποία καταλήγει το κύκλωµα, είναι διαφορετική κάθε φορά
και εξαρτάται από τη σειρά µε την οποία οι εσωτερικές µεταβλητές αλλάζουν. Έχουµε,
εποµένως, έναν κρίσιµο ανταγωνισµό. Παρατηρώντας τους πίνακες µεταβάσεων των
Σχηµάτων 6.8β και 6.9β, διαπιστώνουµε ότι η µόνη διαφορά τους βρίσκεται στην
κατάσταση της 4ης γραµµής και 4ης στήλης. Αυτή η διαφορά ήταν αρκετή, για να
αλλάξει ριζικά η συµπεριφορά του κυκλώµατος. Είναι φανερό, λοιπόν, ότι τέτοιου είδους
παρεµβάσεις θα µπορούσαµε να τις αξιοποιήσουµε στην περίπτωση που θέλουµε να
σχεδιάσουµε ένα κύκλωµα, το οποίο να µην έχει κρίσιµους ανταγωνισµούς.
Αν απαντήσατε σωστά, σας αξίζουν συγχαρητήρια. Αν ωστόσο δεν τα καταφέρατε,
µην απογοητευθείτε. Αυτό σηµαίνει ότι δεν έχετε ακόµα εξοικειωθεί µε τους πίνακες
µεταβάσεων και τον τρόπο ερµηνείας τους. Μελετήστε και πάλι τις υποενότητες 6.1.1 και
6.2.2. πριν επιχειρήσετε να λύσετε ξανά την άσκηση.

29
Απάντηση Άσκησης Αυτοαξιολόγησης 6 / Κεφάλαιο 6

Ο πίνακας µεταβάσεων του κυκλώµατος της Άσκησης Αυτοαξιολόγησης 2 / Κεφάλαιο


6 δίνεται στο Σχήµα 6.16β. Αρχίζοντας από την ολική κατάσταση y1y2x1x2=1101 και
αλλάζοντας την είσοδο x2 από 1 σε 0, παρατηρούµε ότι έχουµε µια συνθήκη
ανταγωνισµού, αφού η κατάσταση από 11 (3η γραµµή, 2η στήλη) γίνεται 00 (3η γραµµή,
1η στήλη). Έτσι, αν η y2 αλλάξει κατάσταση πριν την y1, θα έχουµε τη διαδοχή των
εσωτερικών καταστάσεων: 11 → 10 → 00. Στην αντίθετη περίπτωση, η διαδοχή των
καταστάσεων θα είναι: 11 → 01. Παρατηρούµε ότι η τελική ολική κατάσταση του
κυκλώµατος είναι διαφορετική για κάθε περίπτωση και εξαρτάται από τη σειρά µε την
οποία άλλαξαν οι µεταβλητές y1 και y2. Συνεπώς έχουµε έναν κρίσιµο ανταγωνισµό.
Αν βρήκατε τη σωστή απάντηση, τότε µπράβο σας, γιατί έχετε κατανοήσει τις έννοιες
των ανταγωνισµών. Αν δεν τα καταφέρατε, τότε ξαναπροσπαθήστε. Επαναλάβετε τη
µελέτη των υποενοτήτων 6.1.1 και 6.2.2. Είναι γεγονός ότι η κατανόηση και
παρακολούθηση της διαδοχής των εσωτερικών καταστάσεων δεν είναι εύκολη υπόθεση.
Χρειάζεται προσπάθεια.

Απάντηση Άσκησης Αυτοαξιολόγησης 7 / Κεφάλαιο 6

Το κύκλωµα αυτό είναι εύκολο να αναλυθεί, αφού µοιάζει µε εκείνο του Σχήµατος
6.10. Η συνάρτηση της εξόδου είναι Y = x1 ′ x 2 + x 2 ′ x 3 ′ . Παρατηρούµε ότι για x1= x3=0
και x2=1, η έξοδος Υ=1. Όταν η είσοδος x2 από 1 γίνει 0, η έξοδος Υ παραµένει στο 1.
Λαµβάνοντας υπόψη µας τις καθυστερήσεις των πυλών, διαπιστώνουµε ότι η αλλαγή της
λογικής στάθµης του x2 από 1 σε 0 προκαλεί την εµφάνιση ενός στατικού σπινθήρα στο
1. Η ύπαρξη του σπινθήρα γίνεται εύκολα αντιληπτή από το χάρτη του κυκλώµατος
(Σχήµα 6.19α). Αλλαγή της εισόδου x2 από 1 σε 0 σηµαίνει µετάβαση από τον
ελαχιστόρο 010 στον 000. Για την εξάλειψη του σπινθήρα, οµαδοποιούµε τους δύο
αυτούς ελαχιστόρους µε τη βοήθεια του γινοµένου x1 ′ x 2 , όπως φαίνεται στο Σχήµα
6.19β. Το διορθωµένο κύκλωµα δείχνεται στο Σχήµα 6.19γ.

30
x1 •
x2 •

x2 x3 x 2 x3
x1 00 01 11 10 x1 00 01 11 10
Y
0 1 1 1 0 1 1 1 x3 •

1 1 1 1

(α) (β)
(γ)
Σχήµα 6.19. (α) Χάρτης του κυκλώµατος του Σχήµατος 6.13, (β) διορθωµένος χάρτης και (γ) κύκλωµα
για την αποφυγή των σπινθήρων.
Αν αναλύσατε σωστά το κύκλωµα, τότε µπράβο σας. Έχετε εξοικειωθεί µε τους
σπινθήρες στα συνδυαστικά κυκλώµατα. Αν δεν τα καταφέρατε, τότε προσπαθήστε να
εντοπίσετε το γιατί. Αν δείτε ότι δεν έχετε κατανοήσει τους χάρτες Karnough και τις
έννοιες των ελαχιστόρων, τότε πρέπει να ανατρέξετε στο βιβλίο της Ψηφιακής Σχεδίασης
Ι, όπου γίνεται εκτενής αναφορά σ’ αυτές. Αν πάλι όλα αυτά σας είναι γνωστά, τότε
ξαναδιαβάστε την υποενότητα 6.3.1, για να σιγουρευτείτε ότι έχετε κατανοήσει τη
διαδικασία εµφάνισης των σπινθήρων και ξαναπροσπαθήστε.

Απάντηση Άσκησης Αυτοαξιολόγησης 8 / Κεφάλαιο 6

Ο πίνακας µεταβάσεων του κυκλώµατος φαίνεται στο Σχήµα 6.15. Παρατηρούµε ότι η
ολική κατάσταση y1y2x=011 είναι ευσταθής. Όταν η είσοδος x από 1 γίνει 0, τότε το
κύκλωµα από την κατάσταση 01 µεταβαίνει στην κατάσταση 11, η οποία είναι ευσταθής.
Ας δούµε για λίγο του χάρτες Karnaugh του κυκλώµατος και ας εξετάσουµε τι
συνεπάγεται αυτή η αλλαγή της εισόδου. Οι χάρτες προκύπτουν άµεσα από τον πίνακα
µεταβάσεων, σηµειώνοντας τις τιµές της µεταβλητής Υ1 και της µεταβλητής Υ2 χωριστά,
όπως δείχνεται στο Σχήµα 6.20. Θυµηθείτε από την Άσκηση Αυτοαξιολόγησης 1 /
Κεφάλαιο 6 ότι Y1 = xy1 + x′ y 2 , Y2 = xy1 ′+ x′ y 2 .

x x
y1 y 2 0 1 y1 y 2 0 1

00 00 1

01 1 01 1 1

11 1 1 11 1

10 1 10

(α) (β)
Σχήµα 6.20. (α) Χάρτης της µεταβλητής Υ1, (β) χάρτης της µεταβλητής Υ2.

Από το χάρτη του Σχήµατος 6.20β για τη µεταβλητή Υ2 παρατηρούµε ότι η αλλαγή
της εισόδου από 1 σε 0, προκαλεί µετάβαση του κυκλώµατος από τον ελαχιστόρο 011

31
(2η γραµµή, 2η στήλη) στον ελαχιστόρο 010 (2η γραµµή, 1η στήλη), οι οποίοι ανήκουν
σε διαφορετικά γινόµενα. Άρα, θα παρουσιαστεί ένας σπινθήρας στη µεταβλητή Υ2.
Πρόκειται για ένα στατικό σπινθήρα στο 1. Αυτή η "στιγµιαία" µετάβαση του Υ2 από το
1 στο 0 µπορεί να οδηγήσει το κύκλωµα στην ολική κατάσταση 000 (1η γραµµή, 1η
στήλη του πίνακα µεταβάσεων), η οποία είναι ευσταθής. Με άλλα λόγια, ο σπινθήρας
προκαλεί τη µετάβαση στην εσφαλµένη ολική κατάσταση 000 αντί της ορθής 110. Η
εξάλειψη του σπινθήρα γίνεται µε την οµαδοποίηση των ελαχιστόρων 010 και 011 µέσω
του γινοµένου y 1 ′ y 2 (διακεκοµµένη γραµµή του χάρτη του Σχήµατος 6.20β). Συνεπώς,
στο κύκλωµα θα πρέπει να προστεθεί µία ακόµη πύλη, ώστε για τη µεταβλητή Υ2 να
υλοποιείται η συνάρτηση Y2 = xy1 ′+ x′ y 2 + y1 ′ y 2 .
Αν δεν απαντήσατε σωστά, µην απογοητευθείτε. Ήταν πραγµατικά δύσκολο το να
σκεφτείτε να πάρετε τους χάρτες Karnough για κάθε µεταβλητή Υ χωριστά. Τώρα πια
που ξέρετε τι έπρεπε να κάνετε, ξαναπροσπαθήστε να λύσετε την άσκηση µόνοι σας. Αν
τα καταφέρετε, σηµαίνει πως έχετε κατανοήσει τον τρόπο αντιµετώπισης των σπινθήρων
στα ασύγχρονα ακολουθιακά κυκλώµατα. Αν πάλι καταφέρατε από την πρώτη στιγµή να
δώσετε τη σωστή λύση στο πρόβληµα, τότε σας αξίζουν πραγµατικά συγχαρητήρια.

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

critical race ανταγωνισµός καθοριστικής σηµασίας, κρίσιµος ανταγωνισµός


excitation variables µεταβλητές διέγερσης
feedback ανάδραση, ανατροφοδότηση
feedback sequential circuit ακολουθιακό κύκλωµα µε ανάδραση, ασύγχρονο ακολουθιακό κύκλωµα
flow table πίνακας ροής
fundamental-mode circuit κύκλωµα βασικού τύπου
hazard σπινθήρας
non-critical race ανταγωνισµός µη καθοριστικής σηµασίας, µη κρίσιµος ανταγωνισµός
primitive πρωτόγονος
propagation delay καθυστέρηση διάδοσης
race conditions συνθήκες ανταγωνισµού, συνθήκες κυνηγητού
secondary variables δευτερεύουσες µεταβλητές
stable ευσταθής
total sate ολική κατάσταση
transition table πίνακας µεταβάσεων
unstable ασταθής

32
ΚΕΦΑΛΑΙΟ 7 ΜΝΗΜΗ

ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ............................................................................................................ 3

ΕΝΟΤΗΤΑ 7.1. ΕΙ∆Η ΗΜΙΑΓΩΓΙΚΗΣ ΜΝΗΜΗΣ ................................................................................ 6


7.1.1. ΜΝΗΜΗ ΑΝΑΓΝΩΣΗΣ ΜΟΝΟ (ROM).................................................................................................. 8
7.1.2. ΜΝΗΜΗ ΑΝΑΓΝΩΣΗΣ ΚΑΙ ΕΓΓΡΑΦΗΣ (RAM) ................................................................................... 10
ΕΝΟΤΗΤΑ 7.2. ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ....................................................................................... 15
7.2.1. ΕΠΕΚΤΑΣΗ ΤΟΥ ΜΗΚΟΥΣ ΛΕΞΗΣ ΜΙΑΣ ΜΝΗΜΗΣ ............................................................................... 16
7.2.2. ΕΠΕΚΤΑΣΗ ΤΗΣ ΑΠΟΘΗΚΕΥΤΙΚΗΣ ΙΚΑΝΟΤΗΤΑΣ ΜΙΑΣ ΜΝΗΜΗΣ ........................................................ 18
ΒΙΒΛΙΟΓΡΑΦΙΑ ......................................................................................................................................... 21

ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ......................................................................... 22

ΑΠΟ∆ΟΣΗ ΑΓΓΛΙΚΩΝ ΟΡΩΝ ΣΤΗΝ ΕΛΛΗΝΙΚΗ ............................................................................ 26

1
ΚΕΦΑΛΑΙΟ 7 ΜΝΗΜΗ

Σκοπός
Το κεφάλαιο αυτό αναφέρεται στη µελέτη των διαφορετικών τύπων µνήµης, δίνοντας
ιδιαίτερη έµφαση στις ηµιαγωγικές µνήµες, που είναι και οι κυρίαρχες στην εποχή µας.
Στόχος µας είναι να γνωρίσουµε όλους τους τύπους µνήµης ROM και RAM και τους
τρόπους διασύνδεσής τους, ώστε να µπορούµε να σχεδιάζουµε µονάδες αποθήκευσης
οποιουδήποτε µήκους λέξης και µεγέθους.

Προσδοκώµενα αποτελέσµατα
Μετά την ολοκλήρωση της µελέτης του Κεφαλαίου, θα είστε σε θέση να:
• κατανοείτε και να χρησιµοποιείτε σωστά την ορολογία τη σχετική µε τα συστήµατα
µνήµης
• επιλέγετε τον τύπο µνήµης ROM ή RAM ανάλογα µε την εφαρµογή
• επιλέγετε τον τύπο µνήµης ROM ή RAM ανάλογα µε την απαιτούµενη ταχύτητα
λειτουργίας και κατανάλωση ισχύος
• προσδιορίζετε τη χωρητικότητα ενός ολοκληρωµένου µνήµης από το πλήθος των
εισόδων και εξόδων του
• διασυνδέετε ολοκληρωµένα κυκλώµατα µνήµης RAM ή ROM, έτσι ώστε να
πετυχαίνετε την επέκταση του µήκους λέξης ή της αποθηκευτικής ικανότητας

Έννοιες κλειδιά
• RAM / ROM / EPROM • αποκωδικοποίηση µνήµης
• χρόνος προσπέλασης • πρόσκαιρη / µη-πρόσκαιρη µνήµη
• στατική / δυναµική µνήµη • σειριακή / τυχαία προσπέλαση
• επέκταση µνήµης

2
ΕΙΣΑΓΩΓΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ

Στα ψηφιακά συστήµατα, τα κυκλώµατα µνήµης παρέχουν τη δυνατότητα προσωρινής


ή µόνιµης αποθήκευσης πληροφορίας (δεδοµένων ή εντολών) για µελλοντική χρήση.
Σήµερα είναι ευρέως γνωστό ότι το αποθηκευτικό µέσο µπορεί να είναι είτε ένα
ηµιαγωγικό ολοκληρωµένο κύκλωµα (semiconductor integrated circuit) είτε µία
µαγνητική συσκευή, όπως για παράδειγµα ένας µαγνητικός δίσκος ή µια µαγνητική
ταινία, είτε τέλος µια οπτική συσκευή, όπως το CD ROM. Καθένα από αυτά τα
αποθηκευτικά µέσα παρουσιάζει κάποια ιδιαίτερα χαρακτηριστικά ως προς τη
δυνατότητα αποθήκευσης, δηλαδή το µέγεθος της µνήµης, το χρόνο προσπέλασης της
πληροφορίας και το κόστος ανά δυαδικό ψηφίο (bit) πληροφορίας. Με τον όρο ‘χρόνος
προσπέλασης’ ή ‘χρόνος πρόσβασης’ (access time) της µνήµης εννοούµε το χρονικό
διάστηµα που παρέρχεται από τη στιγµή που θα ζητήσουµε το περιεχόµενο µιας θέσης
µνήµης µέχρι τη στιγµή που αυτό θα µας είναι διαθέσιµο στην έξοδο αυτής. Με άλλα
λόγια, ο χρόνος προσπέλασης µας δείχνει το πόσο γρήγορη είναι µια µνήµη. Η πυραµίδα
του Σχήµατος 7.1 µας δίνει µια εποπτική εικόνα της ιεραρχίας της µνήµης ως προς τα
κύρια χαρακτηριστικά, που µόλις αναφέραµε.

∆υνατότητα αποθήκευσης

CPU
Χρόνος προσπέλασης

Καταχω
-ρητές
Κόστος ανά bit

Κρυφή
Μνήµη
Κύρια
RAM Μνήµη
ROM

Μαγνητικοί ∆ίσκοι ∆ευτερεύ-


ουσα
Μνήµη
Οπτικοί ∆ίσκοι

Σχήµα 7.1. Ταξινόµηση της µνήµης ως προς το µέγεθος, το χρόνο προσπέλασης και το κόστος.

Στην κορυφή της πυραµίδας βρίσκονται οι καταχωρητές (registers), τους οποίους


έχουµε ήδη µελετήσει στο Κεφάλαιο 4. Πρόκειται για τα πιο γρήγορα στοιχεία
αποθήκευσης, δηλαδή ο χρόνος προσπέλασης των περιεχοµένων τους είναι ο ελάχιστος
δυνατός (ίσος προς την καθυστέρηση διάδοσης µέσω κάποιων πυλών). Το µέγεθος της
πληροφορίας, που συνήθως αποθηκεύεται στους καταχωρητές, είναι πολύ µικρό, της

3
τάξεως των δεκάδων ψηφιολέξεων (bytes1), ενώ το κόστος ανά bit είναι πολύ µεγάλο.
Στη βάση της πυραµίδας βρίσκονται τα οπτικά µέσα αποθήκευσης. Όπως γνωρίζουµε
σήµερα, το κόστος αυτών είναι εξαιρετικά χαµηλό και η δυνατότητα αποθήκευσης
εντυπωσιακά µεγάλη. Ο χρόνος προσπέλασης, όµως, είναι επίσης πολύ µεγάλος σε σχέση
µε τα άλλα είδη µνήµης, που αναφέρονται στο Σχήµα 7.1. Ας σηµειωθεί ότι στο σχήµα
αυτό δεν έχουµε συµπεριλάβει τις µαγνητικές δισκέτες (magnetic diskettes) και τις
µαγνητικές ταινίες (magnetic tapes, tape streamers, cassettes), γιατί οι χρόνοι
προσπέλασης αυτών είναι πολύ µεγάλοι και µη συγκρίσιµοι µε τους χρόνους των
υπόλοιπων. Το µειονέκτηµα του µεγάλου χρόνου προσπέλασης σε συνδυασµό µε την
περιορισµένη αξιοπιστία τους συντελεί στο να µειώνεται όλο και περισσότερο η χρήση
τους. Αν θα θέλαµε να συµπεριλάβουµε και αυτά τα µέσα αποθήκευσης, τότε θα έπρεπε
να επεκτείνουµε τη βάση της πυραµίδας του Σχήµα 7.1 µε δύο ακόµη επίπεδα. Στο πρώτο
(αµέσως µετά τους οπτικούς δίσκους) θα τοποθετούσαµε τις δισκέτες και στο δεύτερο τις
µαγνητικές ταινίες.
Από το Σχήµα 7.1 παρατηρούµε επίσης ότι ο συνδυασµός χρόνου προσπέλασης,
δυνατότητας αποθήκευσης και κόστους διαφοροποιεί τη χρήση της µνήµης ως κύριας ή
δευτερεύουσας. Κύρια µνήµη (main memory) ή µνήµη εργασίας (working memory) είναι
η µνήµη, στην οποία αποθηκεύονται οι εντολές και τα δεδοµένα, τα οποία χρησιµοποιεί
κατά τη λειτουργία της η κεντρική µονάδα επεξεργασίας (CPU, Central Processing Unit).
Η κύρια µνήµη, όπως και οι καταχωρητές, καθώς και η κρυφή µνήµη, για την οποία θα
µιλήσουµε στην ενότητα 7.1, είναι πάντοτε ηµιαγωγικές µνήµες. Η δευτερεύουσα µνήµη
(secondary memory) ή βοηθητική µνήµη (auxiliary memory) ή µνήµη µαζικής
αποθήκευσης (mass storage) είναι η µνήµη, όπου γίνεται η µαζική αποθήκευση των
δεδοµένων και των προγραµµάτων. Είναι πολύ πιο αργή από την κύρια µνήµη, αλλά έχει
πολύ µεγαλύτερη χωρητικότητα. Για να γίνει η επεξεργασία των δεδοµένων ή για να
εκτελεστεί ένα πρόγραµµα, δηλαδή ένα σύνολο εντολών, αυτά πρέπει να µεταφερθούν
από τη δευτερεύουσα στην κύρια µνήµη. Ας προσπαθήσουµε να γίνουµε πιο
συγκεκριµένοι όσον αφορά στους χρόνους προσπέλασης της µνήµης, γιατί έτσι θα γίνει

1
Υπενθυµίζεται ότι µία ψηφιολέξη (1 byte) αντιστοιχεί σε 8 δυαδικά ψηφία (8 bits). Μια
τετράδα δυαδικών ψηφίων (4 bits) ονοµάζεται nibble. Η χωρητικότητα, δηλαδή το µέγεθος,
µιας µνήµης µετριέται σε ΚΒ (1 ΚΒ ≡ 1 Kbyte = 210 bytes = 1024 bytes) ή σε MB (1 MB ≡ 1
Mbyte = 220 bytes = 1048576 bytes) ή σε GB (1 GB ≡ 1 Gbyte = 230 bytes = 1073741824 bytes).
Τέλος, όλο και περισσότερο θα ακούµε για χωρητικότητες της τάξεως του ΤΒ (Terra byte),
όπου 1 ΤΒ ≡ 1 Tbyte = 240 bytes.

4
πιο κατανοητός και ο διαχωρισµός µεταξύ κύριας και δευτερεύουσας µνήµης. Ένας
τυπικός χρόνος2 προσπέλασης της κύριας µνήµης είναι 50ns, ενώ ο χρόνος προσπέλασης
ενός µαγνητικού σκληρού δίσκου είναι της τάξεως των 15ms. Αυτό σηµαίνει ότι ένας
σκληρός δίσκος είναι περίπου 300.000 φορές πιο αργός!
Τελειώνοντας τη µικρή αυτή εισαγωγή στις µνήµες, θα ήταν χρήσιµο να αναφέρουµε
δύο ακόµη έννοιες, τις οποίες συναντούµε πολύ συχνά:
• Πτητική ή πρόσκαιρη µνήµη (volatile memory) είναι εκείνη η οποία "χάνει" την
πληροφορία που είναι αποθηκευµένη σε αυτή, µόλις σταµατήσει η παροχή
ηλεκτρικής ισχύος, δηλαδή µόλις σταµατήσει η τροφοδοσία της µνήµης. Στην
αντίθετη περίπτωση, η µνήµη είναι µη-πτητική (non-volatile memory). Για
παράδειγµα, η δευτερεύουσα µνήµη είναι µη-πτητική, αφού η πληροφορία
διατηρείται στους δίσκους, τις δισκέτες, τα CD ROMs, τις ταινίες, ακόµη και όταν
"κλείσουµε" το υπολογιστικό σύστηµα. Μη-πτητική µνήµη είναι και η ROM,
καθώς και όλες οι παραλλαγές αυτής, όπως θα δούµε στην υποενότητα 7.1.1.
• Η µνήµη, ανάλογα µε τον τρόπο προσπέλασης των δεδοµένων, χωρίζεται σε
σειριακής και τυχαίας προσπέλασης. Η µνήµη σειριακής προσπέλασης (serial
access or sequential access) δεν έχει σταθερό χρόνο προσπέλασης, αλλά αυτός
ποικίλλει ανάλογα µε τη θέση στην οποία βρίσκoνται τα δεδοµένα. Για την
ανάγνωση ή εγγραφή ενός δεδοµένου σε µια µνήµη σειριακής προσπέλασης, θα
πρέπει να διατρέξουµε όλες τις προηγούµενες θέσεις µέχρι να φτάσουµε στην
επιθυµητή θέση, όπου βρίσκεται ή πρέπει να βρίσκεται το δεδοµένο.
Χαρακτηριστικό παράδειγµα µνήµης σειριακής προσπέλασης είναι η µαγνητική
ταινία. Η µνήµη τυχαίας προσπέλασης (random access) έχει τον ίδιο περίπου χρόνο
προσπέλασης, ανεξάρτητα από τη θέση στην οποία βρίσκονται αποθηκευµένα τα
δεδοµένα. Χαρακτηριστικό παράδειγµα µνήµης τυχαίας προσπέλασης είναι οι
ηµιαγωγικές µνήµες RAM και ROM, αλλά και ο σκληρός και εύκαµπτος δίσκος.
• Τέλος, ένας τελευταίος διαχωρισµός της µνήµης είναι σε µνήµη ανάγνωσης /
εγγραφής και σε µνήµη µόνο ανάγνωσης. Μνήµη ανάγνωσης / εγγραφής (Read /
Write Memory) είναι εκείνη στην οποία µπορούµε να εγγράψουµε ή να
διαβάσουµε δεδοµένα µε την ίδια ευκολία, δηλαδή στον ίδιο περίπου χρόνο.
Τέτοια µνήµη είναι η ηµιαγωγική RAM ή τα µαγνητικά µέσα. Μνήµη µόνο
ανάγνωσης (Read-Only Memory) είναι εκείνη της οποίας τα δεδοµένα µπορούµε

2
Υπενθυµίζεται ότι 1 n = 10-9, 1 µ = 10-6, 1 m = 10-3.

5
να τα διαβάσουµε µόνο, χωρίς να έχουµε τη δυνατότητα αλλαγής αυτών. Συνήθως
τα δεδοµένα εγγράφονται µόνο µια φορά, και αυτό γίνεται από τον κατασκευαστή.
Η ηµιαγωγική µνήµη ROM, καθώς και οι δίσκοι CD ROM είναι οι πλέον
χαρακτηριστικές περιπτώσεις αυτού του είδους µνήµης. Στην ίδια κατηγορία,
όµως, ανήκει και η µνήµη, την οποία µπορούµε να εγγράψουµε µία ή περισσότερες
φορές και να την αναγνώσουµε θεωρητικά άπειρες φορές. Με άλλα λόγια, ο λόγος
των εντολών ανάγνωσης προς τις εντολές εγγραφής είναι πάρα πολύ µεγάλος. Στην
κατηγορία αυτή ανήκει η ηµιαγωγική µνήµη EPROM (Erasable Programmable
ROM), η EEPROM (Electrically Erasable Programmable ROM) ή η οπτική µνήµη
WORM (Write Once Read Many), όπως είναι τα CD ROMs, µε δυνατότητα
εγγραφής που χρησιµοποιούµε όλο και πιο συχνά σήµερα (1999). Η µνήµη ROM
είναι µη-πτητική, δηλαδή διατηρεί τα δεδοµένα, ακόµη και όταν παύσει η
τροφοδοσία.
Στη συνέχεια θα ασχοληθούµε µε την ηµιαγωγική µνήµη. Θα αναφερθούµε αναλυτικά
στη µνήµη ROM και RAM (ενότητα 7.1), καθώς και στον τρόπο διασύνδεσης αυτής για
τη δηµιουργία χώρου αποθήκευσης µεγάλου εύρους ή µεγάλου µεγέθους (ενότητα 7.2).

ΕΝΟΤΗΤΑ 7.1. ΕΙ∆Η ΗΜΙΑΓΩΓΙΚΗΣ ΜΝΗΜΗΣ

Στην παρούσα ενότητα θα ασχοληθούµε µε την ηµιαγωγική µνήµη τυχαίας


προσπέλασης. Στην κατηγορία αυτή εµπίπτουν δύο είδη µνήµης, η ROM και η RAM. Θα
εξετάσουµε και τα δύο αυτά είδη αναλυτικά. Ολοκληρώνοντας τη µελέτη της ενότητας,
θα είστε σε θέση να επιλέγετε τον τύπο της µνήµης ROM ή RAM ανάλογα µε την
εφαρµογή σας, την απαιτούµενη ταχύτητα λειτουργίας και την κατανάλωση ισχύος του
ψηφιακού συστήµατος.
Το σχηµατικό διάγραµµα µιας µνήµης ROM των 2n λέξεων, µήκους b bits η κάθε
λέξη, δίνεται στο Σχήµα 7.2α. Μια τέτοια µνήµη δέχεται στην είσοδό της την n bits
διεύθυνση (address) Ai, όπου i = 0, 1, ..., n-1 και "ελευθερώνει” στην έξοδό της τη
µήκους b bits λέξη Dj, j = 0, 1, ..., b-1, η οποία είναι αποθηκευµένη στην αντίστοιχη
διεύθυνση.
Το σχηµατικό διάγραµµα µιας µνήµης RAM των 2n λέξεων, µήκους b bits η κάθε
λέξη, δείχνεται στο Σχήµα 7.2β. Αυτό είναι όµοιο µε το αντίστοιχο της µνήµης ROM, µε
τη διαφορά ότι: (i) υπάρχουν ακόµα b γραµµές εισόδου για την εγγραφή των δεδοµένων

6
και (ii) υπάρχει µία επιπλέον γραµµή εισόδου για την επιλογή µεταξύ της εγγραφής ή της
ανάγνωσης των δεδοµένων. ∆ιευκρινίζεται ότι:
1. Τόσο η µνήµη ROM, όσο και η µνήµη RAM είναι τυχαίας προσπέλασης. Για το
λόγο αυτό, το σωστό θα ήταν να αποκαλείται η µνήµη RAM ως µνήµη εγγραφής /
ανάγνωσης (R/W memory) και όχι ως µνήµη τυχαίας προσπέλασης.

2n × b
ROM
Είσοδος Ai
Είσοδος Ai ∆ιευθύνσεων
∆ιευθύνσεων n n
Έξοδος Dj
Dj ∆εδοµένων
Είσοδος Dj Έξοδος
∆εδοµένων
b b b ∆εδοµένων
R/W
Είσοδος Ελέγχου
Ανάγν./Εγγρ.
(α) (β)
n
Σχήµα 7.2. Σχηµατικό διάγραµµα µνήµης (α) ROM και (β) RAM των 2 xb bits η καθεµιά.

2. Το πλήθος n των bits της λέξης Ai και το πλήθος b των bits της λέξης δεδοµένων
Dj δεν έχουν οποιαδήποτε σχέση µεταξύ τους. Το πρώτο µας καθορίζει το µέγιστο
αριθµό των λέξεων που µπορούµε να έχουµε σε µια µνήµη, δηλαδή το µέγιστο
αριθµό των δυνατών συνδυασµών. Το δεύτερο καθορίζει απλά το µήκος των
λέξεων, που χρησιµοποιείται σε κάποια εφαρµογή. Για παράδειγµα, για τη
µετατροπή ενός αριθµού BCD (Binary Coded Decimal) σε αριθµό κατάλληλο για
την οδήγηση ενός στοιχείου επίδειξης των επτά τµηµάτων (seven-segment
display), θα πρέπει να χρησιµοποιήσουµε µια µνήµη µε 4 εισόδους διευθύνσεων
και 7 εξόδους δεδοµένων. Γενικά, η µνήµη έχει τη λογική διάταξη του Σχήµατος
7.3.
∆ιεύθυνση Περιεχόµενο
Μνήµης µνήµης

0 0 L 0 1 0L 1 1
0 0 L 1 0 1L 1 1

M M
2n

1 1 L 0 1 0 L 1 0
1 1 L 1 0 0 L 0 1

n bits b bits
n
Σχήµα 7.3. Λογική διάταξη µνήµης των 2 λέξεων των b bits.

7
Άσκηση Αυτοαξιολόγησης 1 / Κεφάλαιο 7

Το ολοκληρωµένο κύκλωµα µε κωδικό 2716 είναι µια 2Κx8 EPROM, ενώ το


ολοκληρωµένο κύκλωµα µε κωδικό 2114 είναι µια 1Kx4 RAM. Πόσες γραµµές
διευθύνσεων και δεδοµένων διαθέτει καθένα από αυτά; ∆ώστε το σχηµατικό τους
διάγραµµα.

7.1.1. ΜΝΗΜΗ ΑΝΑΓΝΩΣΗΣ ΜΟΝΟ (ROM)

Η µνήµη ROM είναι στην πράξη ένα συνδυαστικό κύκλωµα µε n εισόδους και b
εξόδους, όπου οι είσοδοι Α0, Α1, ..., Αn-1 αποτελούν τις διευθύνσεις και οι έξοδοι D0, D1,
..., Db-1 τα δεδοµένα. Με άλλα λόγια, µια ROM αποθηκεύει τον πίνακα αλήθειας µιας
συνδυαστικής λογικής συνάρτησης µε n εισόδους και b εξόδους. Στο βιβλίο της
Ψηφιακής Σχεδίασης Ι, αντιµετωπίσαµε ακριβώς έτσι τη ROM, δηλαδή ως συνδυαστικό
κύκλωµα, το οποίο υλοποιεί το άθροισµα των ελαχιστόρων (minterms) των n εισόδων
του, για να σχεδιάσουµε σύνθετα συνδυαστικά κυκλώµατα. Εδώ θα αντιµετωπίσουµε τη
ROM ως µνήµη, την οποία έχουµε τη δυνατότητα να προγραµµατίσουµε καταργώντας ή
διατηρώντας τους ηλεκτρονικούς συνδέσµους σε µια µήτρα διασυνδέσεων. Η διαδικασία
προγραµµατισµού αυτού του είδους γίνεται από τον κατασκευαστή µε τη βοήθεια µια
µάσκας (mask), µετά από παραγγελία του πελάτη, ο οποίος δίνει τα επιθυµητά
περιεχόµενα για κάθε θέση µνήµης. Αυτός είναι και ο λόγος, για τον οποίο η ROM
ονοµάζεται και ROM προγραµµατιζόµενη µε µάσκα (mask-programmable ROM) ή απλά
ROM µάσκας (mask ROM).
Η προγραµµατιζόµενη ROM (PROM, programmable ROM) είναι όµοια µε την ROM
µάσκας, µόνο που ο προγραµµατισµός µπορεί να γίνει από τον ίδιο τον πελάτη µέσα σε
λίγα λεπτά της ώρας, µε τη βοήθεια µιας συσκευής προγραµµατισµού PROM (PROM
programmer). Ένα ολοκληρωµένο κύκλωµα PROM έρχεται έτοιµο από το εργοστάσιο µε
όλες τις ηλεκτρονικές του διασυνδέσεις άθικτες. Είναι, δηλαδή, σαν να έχουµε όλα τα
bits σε µια προκαθορισµένη λογική στάθµη, π.χ. στο λογικό 1. Η συσκευή
προγραµµατισµού χρησιµοποιείται, για να καταργήσει εκείνους τους συνδέσµους, όπου
πρέπει να "εγγραφεί" το λογικό 0. Αυτό γίνεται µε επιλογή των συγκεκριµένων bits µέσω
των γραµµών διευθύνσεων και την εφαρµογή ενός παλµού υψηλής τάσεως (10-30 V)
µέσω µιας ειδικής εισόδου.

8
Μια PROM µε δυνατότητα διαγραφής (Erasable Programmable ROM, EPROM) µπορεί
να προγραµµατιστεί όπως και η PROM, αλλά επιπλέον µπορεί να "σβηστεί",
αποκαθιστώντας το λογικό 1 σε όλους τους συνδέσµους, µετά από έκθεση αυτής σε
υπεριώδες φως. Για να γίνει αυτό, χρησιµοποιούνται για τους συνδέσµους ειδικού τύπου
τρανσίστορς MOS (metal-oxide-semiconductor), τα οποία διαθέτουν δύο πύλες, µία
σταθερή και µία επιπλέουσα (floating-gate). Ο χρόνος έκθεσης µιας ΕPROM σε
υπεριώδες φως κυµαίνεται µεταξύ 5 και 20 λεπτών της ώρας. Για να είναι δυνατή η
έκθεση του ολοκληρωµένου στο φως, αφήνεται ένα µικρό παράθυρο στο πάνω µέρος
του, όπως δείχνεται στο Σχήµα 7.4.

Σχήµα 7.4. ΕPROM στην οποία φαίνεται το παράθυρο για την έκθεση της µνήµης στο υπεριώδες φως.
Μια PROM µε δυνατότητα ηλεκτρικής διαγραφής (Electrically Erasable PROM,
EEPROM) είναι όµοια µε την ΕPROM, µε µόνη διαφορά ότι η διαγραφή των
περιεχοµένων γίνεται ηλεκτρικά, και όχι µε φως. Ο χρόνος προγραµµατισµού ή εγγραφής
των δεδοµένων είναι πολύ µεγαλύτερος από το χρόνο ανάγνωσης αυτών, έτσι δεν
µπορούµε να πούµε ότι µια µνήµη ΕΕPROM είναι στην ουσία µια µνήµη ανάγνωσης /
εγγραφής, όπως η RAM, που θα δούµε στην επόµενη υποενότητα. Επίσης, επειδή το
µονωτικό στρώµα γύρω από την επιπλέουσα πύλη του τρανσίστορ MOS είναι πολύ
λεπτό, µπορεί να καταστραφεί από το συνεχή προγραµµατισµό της µνήµης. Κατά
συνέπεια, µια ΕΕPROM µπορεί να "σβηστεί" και να "ξαναγραφεί", δηλαδή να
προγραµµατιστεί, περίπου 10000 φορές.
Στον Πίνακα 7.1. δίνονται τα βασικά χαρακτηριστικά όλων των τύπων µνήµης ROM
που αναφέραµε.

∆ραστηριότητα 1 / Κεφάλαιο 7
Ποιες εφαρµογές της µνήµης ROM (ROM / PROM / EPROM / EEPROM) γνωρίζετε;

Συµπερασµατικά µπορούµε να πούµε ότι η ROM είναι τυχαίας προσπέλασης µη-


πτητική µνήµη, η οποία χρησιµοποιείται για την αποθήκευση δεδοµένων σε µόνιµη

9
βάση. Το γεγονός αυτό την κάνει χρήσιµη για την αποθήκευση του βασικού πυρήνα
λειτουργικών συστηµάτων, µεταφραστών προγραµµάτων (software language compilers),
πινάκων αναφοράς (look-up tables), εξειδικευµένων τµηµάτων µετατροπής κωδίκων,
προγραµµάτων µικροεπεξεργαστών για ειδικές εφαρµογές, κά.

Πίνακας 7.1. Βασικά χαρακτηριστικά των διαφόρων τύπων µνήµης ROM.


Τύπος Τεχνολογία Χρόνος Χρόνος Εγγραφής Σχόλια
Ανάγνωσης
ROM µάσκας NMOS, CMOS 20-200ns 4 εβδοµάδες Εγγραφή µόνο µία φορά – Χαµηλή
κατανάλωση
ROM µάσκας ∆ιπολική <100ns 4 εβδοµάδες Εγγραφή µόνο µία φορά – Υψηλή
κατανάλωση – Μικρή πυκνότητα
ολοκλήρωσης
PROM ∆ιπολική <100ns 5 λεπτά Εγγραφή µόνο µία φορά – Υψηλή
κατανάλωση – Μικρή πυκνότητα
ολοκλήρωσης
EPROM NMOS, CMOS 25-200ns 5 λεπτά Επανεγγράψιµη - Χαµηλή
κατανάλωση
EEPROM NMOS 50-200ns 10µs/byte Ανώτατο όριο 10000-100000
εγγραφών ανά θέση µνήµης

7.1.2. ΜΝΗΜΗ ΑΝΑΓΝΩΣΗΣ ΚΑΙ ΕΓΓΡΑΦΗΣ (RAM)

Η µνήµη ανάγνωσης και εγγραφής είναι εκείνη στην οποία µπορούµε να


αποθηκεύουµε και να ανακαλούµε την πληροφορία σε οποιαδήποτε χρονική στιγµή. Η
συντριπτική πλειοψηφία των µνηµών ανάγνωσης / εγγραφής στις µέρες µας είναι τυχαίας
προσπέλασης (RAM), γεγονός που σηµαίνει ότι ο χρόνος που απαιτείται για την
ανάγνωση ή την εγγραφή ενός bit πληροφορίας είναι ανεξάρτητος της θέσης στην οποία
βρίσκεται αυτό. Από την άποψη αυτή, όπως άλλωστε έχουµε αναφέρει, οι µνήµες ROM
είναι κι αυτές µνήµες ανάγνωσης / εγγραφής. Έχει όµως καθιερωθεί η χρήση ο όρος
"µνήµη ανάγνωσης / εγγραφής" να ταυτίζεται µε τη µνήµη RAM.
Υπάρχουν δύο µεγάλες κατηγορίες RAM, η στατική και η δυναµική. Η στατική RAM
(static RAM, SRAM) είναι εκείνη στην οποία, όταν εγγραφεί µια λέξη, αυτή διατηρείται,
εφόσον εξακολουθεί να εφαρµόζεται η τάση τροφοδοσίας του ολοκληρωµένου

10
κυκλώµατος, και φυσικά, εφόσον δεν εγγραφεί κάποια άλλη πληροφορία στην ίδια θέση
µνήµης. Σε µια δυναµική RAM (dynamic RAM, DRAM), τα δεδοµένα που
αποθηκεύονται σε κάθε θέση µνήµης πρέπει περιοδικά να ανανεώνονται, διαβάζοντας
αυτά και εγγράφοντάς τα ξανά στις ίδιες θέσεις µνήµης. Σε διαφορετική περίπτωση αυτά
χάνονται.
Οι περισσότερες µνήµες RAM χάνουν τα δεδοµένα, όταν παύσει η τροφοδοσία του
ολοκληρωµένου. Πρόκειται, δηλαδή, για πρόσκαιρη µνήµη. Ορισµένες RAM µπορούν να
γίνουν µη-πρόσκαιρες µε έµµεσο τρόπο. Για παράδειγµα, σύγχρονες στατικές CMOS
µνήµες περιλαµβάνουν µέσα στο περιτύλιγµά τους µια µικρή µπαταρία λιθίου µε χρόνο
ζωής της τάξεως των 10 χρόνων. Ένας άλλος τύπος µη-πρόσκαιρης µνήµης RAM είναι η
ονοµαζόµενη σιδηροηλεκτρική RAM (ferroelectric RAM). Αυτή συνδυάζει µαγνητικά και
ηλεκτρονικά στοιχεία πάνω στο ίδιο ολοκληρωµένο κύκλωµα, επιτρέποντας τη
διατήρηση της πληροφορίας, ακόµη και όταν η τάση τροφοδοσίας παύσει να
εφαρµόζεται.

Στατική RAM

Είδαµε στο Σχήµα 7.2β ότι µια µνήµη RAM των 2n x b λέξεων αποτελείται από n
εισόδους διευθύνσεων, b εισόδους δεδοµένων (για την εγγραφή), b εξόδους δεδοµένων
(για την ανάγνωση) και τουλάχιστον µία είσοδο για τον έλεγχο της ανάγνωσης ή
εγγραφής. Το απλούστερο στοιχείο µνήµης θα είναι εκείνο, όπου µπορούµε να
αποθηκεύσουµε ένα και µόνο bit πληροφορίας. Αυτό θα αποτελείται από 1 γραµµή
εισόδου (εγγραφής) του δεδοµένου, 1 γραµµή εξόδου (ανάγνωσης) του δεδοµένου, 1
γραµµή εισόδου της διεύθυνσης (για την επιλογή ή µη του συγκεκριµένου στοιχείου
µνήµης) και τέλος 1 γραµµή ελέγχου ανάγνωσης ή εγγραφής. Με άλλα λόγια, το
σχηµατικό διάγραµµα της RAM του Σχήµατος 7.2β εκφυλίζεται σε αυτό του Σχήµατος
7.5α για την περίπτωση της µνήµης του 1 bit. Αυτό αποτελεί το λεγόµενο βασικό κύτταρο
µνήµης (basic memory cell). Ένα λογικό διάγραµµα, το οποίο υλοποιεί τη λειτουργία του
βασικού κυττάρου µνήµης, δείχνεται στο Σχήµα 7.5β.

11
Επιλογή

Επιλογή

• R Q
Είσοδος Έξοδος
Έξοδος
Είσοδος
• •
S

Ανάγνωση/Εγγραφή

(α)
Ανάγνωση/
Εγγραφή

(β)

Σχήµα 7.5. (α) Σύµβολο και (β) λογικό διάγραµµα του βασικού κυττάρου µνήµης.

Το FF λειτουργεί ως µανταλωτής χωρίς ρολόι. Όταν η επιλογή είναι στο λογικό 1,


τότε οι πύλες AND τόσο της εισόδου, όσο και της εξόδου επιτρέπουν τη διέλευση των
δεδοµένων. Όταν τώρα η είσοδος ανάγνωσης / εγγραφής είναι στο λογικό 0, τότε η πύλη
AND της εξόδου απενεργοποιείται, ενώ οι δύο πύλες AND της εισόδου ενεργοποιούνται.
Άρα, για την είσοδο επιλογής στο λογικό 1 και την είσοδο ανάγνωσης / εγγραφής στο
λογικό 0, το δεδοµένο της εισόδου εγγράφεται στο FF. Με άλλα λόγια, αν η είσοδος είναι
1, τότε S=1, R=0 και το FF ενεργοποιείται (Q=1), δηλαδή εγγράφεται σ' αυτό το λογικό
1. Αν η είσοδος είναι 0, τότε S=0, R=1 και το FF εκκαθαρίζεται (Q=0), δηλαδή
εγγράφεται σ' αυτό το λογικό 0. Όταν η είσοδος ανάγνωσης / εγγραφής γίνει 1, τότε και
οι δύο πύλες AND της εισόδου γίνονται 0, οπότε το FF παραµένει στην κατάσταση που
βρισκόταν. Η πύλη AND της εξόδου ενεργοποιείται, οπότε και µας επιτρέπεται η
ανάγνωση του δεδοµένου της µνήµης, δηλαδή αν Q=1, τότε η έξοδος της πύλης AND
είναι κι αυτή 1, ενώ, αν Q=0, τότε η έξοδος είναι 0. Σηµειώνεται ότι η ανάγνωση µιας
RAM δεν συνεπάγεται απώλεια των δεδοµένων αυτής.
Από το Σχήµα 7.5β συνάγεται ότι το αντίστοιχο κύκλωµα σε επίπεδο τρανσίστορ θα
αποτελείται από µερικές δεκάδες τρανσίστορ, αφού µια πύλη NAND τεχνολογίας TTL
(transistor-transistor logic) κατασκευάζεται από 4 τρανσίστορς. Αυτό όµως δεν είναι
αληθές, µια που το κύκλωµα του Σχήµατος 7.5β είναι στην ουσία ένα ισοδύναµο
κύκλωµα, το οποίο λειτουργεί, όπως εµείς θα θέλαµε να λειτουργεί ένα βασικό κύτταρο
µνήµης RAM. Η κατασκευή, λοιπόν, του βασικού κυττάρου στατικής µνήµης µπορεί να
γίνει είτε µε 2 διπολικά τρανσίστορς πολλαπλού εκποµπού είτε µε 4 MOS τρανσίστορς
(Σχήµα 7.6)

12
Σχήµα 7.6. Το βασικό κύτταρο στατικής µνήµης του 1 bit κατασκευασµένο (α) µε διπολικά και (β) µε
MOS τρανσίστορς.

Οι στατικές µνήµες, που είναι κατασκευασµένες µε διπολικά τρανσίστορς, έχουν


µικρή δυνατότητα αποθήκευσης (µερικά Kbytes), αλλά όµως έχουν πολύ µικρό χρόνο
προσπέλασης, µικρότερο από 3ns. Οι αντίστοιχες στατικές µνήµες, που είναι
κατασκευασµένες µε CMOS (Complementary MOS) τρανσίστορς, έχουν πολύ
µεγαλύτερες δυνατότητες αποθήκευσης (της τάξεως του Mbyte) και χρόνο προσπέλασης
15ns στην καλύτερη των περιπτώσεων.
Με βάση τα στοιχεία αυτά, µπορούµε πλέον να εξηγήσουµε τη χρησιµότητα της
κρυφής µνήµης (cache memory), που είδαµε στο Σχήµα 7.1. Πρόκειται για στατική RAM
κατασκευασµένη µε διπολικά τρανσίστορς, και άρα µικρής δυνατότητας αποθήκευσης
και πολύ γρήγορη. Βρίσκεται συνήθως µαζί µε την CPU, για να αποθηκεύει τις εντολές
και τα δεδοµένα που χρησιµοποιούνται πιο συχνά.

∆υναµική RAM

Είδαµε ότι για την κατασκευή ενός κυττάρου στατικής µνήµης απαιτούνται 4
τρανσίστορς MOS. Για να αυξηθεί η πυκνότητα της µνήµης, δηλαδή τα bits ανά
ολοκληρωµένο, έχουµε καταφέρει να σχεδιάσουµε κύτταρα µνήµης, τα οποία
χρησιµοποιούν µόνο 1 τρανσίστορ ανά bit. Είναι όµως αδύνατο να κατασκευαστεί ένα
δισταθές (bistable) στοιχείο µε ένα µόνο τρανσίστορ. Αυτό που γίνεται στην πράξη είναι
ότι η πληροφορία αποθηκεύεται σ' ένα µικρό πυκνωτή. Η πρόσβαση στην πληροφορία,
που είναι αποθηκευµένη στον πυκνωτή, γίνεται µέσω ενός MOS τρανσίστορ (Σχήµα 7.7).

13
γραµµή bit
γραµµή λέξης


κύτταρο
1bit •
DRAM

Σχήµα 7.7. Κύτταρο 1-bit δυναµικής RAM.

Για να διατηρείται η πληροφορία του 1- bit σε κάθε πυκνωτή, χρειάζεται να γίνεται


ανανέωση αυτής σε τακτά χρονικά διαστήµατα. Η µνήµη αυτού του είδους ονοµάζεται
δυναµική (dynamic). Πράγµατι, κάθε κύτταρο δυναµικής RAM χρειάζεται ανανέωση
(refreshing) της πληροφορίας κάθε 4 ms. Η διαδικασία της ανανέωσης γίνεται από ειδικό
κύκλωµα, το οποίο βρίσκεται στο ίδιο το ολοκληρωµένο της µνήµης. Είναι προφανές,
εποµένως, ότι η δυναµική RAM απαιτεί περισσότερα εξωτερικά κυκλώµατα και είναι πιο
δύσχρηστη από τη στατική RAM. Από την άλλη πλευρά όµως, το κόστος ανά bit είναι
πολύ µικρότερο και η πυκνότητα πολύ µεγαλύτερη, οδηγώντας σε ολοκληρωµένα
κυκλώµατα µε µικρότερες διαστάσεις. Επίσης, η κατανάλωση της δυναµικής RAM είναι
πολύ µικρότερη της αντίστοιχης στατικής RAM. Ένα σύγχρονο ολοκληρωµένο κύκλωµα
δυναµικής RAM έχει δυνατότητα αποθήκευσης πληροφορίας µεγαλύτερη από 16 Mbits.

Άσκηση Αυτοαξιολόγησης 2 / Κεφάλαιο 7

Ποια τα µειονεκτήµατα και πλεονεκτήµατα µιας δυναµικής RAM (DRAM) έναντι


µιας στατικής RAM (SRAM); Τι είδους RAM θα περιµένατε να δείτε σε µια ηλεκτρονική
συσκευή, η οποία λειτουργεί µε µπαταρίες;

Σύνοψη Ενότητας

Στην ενότητα αυτή αναφερθήκαµε στις ηµιαγωγικές µνήµες ROM και RAM.
Γνωρίσαµε όλες τις παραλλαγές της µνήµης ROM (ROM µάσκας, PROM, EPROM,
EEPROM), καθώς και τις δύο µεγάλες κατηγορίες µνήµης RAM, τη στατική και τη
δυναµική. Η στατική µνήµη είναι πιο γρήγορη και δεν χρειάζεται επιπλέον κυκλώµατα

14
για την ανανέωση της πληροφορίας, που είναι αποθηκευµένη σ' αυτή. Η δυναµική µνήµη
έχει µεγαλύτερο χρόνο προσπέλασης, χρειάζεται ανανέωση της πληροφορίας, επειδή
αυτή αποθηκεύεται ως ηλεκτρικό φορτίο στα άκρα πυκνωτή, αλλά έχει το πλεονέκτηµα
της µεγάλης πυκνότητας και της χαµηλής κατανάλωσης. Η κύρια µνήµη των σύγχρονων
υπολογιστικών συστηµάτων είναι στη συντριπτική της πλειοψηφία δυναµική RAM
(DRAM).

ΕΝΟΤΗΤΑ 7.2. ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ

Στην προηγούµενη ενότητα είδαµε το βασικό κύτταρο µνήµης του 1-bit. Εδώ θα
ασχοληθούµε µε τη λογική οργάνωση µιας µνήµης, δηλαδή µε τη λογική διάταξη των
κυττάρων µνήµης, ώστε να πάρουµε µια µνήµη 2n λέξεων, των b bits η καθεµιά. Στη
συνέχεια θα δούµε πώς από µία RAM 2nxb µπορούµε να έχουµε µια µνήµη µεγαλύτερου
µήκους λέξης, π.χ. 2nxmb, ή µεγαλύτερου µεγέθους 2n+kxb. Μετά τη µελέτη της ενότητας
αυτής, θα είστε σε θέση να διασυνδέετε ολοκληρωµένα κυκλώµατα µνήµης RAM ή
ROM έτσι ώστε να πετυχαίνετε την επέκταση αυτής κατά πλάτος (επέκταση µήκους
λέξης) και/ή κατά µήκος (επέκταση της αποθηκευτικής ικανότητας).
Η λογική οργάνωση και το σχηµατικό διάγραµµα µιας RAM των 22 λέξεων, µήκους 3
bits η καθεµιά, δίνεται στο Σχήµα 7.8.

Είσοδοι
∆εδοµένων
D2 D1 D0

Λέξη 0
• •

• • •
Α0
Είσοδοι Λέξη 1
• •
∆ιεύθυνσης • •
Αποκωδικοποιητής

Α1
• • •
2-σε-4

Λέξη 2
• • •
• •

• • •

Λέξη 3 • • •
• •
Επίτρεψη
µνήµης

• • •
Ανάγνωση/Έγγραφή

D2 D1 D0
Έξοδοι
(α) ∆εδοµένων

15
Είσοδοι 2
∆ιεύθυνσης

3
22 × 3 3
Είσοδοι Έξοδοι
RAM
∆εδοµένων ∆εδοµένων

Επιλογή

R /W
(β)
Σχήµα 7.8. (α) Λογική οργάνωση και (β) σχηµατικό διάγραµµα µιας 22x3 RAM.
Η µνήµη αυτή, η οποία σχεδιάστηκε για καθαρά εκπαιδευτικούς λόγους, αποτελείται
από 12 βασικά κύτταρα µνήµης, όπως εκείνο του Σχήµατος 7.5α. Αυτά είναι οργανωµένα
ως 4 λέξεις των 3 bits η καθεµιά. Η επιλογή καθεµιάς από τις 4 αυτές λέξεις γίνεται µε τη
βοήθεια ενός αποκωδικοποιητή 2-σε-4. Με άλλα λόγια, 2 γραµµές διευθύνσεων είναι
αρκετές. Για κάθε δυνατό συνδυασµό της διεύθυνσης, επιλέγεται η αντίστοιχη λέξη
(δηλαδή και τα 3 bits µιας σειράς) και είµαστε έτοιµοι να διαβάσουµε ή να
αποθηκεύσουµε την 3 bit πληροφορία, ανάλογα µε τη λογική στάθµη της εισόδου
ανάγνωσης / εγγραφής (1 ή 0 αντίστοιχα). Κάθε τετράδα εξόδων των βασικών κυττάρων
µνήµης της ίδιας σηµαντικότητας οδηγείται σε µια πύλη OR. Οι έξοδοι των πυλών OR
αποτελούν και τις εξόδους της RAM. Παρόµοια, οι 3 είσοδοι της RAM οδηγούνται σε
καθένα από τα βασικά κύτταρα µνήµης της ίδιας σηµαντικότητας (ίδιας στήλης). Κατά
την εγγραφή, µόνο η λέξη, η οποία έχει επιλεγεί, θα ενεργοποιηθεί, ώστε να δεχθεί τα
δεδοµένα εισόδου. Παρατηρήστε, τέλος, την είσοδο ελέγχου "επιλογή µνήµης". Όταν
αυτή βρίσκεται στο λογικό 0, τότε απενεργοποιείται η λειτουργία του αποκωδικοποιητή
και δεν επιλέγεται οποιαδήποτε από τις λέξεις της µνήµης. Τα περιεχόµενα των βασικών
κυττάρων παραµένουν αµετάβλητα, ανεξάρτητα από τη λογική στάθµη της εισόδου
ανάγνωσης / εγγραφής.

7.2.1. ΕΠΕΚΤΑΣΗ ΤΟΥ ΜΗΚΟΥΣ ΛΕΞΗΣ ΜΙΑΣ ΜΝΗΜΗΣ

Είδαµε στην προηγούµενη παράγραφο τη λογική οργάνωση και το σχηµατικό


διάγραµµα µιας 22x3 RAM. Έστω ότι διαθέτουµε τέτοια ολοκληρωµένα κυκλώµατα των
22x3 λέξεων. Πώς θα πρέπει αυτά να διασυνδεθούν, ώστε να δηµιουργήσουµε µια 22x6
RAM; Είναι εύκολο να απαντήσει κανείς στο ερώτηµα αυτό, αφού είναι φανερό ότι η
παράλληλη διασύνδεση δύο ολοκληρωµένων 22x3 δηµιουργεί µια νέα µνήµη διπλάσιου
µήκους λέξης (Σχήµα 7.9).
Οι είσοδοι των διευθύνσεων, καθώς και οι είσοδοι ελέγχου είναι κοινές και για τα δύο
ολοκληρωµένα. Οι είσοδοι ελέγχου είναι τουλάχιστον δύο σε κάθε ολοκληρωµένο

16
µνήµης RAM. Η µία είναι η είσοδος ανάγνωσης / εγγραφής (R/W, Read/Write) και η
άλλη είναι η είσοδος επιλογής ολοκληρωµένου (CS, chip select). Η τελευταία
χρησιµοποιείται για την ενεργοποίηση του επιθυµητού ολοκληρωµένου κάθε φορά και
είναι ουσιαστικά η επιλογή µνήµης που είδαµε στην αµέσως προηγούµενη παράγραφο.
Οι είσοδοι και έξοδοι των δεδοµένων, όπως είναι φυσικό, δεν είναι κοινές για τα δύο
ολοκληρωµένα του Σχήµατος 7.9. Οι 3 από αυτές χρησιµοποιούνται για την ανάγνωση
και εγγραφή του περισσότερο σηµαντικού τµήµατος της λέξης (most significant, MS),
ενώ οι άλλες 3 για το λιγότερο σηµαντικό τµήµα αυτής (least significant, LS). Στο
αριστερό ολοκληρωµένο του Σχήµατος 7.9 αποθηκεύεται το περισσότερο σηµαντικό
τµήµα της λέξης, ενώ στο δεξιό ολοκληρωµένο αποθηκεύεται το λιγότερο σηµαντικό
τµήµα αυτής.
Στη γενική περίπτωση που διαθέτουµε ολοκληρωµένα µνήµης 2nxb και θέλουµε να
κατασκευάσουµε µια µνήµη µήκους λέξης mb, δηλαδή µια µνήµη 2nxmb, θα χρειαστεί να
διασυνδέσουµε παράλληλα m τέτοια ολοκληρωµένα.\

Είσοδοι ∆εδοµένων
MS LS

3 3

Είσοδοι 2 2
• 22 × 3 22 × 3
∆ιεύθυνσης
RAM RAM
3 3 3

• CS CS
R/W
R/W

Ανάγνωση/
Εγγραφή

3 3

MS LS

Έξοδοι ∆εδοµένων
Σχήµα 7.9. Παράλληλη διασύνδεση δύο ολοκληρωµένων µνήµης για το διπλασιασµό του µήκους λέξης.

Άσκηση Αυτοαξιολόγησης 3 / Κεφάλαιο 7

∆ιατίθενται ολοκληρωµένα κυκλώµατα RAM µε κωδικό 2114. Πόσα τέτοια


ολοκληρωµένα απαιτούνται για µια 1Κ x 16 RAM; ∆ώστε τον τρόπο διασύνδεσής τους.

17
7.2.2. ΕΠΕΚΤΑΣΗ ΤΗΣ ΑΠΟΘΗΚΕΥΤΙΚΗΣ ΙΚΑΝΟΤΗΤΑΣ ΜΙΑΣ ΜΝΗΜΗΣ

Το επόµενο σηµείο που θα πρέπει να εξετάσουµε είναι αυτό της επέκτασης της
αποθηκευτικής ικανότητας µιας µνήµης, όταν το µήκος λέξης διατηρείται σταθερό. Ας
υποθέσουµε, για παράδειγµα, ότι διαθέτουµε ολοκληρωµένα µνήµης RAM των 22x3
λέξεων. Πόσα από αυτά θα χρειαστούµε και πώς θα πρέπει να τα διασυνδέσουµε, ώστε
να πάρουµε µια µνήµη µε δυνατότητα αποθήκευσης 16 λέξεων των 3 bits η καθεµιά;
Χρειάζεται, δηλαδή, να δηµιουργήσουµε µια 24x3 RAM. Αν είχαµε µόνο τα βασικά
κύτταρα µνήµης, τότε ένας αποκωδικοποιητής 4-σε-16 θα ήταν αυτό που χρειαζόµαστε.
Τώρα, αφού ήδη διαθέτουµε µνήµες 22x3, θα χρειαστούµε 4 από αυτές (24x3 = 22 x22 x 3
= 4x22x3), για να δηµιουργήσουµε τη ζητούµενη µνήµη. Για την επιλογή καθενός από τα
τέσσερα ολοκληρωµένα µνήµης, θα χρειαστεί ένας αποκωδικοποιητής 2-σε-4, όπως
δείχνεται στο γενικό διάγραµµα του Σχήµατος 7.10α.
Είσοδοι ∆ιευθύνσεων
Είσοδοι
A3 A2 ∆εδοµένων
A1 , A0
Θέσεις
µνήµης
2 2
Α π ο κ ω δ ικ ο π ο ίη σ η Αποκωδικοποίηση
2 - σ ε -4 2-σε-4
0-3
3 2 1 0
• 22 × 3
RAM
2 2
× 3
RAM

CS
R/W
CS

4-7
2 2
× 3 22 × 3
RAM •
RAM

• •
CS
CS
R/W

2 2
× 3 • 8 - 11
RAM
• 22 × 3
RAM
CS
• •
CS
R/W
2 2
× 3
RAM

12 - 15

CS 22 × 3
RAM

(α ) •
CS
R/W 3
Ανάγνωση/Εγγραφή

Έξοδοι
∆εδοµένων
(β)

Σχήµα 7.10. (α) Γενικό και (β) αναλυτικό διάγραµµα επέκτασης του µεγέθους µνήµης

Με κάθε επιπλέον bit της διεύθυνσης διπλασιάζεται η δυνατότητα αποθήκευσης µιας


µνήµης. Για να τετραπλασιαστεί το µέγεθός της, χρειαζόµαστε δύο επιπλέον bits στη
λέξη διευθύνσεων. Έτσι, αν για την 22x3 RAM χρησιµοποιούµε τα bits διευθύνσεων Α0,

18
Α1, τότε για την 24x3 RAM θα χρειαστούµε επιπλέον και τα bits Α2, Α3. Το αναλυτικό
διάγραµµα για την περίπτωση της επέκτασης µνήµης, που εξετάζουµε, δείχνεται στο
Σχήµα 7.10β. Παρατηρούµε ότι τόσο οι είσοδοι δεδοµένων, όσο και οι έξοδοι δεδοµένων
είναι κοινές. Επίσης κοινή για όλα τα ολοκληρωµένα είναι η είσοδος ανάγνωσης /
εγγραφής, καθώς και οι δύο λιγότερο σηµαντικές διευθύνσεις Α1, Α0. Με τη βοήθεια των
δύο αυτών εισόδων διευθύνσεων, επιλέγουµε ποια από τις τέσσερεις θέσεις µνήµης κάθε
ολοκληρωµένου θέλουµε να προσπελάσουµε, ενώ µε τη βοήθεια των περισσότερο
σηµαντικών διευθύνσεων Α3, Α2 και του αποκωδικοποιητή επιλέγουµε το συγκεκριµένο
ολοκληρωµένο που θέλουµε να προσπελάσουµε. Έτσι, για τη διεύθυνση Α3Α2Α1Α0 =
(0110)2 = (6)10 θα επιλεγεί η προσπέλαση στην τρίτη θέση (Α1Α0=10) του δεύτερου
ολοκληρωµένου (Α3Α2=01).
Γενικά, για να δηµιουργήσουµε µια µνήµη 2n+kxb λέξεων, όταν διαθέτουµε
ολοκληρωµένα των 2nxb λέξεων, θα χρειαστούµε 2k ολοκληρωµένα και έναν
αποκωδικοποιητή k εισόδων και 2k εξόδων (k-σε-2k αποκωδικοποιητή).

Γενικές Παρατηρήσεις

• Τα όσα αναφέρθηκαν για την επέκταση του µήκους ή του µεγέθους της RAM
ισχύουν και για την περίπτωση της επέκτασης της ROM. Η µόνη διαφορά στα
διαγράµµατα των Σχηµάτων 7.9 και 7.10 είναι ότι η ROM δεν διαθέτει είσοδο
ελέγχου ανάγνωσης / εγγραφής.
• Οι στατικές RAM συνηθίζεται να έχουν διαύλους διακίνησης δεδοµένων (data
buses) διπλής κατεύθυνσης. Με άλλα λόγια, οι ίδιοι ακροδέκτες (pins) του
ολοκληρωµένου χρησιµοποιούνται τόσο για την είσοδο (εγγραφή), όσο και για την
έξοδο (ανάγνωση) των δεδοµένων. Με τον τρόπο αυτό επιτυγχάνεται η ελάττωση
των διαστάσεων του ολοκληρωµένου και κατ' επέκταση των ψηφιακών
συστηµάτων που σχεδιάζονται µε βάση αυτά.
• Σε πολλές περιπτώσεις ο έλεγχος για την ανάγνωση ή την εγγραφή µιας RAM
γίνεται µε δύο ξεχωριστές εισόδους, την είσοδο για ανάγνωση και την είσοδο για
εγγραφή, και όχι µε µία είσοδο, όπως είδαµε µέχρι τώρα.
• Στις µνήµες µεγάλης αποθηκευτικής ικανότητας, οι ακροδέκτες για την είσοδο των
διευθύνσεων είναι οι µισοί από το πραγµατικό πλήθος των διευθύνσεων. Έτσι, η
κάθε διεύθυνση σχηµατίζεται σε δύο ξεχωριστά βήµατα. Κατά το πρώτο δίνεται το
ένα τµήµα της διεύθυνσης και κατά το δεύτερο βήµα δίνεται το άλλο τµήµα αυτής.

19
Αυτού του είδους η πολύπλεξη των διευθύνσεων συντελεί στην ελάττωση των
ακροδεκτών του ολοκληρωµένου και κατά συνέπεια στη δραστική µείωση του
χώρου που αυτό καταλαµβάνει.

Άσκηση Αυτοαξιολόγησης 4 / Κεφάλαιο 7

∆ιατίθενται ολοκληρωµένα κυκλώµατα RAM µε κωδικό 2114. Πόσα τέτοια


ολοκληρωµένα απαιτούνται για τη δηµιουργία µιας 2Κx4 RAM; ∆ώστε τον τρόπο
διασύνδεσής τους.

Άσκηση Αυτοαξιολόγησης 5 / Κεφάλαιο 7

∆ιατίθενται ολοκληρωµένα κυκλώµατα EPROM µε κωδικό 2716. Πόσα τέτοια


ολοκληρωµένα θα χρειαστείτε, για να δηµιουργήσετε µια 4Κx16 µνήµη; ∆ώστε το
σχηµατικό διάγραµµα της µνήµης αυτής.

Σύνοψη Ενότητας

Στην ενότητα αυτή µελετήσαµε τη λογική οργάνωση µιας µνήµης RAM και τον τρόπο
επέκτασης αυτής τόσο κατά πλάτος (επέκταση µήκους λέξης), όσο και κατά µήκος
(επέκταση µεγέθους). Ως 2nxb RAM αναφέρεται µια µνήµη, η οποία αποτελείται από 2n
λέξεις των b bits η καθεµιά. Για την επέκταση του µήκους λέξης αυτής σε mb bits,
δηλαδή για τη δηµιουργία µιας 2nxmb µνήµης, απαιτούνται m ολοκληρωµένα, τα οποία
διασυνδέονται παράλληλα. Αυτό σηµαίνει ότι οι είσοδοι διευθύνσεων, επιλογής
ολοκληρωµένου και ανάγνωσης / εγγραφής είναι κοινές. Για την επέκταση του µεγέθους
αυτής σε 2n+k θέσεις, δηλαδή για τη δηµιουργία µιας 2n+kxb µνήµης, απαιτούνται 2k
ολοκληρωµένα και ένας αποκωδικοποιητής k γραµµών σε 2k γραµµές. Στην περίπτωση
αυτή όλες οι είσοδοι και έξοδοι είναι κοινές, εκτός της εισόδου επιλογής
ολοκληρωµένου, η οποία τροφοδοτείται από τις εξόδους του αποκωδικοποιητή.

ΣΥΝΟΨΗ ΚΕΦΑΛΑΙΟΥ

Στο Κεφάλαιο αυτό έγινε αναφορά σε όλα τα είδη µνήµης και τις έννοιες που
συνδέονται µ' αυτές. Ιδιαίτερη έµφαση δόθηκε στις ηµιαγωγικές µνήµες ROM και RAM.

20
Και τα δύο αυτά είδη ανήκουν στην κατηγορία της µνήµης τυχαίας προσπέλασης, δηλαδή
εκείνης στην οποία ο χρόνος προσπέλασης οποιουδήποτε περιεχοµένου της είναι
ανεξάρτητος της θέσης του στη µνήµη. Τέλος, εξετάσαµε τους τρόπους µε τους οποίους
µπορούµε να επεκτείνουµε τις αποθηκευτικές ικανότητες µιας µνήµης ως προς το µήκος
λέξης και ως προς το πλήθος των θέσεων, χρησιµοποιώντας ολοκληρωµένα µνήµης
µικρότερων δυνατοτήτων.

ΒΙΒΛΙΟΓΡΑΦΙΑ

ΕΛΛΗΝΟΓΛΩΣΣΗ
Mano Morris M., Ψηφιακή Σχεδίαση, (Κεφ. 7), Εκδόσεις Παπασωτηρίου, 1992.

ΞΕΝΟΓΛΩΣΣΗ
Kleitz W., Digital Electronics: A Practical Approach, (Chap. 16), Prentice Hall, 1996.
Tocci R. J., Widmer N.S., Digital Systems: Principles and Applications, (Chap. 11),
Prentice Hall, 1998.
Wakerly J. F., Digital Design: Principles and Practices, 2nd Edition, (Chap. 11),
Prentice Hall, 1994.

Ο∆ΗΓΟΣ ΠΕΡΑΙΤΕΡΩ ΜΕΛΕΤΗΣ

Tocci R. J., Widmer N.S., Digital Systems: Principles and Applications, (Chap. 11),
Prentice Hall, 1998.
Το Κεφάλαιο 11 του βιβλίου είναι αφιερωµένο στις µνήµες. ∆ίνονται πολλά
παραδείγµατα, ερωτήσεις, ασκήσεις και εφαρµογές. Ο τρόπος επέκτασης της µνήµης
είναι πολύ κατανοητός. Επίσης, πολύ κατανοητή είναι και η περιγραφή της διαδικασίας
ανάγνωσης και εγγραφής σε µια µνήµη.

Wakerly J. F., Digital Design: Principles and Practices, 2nd Edition, (Chap. 11),
Prentice Hall, 1994.
Το Κεφάλαιο 11 του βιβλίου αναφέρεται στις µνήµες. Η περιγραφή των διαφόρων τύπων
µνήµης ROM, καθώς και η περιγραφή της δυναµικής RAM είναι πολύ αναλυτική και
κατανοητή.

21
ΑΠΑΝΤΗΣΕΙΣ ΑΣΚΗΣΕΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ

Απάντηση Άσκησης Αυτοαξιολόγησης 1 / Κεφάλαιο 7

Από την εκφώνηση της άσκησης είναι φανερό ότι το ολοκληρωµένο 2716 διαθέτει
16Κ bits µνήµης, διατεταγµένα ως 2Κ=2048 θέσεις µνήµης των 8 bits η καθεµιά.
Συνεπώς, για την προσπέλαση 2Κ = 2x210 = 211 διαφορετικών θέσεων µνήµης
απαιτούνται 11 γραµµές διευθύνσεων (Αi, i = 0, 1, ..., 10). Κάθε θέση µνήµης, δηλαδή
κάθε λέξη, έχει µήκος 8 bits. Άρα, οι γραµµές δεδοµένων είναι 8 (Dj, j = 0, 1, ..., 7). Το
σχηµατικό διάγραµµα της µνήµης αυτής φαίνεται στο Σχήµα 7.11α.
Με το ίδιο σκεπτικό είναι εύκολο να διαπιστώσουµε ότι το ολοκληρωµένο 2114 έχει
τη δυνατότητα αποθήκευσης 4 Κ bits πληροφορίας, οργανωµένης ως 1Κ = 1024 = 210
λέξεις των 4 bits η καθεµιά. Οι γραµµές διευθύνσεων είναι 10 (Αi, i = 0, 1, ..., 9) και οι
γραµµές δεδοµένων 4 (Dj, j = 0, 1, 2, 3). Το αντίστοιχο σχηµατικό διάγραµµα φαίνεται
στο Σχήµα 7.11β.

2k x 8 1k x 4
Είσοδος Ai Είσοδος Ai
∆ιευθύνσεων Έξοδος ∆ιευθύνσεων 10
11
∆εδοµένων Είσοδος Έξοδος
Dj ∆εδοµένων
Dj Dj ∆εδοµένων
8 4 4
R/W

Είσοδος
Ανάγν./Εγγραφής
(α) (β)

Σχήµα 7.11. Σχηµατικό διάγραµµα (α) µιας 2 Κ x 8 EPROM και (β) µιας 1 Κ x 4 RAM.

Αν απαντήσατε σωστά, τότε µπράβο σας. Αν δεν τα καταφέρατε, επαναλάβετε τη


µελέτη του εισαγωγικού τµήµατος της ενότητας 7.1. Πρόκειται για απλές έννοιες, που
πολύ εύκολα θα τις κατανοήσετε.

Απάντηση Άσκησης Αυτοαξιολόγησης 2 / Κεφάλαιο 7

Τα µειονεκτήµατα της δυναµικής RAM έναντι της στατικής είναι η µικρότερη


ταχύτητα, δηλαδή ο µεγαλύτερος χρόνος προσπέλασής της, και η αναγκαιότητα
ανανέωσης της πληροφορίας (refreshing). Τα κύρια πλεονεκτήµατα αυτής είναι η χαµηλή
κατανάλωση, η υψηλή πυκνότητα και το µικρότερο κόστος ανά bit. Υψηλή πυκνότητα
σηµαίνει ότι στο ίδιο εµβαδόν του ολοκληρωµένου “χωράνε” περισσότερα bits
δυναµικής RAM απ’ ότι στατικής RAM. Τέλος, σε µια συσκευή που λειτουργεί µε

22
µπαταρίες θα περιµέναµε να δούµε δυναµική RAM (DRAM) για τους λόγους που µόλις
αναφέραµε, µε προέχοντα αυτόν της χαµηλής κατανάλωσης.
Αυτή ήταν µια εύκολη άσκηση και δεν πρέπει να σας δηµιούργησε πρόβληµα. Αν,
ωστόσο, δεν καταφέρατε να καταγράψετε όλα τα πλεονεκτήµατα και µειονεκτήµατα,
τότε σίγουρα θα πρέπει να επαναλάβετε τη µελέτη της υποενότητας 7.1.2.

Απάντηση Άσκησης Αυτοαξιολόγησης 3 / Κεφάλαιο 7

Είδαµε στην άσκηση αυτοαξιολόγησης 1 / Κεφάλαιο 7 ότι η 2114 RAM είναι µια
µνήµη 1 Κ x 4. Συνεπώς, για να δηµιουργήσουµε λέξεις των 16 bits, θα πρέπει να
διασυνδέσουµε παράλληλα 4 τέτοια ολοκληρωµένα. Οι 10 γραµµές διευθύνσεων, καθώς
και οι γραµµές ανάγνωσης / εγγραφής και επιλογής ολοκληρωµένου θα είναι κοινές για
όλα τα ολοκληρωµένα. Το σχηµατικό διάγραµµα της διασύνδεσης αυτών για τη
δηµιουργία µιας 1 Κ x 16 RAM δείχνεται στο Σχήµα 7.12.

D15 − D12 D11 − D8 D7 − D4 D3 − D0

4 4 4 4
A0 − Ag 10
• • •

1k × 4 1k × 4 1k × 4 1k × 4

CS CS CS CS
R/W R/W R/W R/W
Επιλογή Ολο
κληρωµ. •
• •
Ανάγν./ Εγγρ.
• • •

4 4 4 4

D15 − D12 D11 − D8 D7 − D4 D3 − D0

Σχήµα 7.12. ∆ιασύνδεση τεσσάρων ολοκληρωµένων 1 Κ x 4 RAM για τη δηµιουργία µιας 1 Κ x 16


RAM.

Αν απαντήσατε σωστά, τότε µπράβο σας. Έχετε κατανοήσει τον τρόπο διασύνδεσης
πολλών ολοκληρωµένων µνήµης για τη δηµιουργία µνήµης πολλαπλού µήκους λέξης. Αν
δεν δώσατε τη σωστή απάντηση, τότε µελετήστε και πάλι την υποενότητα 7.2.1 και
επαναλάβετε την προσπάθειά σας.

23
Απάντηση Άσκησης Αυτοαξιολόγησης 4 / Κεφάλαιο 7

Η µνήµη 2114 είναι µια 1 Κ x 4 στατική RAM. Εποµένως, για τη δηµιουργία µιας
2 Κ x 4 RAM απαιτούνται 2 τέτοια ολοκληρωµένα κυκλώµατα. Η διασύνδεση αυτών θα
πρέπει να γίνει έτσι, ώστε στο ένα από αυτά να αποθηκεύονται οι πρώτες 1024 λέξεις
(των 4 bits η καθεµιά) και στο άλλο οι υπόλοιπες 1024 λέξεις. Το σχηµατικό διάγραµµα
της διασύνδεσης των δύο ολοκληρωµένων δίνεται στο Σχήµα 7.13. Παρατηρούµε ότι,
όπως και στο Σχήµα 7.10β, οι δύο µνήµες έχουν κοινές τις 4 γραµµές δεδοµένων
(εισόδου και εξόδου), τη γραµµή ανάγνωσης / εγγραφής, καθώς και τις 10 γραµµές
διευθύνσεων Α0 ... Α9. Η γραµµή διεύθυνσης Α10 είναι αυτή που τελικά συντελεί στην
επιλογή του ολοκληρωµένου, στο οποίο θα γίνει η προσπέλαση για ανάγνωση ή εγγραφή.

Είσοδοι Είσοδοι
∆ιεύθ. ∆εδοµένων

A10 A − A D3 − D0
9 0

10 4
0 - 1023
αποκωδικοποιητής •
1-σε-2 1k × 4


CS
R /W

1024 - 2047

1k × 4


CS
R /W
Ανάγνωση/Εγγραφή
• 4

D3 − D0
Έξοδοι ∆εδοµένων

Σχήµα 7.13. Σχηµατικό διάγραµµα διασύνδεσης δύο 1 K x 4 RAM για τη δηµιουργία µιας 2 Κ x 4 RAM.

Αν Α10=0, τότε επιλέγεται το επάνω ολοκληρωµένο (θέσεις µνήµης 0-1023), ενώ, αν


Α10=1, τότε επιλέγεται το κάτω ολοκληρωµένο του Σχήµατος 7.13 (θέσεις µνήµης 1024-
2047). (∆ιευκρινίζεται ότι η επιλογή ολοκληρωµένου ενεργοποιείται, όταν CS=0, γι' αυτό
το λόγο υπάρχει και το σύµβολο της παύλας πάνω από την είσοδο CS, δηλαδή ο
συµβολισµός είναι CS ). Παρατηρούµε, τέλος, ότι ο αποκωδικοποιητής των διευθύνσεων,
που είδαµε στο Σχήµα 7.10, έχει στην πράξη εκφυλιστεί σε ένα απλό κύκλωµα µε µια
πύλη ΝΟΤ, όπως φαίνεται µε τη διακεκοµµένη γραµµή.

24
Αν δώσατε το σωστό σχηµατικό διάγραµµα, τότε συγχαρητήρια. Αν δεν τα
καταφέρατε µην απογοητευθείτε. Η περίπτωση αυτή είναι πιο δύσκολη από την επέκταση
του µήκους λέξης, που είδαµε στην προηγούµενη άσκηση, αφού απαιτείται η
αποκωδικοποίηση επιπλέον διευθύνσεων. Μελετήστε και πάλι την υποενότητα 7.2.2 και
ξαναπροσπαθήστε.

Απάντηση Άσκησης Αυτοαξιολόγησης 5 / Κεφάλαιο 7

Η 2716 RAM είναι µια 2Κx8 µνήµη (Βλ. άσκηση αυτοαξιολόγησης 1 / Κεφάλαιο 7).
Για να δηµιουργήσουµε µια 2Κx16 µνήµη, θα χρειαστούµε 2 τέτοια ολοκληρωµένα, τα
οποία και θα πρέπει να διασυνδέσουµε παράλληλα. Για να δηµιουργήσουµε τώρα 4Κx16,
θα χρειαστούµε 2 2Κx16 µνήµη, δηλαδή συνολικά 4 ολοκληρωµένα 2Κx8. Το όλο
σχηµατικό διάγραµµα δείχνεται στο Σχήµα 7.14. Παρατηρούµε ότι πρώτες 11 γραµµές
διευθύνσεων κάθε ολοκληρωµένου είναι κοινές. Οι είσοδοι επιλογής ολοκληρωµένου
( CS ) των δύο ολοκληρωµένων της πρώτης σειράς είναι κοινές και τροφοδοτούνται από
τη γραµµή διεύθυνσης Α11. Έτσι, όταν Α11=0, τότε τα δύο αυτά ολοκληρωµένα
ενεργοποιούνται και οι γραµµές Α0 έως Α10 καθορίζουν τη διεύθυνση της λέξης, που θα
"ελευθερωθεί" στις 16 γραµµές δεδοµένων. Όταν Α11=1, τότε ενεργοποιούνται τα δύο
ολοκληρωµένα της δεύτερης σειράς (αφού CS =0) και οι γραµµές Α0 έως Α10 καθορίζουν
ποιο από τα περιεχόµενα των διευθύνσεων 2048 έως 4095 θα "ελευθερωθεί" στις 16
γραµµές δεδοµένων.
Όπως θα διαπιστώσατε, η άσκηση αυτή αποτελεί συνδυασµό όλων των δυνατών
περιπτώσεων επέκτασης µνήµης, δηλαδή της ταυτόχρονης επέκτασης του µήκους λέξης
και της αποθηκευτικής δυνατότητας µιας µνήµης. Αν καταφέρατε να σχεδιάσετε το
σωστό σχηµατικό διάγραµµα, τότε σας αξίζουν συγχαρητήρια. Αν πάλι δεν τα
καταφέρατε, µην απογοητευθείτε. Μελετήστε την ενότητα 7.2 προσεκτικά και
επιχειρήστε ξανά να λύσετε την άσκηση.

25
A11 A10-A0

11
• •
0 - 2047 0 - 2047

2k × 8 2k × 8

• CS CS


2048-4095 2048-4095

2k × 8 2k × 8

• CS • CS •

8 8

D15 − D8 D7 − D 0

Σχήµα 7.14. Σχηµατικό διάγραµµα διασύνδεσης τεσσάρων 2Kx8 EPROM για τη δηµιουργία µιας 4Κx16.

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


access time χρόνος προσπέλασης, χρόνος πρόσβασης
address διεύθυνση
auxiliary memory βοηθητική ή δευτερεύουσα µνήµη
basic memory cell βασικό κύτταρο µνήµης
binary coded decimal (BCD) δεκαδικός κωδικοποιηµένος ως δυαδικός
bistable δισταθής
byte ψηφιολέξη των 8-bits
cache memory κρυφή ή λανθάνουσα µνήµη
central processing unit κεντρική µονάδα επεξεργασίας
chip select είσοδος επιλογής ολοκληρωµένου
data bus δίαυλος διακίνησης δεδοµένων
device συσκευή, στοιχείο
dynamic RAM δυναµική RAM
floating gate επιπλέουσα πύλη
magnetic diskette µαγνητική δισκέτα
main memory κύρια ή πρωτεύουσα µνήµη
mass storage µαζική αποθήκευση
metal-oxide-semiconductor (MOS) µέταλλο-οξείδιο-ηµιαγωγός
minterm ελάχιστος όρος, ελαχιστόρος
nibble ψηφιολέξη των 4-bits
non-volatile memory µη πτητική µνήµη, µη πρόσκαιρη µνήµη
pin ακροδέκτης ολοκληρωµένου κυκλώµατος
random access τυχαία προσπέλαση
refreshing ανανέωση της πληροφορίας
register καταχωρητής
secondary memory βοηθητική ή δευτερεύουσα µνήµη
semiconductor integrated circuit ηµιαγωγικό ολοκληρωµένο κύκλωµα ή ολοκληρωµένο κύκλωµα
sequential / serial access σειριακή προσπέλαση
seven segment display συσκευή επίδειξης των επτά τµηµάτων
static RAM στατική RAM
transistor-transistor logic (TTL) λογική τρανσίστορ-τρανσίστορ
volatile memory πτητική µνήµη, πρόσκαιρη µνήµη

26

You might also like