ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΟΜΑ Α Α Αριθµητική Λογική Μονάδα των 8-bit 1. Εισαγωγή Γενικά µια αριθµητική λογική µονάδα (ALU, Arithmetic Logic Unit) αποτελεί την καρδιά ενός οποιουδήποτε επεξεργαστικού συστήµατος. Συνήθως, απαρτίζεται από συνδιαστικά κυκλώµατα που εκτελούν ένα σύνολο από αριθµητικές και λογικές πράξεις µεταξύ των εισόδων της. Για να επιλεχθεί η πράξη που θα εκτελεί η αριθµητική λογική µονάδα, χρησιµοποιείται µια είσοδος ελέγχου των n-bit (το n καθορίζεται από το µέγιστο αριθµό πράξεων που θα υποστηρίζει η αριθµητική λογική µονάδα). Η συγκεκριµένη είσοδος θα αποκωδικοποιείται από την αριθµητική λογική µονάδα ώστε να επιλέγεται η εκτέλεση της κατάλληλης πράξης. Θεωρείστε ότι η ALU που θα υλοποιήσετε, χρησιµοποιεί συµπλήρωµα ως προς 2 αριθµητική. Η έξοδος της αριθµητικής λογικής µονάδας θα απεικονίζεται σε δύο 7-segment στοιχεία, καθένα από τα οποία έχει τη δυνατότητα αναπαράστασης ενός δεκαεξαδικού αριθµού. Με ποιο τρόπο επηρεάζεται η συµπεριφορά της αριθµητική λογικής µονάδας, εάν το αποτέλεσµα της πράξης αποθηκευθεί σε έναν καταχωρητή; 2. Λειτουργίες Η αριθµητική λογική µονάδα θα πρέπει να υποστηρίζει την εκτέλεση των ακόλουθων πράξεων: Y<=A Y<=A+1 Y<=A+B Y<=A-Β Y<=A-1 Y<=A and B Y<=A or B Y<=A xor B Y<=/A Πράξη Λειτουργία Αριθµητική Μονάδα Μεταφορά A Αύξηση του A Πρόσθεση Αφαίρεση Μείωση του A Λογική Μονάδα AND OR XOR NOT A
Y<=shl A/B Y<=shr A/B Μετατόπιση Μετατόπιση προς τα αριστερά A/B Μετατόπιση προς τα δεξιά A/B 3. Μοντελοποίηση Εφόσον η αριθµητική λογική µονάδα που πρόκειται να υλοποιηθεί, θα πραγµατοποιεί 11 διαφορετικές λειτουργίες, γίνεται κατανοητό ότι απαιτείται η χρήση µιας εισόδου ελέγχου των 4-bit. Η αρχιτεκτονική του συστήµατος που προτείνεται είναι: Πολυπλέκτης Εισόδου A[7..] B[7..] Μονάδα Μετατοπίσεων Αριθµητική Μονάδα Λογική Μονάδα S[3..] Πολυπλέκτης Εξόδου Κατά τη σχεδίαση της αριθµητική λογικής µονάδας, είναι προτιµότερο κάθε µονάδα να αντιµετωπιστεί και να σχεδιαστεί χωριστά. Ο πολυπλέκτης εισόδου θα αποκωδικοποιεί την είσοδο ελέγχου S, που καθορίζει ποια πράξη θα εκτελεστεί. Το αποτέλεσµα της µονάδας πολύπλεξης εισόδου θα είναι η ενεργοποίηση κάθε µίας από τις υπόλοιπες µονάδες της ALU, κάθε µία από τις οποίες θα εκτελεί τις πράξεις που έχουν οριστεί στον πίνακα της παραγράφου 2. Η λογική µονάδα θα δέχεται στην είσοδό της τους 8-bit τελεστές Α, Β και θα πραγµατοποιεί τη λογική εκείνη συνάρτηση που είναι ενεργοποιηµένη από τον πολυπλέκτη εισόδου. Παρόµοια θα είναι και η λειτουργία της αριθµητικής µονάδας και της µονάδας µετατοπίσεων. Τέλος, ο πολυπλέκτης εξόδου θα πραγµατοποιεί την αντίστροφη διαδικασία µε αυτή του πολυπλέκτη εισόδου. Θα δέχεται στην είσοδο του την εξόδο της λογικής και αριθµητικής µονάδας και της µονάδας µετατοπίσεων και ανάλογα µε την τιµή της εισόδου ελέγχου S, θα επιλέγει την έξοδο της µονάδας εκείνης που είναι ενεργοποιηµένη από τον πολυπλέκτη εισόδου.
ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ Σειριακός ΝxΜ Πολλαπλασιαστής ΟΜΑ Α Β 1. Εισαγωγή Ας συµβολίσουµε µε Α τη δυαδική ακολουθία των Ν-bit, µε B τη δυαδική ακολουθία των Μ-bit και µε Π το αποτέλεσµα του πολλαπλασιασµού Α*Β. Τότε το Π θα είναι µια δυαδική ακολουθία των (N+M bit). Ας συµβολίσουµε επίσης και σαν Χ τη συνάρτηση που αντιστοιχίζει τις δυαδικές ακολουθίες {,1} Ν στους φυσικούς αριθµούς. Ο πολλαπλασιασµός εποµένως των Α, Β µπορεί να γραφεί ως εξής: j X ( Π) = X ( Α) * X ( Β) = X ( Α) *( β ( j) * 2 ) Από τη σχέση αυτή προκύπτει ότι µπορούµε να υπολογίσουµε το Π = Α*Β, j διαµορφώνοντας αρχικά όλα τα ενδιάµεσα αθροίσµατα X ( Α )*( β ( j)*2 ) και στη συνέχεια να τα αθροίσουµε µεταξύ τους. Στον κλασσικό εποµένως αλγόριθµο σειριακού πολλαπλασιασµού θα χρειαστούν (Ν-1) στάδια τέτοιων διαδοχικών προσθέσεων. Σχεδιάστε, βασιζόµενοι στον συγκεκριµένο αλγόριθµο, ένα 8x6 πολλαπλασιαστή. Εξηγήστε την αρχιτεκτονική που χρησιµοποιείται και πως αυτή καθρεπτίζει τα βασικά σηµεία του αλγορίθµου και επιβεβαιώστε τη σωστή λειτουργία του. j 2. Μοντελοποίηση Για την υλοποίηση του 8x6 πολλαπλασιαστή ακολουθώντας ένα σειριακό αλγόριθµο προκύπτει σύµφωνα µε την παραπάνω εξίσωση ότι για τον υπολογισµό των ακολουθιών j Α,Β µπορούµε αρχικά να σχηµατίσουµε όλα τα ενδιάµεσα παράγωγα, X ( Α ) *( β ( j) * 2 ), τα οποία στη συνέχεια θα τα αθροίσουµε σε πέντε διαδοχικά στάδια, αφού το µήκος της ακολουθίας Β είναι 6-bit. Ο υπολογισµός των ενδιάµεσων παραγώγων, X ( Α ) * β ( j) δεν είναι τίποτα άλλο παρά το λογικό AND της δυαδικής ακολουθίας Α µε κάθε bit της δυαδικής ακολουθίας Β, όπως δείχνεται και στο παρακάτω σχήµα. Στο σχήµα αυτό δείχνεται η σειριακή δοµή του 8 x 6 πολλαπλασιαστή, όπου για την εξαγωγή του αποτελέσµατος, πραγµατοποιείται η άθροιση των µετατοπισµένων ενδιάµεσων
παραγώγων. Τα bit της δυαδικής ακολουθίας Π αναπαριστώνται µε γκρι χρώµα, ενώ τα πράσινα και κόκκινα βελάκια αντιστοιχούν στο κρατούµενο και το αποτέλεσµα των επιµέρους προσθέσεων του ενός bit. + + + + + + + + Κρατούµενο Άθροισµα Aποτέλεσµα + + + + + + + + Ενδιάµεσα Παράγωγα O 8 bit Αριθµός 1 bit του 6 bit αριθµού + + + + + + + + + + + + + + + + (a) + + + + + + + + Σχήµα 1: (a) Παραγωγή των Ενδιάµεσων Παραγώγων. (b) οµή του Πολλαπλασιαστή. (b) οκιµάστε την αλγοριθµικά ορθή λειτουργία του 8x6 πολλαπλασιαστή και στη συνέχεια σχεδιάστε όλες τις επιµέρους µονάδες συνδέοντάς τις σύµφωνα µε τον τρόπο που υποδεικνύεται στο παραπάνω σχήµα. Ελέγξτε τη λειτουργία του κυκλώµατος που σχεδιάσατε.
ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΟΜΑ Α Γ Έλεγχος φωτεινών ενδείξεων σε αυτοκίνητο 1. Λειτουργική Περιγραφή Θεωρείστε ένα απλό µοντέλο ενός δηµοφιλούς αυτοκίνητου της δεκαετίας του 6, το οποίο στο πίσω µέρος του έχει δύο σειρές από φώτα. Κάθε µία από τις σειρές αυτές χρησιµοποιείται για να δείξει την πρόθεση για επιλογή δεξιάς ή αριστερής κατεύθυνσης του αυτοκινήτου και αποτελείται από τρεις φωτεινούς σηµατοδότες. Όταν ενεργοποιείται κάποιο σήµα που δείχνει τη στροφή του αυτοκινήτου προς κάποια κατεύθυνση, τα φώτα της κατάλληλης σειράς αναβοσβήνουν διαδοχικά, δείχνοντας τη νέα κατεύθυνση που θα ακολουθήσει το αυτοκίνητο. Στο παρακάτω σχήµα δείχνεται το πίσω τµήµα του αυτοκινήτου και οι δύο σειρές από τα (L, L1, L2) και (R, R1, R2) φώτα. Επιπλέον στο σχήµα δείχνεται η ακολουθία µε την οποία αναβοσβήνουν τα φώτα για µια αριστερή στροφή. Αριστερή Στροφή L Clk Rst Right Left Ελεκτής Φώτων L 1 L 2 R R 1 R 2 (α) (β) (γ) Στο εργαστήριο αυτό θα σχεδιάσετε ένα κύκλωµα που θα ελέγχει τη λειτουργία αυτών των φωτεινών σηµατοδοτών. Ο συγκεκριµένος ελεγκτής θα πρέπει θα έχει τέσσερις εισόδους (Clk, Rst, Right, Left) και έξι εξόδους (L, L1, L2, R, R1, R2) κάθε µία από τις οποίες ελέγχει και ένα από τους φωτεινούς σηµατοδότες. Υποθέστε, για διευκόλυνσή σας, ότι η είσοδος ρολογιού, Clk, έχει ίδια περίοδο µε τη περίοδο που αναβοσβήνουν τα φώτα. Εάν κάποια από τις εισόδους Left\Right ενεργοποιηθεί, θα ενεργοποιούνται οι κατάλληλοι φωτεινοί σηµατοδότες ώστε να δειχθεί η νέα κατεύθυνση του αυτοκινήτου. Μια πλήρης διαδοχή αναβοσβησίµατος των σειρών φωτεινών ενδείξεων θα πρέπει να πραγµατοποιείται ανεξάρτητα από την τιµή της εισόδου Left\Right κατά την ολοκλήρωση ενός κύκλου. Τέλος
µπορείτε να θεωρήσετε ότι σε καµία περίπτωση οι είσοδοι Left και Right θα είναι ταυτόχρονα ενεργοποηµένες. 2. Μοντελοποίηση Η περιγραφή της λειτουργίας του συγκεκριµένου ελεγκτή, υπονοεί τη σχεδίαση µιας µηχανής κατάστασης. Εποµένως, θα πρέπει να σχεδιάσετε µια αφηρηµένη αναπαράσταση της µηχανής κατάσταση υπό τη µορφή ενός διαγράµµατος καταστάσεων. Η συγκεκριµένη άσκηση δηλαδή, απαιτεί την κατανόηση των διαδοχικών καταστάσεων λειτουργίας του ελεγκτή, την εύρεση των συνθηκών µετάβασης από τη µία κατάσταση στην άλλη και τον υπολογισµό των εξόδων κάθε κατάστασης. Από τη στιγµή που έχετε σχεδιάσει το διάγραµµα καταστάσεων αρκεί να προχωρήσετε µε την κωδικοποίηση των καταστάσεων και τον ορισµό των εισόδων και εξόδων των flipflop που αναπαριστούν τις κωδικοποιηµένες καταστάσεις.
ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΟΜΑ Α Έλεγχος φωτεινών σηµατοδοτών 1. Λειτουργική Περιγραφή Να σχεδιασθεί ψηφιακό κύκλωµα που ελέγχει την ενεργοποίηση των σηµατοδοτών ρύθµισης κυκλοφορίας σ ένα κόµβο όπως δείχνεται στο ακόλουθο σχήµα: Sensor II I Ο δρόµος I είναι δρόµος ταχείας κυκλοφορίας ενώ ο δρόµος II είναι δευτερεύοντας δρόµος. Στον δευτερεύοντα δρόµο είναι τοποθετηµένος ένας οπτικός αισθητήρας που όταν η δέσµη του διακόπτεται από κάποιο αυτοκίνητο, τίθεται σε υψηλή στάθµη. Ο κύριος δρόµος έχει ένα πράσινο φως για τουλάχιστον 25sec είτε για όσο δεν υπάρχει αυτοκίνητο στον δευτερεύοντα δρόµο. Ο δευτερεύοντας δρόµος έχει ένα πράσινο φως όσο υπάρχει αυτοκίνητο στον δρόµο αυτό ή για µέγιστο 25sec. Θεωρείστε ότι θα υπάρχει ένα κίτρινο φως ανάµεσα στις αλλαγές από το πράσινο στο κόκκινο τόσο στον κύριο δρόµο όσο και στον δευτερεύοντα, διάρκειας 4sec. Ο συγκεκριµένος ελεγκτής που θα σχεδιάσετε θα έχει τρεις εισόδους (Clk, Rst, Sensor, και έξι εξόδους (G I, Y I, R I, G II, R II, Y II ) κάθε µία από τις οποίες ελέγχει την ενεργοποίηση του πράσινου, κίτρινου ή κόκκινου φωτεινού σηµατοδότη που είναι τοποθετηµένοι στον πρωτεύοντα ή στο δευτερεύοντα δρόµο. Η είσοδος Clk αναπαριστά το ρολόι του συστήµατος, ενώ η είσοδος sensor προέρχεται από τον οπτικό αισθητήρα που είναι τοποθετηµένος στο δευτερεύοντα δρόµο.
2. Μοντελοποίηση Η περιγραφή της λειτουργίας του συγκεκριµένου ελεγκτή, υπονοεί τη σχεδίαση µιας µηχανής κατάστασης. Εποµένως, θα πρέπει να σχεδιάσετε µια αφηρηµένη αναπαράσταση της µηχανής κατάσταση υπό τη µορφή ενός διαγράµµατος καταστάσεων. Η συγκεκριµένη άσκηση δηλαδή, απαιτεί την κατανόηση των διαδοχικών καταστάσεων λειτουργίας του ελεγκτή, την εύρεση των συνθηκών µετάβασης από τη µία κατάσταση στην άλλη και τον υπολογισµό των εξόδων κάθε κατάστασης. Από τη στιγµή που έχετε σχεδιάσει το διάγραµµα καταστάσεων αρκεί να προχωρήσετε µε την κωδικοποίηση των καταστάσεων και τον ορισµό των εισόδων και εξόδων των flipflop που αναπαριστούν τις κωδικοποιηµένες καταστάσεις.