ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡOY ΗΜΥ 211-2010 Σχεδιασμός Πλήρους Αθροιστή/Αφαιρέτη ΕΡΓΑΣΤΗΡΙΟ ΥΛΙΚΟΥ 3 Μέρος Α (Ι-V, προηγούμενο εργαστήριο λογισμικού) Βεβαιωθείτε ότι οι υπεύθυνοι του εργαστηρίου έχουν πρώτα εγκρίνει τους σχεδιασμούς σας από την προηγούμενη εβδομάδα (διαγράμματα και προσομοιώσεις) πριν προχωρήσετε στην υλοποίηση. Όλα τα κομμάτια του Μέρους Α ΠΡΕΠΕΙ να συμπληρωθούν πριν την έναρξη αυτού του εργαστηρίου, για να μπορείτε να προχωρήσετε στο Μέρος Β.Ι. Μέρος Β.Ι. Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η πειραματική επαλήθευση της λειτουργίας του α- θροιστή/αφαιρέτη των 4 ων bit που προσομοιώθηκε στο μέρος Α.IV. Οι δύο 4-bit αριθμοί θα εισάγονται από τους διακόπτες SW0-SW7 που είναι άμεσα συνδεδεμένοι με το CYCLONE II, μέσω συγκεκριμένων pins (βλέπε εγχειρίδιο της Altera DE1). Η επιλογή μεταξύ πρόσθεσης και αφαίρεσης θα γίνεται μ ένα διακόπτη πίεσης (push-button switch), ο οποίος είναι αρνητικής λογικής. Στην είσοδο SUB θα μπει ένας αντιστροφέας, έτσι που το κύκλωμα να λειτουργεί σαν αφαιρέτης όταν το κουμπί είναι πατημένο, και σαν αθροιστής όταν δεν είναι πατημένο. Η έξοδος θα εμφανίζεται για έλεγχο σ ένα SSD (Seven-Segment Display), που είναι συνδεδεμένο στο ολοκληρωμένο. Για να μπορούμε να βλέπουμε το δεκαεξαδικό ισοδύναμο του αριθμού, πρέπει να γίνεται μετατροπή από δυαδικό κώδικα σε κώδικα SSD. Αυτό θα γίνεται με τη χρήση ενός αποκωδικοποιητή από δεκαεξαδικό-σε-ssd (Hex to Seven-Segment Display decoder) (όπου τα 4 bit δυαδικό θεωρούνται ως ένα δεκαεξαδικό ψηφίο). Πιθανό κρατούμενο εξόδου Cout (1-bit) θα παρουσιάζεται στο πρώτο κόκκινο LED στα δεξιά. 1. Ανοίξετε το project lab3.qpf που έχετε αποθηκεύσει από το προηγούμενο εργαστήριο (λογισμικού), επιλέγοντας File Open Project, ή κάνοντας διπλό κλικ στο αρχείο στον φάκελο σας. 2. Ανοίξετε (στο ίδιο project) το σχηματικό lab3_fas4.bdf στον Graphic Editor, επιλέγοντας File Open. 3. Τοποθετήστε μια πύλη not στην είσοδο SUB. 4. Επιλέξτε Assignments Settings και μετά την κάρτα Libraries. Προσθέστε τον κατάλογο DE1core library functions. Ο κατάλογος βρίσκεται στην ιστοσελίδα του μαθήματος και πρέπει να τον αντιγράψετε στο φάκελο που περιέχει τον σχεδιασμό σας (περισσότερες πληροφορίες από τους υπεύθυνους του εργαστηρίου). Ο αποκωδικοποιητής Ηex to Seven-Segment Display (μαζί με άλλες χρήσιμες υλοποιήσεις για την πλακέτα DE1) βρίσκεται σε αυτόν τον κατάλογο. Μετατρέποντας τον κατάλογο σε μια βιβλιοθήκη χρήστη (user library), μπορείτε να εισάγετε οποιεσδήποτε από αυτές τις έτοιμες υλοποιήσεις μέσω του παραθύρου διαλόγου Symbol, όπως κάνετε και για απλές πύλες στους υπό δημιουργία σχεδιασμούς σας. 5. Εισαγάγετε ένα σύμβολο dec_7seg στον σχεδιασμό σας από τον πιο πάνω κατάλογο. Κάντε Double click στο σύμβολο για να δείτε την περιγραφή του σε γλώσσα περιγραφής υλικού (VHDL). 1
ΗΜΥ 211 Εργαστήριο Υλικού 3 6. Διαγράψετε την έξοδο Z[3..0], και συνδέστε τους ασύνδετους κόμβους (σε μορφή δίαυλου) στην είσοδο του συμβόλου dec_7seg (η οποία, επίσης, είναι σε μορφή δίαυλου). Σημαντικό: Επειδή έχετε διαγράψει τη βασική θύρα εξόδου, θα πρέπει τώρα να ονομάσετε τον δίαυλο (διάνυσμα κόμβων) στην είσοδο του dec_7seg ως Z[3..0], ούτως ώστε οι κόμβοι Ζ[0], Ζ[1], Ζ[2] και Ζ[3] να συνεχίσουν να συνδέονται στις εξόδους των συμβόλων του lab3_fas (δηλαδή, στην έξοδο του κάθε πλήρη αθροιστή/αφαιρέτη 1-bit). 7. Εισαγάγετε 7 νέες θύρες εξόδου. Ονομάστε τις με τη σειρά, με τα γράμματα από a έως g. 8. Συνδέστε με καλώδιο τις εξόδους του dec_7seg με τις αντίστοιχες θύρες εξόδου. 9. Επιλέξετε Project Set as Top-Level Entity και μεταφράστε τον σχεδιασμό σας. 10. Επιλέξτε Assignments Pins για να αναθέσετε τα κατάλληλα pins στις εισόδους και εξόδους του κυκλώματος, σύμφωνα με τις ακόλουθες οδηγίες. (Για να βρείτε τα ονόματα των pins ανατρέξετε στο εγχειρίδιο της Altera DE1. Για περισσότερες πληροφορίες για το πώς να αναθέσετε τα κατάλληλα pins, και για άλλα θέματα, ανατρέξετε στα εργαστήρια 1 και 2.) 11. Αναθέστε τον πρώτο διακόπτη πίεσης από τ αριστερά, KEY3, στην είσοδο SUB. 12. Αναθέστε τους 4 διακόπτες SW7 έως SW4 στις εισόδους X[3] έως X[0], αντίστοιχα. 13. Αναθέστε τους 4 διακόπτες SW3 έως SW0 στις εισόδους Y[3] έως Y[0], αντίστοιχα. 14. Αναθέστε το πρώτο κόκκινο LED από τα δεξιά, LEDR0, στην έξοδο Cout. 15. Αναθέστε τα 7 pins (0-6) του πρώτου SSD από τα δεξιά, HEX0, στις εξόδους a έως g, αντίστοιχα. (Ανατρέξετε στις σελίδες 30 και 31 του εγχειριδίου της Altera DE1.) 16. Αποθηκεύστε και μεταφράστε τον σχεδιασμό σας, μετά την ανάθεση των pins. Κρατήστε μια εκτύπωση του (με το όνομα και τον αριθμό ταυτότητας σας, και τη μέρα εργαστηρίου). 17. Βεβαιωθείτε ότι η πλακέτα DE1 είναι συνδεδεμένη στο ρεύμα και πατήστε το κόκκινο κουμπί (Power ON/OFF Switch) για να εκκινήσει. Βεβαιωθείτε ότι το RUN/PROG switch (βλέπε σελίδα 4 του εγχειριδίου) είναι στη θέση RUN. 18. Προγραμματισμός πλακέτας DE1: (α) Ανοίξτε την εφαρμογή Tools Programmer. (β) Επιλέξτε Hardware Setup πάνω αριστερά στο παράθυρο του Programmer. (γ) Επιλέξτε USB-Blaster [USB-0] και μετά πατήστε Close. Βεβαιωθείτε, επίσης, ότι στο πεδίο Mode έχει επιλεγεί το JTAG. Αν όχι, επιλέξτε το. 19. Πατήστε Start στο παράθυρο του Programmer για να κατεβάσετε τον μεταφρασμένο σχεδιασμό σας στην πλακέτα. Η διαδικασία αυτή θα πάρει μόνο μερικά δευτερόλεπτα. 20. Ελέγξετε την ορθότητα της λειτουργίας του αθροιστή/αφαιρέτη για διάφορες τιμές εισόδου στην πλακέτα. (Επίδειξη σε έναν από τους υπεύθυνους του μαθήματος απαραίτητη πριν προχωρήσετε στο επόμενο μέρος.) 21. Σημειώστε και σχολιάστε οποιεσδήποτε δυσκολίες έχετε συναντήσει με τη χρήση της πλακέτα, και περιγράψετε τα βήματα που ακολουθήσατε για να τις αντιμετωπίσετε. (Κλείστε όλα τα παράθυρα σχεδιασμού, κτλ., αλλά μην βγείτε από το Quartus II.) 2
ΗΜΥ 211 Εργαστήριο Υλικού 3 Μέρος Β.ΙΙ. Σε αυτό το μέρος θα επαληθεύσετε τη λειτουργία του πολλαπλασιαστή 4-bit x 2-bit, που σχεδιάσατε και προσομοιώσατε στο μέρος A.V. Οι δύο αριθμοί, 4 ων και 2 bit, θα εισάγονται από τους διακόπτες SW0- SW5, που είναι άμεσα συνδεδεμένοι με το CYCLONE II μέσω συγκεκριμένων pins, ενώ το γινόμενο θα εμφανίζεται για έλεγχο σε δύο SSDs (Seven-Segment Displays). Όπως και προηγουμένως, για να μπορούμε να βλέπουμε το δεκαεξαδικό ισοδύναμο ενός αριθμού, πρέπει να γίνεται μετατροπή από δυαδικό κώδικα σε κώδικα SSD, με τη χρήση ενός αποκωδικοποιητή από δεκαεξαδικό-σε-ssd (Hex to Seven- Segment Display decoder). Τα τέσσερα λιγότερο σημαντικά ψηφία του γινομένου P[5..0] θα μετατρέπονται στο λιγότερο σημαντικό δεκαεξαδικό ψηφίο, που θα εμφανίζεται στο πρώτο από τα δεξιά SSD. Τα επόμενα δύο, πιο σημαντικά, δυαδικά ψηφία του γινομένου, μαζί με δύο γειωμένα ψηφία (καλώδια), θα μετατρέπονται στο επόμενο δεκαεξαδικό ψηφίο, που θα εμφανίζεται στο δεύτερο από τα δεξιά SSD. 1. Ανοίξετε (στο ίδιο με προηγουμένως project) το σχηματικό lab3_mul.bdf στον Graphic Editor, επιλέγοντας File Open. 2. Εισαγάγετε δύο σύμβολο dec_7seg στον σχεδιασμό σας από τον κατάλογο DE1core library functions, με τον ίδιο τρόπο όπως και στο προηγούμενο μέρος. 3. Διαγράψετε την έξοδο του σχεδιασμού, P[5..0]. Συνδέστε τους τέσσερεις λιγότερο σημαντικούς ασύνδετους κόμβους του γινομένου (σε μορφή δίαυλου, P[3..0]) στην είσοδο του πρώτου συμβόλου dec_7seg, όπως κάνατε στο βήμα 6 στην προηγούμενη σελίδα. Συνδέστε τα επόμενα δύο πιο σημαντικά ψηφία του γινομένου, P[5..4], μαζί με δύο γειωμένα καλώδια, στην είσοδο του δεύτερου συμβόλου dec_7seg. Τα γειωμένα καλώδια θα είναι τα δύο πιο σημαντικά ψηφία, και άρα ο δίαυλος (διάνυσμα κόμβων) στην είσοδο του δεύτερου dec_7seg θα έχει το όνομα GND, GND, P[5..4] όπου GND θα είναι το όνομα ενός μονού καλωδίου ενωμένο στη γείωση (δηλαδή, στο σύμβολο gnd). 4. Εισαγάγετε 14 νέες θύρες εξόδου. Ονομάστε τις πρώτες εφτά θύρες a0, b0,... έως g0, και τις επόμενες εφτά a1, b1,... έως g1. 5. Συνδέστε με καλώδιο τις εξόδους του πρώτου dec_7seg με τις θύρες εξόδου a0 έως g0. Συνδέστε τις εξόδους του δεύτερου dec_7seg με τις θύρες εξόδου a1 έως g1. 6. Επιλέξετε Project Set as Top-Level Entity και μεταφράστε τον σχεδιασμό σας. 7. Επιλέξτε Assignments Pins για να αναθέσετε τα κατάλληλα pins στις εισόδους και εξόδους του κυκλώματος, σύμφωνα με τις ακόλουθες οδηγίες. 8. Αναθέστε τους διακόπτες SW5 έως SW2 στις εισόδους A[3] έως A[0], αντίστοιχα. Αναθέστε τους διακόπτες SW1 και SW0 στις εισόδους Β[1] και Β[0], αντίστοιχα. 9. Αναθέστε τα 7 pins (0-6) του πρώτου SSD από τα δεξιά, HEX0, στις εξόδους a0 έως g0, αντίστοιχα. Αναθέστε τα 7 pins του δεύτερου SSD από τα δεξιά, HEX1, στις εξόδους a1 έως g1, αντίστοιχα. (Ανατρέξετε στις σελίδες 30 και 31 του εγχειριδίου της Altera DE1.) 10. Αποθηκεύστε και μεταφράστε τον σχεδιασμό σας, μετά την ανάθεση των pins. Κρατήστε μια εκτύπωση του (με το όνομα και τον αριθμό ταυτότητας σας, και τη μέρα εργαστηρίου). 11. Αφού εκκινήσετε την πλακέτα DE1, κατεβάστε σ αυτήν τον μεταφρασμένο σχεδιασμό σας χρησιμοποιώντας την εφαρμογή Tools Programmer. 12. Ελέγξετε την ορθότητα της λειτουργίας του πολλαπλασιαστή για διάφορες τιμές εισόδου στην πλακέτα. (Επίδειξη σε έναν από τους υπεύθυνους του μαθήματος απαραίτητη.) 3
ΗΜΥ 211 Εργαστήριο Υλικού 3 Μέρος Β.ΙΙΙ. Σκοπός αυτής της άσκησης είναι να επαληθεύσετε πειραματικά τη λειτουργία του πλήρη αθροιστή 1-bit που φτιάξατε και με τις δύο εκδοχές, τόσο με τους πολυπλέκτες, όσο και με τον αποκωδικοποιητή, και τις οποίες έχετε προσομοιώσει στο Μέρος Α. Χρησιμοποιείστε το σχηματικό στον Graphic Editor για καθοδήγηση στο πώς να ενώσετε τα διάφορα στοιχεία μεταξύ τους. Ετοιμάστε μια εικόνα του διαγράμματος των στοιχείων, με τις κατάλληλες συνδέσεις καλωδίων, χρησιμοποιώντας τα σύμβολα που βλέπετε στις σελίδες 4 και 5 του Εργαστηρίου Λογισμικού 3, και πιο κάτω στην παρούσα σελίδα. (Βλέπετε επίσης την επόμενη σελίδα.) 1. Εισαγάγετε τα ακόλουθα ολοκληρωμένα στην πλακέτα (breadboard): 74LS153 διπλός (dual) πολυπλέκτης 4-σε-1, 74LS138 αποκωδικοποιητής 3-σε-8, 74LS04 hex inverter, και το 74LS20 δύο NAND 4 ων εισόδων. 2. Σχεδιάστε στην επόμενη σελίδα την εικόνα της συνδεσμολογίας για τις δύο διαφορετικές υλοποιήσεις πλήρη αθροιστή 1-bit που έχετε κάνει στο μέρος Α. Χρησιμοποιήστε τους διακόπτες SW2, SW1, και SW0, για τις εισόδους X, Y και Cin, αντίστοιχα, και για τα δύο κυκλώματα. Χρησιμοποιήστε τα LEDs L3, L2, L1, και L0 για να δείξετε τις εξόδους με τη σειρά: Cout_Mux, Cout_Dcd, Sum_Mux και Sum_Dcd. 3. Συνδέστε τα κυκλώματα όπως το διάγραμμα συνδεσμολογίας του βήματος 2. 4. Καθορίστε πειραματικά και καταγράψετε στην τελευταία σελίδα τον πίνακα αληθείας για τις τέσσερεις εξόδους, ως συναρτήσεις των εισόδων των διακοπτών SW2, SW1, και SW0. (Επίδειξη σε έναν από τους υπεύθυνους του μαθήματος απαραίτητη.) 5. Ποια είναι τα σχετικά πλεονεκτήματα και μειονεκτήματα των δύο υλοποιήσεων του α- θροιστή; Πόσα ολοκληρωμένα 74LSΧΧ χρειάζονται για την κάθε υλοποίηση; Λίστα Στοιχείων και Οργάνων A/A Qty Part No Description 1 1 WK-1 Wire Kit 2 1 74LS04 Hex Inverter 3 1 74LS20 Dual 4-Input NAND Gate 4 1 74LS138 3-to-8 Decoder/Demultiplexer 5 1 74LS153 Dual 4-to-1 Multiplexer 6 1 ETS-7000 Digital Analog Training System unit 4
Όνομα: Αρ. Ταυτότητας: Ημέρα:
Όνομα: Αρ. Ταυτότητας: Ημέρα: