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



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

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

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

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 4: Ρουτίνες καθυστέρησης. [Συγγραφή ρουτίνας καθυστέρησης]

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

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

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

FPU EJ. Κατάλογος περιεχομένων

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

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

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

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

4/10/2008. Στατικές πύλες CMOS και πύλες με τρανζίστορ διέλευσης. Πραγματικά τρανζίστορ. Ψηφιακή λειτουργία. Κανόνες ψηφιακής λειτουργίας

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

Εργαστήριο Ψηφιακής Σχεδίασης

Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2.

ΕΙΣΑΓΩΓΗ ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΣΥΣΚΕΥΗΣ ΒΑΣΙΚΟΣ ΧΕΙΡΙΣΜΟΣ ΤΩΝ ΚΟΥΜΠΙΩΝ

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

ΠΑΡΑΡΤΗΜΑ IV. ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ IV Ασκήσεις για το Robolab

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

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

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

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

TP-LINK WA860 ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ

TP-LINK WA850 ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ

Εισαγωγή στην επανάληψη

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

Σχεδίαση κυκλωμάτων ακολουθιακής λογικής

Σχετική κίνηση αντικειμένων

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

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

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

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

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες

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

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

Model: ED-CS5000. Ηλεκτρονικός πίνακας ελέγχου για συρόμενες και ανοιγόμενες μονόφυλλες πόρτες.

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 5: Εξωτερικές διακοπές του 8051

Ενημέρωση σε Windows 8.1 από τα Windows 8

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

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

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

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

ΠΑΝΑΓΙΩΤΗΣ ΚΟΥΤΣΙΩΡΑΣ Α.Μ.: ΨΗΦΙΑΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά Πρακτικής Εργασίας: Μετατροπέας Κώδικα BCD Σε Κώδικα GRAY

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2007

ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS NXT

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

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

DC-192 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

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

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

Ολοκληρωμένα κυκλώματα 1 ο σετ ασκήσεων

ΣΕΛΙ Α 1 ΚΕΦΑΛΑΙΟ 1 - ΑΡΧΙΚΑ

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β

Η συχνότητα f των παλµών 0 και 1 στην έξοδο Q n είναι. f Qn = 1/(T cl x 2 n+1 )

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

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

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

Copyright 2017 HP Development Company, L.P.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

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

Ηλεκτροκινητήρας Εναλλασσόμενου Ρεύματος τύπου κλωβού. Άσκηση 9. Ηλεκτροκινητήρας εναλλασσόμενου ρεύματος τύπου κλωβού

WiFi V-Timer ΕΚΔΟΣΗ 2Η

Εγχειρίδιο λειτουργίας

ΑΣΚΗΣΗ 7. ΘΕΜΑ 1ο MINORITY A B C. C out

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Stagnoli ACNSEM3L - Ηλεκτρονικός πίνακας ελέγχου για φωτεινούς σηματοδότες

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΕΙΡΙΑΚΗ ΠΡΟΣΘΕΣΗ

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Φύλλα εργασίας. MicroWorlds Pro. Πολυμεσικές Εφαρμογές με την χρήση της γλώσσας LOGO Στο Γυμνάσιο. Β. Χ. Χρυσοχοΐδης

ήχου υψηλής ποιότητας)

Ακολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

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

ΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος. Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων

ΚΕΦΑΛΑΙΟ 5 ΠΡΟΣΟΜΟΙΩΤΗΣ PLC SIMATIC S7-300

ΘΕΜΑ Α Α1. Τι κάνουν οι παρακάτω εικονιζόμενες εντολές; Επιλέξτε το σωστό (μον.6)

Φύλλο Εργασίας 4 Συνθετική εργασία

Microcomputer Automatic Alarm device CCTV SECURITY AUTOMATIC ALARM SYSTEΜ

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

Ακολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος

Εκπαιδευτική Ρομποτική με ARDUINO. για εκπαιδευτικούς και μαθητές. 1o Μέρος: Απλά Κυκλώματα

BeoSound 9000 Οδηγ ς

Εγχειρίδιο χρήσης του Άβακα

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

Οδηγίες συναρμολόγησης

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

Πίνακας περιεχομένων. Γενικές υποδείξεις. Περιγραφή. Πληροφορίες. Λειτουργία

Transcript:

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών ΗΥ220: Εργαστήριο ψηφιακών κυκλωμάτων Γιώργος Δημητρακόπουλος Μονάδες επεξεργασίας δεδομένων και ο έλεγχος τους Δόμηση σύνθετων κυκλωμάτων 1. Γενική περιγραφή Στο εργαστήριο αυτό θα πειραματιστείτε με τη σχεδίαση ενός πιο σύνθετου κυκλώματος το οποίο θα περιλαμβάνει μετρητές, ακολουθιακούς ολισθητές, και μονάδα ελέγχου. Για να μπορέσετε να κατανοήσετε τον τρόπο σχεδιασμού ενός τέτοιου κυκλώματος θα παρουσιάσουμε τη δομή του αναλυτικά και τον τρόπο που διαλέγουμε να το χωρίσουμε σε επιμέρους μικρότερα κυκλώματα τα οποία θα μπορείτε εύκολα να σχεδιάσετε. Η λειτουργία του κυκλώματος σας είναι αρκετά απλή. Καλείστε να σχεδιάσετε ένα κύκλωμα το οποίο θα ελέγχει τον τρόπο με τον οποίο αναβοσβήνει ένα LED της πλακέτας. Σας ζητείτε να χρησιμοποίειτε το LED με 6 διαφορετικούς τρόπους, οι οποίοι είναι οι εξής: 1. Το LED σβηστό (αρχική κατάσταση) 2. Το LED αναμένο 3. Το LED σβηστό 4. Το LED αναβοσβήνει με τον πρώτο προγραμματιζόμενο τρόπο 5. Το LED σβηστό 6. Το LED αναβοσβήνει με τον δεύτερο προγραμματιζόμενο τρόπο Θα πρέπει να μπορείτε να μεταβαίνεται από τον ένα τρόπο στον επόμενο με το πάτημα ενός κουμπιού που θα ονομάζεται ΝEXT. Όταν μετά από 5 διαδοχικά πατήματα του κουμπιού βρεθείτε στον τρόπο 6 όπου το LED αναβοσβήνει τότε με ένα επιπλέον πάτημα του κουμπιού θα πρέπει να μεταβείτε στον τρόπο 1. Με άλλα λόγια η εναλλαγή των τρόπων λειτουργίας του LED είναι κυκλική. Όταν το LED αναβοσβήνει κατά τη φάση 4 και 6 μπορούμε να αλλάξουμε το ρυθμό με τον οποίο αυτό συμβαίνει. Κάτι τέτοιο πραγματοποιείτε μέσω δύο επιπλέον κουμπιών του UP και του DOWN. Πατώντας το UP αυξάνουμε το ρυθμό της λειτουργίας βλέποντας το LED να αναβοσβήνει γρηγορότερα. To αντίθετο συμβαίνει με το πάτημα του κουμπιού DOWN. Αυτό που πρέπει να προσέξετε είναι ότι οι καταστάσεις 4 και 6 ελέγχονται από διαφορετικούς προγραμματιζόμενους ρυθμούς. Για παράδειγμα όταν είστε στην κατάσταση 4 μπορείτε με τα κουμπιά UP και DOWN να αλλάξετε το ρυθμό που αναβοσβήνει το LED ώστε να πετύχετε να ανάβει 4 φορές το δευτερόλεπτο. Πατώντας το κουμπί NEXT δύο φορές και πηγαίνοντας στην κατάσταση 6 μπορείτε να δημιουργήσετε έναν άλλο ρυθμό. Μη ξεχνάτε ότι φεύγοντας από την κατάσταση 4 ο τελευταίος ρυθμός που είχατε επιλέξει παραμένει και δε διαγράφεται. Έτσι όταν μετά από διαδοχικά πατήματα του κουμπιού NEXT επιστρέψετε στην κατάσταση 4 θα πρέπει να δείτε το LED να ανάβει με ρυθμό 4 φορές το δευτερόλεπτο. Παράλληλα ο ρυθμός που έχετε επιλέξει να αναβοσβήνει το LED στις καταστάσεις 4 και 6 πρέπει να φαίνενται στην οθόνη seven-segment της πλακέτας, ώστε ο χρήστης να γνωρίζει πόσο γρήγορα περιμένει το δεί το LED να αναβοσβήνει. Οι δυνατοί περίοδοι που μπορεί να ανάβει το LED είναι1/8 ο, 1/4 ο, 1/2 ο του δευτερολέπτου καθώς και 1, 2, 4 και 8 δευτερόλεπτα. Στην αρχή και στις δύο καταστάσεις 4 και 6 το LED αναβοσβήνει με το ταχύτερο δυνατό ρυθμό που είναι 8 φορές το δευτερόλεπτο. Κάθε φορά που πατάμε το κουμπί UP διπλασιάζουμε τη συχνότητα με την οποία ανάβει το LED (μειώνουμε δηλαδή την περίοδο). Όπως είπαμε και πρίν, το πάτημα των κουμπιών UP και DOWN λειτουργεί ανεξάρτητα στην κατάσταση 4 από ότι στην κατάσταση 6. Τέλος, όταν βρισκόμαστε 1

στις καταστάσεις 1, 2, 3, και 5 το πάτημα των κουμπιών UP και DOWN δεν πρέπει να έχει καμμία επίδραση. 2. Δομή του κυκλώματος Στην άσκηση αυτή σας δίνονται έτοιμα κάποια κομμάτια του κώδικα σε Verilog ώστε να σας βοηθήσουν να δομήσετε καλύτερα το κύκλωμα σας. Η γενική δομή του κυκλώματος φαίνεται στο σχήμα 1. Αποτελείται από τρείς υπομονάδες. Η πρώτη με το όνομα ButtonPress αναλαμβάνει να συγχρονίσει την ενεργοποίηση κάποιου κουμπιού κατά το πάτημα του με το υπόλοιπο κύκλωμα. Η δεύτερη, που είναι και το κεντρικό κύκλωμα, ονομάζεται FlashController και επιτελεί όλες τις απαραίτητες εργασίες ώστε να επιτύχουμε τις εναλλαγές στη συμπεριφορά του LED που περιγράφηκαν στην ενότητα 1. Ενώ, το τρίτο κομμάτι που καλείται Display αναλαμβάνει να αναπαριστά στις οθόνες seven-segment το τρέχοντα ρυθμό των καταστάσεων 4 και 6. UP Button Press PulseUP LED DOWN Button Press PulseDown FlashController DispA DispB NEXT Button Press PulseNext SpeedA SpeedB Display DispC DispD DisplaySelect Σχήμα 1: Η γενική δομή του κυκλώματος σας. Παράλληλα στο σχήμα 1 φαίνονται και όλα τα ενδιάμεσα σήματα αλλά και τα σήματα εισόδου/εξόδου του κυκλώματος σας. Φροντίστε να ακολουθήσετε την ίδια ονοματολογία γιατί έτσι διευκολύνετε την εύρεση κάποιου λάθους από τους βοηθούς του εργαστηρίου. 2.1 Η μονάδα ButtonPress H μονάδα αυτή σας δίνεται έτοιμη. Η λειτουργία της είναι να συγχρονίσει τα σήματα που βγαίνουν από κουμπιά της πλακέτας τα οποία είναι απλοί μηχανικοί διακόπτες με το υπόλοιπο κύκλωμα σας. Εσείς πρέπει να τη δημιουργήσετε τρείς φορές. Δηλαδή όσα και τα κουμπιά εισόδου του κυκλώματος. 2.2 Η μονάδα FlashController H μονάδα αυτή είναι υπεύθυνη για την υλοποίηση της λειτουργίας του κυκλώματος που περιγράφηκε στην ενότητα 1. Για να απλοποιήσουμε τη σχεδίαση της θα τη χωρίσουμε σε επιμέρους κυκλώματα τα οποία καλείστε να υλοποιήσετε. Οι επιμέρους υπομονάδες φαίνονται στο σχήμα 2 μαζί με τα ενδιάμεσα σήματα που χρειάζονται για την επικοινωνία τους. Στη συνέχεια, θα αναλύσουμε τη λειτουργία του καθενός ξεχωριστά. Tα σήματα και δεν φαίνονται συνδεδεμένα, αν και είναι, για λόγους απλότητας του σχήματος. 2

