Παραδείγματα σχεδίασης με μηχανές πεπερασμένων καταστάσεων



Σχετικά έγγραφα
ΗΥ220: Εργαστήριο ψηφιακών κυκλωμάτων

Δομές Δεδομένων και Αλγόριθμοι

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Μηχανές Πεπερασμένων Καταστάσεων (Finite State Machines - FSM)

Ολοκληρωμένα Κυκλώματα

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

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

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

Δεύτερη Σειρά Ασκήσεων

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες)

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η. Αρχές Δικτύων Επικοινωνιών

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α)

Εφαρμογές Σειριακής Επικοινωνίας

Ελίνα Μακρή

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ

Ολοκληρωμένα Κυκλώματα - Φθινόπωρο 2014 Γ. Δημητρακόπουλος. Εργαστηριακή άσκηση 2

Κινητές επικοινωνίες. Κεφάλαιο 6 Τεχνικές πoλυπλεξίας - CDMA

Ασύγχρονοι Απαριθμητές. Διάλεξη 7

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 7 ο Εργαστήριο -

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

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

ΗΥ220: Εργαστήριο ψηφιακών κυκλωμάτων

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο

Μάθημα 7: Μικροϋπολογιστικό Σύστημα και Μνήμες

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

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

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

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f.

Θεωρία Πληροφορίας. Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Ανάκτηση θερμοκρασιακού πεδίου σε περιστρεφόμενο (εν κινήσει)

Θεωρία Πληροφορίας. Διάλεξη 10: Κωδικοποίηση καναλιού με συνελικτικούς κώδικες. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Analog vs Digital. Δούρβας Ιωάννης ΙΩΑΝΝΗΣ ΔΟΥΡΒΑΣ

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

Οργάνωση της φυσικής δομής του ολοκληρωμένου κυκλώματος

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

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

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

Άσκηση 3 Ένα νέο είδος flip flop έχει τον ακόλουθο πίνακα αληθείας : I 1 I 0 Q (t+1) Q (t) 1 0 ~Q (t) Κατασκευάστε τον πίνακα

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ

Μεθοδολογικός σχεδιασμός πνευματικού αυτοματισμού με έμβολα

Κωδικοποίηση Πηγής. Η λειτουργία ενός συστήματος επικοινωνίας (γενικό διάγραμμα):

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2017

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

ΘΕΜΑ : ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ DIGITAL ELECTRONICS

EE728 (22Α004) - Προχωρημένα Θέματα Θεωρίας Πληροφορίας 3η σειρά ασκήσεων Διακριτά και Συνεχή Κανάλια. Παράδοση: Έως 22/6/2015

ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 2 Δυαδική Κωδικοποίηση

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

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

Μοντελοποίηση υπολογισμού. Θέματα Υπολογισμού στον Πολιτισμό Πεπερασμένα αυτόματα

Εισαγωγή στους Η/Υ. Ενότητα 8: Μετάδοση Δεδομένων. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

ΑΣΚΗΣΗ 9 ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ (COUNTERS)

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


Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

Μετρητής Ριπής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 9 ης. εργαστηριακής άσκησης: ΑΦΡΟΔΙΤΗ ΤΟΥΦΑ Α.Μ.:

Πανεπιστήµιο Θεσσαλίας

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Ενότητα 5: ΜΕΤΑΒΛΗΤΕΣ

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Αριθμητική Ανάλυση & Εφαρμογές

Τηλεπικοινωνιακά Συστήματα ΙΙ

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

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A

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

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

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

Αριθμητικά Συστήματα Η ανάγκη του ανθρώπου για μετρήσεις οδήγησε αρχικά στην επινόηση των αριθμών Κατόπιν, στην επινόηση συμβόλων για τη παράσταση

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

Τεχνολογία Πολυμέσων. Ενότητα # 7: Θεωρία πληροφορίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ ΠΑΤΡΑ

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων

ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ.3 ΑΣΥΓΧΡΟΝΟΣ ΔYΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.5 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.7 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ ΜΕ LATCH.

Μοντέλο Επικοινωνίας Δεδομένων. Επικοινωνίες Δεδομένων Μάθημα 6 ο

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Παλμοκωδική Διαμόρφωση. Pulse Code Modulation (PCM)

Συστήματα Επικοινωνιών ΙI

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Θεωρία πληροφοριών. Τεχνολογία Πολυµέσων 07-1

