ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΜΙΚΡΟΗΛΕΚΤΡΟΝΙΚΗ - VLSI Ενότητα: Συνδιαστικά κυκλώματα, βασικές στατικές λογικές πύλες, σύνθετες και δυναμικές πύλες Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. 1
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2
ΠΕΡΙΕΧΟΜΕΝΑ ΑΣΚΗΣΗ 5η: Βασικές στατικές λογικές πύλες CMOS... ΑΣΚΗΣΗ 6η: Πολύπλοκες λογικές πύλες CMOS... ΑΣΚΗΣΗ 7η: Πλήρης αθροιστής (full-adder) 4-ψηφίων... 3
ΑΣΚΗΣΗ 5η ΒΑΣΙΚΕΣ ΣΤΑΤΙΚΕΣ ΛΟΓΙΚΕΣ ΠΥΛΕΣ CMOS ΘΕΩΡΙΑ Οι βασικές λογικές πύλες CMOS (Παρ 6.1, 6.2, 6.2.1 έως σελ. 298, όχι το παράδειγμα 6.2) ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΕΡΟΣ A. Σχεδιασμός NAND πύλης δύο εισόδων Η στατική CMOS πύλη NAND δύο εισόδων αποτελείται από δύο NMOS τρανζίστορ σε σειρά, τα οποία συνδέονται με δύο PMOS τρανζίστορ που είναι συνδεδεμένα μεταξύ τους παράλληλα. Το σχηματικό διάγραμμα μιας στατικής NAND πύλης φαίνεται παρακάτω, μαζί με τον πίνακα αληθείας της. Σχήμα 4.1. Πύλη NAND δύο εισόδων. Ακολουθώντας τα ίδια βήματα με αυτά της σχεδίασης του αντιστροφέα στην προηγούμενη άσκηση, σχεδιάστε μία πύλη NAND δύο εισόδων σε τεχνολογία CMOS 0.12μm, με ελάχιστα NMOS τρανζίστορ και λόγο WPMOS/WNMOS=3. Ο φυσικός σχεδιασμός (layout) της πύλης φαίνεται στο σχήμα 4.2. Οι βασικές διαστάσεις είναι : μήκος πολυκρυσταλλικού πυριτίου 42λ, πλάτος 2λ, απόσταση μεταξύ των γραμμών 6λ. Μήκος καναλιού nmos τρανζίστορ 4λ και pmos 12λ, μέγεθος διάχυσης n τύπου 4λ x 20λ και p τύπου 12λ x 20λ. Απόσταση μεταξύ των περιοχών διάχυσης 20λ. Πλάτος γραμμών μετάλλου τροφοδοσίας 8λ. N-well 32λ x 32λ. Οι υπόλοιπες διαστάσεις προκύπτουν εύκολα από την ικανοποίηση των κανόνων σχεδιασμού. Καλό είναι να κάνετε συχνά DRC ώστε να διορθώνετε σταδιακά τα λάθη και όχι όλα μαζί στο τέλος. Σχήμα 4.2. Φυσικός σχεδιασμός (layout) πύλης NAND 2 εισόδων. 4 INP1 INP2 OUT
B. Εξομοίωση της πύλης 1. Εφαρμόστε κατάλληλους παλμούς στις εισόδους της πύλης ώστε να επαληθεύσετε ολόκληρο τον πίνακα αλήθειας χωρίς φορτίο στην έξοδο. Οι χρονισμοί των εισόδων προκύπτουν από τις κυματομορφές του σχήματος 4.3 (Ο χρόνος ανόδου και καθόδου των εισόδων είναι tr=tf=0.025nsec). Σχήμα 4.3 Η απόκριση της πύλης NAND 2 εισόδων. 5
2. Στα διαγράμματα διακρίνονται οι καθυστερήσεις ανόδου και καθόδου ως προς την είσοδο inp1. Συμπληρώστε τον παρακάτω πίνακα με τις αρχικές καθυστερήσεις για όλους τους συνδυασμούς αλλαγών των εισόδων που οδηγούν σε αλλαγή στην έξοδο, όπως στο παράδειγμα. Για να εμφανιστεί η καθυστέρηση ως προς την είσοδο inp2, πρέπει να αλλάξετε στο παράθυρο της εξομοίωσης πάνω δεξιά τον ορισμό της καθυστέρησης από τον κόμβο inp1 στον κόμβο inp2. Για να προκύψουν στην εξομοίωση όλοι οι ζητούμενοι συνδυασμοί των εισόδων πρέπει να αλλάξετε τις κυματομορφές τους. Αρχικές τιμές inp1-inp2 Τελικές τιμές inp1-inp2 Μετάβαση εξόδου 0-1 1-1 1-0 Καθυστέρηση Αρχική Τελική 3. Αλλάξτε το πλάτος των NMOS transistors ώστε η διαφορά στο χρόνο ανόδου και καθόδου της εξόδου στη χειρότερη περίπτωση να γίνει μικρότερη από 10%. Συμπληρώστε τον παραπάνω πίνακα με τις τελικές καθυστερήσεις για όλους τους συνδυασμούς των εισόδων. 4. Επαναλάβετε τα βήματα 2 και 3 με φορτίο εξόδου 30 ff και αλλάξτε το μέγεθος των transistors ώστε η πύλη να παρουσιάζει στη χειρότερη περίπτωση περίπου ίδια καθυστέρηση ανόδου και καθόδου ίση με 40ps %. (Το πλάτος των nmos πρέπει να γίνει περίπου 20λ και των pmos περίπου 25λ.) Αρχικές τιμές inp1-inp2 Τελικές τιμές inp1-inp2 Μετάβαση εξόδου 0-1 1-1 1-0 Καθυστέρηση Αρχική Τελική 6
ΕΡΓΑΣΙΑ ΓΙΑ ΤΟ ΣΠΙΤΙ 1. Υλοποιήστε μία πύλη XOR όπως φαίνεται στο παρακάτω σχήμα και επαληθεύστε τον πίνακα αληθείας της χωρίς φορτίο. ΠΡΟΣΟΧΗ: Επειδή δεν υπάρχει γείωση στο κύκλωμα για να γίνει σωστή εξομοίωση τα σήματα εισόδου της πύλης πρέπει να οδηγούνται με αντιστροφέα. 2. Προσδιορίστε τις καθυστερήσεις εισόδου-εξόδου για όλους τους συνδυασμούς των εισόδων συμπληρώνοντας πίνακα αντίστοιχο με αυτόν του βήματος 2 της άσκησης που εκτελέσατε στο εργαστήριο με φορτίο εξόδου 30 ff. 3. Αλλάξτε τα μεγέθη των transistors της πύλης ώστε να παρουσιάζει περίπου ίδια καθυστέρηση ανόδου και καθόδου στη χειρότερη περίπτωση ίση με 40ps % και καταγράψτε τις καθυστερήσεις στον πίνακα του ερωτήματος 2. 7
ΑΣΚΗΣΗ 6η ΠΟΛΥΠΛΟΚΕΣ ΛΟΓΙΚΕΣ ΠΥΛΕΣ CMOS ΘΕΩΡΙΑ Πολύπλοκες λογικές πύλες CMOS (Παρ. 6.2.1 έως σελίδα 298) ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΕΡΟΣ Στο σχήμα 5.1 δίνεται το διάγραμμα σε επίπεδο λογικών πυλών του κυκλώματος που υλοποιεί την λογική συνάρτηση: Out = Not (A + B + C D) Σχήμα 6.1 Υλοποίηση της συνάρτησης με βασικές πύλες 1. Συμπληρώστε τον πίνακα αληθείας της συνάρτησης του σχήματος 6.1. 2. Σχεδιάστε το κύκλωμα της σύνθετης CMOS πύλης σε επίπεδο τρανζίστορ για την υλοποίηση της παραπάνω λογικής συνάρτησης. 3. Χρησιμοποιώντας την τεχνολογία CMOS 0.12 μm ακολουθείστε τα παρακάτω βήματα για το σχεδιασμό του layout της πύλης. Το πρώτο βήμα του φυσικού σχεδιασμού της πύλης είναι η τοποθέτηση κάθετων λωρίδων πολυκρυσταλλικού πυριτίου. Το μήκος τους είναι 42λ και η απόσταση μεταξύ τους τουλάχιστον 8λ. Στη συνέχεια τοποθετούνται οι δύο παράλληλες περιοχές διάχυσης n και p τύπου οι οποίες τέμνουν κάθετα τις λωρίδες πολυκρυσταλλικού πυριτίου, έτσι ώστε να δημιουργηθούν τα τρανζίστορ της λογικής πύλης. Η περιοχή διάχυσης τύπου n να είναι 44λx4λ και η τύπου p 44λx12λ και η απόσταση μεταξύ τους 20λ. Το επόμενο βήμα είναι ο σχεδιασμός των λωρίδων μετάλλου της τροφοδοσίας και της γείωσης (Πλάτος 8λ). Στη συνέχεια σχεδιάζεται η περιοχή του πηγαδιού τύπου n η οποία περικλείει τα τρανζίστορ τύπου p. Διαστάσεις 56λ x 32λ Με βάση τη συνδεσμολογία των τρανζίστορ που φαίνεται στο κυκλωματικό διάγραμμα σχεδιάζονται οι διασυνδέσεις της πύλης χρησιμοποιώντας λωρίδες μετάλλου πλάτους 4λ. Για να ολοκληρωθεί ο σχεδιασμός της πύλης πρέπει να πολωθεί το πηγάδι τύπου n και το υπόστρωμα τύπου p με τις κατάλληλες επαφές. Το τελικό layout φαίνεται στο σχήμα 6.2 Σχήμα 6.2 Τελικό layout της σύνθετης CMOS πύλης 8 Α Β C D OUT
3. Εξομοιώστε την πύλη (χρησιμοποιώντας το μοντέλο BSIM4) για όλους τους δυνατούς συνδυασμούς των εισόδων, ώστε να πάρετε τις κυματομορφές που δίνονται στο σχήμα 6.3. Η πρώτη είσοδος έχει περίοδο 1nsec και tr=tf=0.05nsec, ενώ οι υπόλοιπες έχουν τη διπλάσια περίοδο από την προηγούμενη αλλά τον ίδιο χρόνο ανόδου και καθόδου. Σχήμα 6.3 Εξομοίωση της σύνθετης CMOS πύλης 9
4. Υλοποιήστε το layout της πύλης αυτόματα χρησιμοποιώντας το μεταφραστή μίας γραμμής (compiler one line) και εξομοιώστε το κύκλωμα με τα ίδια σήματα εισόδου. Συγκρίνετε το layout και τις καθυστερήσεις του κυκλώματος στις δύο περιπτώσεις. ΕΡΓΑΣΙΑ ΓΙΑ ΤΟ ΣΠΙΤΙ 1. Απλοποιήστε με πίνακα Karnaugh τη λογική συνάρτηση F=a b c + b cd + ab c + a bcd 2. Σχεδιάστε με το χέρι και εξομοιώστε για όλους τους δυνατούς συνδυασμούς των εισόδων της τη σύνθετη CMOS πύλη που υλοποιεί την απλοποιημένη μορφή της F με μοναδιαία transistors (Wnmos=4λ και Wpmos=10λ). Θεωρήστε ότι έχετε διαθέσιμα και τα αντίστροφα των εισόδων. 3. Υλοποιήστε το layout της πύλης αυτόματα χρησιμοποιώντας το μεταφραστή μίας γραμμής (compiler one line), εξομοιώστε το κύκλωμα με τα ίδια σήματα εισόδου και επαληθεύστε τα αποτελέσματα με την υλοποίηση του δεύτερου ερωτήματος. 4. Υπολογίστε το μέγεθος των transistors ώστε η πύλη να παρουσιάζει τον ίδιο χρόνο ανόδουκαθόδου στη χειρότερη περίπτωση αλλαγής των εισόδων της. 10
ΑΣΚΗΣΗ 7η ΠΛΗΡΗΣ ΑΘΡΟΙΣΤΗΣ 4-ΨΗΦΙΩΝ ΘΕΩΡΙΑ Ο δυαδικός αθροιστής (Παρ. 11.3, 11.3.1 έως σελίδα 667) ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΕΡΟΣ 1. Φτιάξτε τον πίνακα αλήθειας και υπολογίστε τις λογικές συναρτήσεις για το άθροισμα και το κρατούμενο του πλήρους αθροιστή (full adder) ενός ψηφίου. 2. Χρησιμοποιώντας το μεταφραστή μίας γραμμής υλοποιείστε σε τεχνολογία CMOS 0.12μm τις συναρτήσεις που υπολογίσατε στο προηγούμενο βήμα και κάντε τις αναγκαίες διασυνδέσεις των σημάτων εισόδου ώστε να δημιουργήσεται το κύκλωμα του αθροιστή ενός ψηφίου όπως φαίνεται στο σχήμα 7.1. ΠΡΟΣΟΧΗ: Ο μεταφραστής μίας γραμμής δε δέχεται τη συνάρτηση του αθροίσματος (Sum). Πρέπει να φτιάξετε δύο πύλες XOR και να τις συνδέσετε με το χέρι. A B C Carry Sum Σχήμα 7.1. Ο πλήρης αθροιστής ενός ψηφίου 3. Εξομοιώστε το κύκλωμα που σχεδιάσατε ώστε να επαληθεύσετε πλήρως τον πίνακα αληθείας του. ΠΡΟΣΟΧΗ: Για να γίνει σωστή εξομοίωση του κυκλώματος πριν τρέξετε τον εξομοιωτή πρέπει να σβήσετε τα ίδια ονόματα των κόμβων που δεν συνδέονται μεταξύ τους (π.χ. οι είσοδοι των πυλών XOR είναι A και B). Επίσης, επειδή οι καθυστερήσεις του κυκλώματος είναι σχετικά μεγάλες η μικρότερη περίοδος στα σήματα εισόδου να είναι τουλάχιστον 1 ns. Οι κυματομορφές των εισόδων και των εξόδων δίνονται στο σχήμα 7.2. 11
Σχήμα 7.2. Παλμοί εξομοίωσης του πλήρους αθροιστή ενός ψηφίου 4. Συνδυάζοντας 4 αθροιστές του ενός ψηφίου (Full Adder Cells) σχεδιάστε το λογικό κύκλωμα ενός αθροιστή διάδοσης κρατουμένου τεσσάρων ψηφίων. (4-bit ripple carry adder). 5. Υλοποιείστε το φυσικό σχεδιασμό (layout) του αθροιστή τεσσάρων ψηφίων χρησιμοποιώντας τον πλήρη αθροιστή που σχεδιάσατε στο βήμα 2. Αυτό μπορείτε να το επιτύχετε με την εντολή Duplicate XY. Η εντολή Duplicate XY είναι πολύ χρήσιμη στη δημιουργία μίας σειράς από ίδια βασικά στοιχεία (cells). Επιλέξτε την εντολή Duplicate XY από το μενού Edit, και μετά επιλέξετε με το ποντίκι την περιοχή του layout που θέλετε να αντιγραφεί. Εμφανίζεται τότε παράθυρο που φαίνεται στο σχήμα 7.3. Επιλέξτε στο multiply in X και multiply in Y το πόσες φορές θέλετε να αντιγραφεί σε κάθε άξονα το επιλεγμένο τμήμα του layout. Πατώντας το Generate δημιουργείται το νέο layout. Επειδή τα τμήματα του layout εφάπτονται μεταξύ τους μετά την αντιγραφή, χρειάζεται προσοχή κατά το σχεδιασμό ώστε να μη δημιουργηθούν βραχυκυκλώματα και να ενώνονται όπου απαιτείται αντίστοιχα σήματα (π.χ. Vdd και Vss) ή αντίστοιχα επίπεδα (π.χ. n-well). Για να υλοποιήσετε τον αθροιστή τεσσάρων ψηφίων επιλέξτε για τον άξονα Χ multiply 4 και για τον άξονα Υ multiply 1 Σχήμα 7.3. Το παράθυρο της εντολής Duplicate. 6. Πραγματοποιήστε τις αναγκαίες διασυνδέσεις, δώστε ονόματα στις εισόδους (Α1-Α4 και Β1-Β4, Cin) και στις εξόδους (Sum1-Sum4, Cout) και εξομοιώστε το κύκλωμα του αθροιστή τεσσάρων ψηφίων. Είναι σκόπιμο για τις διασυνδέσεις να 12
χρησιμοποιείται ένα επίπεδο μετάλλου για τα οριζόντια τμήματα των διασυνδέσεων (metal2) και ένα άλλο για τα κατακόρυφα (metal1). ΕΡΓΑΣΙΑ ΓΙΑ ΤΟ ΣΠΙΤΙ Τα ερωτήματα 4 έως 6. 13