PulseNEXT PulseUP PulseDOWN Beat PulseEnable Master FSM Blinker Blinker SeqShifter SeqShifter ShiftLeft ShiftRight ShiftLeft ShiftRight w NewRate w NewRate NewValue NewValue CountΕn Timer done CountΕn Timer done Switch Switch NewFlash NewFlash Flash Flash 1 0 Blinker A Blinker B putselect MUX 4-to-1 LED Speed A Speed B Σχήμα 2: Η δομή του FlashController. Κεντρική μονάδα ελέγχου-masterfsm Η μονάδα αυτή ελέγχεται από τα σήματα των κουμπιών κουμπί NEXT, UP και DOWN και είναι υπεύθυνη για τη εναλλαγή του τρόπου λειτουργίας του κυκλώματος. Η πρώτη έξοδος της μονάδας ελέγχου που ονομάζεται putselect είναι αυτή που καθορίζει την έξοδο του κυκλώματος. Όπως μπορούμε να διαπιστώσουμε από την περιγραφή της ενότητας 1 στους 6 τρόπους χρήσης του LED στους οποιούς μεταβαίνουμε με διαδοχικά πατήματα του κουμπιού NEXT το LED μπορεί να βρίσκεται σε 4 διαφορετικές καταστάσεις λειτουργίας. Είτε να είναι συνεχώς αναμένο, είτε να είναι συνεχώς σβηστό είτε να αναβοσβήνει με δύο διαφορετικούς τρόπους. Για να ανάψουμε το LED πρέπει να το συνδέσουμε σε μια τάση ίση με την τροφοδοσία του κυκλώματος, ενώ αντίθετα για το σβήσουμε πρέπει να το συνδέσουμε τη χαμηλότερη δυνατή τάση. Για το άναμα του LED αυτό είναι ισοδύναμο με το να συνδέσουμε την μία του άκρη που έχουμε στη διάθεση μας με το λογικό-1 ενώ για το σβήσιμο να το συνδέσουμε με το λογικό-0. Φυσικά για να επιτύχουμε το αναβόσβησμα του LED πρέπει να βρούμε ένα τρόπο ώστε να το οδηγούμε πότε στο λογικο-1 και πότε στο λογικό-0 παράγοντας έτσι την απαιτούμενη εναλλαγή μεταξύ αναμένου και σβηστού που επιτρέπει να πούμε πως το LED αναβοσβήνει. Έτσι το σήμα putselect επιλέγει το λογικό-1 όταν θέλουμε το LED να είναι συνεχώς 3