Οδηγίες για το CABRI - GEOMETRY II Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας

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

Εισαγωγή στην επιστήμη των υπολογιστών

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Καταχωρητές και Μετρητές 2. Επιμέλεια Διαφανειών: Δ.

Συμπίεση Δεδομένων

ΠΛΗ21 Κεφάλαιο 1. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 1 Εισαγωγή

Αποκωδικοποιητές Μνημών

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

Transcript:

Παραδείγματα σχεδίασης με μηχανές πεπερασμένων καταστάσεων Γιώργος Δημητρακόπουλος 1 Αποκωδικοποιητής κώδικα Huffman συμπίεση δεδομένων Ξέρουμε ότι με n bits μπορούμε να κωδικοποιήσουμε 2 n διαφορετικά σύμβολα. Σε αυτή την περίπτωση οι κώδικες είναι σταθερού μήκους (ή πλάτους), διότι κωδικοποιούν όλα τα σύμβολα με το ίδιο πλήθος bits, το καθένα. Οι κώδικες σταθερού πλάτους βολεύουν όταν τα σύμβολα αποθηκεύονται σε μνήμες και όταν μεταφέρουμε τα bits τους όλα μαζί, εν παραλλήλω (π.χ. μέσα στο datapath επεξεργαστών). Όταν τα bits της κωδικοποίησης μεταδίδονται σειριακά, το ένα μετά το άλλο, μέσα από ένα κανάλι επικοινωνίας, χρησιμοποιούνται και κώδικες μεταβλητού μήκους (variable length), όταν αυτοί μπορούν να επιτύχουν μετάδοση της πληροφορίας με λιγότερα συνολικά bits. Αυτοί πήραν το όνομά τους από τον Huffman ο οποίος τους μελέτησε. Για παράδειγμα, θεωρήστε ότι θέλουμε να στέλνουμε μηνύματα αποτελούμενα από μακρές ακολουθίες τεσσάρων (4) συμβόλων, των A, B, C, και D δηλαδή το αλφάβητό μας έχει αυτά τα 4 γράμματα (σύμβολα). Ξέρουμε ότι αυτά μπορούμε να τα παραστήσουμε μ ένα κώδικα σταθερού μήκους 2 bits ανά σύμβολο: 00, 01, 10, και 11. Έστω τώρα ότι στα μηνύματά μας η συχνότητα με την οποία εμφανίζονται τα διάφορα σύμβολα δεν είναι η ίδια: υπάρχουν σύμβολα πολύ συχνά και άλλα πολύ σπάνια. Σ αυτή την περίπτωση, ένας κώδικας μεταβλητού μήκους μπορεί να μεταδώσει τα μηνύματά μας με λιγότερα bits συνολικά και κατά μέσον όρο. Ας πούμε, στο παραπάνω παράδειγμα, ότι στα μηνύματά μας το 50% των εμφανιζομένων συμβόλων είναι A, το 25% είναι B, το 12.5% είναι C, και το 12.5% είναι D, και ας θεωρήσουμε τον κώδικα μεταβλητού μήκους: A: 0, B: 10, C: 110, D: 111. Τότε, για κάθε π.χ. 1000 σύμβολα που μεταδίδονται, χρειάζονται περίπου 500 bits για τη μετάδοση των περίπου 500 A που υπάρχουν κατά μέσον όρο εκεί (1 bit ανά A), συν άλλα 500 bits για τα 250 B (2 bits ανά B), συν 375 bits για τα 125 C (3 bits ανά C), συν 375 bits για τα D. Το σύνολο είναι 1750 bits γιά κάθε 1000 μεταδιδόμενα σύμβολα, ή 1.75 bits/σύμβολο κατά μέσον όρο, πράγμα σημαντικά χαμηλότερο από τα 2 bits/σύμβολο του κώδικα σταθερού πλάτους. Το κλειδί γιά την επίτευξη αυτής της οικονομίας είναι το να αφιερώνουμε τους (λίγους) κώδικες μικρού μήκους στα σύμβολα εκείνα που εμφανίζονται περισσότερο συχνά, σε βάρος των σπανιότερων συμβόλων που παρίστανται με περισσότερα bits. Ο γνωστός μας από παλιά κώδικας Μορς είναι φτιαγμένος με παρόμοιο τρόπο, εκμεταλλευόμενος το γεγονός ότι στις ανθρώπινες γλώσσες ορισμένα γράμματα είναι πολύ συχνότερα από άλλα. Ο παραπάνω κώδικας έχει φτιαχτεί προσεκτικά ούτως ώστε να είναι εφικτή η κατ ευθείαν αναγνώριση του κάθε σύμβολου αμέσως μόλις φτάσει το τελευταίο bit της κωδικοποιημένης μορφής του, χωρίς διφορούμενα και χωρίς την ανάγκη να περιμένουμε πρώτα να δούμε τα επόμενα bits του μηνύματος. Η ιδιότητα αυτή υπάρχει επειδή ο κώδικας κάθε βραχύτερου σύμβολου δεν αποτελεί πρόθεμα του κώδικα κανενός από τα μακρύτερα σύμβολα. Την ιδιότητα αυτή δεν θα την είχε π.χ. ο κώδικας A=0, B=1, C=10, D=11: με αυτόν τον κώδικα, το μήνυμα 110 όταν λαμβάνεται σειριακά μπορεί να σημαίνει είτε BC είτε DA. 1

