Ε.Μ.Π. - ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ VLSI 4 η Εργαστηριακή άσκηση Σχεδίαση σύνθετων αριθμητικών κυκλωμάτων VLSI και (παράλληλου πολλαπλασιαστή με διάδοση και αποθήκευση κρατουμένου καθώς και πολλαπλασιαστή με την τεχνική παράκαμψης) ΑΘΗΝΑ 25//24 4 η άσκηση 25//24
Εισαγωγή Τα αριθμητικά κυκλώματα αναλαμβάνουν τον υπολογισμό μεγάλου όγκου πράξεων στα κυκλώματα ψηφιακής επεξεργασίας σήματος (DSP). Η αποδοτική υλοποίησή τους αποτελεί πρόκληση για το σχεδιαστή και στοχεύει στην αύξηση της ταχύτητας και την ελαχιστοποίηση της καταναλισκόμενης ισχύος. Στο πρόγραμμα MICROWIND και τα δύο αυτά μεγέθη υπολογίζονται κατά τη διάρκεια της προσομοίωσης. Ακόμα, το πρόγραμμα MICROWIND βοηθάει το σχεδιαστή να φτιάξει συμπαγή (compact) και αρθρωτά (modular) layout αριθμητικών μονάδων, για τη δημιουργία βιβλιοθηκών επαναχρησιμοποιήσιμων (reusable) δομικών μονάδων, που μπορούν να αυξήσουν σημαντικά την παραγωγικότητά του. Στην παρούσα εργαστηριακή άσκηση θα ασχοληθούμε με μερικά χαρακτηριστικά παραδείγματα αριθμητικών κυκλωμάτων και με τις αντίστοιχες τεχνικές σχεδιασμού. 2 Σχεδίαση πλήρη αθροιστή Η πρόσθεση αποτελεί τη βάση για πολλές λειτουργίες επεξεργασίας, από τη μέτρηση και τον πολλαπλασιασμό, έως το φιλτράρισμα. Τα κυκλώματα αθροιστών που προσθέτουν δύο δυαδικούς αριθμούς είναι αντικείμενο μεγάλης σημασίας για τους σχεδιαστές ψηφιακών κυκλωμάτων. Ο πίνακας αλήθειας για ένα δυαδικό πλήρη αθροιστή παρουσιάζεται παρακάτω. A B C SUM CARRY A και B είναι οι δύο δυαδικοί αριθμοί που θα προστεθούν, C το κρατούμενο εισόδου (από προηγούμενη βαθμίδα), SUM το άθροισμα και CARRY το κρατούμενο εξόδου (για την επόμενη βαθμίδα). Με βάση αυτόν τον πίνακα αλήθειας προκύπτουν οι λογικές συναρτήσεις που ορίζουν τις εξόδους SUM και CARRY. SUM ABC ABC ABC ABC SUM A B C CARRY AB C( A B) (3) (4) (5) Εναλλακτικά, ο όρος CARRY μπορεί να ξαναχρησιμοποιηθεί στον όρο SUM ως κοινή υποέκφραση,, μετά από αλγεβρικές πράξεις. Στην περίπτωση αυτή έχουμε: SUM ABC ( A B C) CARRY (6) 4 η άσκηση 25//24 2
Οι εξισώσεις (5) και (6) προσφέρονται για αποδοτικές κυκλωματικές υλοποιήσεις. Ξεκινώντας από την εξίσωση (5) και θεωρώντας το συμπλήρωμα και στα δύο μέλη, το κύκλωμα τρανζίστορ για οδήγηση «κάτω» δίνεται στο σχήμα 4.. Αντίστοιχα, στο σχήμα 4.2 δίνεται το κύκλωμα οδήγησης «πάνω» με δύο διαφορετικούς τρόπους, τον κλασικό (σχήμα 4.2.α) και έναν ισοδύναμο (σχήμα 4.2.β) που απλοποιεί τις διασυνδέσεις. Η δεύτερη συνδεσμολογία προκύπτει από την πρώτη «ανεβάζοντας» τον δεξιά σε σειρά συνδυασμό στην τάση Vdd αφού για να άγει θα πρέπει και το A και το B να είναι, οπότε θα άγει και ο παράλληλος συνδυασμός που βρίσκεται μεταξύ αυτού και του Vdd στην αρχική συνδεσμολογία. Σχήμα 4.: Κύκλωμα οδήγησης «κάτω» εξίσωσης (5) (α) Σχήμα 4.2: Κύκλωμα οδήγησης «πάνω» εξίσωσης (5) (β) Από τα σχήματα 4. και 4.2.β προκύπτουν οι γράφοι Euler του σχήματος 4.3, για το κύκλωμα υπολογισμού του κρατούμενου εξόδου CARRY. Από το σχήμα αυτό προκύπτει το μονοπάτι Euler ABCAB, το οποίο επιλέγουμε για να υλοποιήσουμε τη συνάρτηση σε layout. Ας σημειωθεί ότι για να προκύψει το μονοπάτι αυτό και οι γράφοι του σχήματος έχει γίνει αλλαγή των ακμών στον παράλληλο συνδυασμό AB του κυκλώματος οδήγησης προς τα «κάτω» ενώ η ακμή A στον σε σειρά συνδυασμό του κυκλώματος οδήγησης προς τα «πάνω», παρότι τέμνει πρώτα την ακμή B του σε σειρά συνδυασμού του κυκλώματος προς τα «κάτω», αυτή αγνοείται γιατί έχει ήδη θεωρηθεί ότι τέμνεται από τη B του παράλληλου συνδυασμού. Εναλλακτικά, θα μπορούσαμε να φτιάξουμε τον γράφο του σχήματος 4.2.α. Τέτοιες παραδοχές γίνονται συχνά στη B C A B Σχήμα 4.3: Γράφοι Euler για το κύκλωμα υπολογισμού κρατούμενου εξόδου A 4 η άσκηση 25//24 3
σχεδίαση και δεν επηρεάζουν τη λειτουργία του κυκλώματος, αρκεί να λαμβάνονται υπόψη όταν κατασκευάζονται οι μεταλλικές συνδέσεις στο layout. Από τα παραπάνω, επιλέγοντας τεχνολογία σχεδίασης cmos8, ελάχιστα τρανζίστορ τύπου-n (2λ/6λ) και διπλάσια τύπου-p (2λ/2λ), προκύπτει το layout του σχήματος 4.4. Το σχήμα αυτό κατασκευάζεται με βάση το μονοπάτι Euler ABCAB και την προσθήκη ενός τελικού αναστροφέα, ώστε να προκύπτει η κανονική και όχι η συμπληρωματική μορφή. Σχήμα 4.4: Layout κυκλώματος υπολογισμού κρατούμενου εξόδου CARRY Με τον ίδιο τρόπο, ξεκινώντας από την εξίσωση (6) (αντικαθιστώντας για συντομία όπου CARRY το D), μπορούμε να φτιάξουμε το κύκλωμα οδήγησης «κάτω» (σχήμα 4.6), το κύκλωμα οδήγησης «πάνω» (σχήμα 4.7.α και 4.7.β), τους γράφους Euler (σχήμα 4.5 δίπλα), να επιλέξουμε το μονοπάτι Euler DABCABC και να κατασκευάσουμε το τελικό layout ολόκληρου του πλήρη αθροιστή (σχήμα 4.8). Και στην περίπτωση αυτή γίνονται οι ίδιες απλουστεύσεις και παραδοχές ώστε να προκύψει ομοιόμορφο και συμπαγές layout. Στο σχήμα 4.8 μπορείτε να παρατηρήσετε ότι το κάτω τμήμα υπολογίσει το CARRY που τροφοδοτεί το πάνω τμήμα που υπολογίζει το SUM. Και στις δύο περιπτώσεις χρησιμοποιείται ένας αναστροφέας ώστε να παραχθούν τα σήματα και στην κανονική τους μορφή. 4 η άσκηση 25//24 4 C D B A Σχήμα 4.5: Γράφοι Euler για το κύκλωμα υπολογισμού αθροίσματος B A C
Σχήμα 4.6: Κύκλωμα οδήγησης «κάτω» εξίσωσης (6) (α) Σχήμα 4.7: Κύκλωμα οδήγησης «πάνω» εξίσωσης (6) (β) 4 η άσκηση 25//24 5
Σχήμα 4.8: Layout πλήρη αθροιστή 4 η άσκηση 25//24 6
3 Σχεδίαση πολλαπλασιαστή Η πράξη του πολλαπλασιασμού συναντάται σχεδόν σε κάθε εφαρμογή επεξεργασίας σήματος. Όπως αναφέρθηκε και στην προηγούμενη παράγραφο, βασίζεται στην πράξη της πρόσθεσης. Ως γνωστόν, ο πολλαπλασιασμός πολυψήφιων αριθμών είναι το άθροισμα των μερικών γινομένων που προκύπτουν από τον πολλαπλασιασμό κάθε ενός ψηφίου του πολλαπλασιαστή με τον πολλαπλασιαστέο, όπως φαίνεται και στο παρακάτω παράδειγμα για την περίπτωση δυαδικών αριθμών. Η πράξη λοιπόν του πολλαπλασιασμού απαιτεί δύο βήματα, την παραγωγή των μερικών γινομένων και την πρόσθεσή τους. Κυκλωματικά, μια μέθοδος υλοποίησης των δύο αυτών βημάτων είναι η κατασκευή ενός πίνακα από πλήρεις αθροιστές, αντίστοιχο με τον πίνακα των μερικών γινομένων του παραπάνω παραδείγματος. Σε κάθε θέση που υπάρχει ψηφίο στον πίνακα τοποθετείται μια δομική μονάδα που S in y C in x περιλαμβάνει έναν πλήρη αθροιστή (Full Adder ή FA) για την πρόσθεση και μια πύλη AND για τον πολλαπλασιασμό. Η Full Adder δομική αυτή μονάδα φαίνεται στο σχήμα 4.9. Οι είσοδοι Sin και Cin και οι έξοδοι Sout και Cout συνδέονται με τις γειτονικές τους μονάδες για την παραγωγή του σωστού C out S out τελικού αποτελέσματος. Ανάλογα με τον τρόπο συνδεσμολογίας των μονάδων αυτών, που για συντομία αναφέρονται και ως FA * ή FAS, κατασκευάζουμε δύο τύπους παράλληλου πολλαπλασιαστή, τον πολλαπλασιαστή διάδοσης κρατουμένου και τον πολλαπλασιαστή αποθήκευσης κρατουμένου (αναλυτική περιγραφή ακολουθεί). Σχήμα 4.9: Δομική μονάδα FAS που χρησιμοποιείται στον πολλαπλασιαστή Η δομική μονάδα FAS μπορεί να κατασκευαστεί σε layout ξεκινώντας από τον πλήρη αθροιστή, όπως κατασκευάστηκε στην προηγούμενη παράγραφο και δίνεται στο σχήμα 4.8. Τα παραπάνω στοιχεία που πρέπει να προστεθούν είναι η πύλη AND για τον πολλαπλασιασμό. Αυτή μπορεί να υλοποιηθεί εύκολα με μια πύλη NAND και έναν αναστροφέα, όπως παρουσιάζεται στο σχήμα 4.. Συγκεκριμένα, τα 4 πιο κάτω τρανζίστορ του σχήματος 4. είναι μια πύλη NAND (2 nmos συνδεδεμένα σε σειρά και 2 pmos συνδεδεμένα παράλληλα) και τα 2 επόμενα ο αναστροφέας. 4 η άσκηση 25//24 7
Σχήμα 4.: Layout δομικής μονάδας FAS 4 η άσκηση 25//24 8
3. Παράλληλος πολλαπλασιαστής διάδοσης κρατουμένου Ο παράλληλος πολλαπλασιαστής διάδοσης κρατουμένου αποτελείται από αλυσίδες μονάδων FAS συνδεδεμένες έτσι ώστε σε κάθε επίπεδο, το κρατούμενο εξόδου κάθε μονάδας να τροφοδοτεί την επόμενη (ως κρατούμενο εισόδου). Επίσης, τα αθροίσματα εξόδου περνάνε από το ένα επίπεδο στο άλλο (ως αθροίσματα εισόδου). Τα αρχικά κρατούμενα και αθροίσματα εισόδου είναι όλα. Οι είσοδοι x i είναι κοινές για όλα τα στοιχεία μιας γραμμής (ή αλυσίδας FAS) ενώ οι είσοδοι y i είναι κοινές για όλα τα στοιχεία μιας διαγωνίου. Τα κρατούμενο εξόδου στο τέλος κάθε γραμμής γίνεται άθροισμα εισόδου στο τελευταίο στοιχείο της επόμενης γραμμής. Το τελικό αποτέλεσμα προκύπτει από τα αθροίσματα εξόδου όσων στοιχείων δεν τροφοδοτούν επόμενα μαζί με το κρατούμενο εξόδου του τελευταίου στοιχείου της τελευταίας γραμμής. Αναλυτικά, το σχηματικό διάγραμμα του παράλληλου πολλαπλασιαστή με διάδοση κρατουμένου δίνεται στο σχήμα 4.. Ο συγκεκριμένος πολλαπλασιαστής υλοποιείται σε layout με πολύ συμπαγή μορφή αλλά έχει αυξημένο χρόνο απόκρισης. y 3 y 2 y y x x x 2 x 3 p 7 p 6 p 5 p 4 p 3 p 2 p p Σχήμα 4.: Παράλληλος πολλαπλασιαστής διάδοσης κρατουμένου 4 η άσκηση 25//24 9
3.2 Παράλληλος πολλαπλασιαστής αποθήκευσης κρατουμένου Ο παράλληλος πολλαπλασιαστής αποθήκευσης κρατουμένου προκύπτει από τον παράλληλο πολλαπλασιαστή διάδοσης κρατουμένου με τη διαφορά ότι το κρατούμενο εξόδου μιας μονάδας δεν τροφοδοτεί το επόμενό του στην ίδια αλυσίδα αλλά το επόμενο (επόμενης τάξης ψηφίο) στο επόμενο επίπεδο. Με τον τρόπο αυτό, όλες οι μονάδες ενός επιπέδου λειτουργούν αυτόνομα και σε χρόνο ίσο με την καθυστέρηση διάδοσης μιας μονάδας τροφοδοτούν ταυτόχρονα, όλες μαζί το επόμενο επίπεδο. Σχηματικά, αυτό φαίνεται στο σχήμα 4.2, όπου σε αντίθεση με το σχήμα 4. που η πληροφορία του κρατουμένου διαδιδόταν στον ίδιο επίπεδο, εδώ διαδίδεται στην ίδια διαγώνιο. Η συνδεσμολογία αυτή δίνει εξίσου συμπαγές layout και απαιτεί μικρότερο χρόνο διάδοσης. Απαιτεί όμως και περισσότερο υλικό μια και στο τελευταίο επίπεδο, τα τελικά αθροίσματα εξόδου δεν αποτελούν τελικό αποτέλεσμα αλλά πρέπει να προστεθούν στα κρατούμενα εξόδου που προκύπτουν από το προηγούμενης τάξης ψηφίο. Η πρόσθεση αυτή γίνεται με έναν πλήρη αθροιστή n-bit (Final Adder). y 3 y 2 y y x x x 2 x 3 Final Adder p 7 p 6 p 5 p 4 p 3 p 2 p p Σχήμα 4.2: Παράλληλος πολλαπλασιαστής αποθήκευσης κρατουμένου 4 η άσκηση 25//24
3.3 Τεχνική παράκαμψης Ο παράλληλος πολλαπλασιαστής αποθήκευσης κρατουμένου, με την κανονικότητα που παρουσιάζει στη συνδεσμολογία του, μας επιτρέπει να εκμεταλλευτούμε διάφορες ειδικές περιπτώσεις. Για παράδειγμα, στο σχήμα 4.3 παρουσιάζεται η περίπτωση μια είσοδος y i, και συγκεκριμένα η y, να είναι. Τότε, στην αντίστοιχη διαγώνιο, όλες οι πύλες AND της μονάδας FAS θα δίνουν αποτέλεσμα, ανεξάρτητα από τα x i. Επειδή και το αρχικό κρατούμενο εισόδου της διαγωνίου είναι, η πράξη που γίνεται σε αυτή την περίπτωση σε κάθε στοιχείο της διαγωνίου απλώς μεταφέρει την τιμή του αθροίσματος εισόδου στο άθροισμα εξόδου, όπως φαίνεται στο σχήμα. Το τελικό κρατούμενο εξόδου της διαγωνίου θα είναι πάντα, ανεξάρτητα από όλες τις άλλες τιμές, διότι εάν κάπου εμφανιστεί ως άθροισμα εισόδου θα μεταφερθεί αυτούσιο στο άθροισμα εξόδου αφού δεν υπάρχουν άλλα για να δημιουργηθεί κρατούμενο. Συνεπώς, όταν κάποια είσοδος y i είναι, μπορούμε να «παρακάμψουμε» τους πλήρης αθροιστές μιας ολόκληρης διαγωνίου (γνωρίζουμε το αποτέλεσμα εκ των προτέρων). Η παράκαμψη αυτή μπορεί να γίνει αντικαθιστώντας όλες τις μονάδες FAS με μονάδες που ονομάζουμε (Full Adder with Bypass), και παρουσιάζονται στο σχήμα 4.4. y 3 y 2 y = y x x x 2 x 3 Final Adder p 7 p 6 p 5 p 4 p 3 p 2 p p Σχήμα 4.3: Η διαγώνιος του παράλληλου πολλαπλασιαστή αποθήκευσης κρατουμένου δεν συνεισφέρει στο τελικό αποτέλεσμα όταν π.χ. y= Η μονάδα έχει διακόπτες που ελέγχουν τις εισόδους x και Sin του πλήρη αθροιστή. Οι διακόπτες είναι συνδεδεμένοι με το y. Αν y= ο διακόπτης είναι κλειστός και αν y= είναι ανοιχτός. Αν y=, οι είσοδοι στον πλήρη αθροιστή είναι ίδιες με την περίπτωση της μονάδας FAS μια και στην περίπτωση αυτή xy=x. Aν y=, οι είσοδοι είναι αποκομμένες, συνεπώς διατηρούν τις παλιές τους τιμές και δεν υπάρχει δυναμική κατανάλωση ισχύος. Η είσοδος Cin δεν θεωρείται σκόπιμο να συνδεθεί σε διακόπτη διότι παραμένει και αυτή στην ίδια τιμή (εφόσον όλες οι άλλες είσοδοι παραμένουν ίδιες) και έτσι υπάρχει και οικονομία υλικού (δεν σπαταλάμε έναν διακόπτη). Οι έξοδος αθροίσματος του πλήρη αθροιστή περνάει 4 η άσκηση 25//24
από πολυπλέκτη μαζί με την είσοδο αθροίσματος. Για y=, η συγκεκριμένη μονάδα παρακάμπτεται και η είσοδος αθροίσματος μεταφέρεται στην έξοδο αθροίσματος. Για y= ο πλήρης αθροιστής λειτουργεί κανονικά. Η έξοδος κρατουμένου και πάλι δεν περνάει από πολυπλέκτη για λόγους οικονομίας. Εφόσον στην περίπτωση που y=, η έξοδος κρατουμένου όλης της διαγωνίου είναι, αυτό εξασφαλίζεται τοποθετώντας μια πύλη AND στο τέλος κάθε διαγωνίου, όπως φαίνεται στο σχήμα 4.5 που απεικονίζει την πλήρη συνδεσμολογία του παράλληλου πολλαπλασιαστή αποθήκευσης κρατουμένου με παράκαμψη. Η τεχνική αυτή μπορεί να υλοποιηθεί σε layout χρησιμοποιώντας για διακόπτες πύλες μετάδοσης. S in x C in y Full Adder y MUX S out C out Σχήμα 4.4: Δομική μονάδα πλήρη αθροιστή με παράκαμψη y 3 y 2 y y x x x 2 x 3 Final Adder p 7 p 6 p 5 p 4 p 3 p 2 p p Σχήμα 4.5: Παράλληλος πολλαπλασιαστής αποθήκευσης κρατουμένου με παράκαμψη 4 η άσκηση 25//24 2
4 Τα ζητούμενα της εργαστηριακής άσκησης Κατασκευάστε σε τεχνολογία cmos8 παράλληλο πολλαπλασιαστή αποθήκευσης κρατουμένου 4 bit με την τεχνική της παράκαμψης, επαληθεύστε τη λειτουργία του, υπολογίστε με προσομοίωση την κατανάλωση ισχύος και συγκρίνετε τα αποτελέσματα με τον απλό πολλαπλασιαστή αποθήκευσης κρατουμένου και τον πολλαπλασιαστή διάδοσης κρατουμένου του ιδίου μεγέθους. Χρησιμοποιείστε για βοήθεια τα layout που υπάρχουν στα αρχεία carry.msk (κύκλωμα υπολογισμού κρατουμένου), fa.msk (κύκλωμα πλήρη αθροιστή), fas.msk (κύκλωμα μονάδας FAS), mult44cpa.msk (κύκλωμα παράλληλου πολλαπλασιαστή με διάδοση κρατουμένου) και mult44csa.msk (κύκλωμα παράλληλου πολλαπλασιαστή με αποθήκευση κρατουμένου). Ο πολυπλέκτης 2-σε- μπορεί να κατασκευαστεί με δύο πύλες μετάδοσης όπως φαίνεται στο παρακάτω σχηματικό διάγραμμα. Σημείωση: Τα layout που δίνονται είναι σε τεχνολογία cmos8 αλλάξτε τα σε cmos8. Σχήμα 4.6: Σχηματικό διάγραμμα πολυπλέκτη 2-σε- 4 η άσκηση 25//24 3