αναμένο και το λογικό-0 όταν θέλουμε να είναι σβηστό. Αντίστοιχα, όταν βρισκόμαστε στις καταστάσεις 4 και 6 όπου το LED αναβοσβήνει, επιλέγονται οι έξοδοι των δύο προγραμματιζόμενων υπομονάδων Blinker. Παράλληλα η κεντρική μονάδα ελέγχου είναι υπεύθυνη όταν το κύκλωμα βρίσκεται στην κατάσταση λειτουργίας 4 ή 6 να ενημερώνει τις δύο μονάδες Blinker για την αύξηση ή τη μείωση του ρυθμού που το LED αναβοσβήνει. Η αύξηση ή μείωση πραγματοποιείται μέσω των 2 ζευγαριών σημάτων ShiftLeft και ShiftRight τα οποία συνδέονται στους ακολουθιακούς ολισθητές SeqShifter που περιέχει ο κάθε Blinker. Υπενθυμίζουμε πως η αλλαγή συχνότητας των Blinker μέσω των κουμπιών UP και DOWN επιτρέπεται μόνο όταν βρισκόμαστε στην ανάλογη κατάσταση. Στην κατάσταση 4 αλλάζει ρυθμό ο αριστερός Blinker ενώ στην 6 ο δεξιός. Σε οποιαδήποτε άλλη περίπτωση το πάτημα των κουμπιών αυτών δεν πρέπει να επιφέρει κάποια αλλαγή. Προγραμματιζόμενη μονάδα Blinker H προγραμματιζόμενη μονάδα Blinker αποτελείτε από τρεις υπομονάδες. Έναν ακολουθιακό ολισθητή SeqShifter, ένα μετρητή χρόνου Timer και τη μονάδα Flash που προκαλεί το άναμα και το σβήσιμο του LED. H δουλεία της μονάδας Blinker είναι να παράγει το κατάλληλο σήμα για το αναβόσβησμα του LED και να καθορίζει αν αυτό θα γίνεται πιο γρήγορα ή πιο αργά ανάλογα με το πάτημα των κουμπιών UP και DOWN. Μετρητής χρόνου-τimer O μετρητής χρόνου είναι ένας απλός μετρητής ο οποίος δέχεται σαν αρχική τιμή την τιμή του ακολουθιακού ολισθητή και μετράει από αυτήν την τιμή μέχρι το 0. Όταν η έξοδος του είναι ίση με 0 τότε ενεργοποιεί για ένα κύκλο το σήμα Switch το οποίο συνδέεται με τη μονάδα Flash και προκαλεί ένα νέο αναβόσβησμα του LED. Την ίδια χρονική στιγμή που ο μετρητής έχει μηδενιστεί, φορτώνει τη νέα τιμή του ακολουθιακού ολισθητή και ξεκινάει και πάλι την αντίστροφη μέτρηση προς το 0. Η παράλληλη φόρτωση των ακολουθιακών στοιχείων μνήμης του μετρητή πραγματοποιείται ταυτόχρονα με την ενεργοποίηση του σήματος done. Ο μετρητής αυτός ελέγχεται επίσης από ένα σήμα CountEnable το οποίο όταν ενεργοποιείται επιτρέπει στο μετρητή να μειώνει την τιμή του. Σε αντίθετη περίπτωση ο μετρητής «παγώνει» και δεν αλλάζει την έξοδο του. O μετρητής Timer δέχεται ένα σήμα ρολογιού με συχνότητα 17ΜΗz όπως και όλο το υπόλοιπο κύκλωμα. Επομένως με αυτή τη συχνότητα μπορεί να μετρήσει μέσα σε ένα δευτερόλεπτο 17.000.000 κύκλους. Έτσι ο μετρητής για να μπορέσει να αναπαραστήσει όλες αυτές τις τιμές θα χρειαζόταν τουλάχιστον 25 δυαδικά ψηφία. Αντίστοιχα, εφόσον το 1 δευτερόλεπτο αντιστοιχεί σε 17.000.000 κύκλους τότε το 1/32 ο του δευτερολέπτου θα αντιστοιχεί σε 17.000.000/32 κύκλους = 531250 κύκλοι. Η τιμή αυτή για να αναπαρασταθεί απαιτεί τουλάχιστον 20 δυαδικά ψηφία. Μετά από αυτήν την ανάλυση αποφασίζουμε να μετρήσουμε τις κατάλληλες χρονικές στιγμές που θέλουμε ως εξής. Δημιουργούμε ένα μετρητή των 19 δυαδικών ψηφίων τον οποίο ονομάζουμε Beat και ο οποίος όπως φαίνεται στο σχήμα διαμοιράζεται μεταξύ των δύο μονάδων Timer. O Beat παράγει ένα σήμα εξόδου PulseEnable το οποίο ενεργοποιείται όταν η τιμή του είναι ίση με 0. H ενεργοποίηση του δηλαδή κρατάει για ένα κύκλο των 17ΜΗz. Αυτό θα συμβαίνει κάθε 2 19 = 542288 κύκλους (πολύ κοντά στην ζητούμενη τιμή των 531250 κύκλων που αναλύσαμε πιο πάνω). Έτσι κάθε φορά που ενεργοποιείται το PulseEnable θεωρούμε προσσεγγιστικά πως έχει περάσει 1/32 o του δευτερολέπτου. Ο μετρητής αυτός μετράει συνεχώς από την έναρξη λειτουργίας του κυκλώματος και δεν επηρεάζεται από τη μονάδα ελέγχου. Το PulseEnable σήμα συνδέεται με την είσοδο CountEnable των δύο Timers. Επομένως οι μετρητές από τους οποίους φτιάχνεται οι Timers θα έχουν την ευκαιρία να μειώνουν την τιμή τους μία φορά κάθε 1/32 ο του δευτερολέπτου. Επομένως αν για παράδειγμα οι μετρητές αυτοί φορτωθούν αρχικά με την 4