Σκοπός του παραδείγματος είναι σχεδιάσουμε ένα κύκλωμα αποκωδικοποίησης του παραπάνω κώδικα Huffman για την περιπτωση των τεσσάρων συμβόλων A: 0, B: 10, C: 110 A B και D: 111. Υποθέτουμε ότι τα bits των κωδικοποιημένων συμβόλων έρχονται σειριακά, ένα-ένα, από μια εί- D N1 σοδο in, και ότι υπάρχει ένα ρολόϊ clk που σημαδεύει, με την ενεργή ακμή του, το τέλος του κάθε bit εισόδου N2 in. To κύκλωμα έχει 4 εξόδους, A, B, C, D όπου κάθε μιά τους ανάβει όποτε παραλαμβάνουμε ένα αντίστοιχο σύμβολο, γιά διάρκεια ακρι- C βώς ενός κύκλου ρολογιού, και συγκεκριμένα κατά τον κύκλο ρολογιού Σχήμα 1: FSM αποκωδικοποίησης κώδικα Huffman. παραλαβής του τελευταίου bit του αντίστοιχου συμβόλου. Η λειτουργία του κυκλώματος αρχικοποιείται με την ενεργοποίηση ενός επιπλέον σήματος εισόδου reset. Στην περίπτωση της FSM τύπου Μoore μπορούμε να αποφανθούμε για την αποκωδικοποίηση του κάθε συμβόλου μόνο ανάλογα με την κατάσταση στην οποία βρισκόμαστε. H FSM αποτελείται από 4 βασικές καταστάσεις, Α, Β, C, D όσα δηλαδή και τα σύμβολα και από δύο βοηθητικές Ν1 και Ν2. Οι βασικές καταστάσεις ανταποκρίνονται στην εύρεση ενός συμβόλου από το αλβάβητο της μετάδοσης ενώ οι βοηθητικές καταστάσεις υποδηλώνουν κάποιες ενδιάμεσες μεταβάσεις. Για παράδειγμα η κατάσταση D ανταποκρίνεται στην περίπτωση που η είσοδος μας είναι ίση με 111 για τρεις διαδοχικούς /out=a κύκλους ρολογιού. Η φυσική σημα- σία των Ν1 και Ν2 είναι πως βρέθηκε ο πρώτος άσσος των πιθανών συμβόλων και πως βρέθηκαν 2 άσσοι των πιθανών συμβόλων S0 /out=b αντίστοιχα. Έτσι μετά την εύρεση του B στην περίπτωση που η είσοδος είναι S1 /out=c /out=d 0 ξαναγυρνάμε στην αρχική κατάσταση Α (σύμβολο 0) ενώ αν είναι 1 πηγαίνουμε στη Ν1 που σημαίνει πως ξεκινά ένα σύμβολο με πρώτο ψηφίο το 1 δηλαδή το Β, ή S2 το C ή το D. Σχήμα 2: FSM τύπου Mealy για την αποκωδικοποιήση Στην περίπτωση της μηχανής τύπου του κώδικα Huffman. Mealy η κύρια διαφορά είναι ότι δεν περιμένουμε να παράγουμε την έξοδο ανάλογα με την κατάσταση στην οποία βρισκόμααστε αλλά μπορούμε να το πράξουμε κατά τη μετάβαση από τη μια κατάσταση στην άλλη. Επομένως, εφόσον το μήκος του μεγαλύτερου συμβόλου είναι 3 δυαδικά ψηφία μπορούμε να αποκωδικοποίησουμε όλα τα σύμβολα χρησιμοποιώντας το πολύ 3 καταστάσεις. Αυτό φαίνεται στο διπλανό σχήμα. Η κατάσταση εκκίνησης είναι η S0, οπότε και περιμένουμε να μας έλθει ένα νέο σύμβολο, με όλα του τα bits από την αρχή. Στην ίδια κατάσταση επιστρέφουμε κάθε φορά που τελειώνουν όλα τα bits του προηγούμενου σύμβολου, και επομένως περιμένουμε ένα νέο σύμβολο από την αρχή. Εάν είμαστε στην κατάσταση S0 και μας έλθει είσοδος 0, σημαίνει ότι βλέπουμε ένα σύμβολο A (το μοναδικό άρα και το τελευταίο του bit), επομένως πρέπει να ανάψει η έξοδος A και η επόμενη κατάσταση να είναι πάλι η S0, αφού στον επόμενο κύκλο περιμένουμε το πρώτο bit του επομένου 2

