ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6.3) ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy)
Σχεδιασµός Ακολουθιακών Κυκλωµάτων q Αρχή: Μια λίστα/περιγραφή προδιαγραφών q Τέλος: Ένα λογικό διάγραµµα ή ένα σύνολο ελαχιστοποιηµένων δυαδικών συναρτήσεων q # FFs που θα χρησιµοποιηθούν εξαρτάται από τον αριθµό των καταστάσεων (states) που χρειάζονται. Με n FFs, µπορούν να αναπαρασταθούν µέχρι και 2 n καταστάσεις. ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.2 Θεοχαρίδης, ΗΜΥ, 2016
Βασική Διαδικασία Σχεδιασµού 1. Προδιαγραφή (specification): καθορίζεται βάση της περιγραφής του προβλήµατος. 2. Διατύπωση (formulation): παραγωγή του πίνακα καταστάσεων ή/και του διαγράµµατος καταστάσεων. 3. Ανάθεση καταστάσεων (state assignment): ανάθεση δυαδικού κώδικα σε κάθε κατάσταση (state encoding). Παραγωγή πίνακα καταστάσεων απαραίτητη (κωδικοποιηµένος πίνακας καταστάσεων). Ελαχιστοποίηση καταστάσεων προαιρετική, συνήθως επιθυµητή. 4. Εξισώσεις Εισόδων FF (FF-input equations): επιλογή τύπου FF και παραγωγή των αντίστοιχων εξισώσεων από τον κωδικοποιηµένο πίνακα καταστάσεων. ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.3 Θεοχαρίδης, ΗΜΥ, 2016
Βασική Διαδικασία Σχεδιασµού (συν.) 5. Εξισώσεις Εξόδων (primary output equations): παραγωγή εξισώσεων από τον κωδικοποιηµένο πίνακα καταστάσεων 6. Βελτιστοποίηση (optimization): των εξισώσεων στο 4. και 5. µε χρήση Κ-χαρτών και άλλων εργαλείων. 7. Αντιστοίχηση τεχνολογίας (technology mapping): σχεδιασµός λογικού διαγράµµατος βάση των διαθέσιµων στοιχείων. 8. Επαλήθευση ορθότητας (verification) ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.4 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 1: Παραγωγή διαγράµµατος και πίνακα καταστάσεων για Ανιχνευτή Ακολουθίας (Sequence Recognizer) q Σχεδιάστε ένα σύγχρονο ανιχνευτή ακολουθίας µε µία είσοδο (X) και µία έξοδο (Y). q Το κύκλωµα έχει έξοδο Y = 1 κάθε φορά που αναγνωρίζει σε µια σειρά bits στην είσοδο του κυκλώµατος X (input sequence pattern) την ακολουθία 0101. Στις άλλες περιπτώσεις, Y = 0. q Για παράδειγµα, όταν η ακολουθία εισόδου είναι 0101010000, η αντίστοιχη ακολουθία εξόδου είναι 0001010000. ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.5 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 1 (συν.) q Το διάγραµµα καταστάσεων του ανιχνευτή µπορεί να παραχθεί µε τέσσερις καταστάσεις: A, B, C, και D. q Γιατί τέσσερις? Τι σηµαίνει? A: δεν έχουµε κανένα κοµµάτι από την επιθυµητή ακολουθία (=0101). B: έχουµε το πρώτο 0 C: έχουµε τη ακολουθία 01 D: έχουµε τη ακολουθία 010 q Εάν ο ανιχνευτής είναι στην κατάσταση D και η επόµενη τιµή στην είσοδο Χ είναι 1, τότε η ακολουθία 0101 αναγνωρίζεται και Y=1. ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.6 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 1: Διάγραµµα Καταστάσεων A: δεν έχουµε κανένα κοµµάτι από την επιθυµητή ακολουθία (=0101). B: έχουµε το πρώτο 0 C: έχουµε τη ακολουθία 01 D: έχουµε τη ακολουθία 010 1/0 0/0 1/1 0/0 1/0 0/0 Α Β C D 1/0 0/0 ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.7 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 1: Πίνακας Καταστάσεων 1/0 0/0 1/1 0/0 1/0 0/0 Α Β C D Παρούσα Κατάσταση Είσοδος X Επόµενη Κατάσταση Έξοδος Y A 0 B 0 A 1 A 0 B 0 B 0 B 1 C 0 C 0 D 0 C 1 A 0 D 0 B 0 D 1 C 1 1/0 0/0 ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.8 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 1: Πίνακας Καταστάσεων (συν.) q Εναλλακτικά: Παρούσα Κατάσταση (επόµενη κατάσταση,έξοδος) X=0 (επόµενη κατάσταση,έξοδος) X=1 A (B,0) (A,0) B (B,0) (C,0) C (D,0) (A,0) D (B,0) (C,1) ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.9 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 1 (συν.) q Επόµενο βήµα à ελαχιστοποίηση καταστάσεων: σε αυτό το παράδειγµα, περαιτέρω ελαχιστοποίηση δεν είναι δυνατή (κανένα ζεύγος καταστάσεων δεν είναι ισοδύναµο ή αχρησιµοποίητο) q Επόµενο βήµα à ανάθεση καταστάσεων: ανάθεση δυαδικού κώδικα σε κάθε κατάσταση. Αφού υπάρχουν 4 καταστάσεις, χρειάζονται δύο µεταβλητές καταστάσεων, S 1 και S 0, και οι τιµές που αναθέτονται στις 4 καταστάσεις είναι 00 à A, 01 à B, 10 à C, 11 à D. ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.10 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 1: Κωδικοποιηµένος Πίνακας Καταστάσεων και εξισώσεις Παρούσα Κατάσταση S 1 S 0 (επόµενη κατάσταση S 1+ S 0+, έξοδος Y) Χ=0 (επόµενη κατάσταση S 1+ S 0+, έξοδος Y) Χ=1 00 (01,0) (00,0) 01 (01,0) (10,0) 10 (11,0) (00,0) 11 (01,0) (10,1) Άρα, αν θεωρήσουµε D-FFs: D S1 = S 1 + = S 1 S 0 X + S 1 S 0 X + S 1 S 0 X D S0 = S 0 + = S 1 S 0 X + S 1 S 0 X + S 1 S 0 X + S 1 S 0 X Y = S 1 S 0 X ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.11 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 1: Βελτιστοποίηση εξισώσεων, αντιστοίχηση τεχνολογίας D S1 = S 1 + = S 1 S 0 X + S 1 S 0 X + S 1 S 0 X D S0 = S 0 + = S 1 S 0 X + S 1 S 0 X + S 1 S 0 X + S 1 S 0 X Y = S 1 S 0 X q Βελτιστοποίηση βάσει Κ-maps q Αντιστοίχηση τεχνολογίας q Επαλήθευση ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.12 Θεοχαρίδης, ΗΜΥ, 2016
Υλοποίηση βάσει µοντέλου Μοοre του Ανιχνευτή Ακολουθίας q Το προηγούµενο παράδειγµα βασιζόταν στο µοντέλο Mealy q Στο µοντέλο Moore, η έξοδος εξαρτάται άµεσα µόνο από την παρούσα κατάσταση à Χρειαζόµαστε ακόµη µία κατάσταση Ε η οποία δίνει πάντα 1 όταν έχουµε 0101 q Άρα: Α: δεν έχουµε κανένα κοµµάτι από την επιθυµητή ακολουθία, Υ=0. Β: έχουµε το πρώτο 0, Υ=0 C: έχουµε τη ακολουθία 01, Υ=0 D: έχουµε τη ακολουθία 010, Υ=0 E: έχουµε τη ακολουθία 0101, Υ=1 ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.13 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 1: Διάγραµµα Καταστάσεων για µοντέλο Moore Α: δεν έχουµε κανένα κοµµάτι από την επιθυµητή ακολουθία, Υ=0. Β: έχουµε το πρώτο 0, Υ=0 C: έχουµε τη ακολουθία 01, Υ=0 D: έχουµε τη ακολουθία 010, Υ=0 E: έχουµε τη ακολουθία 0101, Υ=1 1 0 0 0 1 0 Α/0 Β/0 C/0 D/0 1 E/1 0 1 ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.14 Θεοχαρίδης, ΗΜΥ, 2016 1
Παράδειγµα 1: Διάγραµµα Καταστάσεων για µοντέλο Moore Βρείτε: (i) τον καινούριο πίνακα καταστάσεων, (ii) κωδικοποίηση καταστάσεων, (iii) τον καινούριο κωδικοποιηµένο πίνακα καταστάσεων, (iv) ελαχιστοποίηση και υλοποίηση µε D-FFs 1 0 0 0 1 0 Α/0 Β/0 C/0 D/0 1 1 E/1 0 1 ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.15 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 2: Αποκωδικοποιητής BCD-σε-Excess 3 q Βρείτε το διάγραµµα καταστάσεων και πίνακα καταστάσεων ενός αποκωδικοποιητή Binary- Coded-Decimal σε Excess-3. q Θυµηθείτε τον πίνακα αληθείας του αντίστοιχου συνδυαστικού κυκλώµατος που φαίνεται στα δεξιά. BCD Κώδικας A B C D φορτώνεται παράλληλα Συνδ. Κύκλωµα W X Y Z Excess-3 Κώδικας παράγεται παράλληλα Δεκαδικό ψηφίο Είσοδοι BCD Έξοδοι Excess-3 A B C D W X Y Z 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 2 0 0 1 0 0 1 0 1 3 0 0 1 1 0 1 1 0 4 0 1 0 0 0 1 1 1 5 0 1 0 1 1 0 0 0 6 0 1 1 0 1 0 0 1 7 0 1 1 1 1 0 1 0 8 1 0 0 0 1 0 1 1 9 1 0 0 1 1 1 0 0 ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.16 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 2: Αποκωδικοποιητής BCD-σε-Excess 3 (συν.) q Εναλλακτικά, ο αποκωδικοποιητής µπορεί να σχεδιαστεί σαν σύγχρονο ακολουθιακό κύκλωµα µε 1 είσοδο και 1 έξοδο. Ο BCD κώδικας φορτώνεται σειριακά, πρώτα το LSB, και ο Excess-3 κώδικας παράγεται επίσης σειριακά, µε πρώτο το LSB. q Για το σχεδιασµό ενός τέτοιου κυκλώµατος, ο πίνακας αληθείας του συνδυαστικού κυκλώµατος ανακατατάσσεται κατάλληλα έτσι ώστε να βοηθά στην παραγωγή του πίνακα καταστάσεων. ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.17 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 2: Αναδιάταξη Πίνακα Είσοδοι Έξοδοι Ακολουθία τιµών για µοναδική είσοδο I Ακολουθία τιµών για µοναδική έξοδο O Μετασχηµατισµός πίνακα: Ξεκινά µε πρώτη τη στήλη για το LSB δεκαδικό ψηφίο Είσοδοι BCD Έξοδοι Excess-3 A B C D W X Y Z 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 2 0 0 1 0 0 1 0 1 3 0 0 1 1 0 1 1 0 4 0 1 0 0 0 1 1 1 5 0 1 0 1 1 0 0 0 6 0 1 1 0 1 0 0 1 7 0 1 1 1 1 0 1 0 8 1 0 0 0 1 0 1 1 9 1 0 0 1 1 1 0 0 Είσοδοι BCD Έξοδοι Excess-3 I D I C I B I A O D O C O B O A 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.18 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 2: Αναδιάταξη Πίνακα Μετασχηµατισµός πίνακα ξανά: ταξινόµηση των γραµµών του πίνακα βάση κοινών προθεµάτων Input BCD Output Excess-3 Input BCD Output Excess-3 I D I C I B I A O D O C O B O A 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 1 I D I C I B I A O D O C O B O A 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.19 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 2: Αποκωδικοποιητής BCD-σε-Excess 3 (συν.) q Μπορούµε τώρα να χρησιµοποιήσουµε τον τελευταίο πίνακα για να βρούµε το αντίστοιχο διάγραµµα καταστάσεων. q Θυµηθείτε, η έξοδος O εξαρτάται από την είσοδο I και την παρούσα κατάσταση. q Επίσης, το κύκλωµα ΠΡΕΠΕΙ να είναι έτοιµο να λάβει µια νέα ακολουθία εισόδων 4-bit µόλις η προηγούµενη ακολουθία έχει ολοκληρωθεί. ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.20 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 2: Διάγραµµα Καταστάσεων Init 0/1 1/0 I D =0 I D =1 0/1 1/0 0/0, 1/1 0/0, 1/1 I C =0 0/0, 1/1 I C =1 I C =X 0/1 1/0 1/0 0/1 I B =0 I B =1 ή 1 όταν Ι C =0 0/1, 1/1 ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.21 Θεοχαρίδης, ΗΜΥ, 2016
Παράδειγµα 2: Διάγραµµα Καταστάσεων (συν.) Γιατί συµβαίνει αυτό? I D =1 I C =X 0/0, 1/1 0/1 I B =0 I D =1 0/0 1/1 I C =0 I C =1 1/0 0/1 1/0 I B =1 I B =0 I B =1 I D =1 0/0, 1/1 I C =X 0/1 1/0 I B =0 I B =1 Οι δύο επισηµασµένοι γράφοι είναι ισοµορφικοί, δηλ., ίδιες µεταβάσεις οδηγούν στην ίδια επόµενη κατάσταση. Αυτός είναι πλεονασµός και µπορεί να απαλειφθεί µε την ένωση των δύο καταστάσεων Ι c σε µία. ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.22 Θεοχαρίδης, ΗΜΥ, 2016
A Vending Machine Controller q Design a vending machine controller: q The vending machine accepts three types of inputs: a nickel (5 ), a dime (10 ), or a quarter (25 ). q When the value of the total inserted coins equals or exceeds 20, the machine dispenses the merchandise, returns any excess change, and waits for the next transaction. ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.23 Θεοχαρίδης, ΗΜΥ, 2016
The Vending Machine Controller q For simplicity, we will assume that if the machine currently has 15 and the user inserts a quarter, the merchandise will be dispensed, 15 will be returned, and the machine will keep 5 and await for more money. q This way, we can use 4 states to represent all possible states: A (00) = 0 C (10) = 10 B (01) = 5 D (11) = 15 q We will need two bits each to uniquely encode all possible states as well as inputs. ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.24 Θεοχαρίδης, ΗΜΥ, 2016
State Transition Diagram for the Vending Machine Input / Output 2 Output 1 Output 0 Input = Nickel Dime Quarter Output 2 = 1 0 = Dispense / Do not dispense merchandise Output 1 = 1 0 = Return / Do not return a nickel in change Output 0 = 1 0 = Return / Do not return a dime in change ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.25 Θεοχαρίδης, ΗΜΥ, 2016
State Table and State Assignment for the Vending Machine Present State = s n Input = x n Output = z n ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.26 Θεοχαρίδης, ΗΜΥ, 2016
Truth Table for the Vending Machine For the FSM circuit, we will need: Two D flip-flops to represent the two state bits. CombinaIonal logic that takes four inputs (two for the present state bits and two for the coin bits) and has five outputs (two for the next state bits and three for the dispense and return bits). s 1 s 2 x 1 x 0 s 1 s 0 z 2 z 1 z 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 2 0 0 1 0 0 0 1 1 0 3 0 0 1 1 d d d d d 4 0 1 0 0 1 0 0 0 0 5 0 1 0 1 1 1 0 0 0 6 0 1 1 0 0 0 1 0 1 7 0 1 1 1 d d d d d 8 1 0 0 0 1 1 0 0 0 9 1 0 0 1 0 0 1 0 0 10 1 0 1 0 0 0 1 0 0 11 1 0 1 1 0 0 1 1 1 12 1 1 0 0 d d d d d 13 1 1 0 1 0 0 1 1 0 14 1 1 1 0 1 1 1 1 1 15 1 1 1 1 d d d d d ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.27 Θεοχαρίδης, ΗΜΥ, 2016
Block Diagram of Vending Machine Controller x 1 x 0 Comb. Logic Q s 0 D z 2 z 1 z 0 CLK Assumes the clock input is asserted only on an event such as the user insering a coin into the machine. Q D s 1 ΗΜΥ210 Δ13 Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων.28 Θεοχαρίδης, ΗΜΥ, 2016