τιμή 32 τότε η τιμή αυτή θα καταφέρει να φτάσει στο 0 μετά από 1 δευτερόλεπτο (32 μειώσεις που απαιτούνται για να μειωθεί η τιμή στο 0 με την καθεμία να συμβαίνει κάθε 1/32 ο του δευτερολέπτου) 1. Από πόσα δυαδικά ψηφία αποτελείται ο μετρητής του Timer, τα οποία είναι ίσα με αυτά του ακολουθιακού ολισθητή, καλείστε να το αποφασίσετε εσείς (w δυαδικά ψηφία φαίνονται στο σχήμα). Αυτό που πρέπει το κύκλωμα σας να υποστηρίζει είναι ότι θα επιτρέπει στο λαμπάκι να αναβοσβήνει με περίοδο από 1/8 ο του δευτερολέπτου έως και 8 δευτερόλεπτα, όπως αναφέρουμε στην ενότητα 1. Ακολουθιακός ολισθητής - SeqShifter Ο ακολουθιακός ολισθητής κατευθύνει το μετρητή χρόνου δείχνοντας του ποια χρονικά διαστήματα πρέπει να μετράει επηρεάζοντας έτσι άμεσα τη συχνότητα με την οποία αναβοσβήνει το LED. Ουσιαστικά αποθηκεύει τη νέα τιμή που θα φορτώσει ο μετρητής χρόνου σε κάθε περίοδο ανάμματος και σβησίματος του LED. Η τιμές που αποθηκεύει ο ακολουθιακός ολισθητής είναι κωδικοποιημένες σε one-hot αναπαράσταση. Για παράδειγμα αν είχατε αποφασίσει πως ο μετρητής του Timer και ο ολισθητής πρέπει να αποτελούνται από 4 δυαδικά τότε οι τιμές που μπορούν να αποθηκευτούν στον ολισθητή είναι 0001, 0010, 0100, και 1000. Έτσι όταν ζητείται από την κεντρική μονάδα ελέγχου να ολισθήσει αριστερά ή δεξιά κατα μία θέση ουσιαστικά μετατοπίζεται ο μονάδικός άσσος της λέξης που περιέχει. Για το παράδειγμα μας στην περίπτωση που η τιμή του ολισθητή είναι η 0001 τότε καμμιά επιπλέον ολίσθηση προς τα δεξιά δεν μπορεί να συμβεί. Δεν μπορεί δηλαδή το LED να αναβοσβήνει με κάποιο ταχύτερο ρυθμό. Αντίθετα όταν η τιμή του είναι 1000 καμμιά επιπλέον ολίσθηση προς τα αριστερά δεν μπορεί να συμβεί. Δεν μπορεί δηλαδή το LED να αναβοσβήνει πιο αργά. Γι αυτές τις δύο ακραίες τιμές του ολισθητή τον περιορισμό πρέπει να τον ελέγχει ο ίδιος ο ακολουθιακός ολισθητής και δεν χρειάζεται να τον λαμβάνει υπόψιν η κεντρική μονάδα ελέγχου. Η μονάδα ελέγχου μπορεί να συνεχίσει να ενεργοποιείι τα σήματα ShiftLeft ή ShiftRight, αντίστοιχα, χωρίς όμως αυτό να έχει κάποιο αποτέλεσμα στην τιμή του ολισθητή. Υπενθυμίζουμε πως η ολισθήση της τιμής του ολισθητή κατά μία θέση προς τ αριστερά ισοδυναμεί με ένα πολλάπλασιασμό x2 της τιμής του διπλάσιάζοντας έτσι την περίοδο ανάμματος και σβησίματος του LED. Το αντίθετο συμβαίνει μια μία ολίσθηση προς τα δεξιά όπου η περίοδος υπο-διπλασιάζεται (γίνεται δύο φορές μικρότερη). Υπομονάδα Flash H υπομονάδα Flash εκτελεί μια πολύ απλή λειτουργία. Όταν διαπιστώσει μια ενεργοποίηση του σήματος Switch τότε φροντίζει να αναβοσβήσει το LED. To ανάβει με άλλα λόγια για έναν κύκλο και το σβήνει αμέσως μετά. Σε γενικές γραμμές το κύκλωμα αυτό περιγράφετε από μια απλή FSM που καλείστε να σχεδιάσετε. 2.3 Η μονάδα Display H υλοποίηση της μονάδας DISPLAY σας δίνεται επίσης έτοιμη και σκοπό έχει να αναπαριστά σε δύο οθόνες seven segment την ταχύτητα με την οποία αναβοσβήνει το LED όταν βρίσκεται στις καταστάσεις 4 και 6. Για το λόγο αυτό δέχεται σαν είσοδο τις τιμές των δύο ακολουθιακών ολισθητών (SpeedA και SpeedB) και φροντίζει τα τις εμφανίζει με τον κατάλληλο τρόπο στις oθόνες sevensegment. Η περίοδος 1/8o του δευτερολέπτου εμφανίζεται με το μεγαλύτερο αριθμό. 3. Παρατηρήσεις Η σχεδίαση ενός μεγαλύτερου κυκλώματος από αυτά που έχετε συνηθήσει πρέπει να γίνει βηματικά και εφόσον έχετε καταλάβει επακριβώς τι είναι αυτο που θέλετε να σχεδιάσετε. Σχεδιάστε τις FSM στο χαρτί πριν αρχίσετε να τις υλοποιείτε. Φροντίστε επίσης να επιβαιώσετε τη λειτουργία του κυκλώματος σας βηματικά και όχι όλο μαζί ταυτόχρονα. 1 Υπενθυμίζουμε πως το σήμα CountEnable λειτουργεί σαν σήμα ενεργοποίησης για τον μετρητή. Δεν είναι το ρολόι του αν οφείλουμε να παραδεχτούμε πως συμπεριφέρεται σαν τέτοιο. Το ρολόι που δέχονται οι μετρητές των Timers είναι το ίδιο για όλο κύκλωμα και έχουν συχνότητα ίση με 17ΜΗz. 5

Το συγκεκριμένο κύκλωμα παρουσιάζει κάποιες συγκεκριμένες ιδιομορφίες όσον αφορά στην εξομοίωση του. Για παράδειγμα καλό είναι κατά τη φάση της εξόμοιωσης του κυκλώματος σας να μη συμπεριλάβετε τα κυκλώματα Beat και ButtonPress αλλά να οδηγείτε τις εξόδους αυτών των κυκλωμάτων κατευθείαν από το πρόγραμμα δοκιμής που θα φτιάξετε. Ο λόγος είναι απλός. Το κύκλωμα Beat ενεργοποιεί την έξοδο του μία φορά κάθε 2 19 κύκλους. Επομένως για να δείτε στην εξομοίωση αυτό το φαινόμενο θα πρέπει να περιμένετε πάρα πολύ. Στην πραγματική υλοποίηση αυτό δεν είναι πρόβλημα γιατί κάτι τέτοιο θα συμβαίνει κάθε 1/32 ο του δευτερολέπτου. Όμως δυστυχώς στην εξομοίωση τα πράγματα κυλούν πολύ πιο αργά. Κάτι αντίστοιχο συμβαίνει και στην περίπτωση των ButtonPress. 6