συμβόλου. Εάν τώρα είμαστε στην S0 και έλθει είσοδος 1, τότε ξέρουμε ότι βλέπουμε το πρώτο bit ενός συμβόλου B ή C ή D, αλλά δεν ξέρουμε ακόμα τίνος από τα τρία έτσι, μεταβαίνουμε στην κατάσταση S1 που σημαίνει ότι έχουμε δεί μέχρι στιγμής ένα 1. Τον επόμενο κύκλο, όντας στην S1, αν δούμε είσοδο 0 σημαίνει ότι βλέπουμε το τέλος ενός συμβόλου B, άρα ανάβουμε την έξοδο B και μεταβαίνουμε στην S0. Αν αντιθέτως δούμε είσοδο 1 σημαίνει ότι βλέπουμε το δεύτερο bit ενός συμβόλου C ή D, αλλά δεν ξέρουμε ακόμα τίνος από τα δύο έτσι, μεταβαίνουμε στην κατάσταση S2. Τον επόμενο κύκλο, όντας στην S2, είσοδος 0 σημαίνει ότι βλέπουμε το τέλος ενός συμβόλου C, ενώ είσοδος 1 υποδεικνύει το τέλος ενός συμβόλου D. Εφόσον μπορούμε να αποφανθούμε για το σύμβολο που έχουμε λάβει κατά τη διάρκεια των μεταβάσεων μπορούμε να αποκωδικοποιήσουμε τα σύμβολα με λειγότερες καταστάσεις. Αυτή η μηχανή τύπου Mealy υλοποιείται ενώποιόντας το κομμάτι της αλλαγής καταστάσεων μαζί με αυτό του υπολογισμού της εξόδου. 2 Σύστημα ελέγχου ασανσέρ τριών ορόφων Η λειτουργία ενός συστήματος ασανσέρ είναι γνωστή σε όλους σας. Στην άσκηση αυτή θα μελετήσουμε τη σχεδίαση και την υλοποίηση ενός τέτοιου συστηματος για 3 ορόφους. Σε κάθε όροφο, έξω από κάθε πόρτα του ασανσέρ υπάρχει ένα κουμπί κλήσης για την επάνω κατεύθυνση (U) και ένα κουμπί κλήσης για την κάτω κατεύθυνση (D). Φυσικά στον 1ο όροφο υπάρχει ένα μόνο τέτοιο κουμπί κλήσης προς τα πάνω και στον 3ο όροφο υπάρχει μόνο ένα κουμπί κλήσης προς τα κάτω. Μέσα στο θάλαμο του ασανσέρ υπάρχουν αριθμητικες ενδείξεις για τον όροφο στον οποίο ο χρήστης θέλει να πάει. Κάθε φορά που το ασανσέρ φτάνει σε έναν όροφο ανοίγουν οι πόρτες του. Αν πρόκειται να κινηθεί προς ένα άλλο όροφο οι πόρτες κλείνουν. Το άνοιγμα ή το κλείσιμο κάθε πόρτας πρέπει να το ελέγχει το κύκλωμα μας. Συνολικά το κύκλωμα μας αποτελείται από τις παρακάτω εισόδους και εξόδους. Eίσοδοι clk και reset Σήμα ρολογιού και αρχικοποίησης F1, F2, F3 Τα κουμπιά για κάθε όροφο μέσα στο θάλαμο του ασανσέρ UP[1], UP[2], DN[2], DN[3] Τα κουμπιά κλήσης σε κάθε όροφο AF1, AF2, AF3 Αισθητήρες οι οποίοι ενεργοποιούνται όταν ο θάλαμος του ασανσέρ φτάνει στο συγκεκριμένο όροφο. OpenDoor#{1,2,3} Έξοδοι Τα σήματα αυτα ανοίγουν την πόρτα σε κάθε όροφο όταν παίρουν την τιμή 1. Στην αντίθετη περίπτωση η πόρτα παραμένει κλειστή. Μπορείτε να κάνετε οποιαδήποτε παραδοχή για τη λειτουργία του συστήματος σας, αρκεί να οδηγεί σε μια λογικη συμπεριφορά. Για παράδειγμα αν πατηθεί το κουμπί F2 όσο το ασανσέρ βρίσκεται στον 2ο όροφο με ανοιχτή την πόρτα του, τότε είναι λογικό το σύστημα να μην αντιδράσει παραμένοντας στην ίδια κατάσταση. Επίσης, αν το ασανσέρ κινειται από το 2ο στον 3ο όροφο και πατηθεί μέσα στον θάλαμο το κουμπί F1 τότε αυτό δε θα έπρεπε να είχε καμμιά επίδραση στη λειτουργια του ανελκυστήρα. H λειτουργία του κυκλώματος θα βασιστεί στην FSM που θα σχεδιάσουμε. Με μια πρώτη σκέψη αποφασίζουμε πως η FSM μας θα αποτελείται από 3 τουλάχιστον καταστασεις. Η κάθε κατάσταση συμβολίζει ότι το ασανσέρ βρίσκεται στον 1ο, στον 2ο ή στον 3ο όροφο, αντίστοιχα. Με την άφιξη σε μια από αυτές τις καταστάσεις η πόρτα του αντίστοιχου ορόφου πρέπει να ανοίξει. 3

Στη συνέχεια θα πρέπει να ορίσουμε κάποιες επιπλέον καταστάσεις που θα μας βοηθούν να καταλάβουμε προς πια κατεύθυνση κινούμαστε. Για να το πετύχουμε αυτό έχουμε πολλές εναλλακτικές. Μια επιλογή που απλοποιεί τη σχεδίαση είναι να χρησιμοποιήσουμε 3 επιπλέον καταστάσεις. Η φυσική σημασία της κάθε νέας κατάστασης είναι να συμβολίζει προς πιο όροφο κινούμαστε. Έτσι για παράδειγμα η κατάσταση Moving to FL#1 σημαίνει πως κινούμαστε προς τον όροφο 1 είτε γιατί κάποιος που βρίσκεται μέσα από το ασανσέρ ζήτησε να πάει στον όροφο 1 είτε γιατί κάποιος που βρίσκεται έξω από το ασανσέρ το κάλεσε να έρθει στον όροφο 1. Η FSM που προκύπτει από αυτές τις 6 καταστάσεις φαίνεται στο παρακάτω σχήμα. AF[1] F[1] AF[2] F[2] At FL#2 F[3] DN[3] F[1] UP[3] F[3] F[1] UP[1] Moving to FL#1 At FL#1 F[2] UP[2] DN[2] Moving to FL#2 F[3] DN[3] F[2] UP[2] DN[2] Moving to FL#3 AF[3] At FL#3 Σχήμα 3: FSM ελέγχου του ανελκυστήρα 3 ορόφων. Παρατηρούμε πως το κύκλωμα ελέγχου αποτελείται συνολικά από 6 καταστάσεις. Οι 3 από αυτές At FL#{1,2,3} συμβολίζουν ότι βρισκόμαστε στον αντίστοιχο όροφο. Για να φτάσουμε στις καταστάσεις αυτές περνάμε αναγκαστικά πρώτα από τις αντίστοιχες καταστάσεις Moving to FL#{1,2,3}. Το γεγονός ότι σταματήσαμε να κινούμαστε και ότι έχουμε φτάσει σε έναν από τους ορόφους μας το επιβεβαιώνει ο αντίστοιχος αισθητήρας AF1, AF2 ή AF3. Παρατηρείστε πως η τιμή αυτών των αισθητήρων ελέγχει τις ακμές των μεταβάσεων από τις καταστάσεις Moving to FL#X σε At FL#Χ. Αντίθετα, για να φύγουμε από κάποιο όροφο και να μεταβουμε σε μια κατάσταση Moving to FL#X πρέπει πρώτα να πατηθεί κάποιο από τα πλήκτρα εισόδου του κυκλώματος μας. Για παράδειγμα, η μετάβαση από την κατάσταση At FL#1 Moving to FL#2 πραγματοποιείται είτε όταν πατηθεί το κουμπί F3 μέσα από τον ανελκυστήρα είτε όταν πατηθεί το κουμπί DN[3] έξω από το ασανσέρ του 3ου ορόφου. Η συνθήκη αυτη αναπαρίσταται με τη λογική σχέση F3 DN3] πάνω στην αντίστοιχη ακμή. Με την ίδια λογική συμπληρώνουμε και τις συνθήκες που προκαλούν τις υπόλοιπες μεταβάσεις. Τέλος αν είμαστε σε κάποιο όροφο και πατηθεί το κουμπί του ίδιου ορόφου δεν αλλάζουμε κατάσταση και το ασανσέρ παραμένει στη θέση του με ανοιχτή την πόρτα. Σημειώνουμε πως στο βασικό κύκλωμα ελέγχου μπορούμε να προσθέσουμε πολλές επιπλέον λειτουργίες κάνοντας το σύστημα μας πιο ρεαλιστικό. Οι όποιες επιπλέον λειτουργίες μπορούν απλά να προστεθούν στη βασική FSM που έχουμε μέχρι τώρα σχεδιάσει. 3 Kώδικας Manchester σειριακή μετάδοση πληροφοριας Ο κώδικας Manchester χρησιμοποιείται για να αναπαραστήσει με ένα διαφορετικό τρόπο τα προς μετάδοση σε ένα καλώδιο δυαδικά δεδομένα, επιτρέποντας στον δέκτη να αντιληφθεί εύκολα ποιό είναι το δυαδικό ψηφίο που μεταδόθηκε αλλά και ποια χρονικη στιγμή συνέβει αυτό. Το δεύτερο χαραστηριστικό ονομάζεται συνήθως διαδικασία εξαγωγής ρολογιου από τα δεδομένα (clock recovery), δηλαδή ο δέκτης μπορεί να αντιληφθεί έμμεσα τις ακμές ρολογιού του αποστολέα ορίζοντας έτσι με σαφήνεια τη χρονική απόσταση μεταξύ δύο διαδοχικών δεδομένων. Για παράδειγμα, όταν ο δέκτης λάβει την ακολουθία από δυαδικά δεδομένα που παρουσιάζεται στο σχήμα 4, έχει πολλούς τρόπους να την αποκωδικοποιήσει αν δε γνωρίζει την αρχή και το τέλος κάθε δυαδικού ψηφί ου. Αν θεωρήσει ότι τα δεδομένα στάλθηκαν σύμφωνα με το ρολόι CLK1 4

Σχήμα 4: Παράδειγμα μιας σειριακής ακολουθίας δυαδικών ψηφίων. τότε τα δεδομένα αναπαριστούν τα δυαδοχικά δυαδικά ψηφία 0010110. Αντίθετα αν τα δεδομένα στάλθηκαν με το ρολόι CLK2 τότε η πληροφορία που στάλθηκε είναι η 00001100111100. Αυτές οι παρεξήγήσεις μπορούν να αποφευχθούν με τη χρήση του κώδικα Manchester. Στην περίπτωση αυτη, το δυαδικό ψηφίο 0 αναπαρίσταται από μια μετάβαση από 0 σε 1 όπου στο μισό χρόνο της μετάδοσης του ψηφίου η τιμή στο σύρμα είναι 0 και στο άλλο μισό 1. Με την ίδια λογικη το δυαδικό ψηφιο 1 αναπαρίσταται από μια μετάβαση από το 1 στο 0, δηλαδή η τιμή στο σύρμα είναι το μισό χρόνο στο 1 και τον υπόλοιπο μισό στο 0. Ένα παράδειγμα κωδικοποίησης των δυαδικων ψηφίων 011001 με τον κώδικα Manchester φαίνεται στο σχήμα 5. Σχήμα 5: Manchester κώδικας. Για να σχεδιάσουμε το κύκλωμα κωδικοποίησης του κώδικα Manchester πρέπει να λάβουμε υπόψιν μας το ρυθμό με τον οποίο θέλουμε να μεταδόσουμε και τη συχνότητα ρολογιού του κυκλώματος του κωδικοποιητή. Για παράδειγμα αν η ζητούμενη συχνότητα μετάδοσης είναι ίση με 1 ΜΗz τότε κάθε ψηφίο που θα στέλναμε θα διαρκούσε 1 μsec. Έτσι για να στείλουμε ένα 0 θα έπρεπε να οδηγούσαμε τη γραμμή στο λογικό 0 για 1/2 μsec και στο λογικό 1 για το υπόλοιπο 1/2 μsec. Επομένως αν το ρολόι του κυκλώματος μας ήταν 10 ΜΗz (περίοδος 0.1 μsec) η σωστή μετάδοση ενός 0 διάρκειας 1 μsec σύμφωνα με τον κώδικα Manchester θα απαιτούσε να στείλουμε λογικό 0 για 5 κύκλους του δικού μας γρηγορότερου ρολογιου (0.5 μsec) και το λογικο 1 και για τους επόμενους 5 κύκλους ρολογιού. Για να απλοποιήσουμε τη σχεδίαση θα θεωρήσουμε πως το ρολόι που έχουμε στη διάθεση μας είναι πάντα διπλάσιο της συχνότητας μετάδοσης. Επομένως για κάθε δυαδικό ψηφίου που θέλουμε να στείλουμε θα πρέπει να εμφανίσουμε στη γραμμή 2 δυαδικά ψηφία (αντί για τα 10 του προηγούμενου παραδείγματος). Έτσι, για το 0 στέλνουμε το 01 σε 2 κύκλους ρολογιού, ενώ για το 1 στέλνουμε το 10. Το κύκλωμα μας δέχεται μια είσοδο δεδομένων προς μετάδοση d του ενός δυαδικού ψηφίου και μια είσοδο v που όταν είναι ίση με 1 σημαίνει πως τα δεδομένα στη γραμμή του d είναι έγκυρα. Τα δυαδικά ψηφία που θα εμφανιστούν σε διαδοχικούς κύκλους ρολογιού στη γραμμή d θα πρέπει να μετραφραστούν σε μεταβάσεις (2 συνεχόμενα δυαδικά ψηφία) σύμφωνα με τον κώδικα Manchester. Αν σε κάποιο κύκλο ρολογιου δεν υπάρχουν νέα προς μετάδοση δεδομένα, v=0, τότε η έξοδος του κυκλώματος πρέπει να μένει μόνιμα στο 0. Αυτή η απουσία μετάβασης στη γραμμή θα ενημερώσει έμμεσα το δέκτη για την απουσία νέων δεδομένων. Η FSΜ που υλοποιεί την κωδικοποίηση σύμφωνα με τον κώδικα Manchester φαίνεται στο σχήμα 6. Αποτελείται από 5 καταστάσεις. Στην αρχική κατάσταση IDLE μεταβαίνουμε με την αρχικοποίηση του κυκλώματος και όσο δεν υπάρχουν νέα δεδομένα προς μετάδοση v=0. Όταν το v ανάψει τότε η FSM ξεκινά την κωδικοποίηση. Αν το d=0 τότε ακολουθεί τις καταστάσεις s0a και s0b σε δύο διαδοχικούς κύκλους ρολογιού δίνοντας στην έξοδο πρώτα το λογικό 0 και έπειτα το λογικό 1. Αντίθετα αν το d=1 τότε η έξοδος υπολογίζεται μέσω των καταστάσεων s1a και s1b. 5

Σε κάθε περίπτωση, όταν η FSM φτάσει στις τελικές καταστάσεις s0b ή s1b του κάθε δυαδικού ψηφίου, ελέγχει την τιμή του σήματος v. Αν το v δείξει ότι ένα νέο δυαδικό ψηφίο είναι έτοιμο προς μετάδοση τότε δεν επιστρέφει στην αρχική κατάσταση και μεταβαίνει στις καταστάσεις s0a ή s1a αντίστοιχα ξεκινώντας την κωδικοποίηση ενός νέου ψηφίου σύμφωνα με τον κώδικα Manchester. Σχήμα 6: Η FSM του αποκωδικοποιητή του manchester κώδικα. 6