ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων Τοµέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ330 - Σχεδίαση Συστηµάτων VLSI Περιγραφή και σκοπός του Εργαστηρίου. Σχεδίαση Λογικών Πυλών Εαρινό εξάµηνο 2005 Για να µπορέσει κάποιος να σχεδιάσει ένα ολοκληρωµένο κύκλωµα δεν αρκεί µόνο η θεωρητική περιγραφή της διαδικασίας σχεδιασµού, όπως αυτή παρουσιάζεται στις διαλέξεις, αλλά χρειάζεται και η πρακτική εξάσκηση πάνω σε συγκεκριµένα παραδείγµατα. Το πρακτικό κοµµάτι του µαθήµατος καλύπτεται από τις εργαστηριακές ασκήσεις και το project. Με αυτό τον τρόπο θα αποκτηθεί η απαιτούµενη ευχέρεια σε όλες τις φάσεις του σχεδιασµού: σχεδιασµός µασκών, σχεδιασµός σε επίπεδο τρανζίστορ, εξοµοίωση και επαλήθευση προχωρηµένων κυκλωµάτων. Για τις εργαστηριακές ασκήσεις και τα σχεδιαστικά projects θα χρησιµοποιηθεί το σχεδιαστικό πρόγραµµα Electric. Τα κυκλώµατα που θα σχεδιάζονται σε κάθε εργαστηριακή άσκηση είναι κοµµάτια ενός µεγαλύτερου συστήµατος (MIPS Processor) και αυτά που σχεδιάστηκαν σε µία εργαστηριακή άσκηση θα χρησιµοποιηθούν στις επόµενες, οπότε προσεκτική δουλειά στα πρώτα εργαστήρια θα σας γλιτώσει από κακοτοπιές στα επόµενα. Σκοπός του εργαστηριακού µαθήµατος της σχεδίασης συστηµάτων VLSI είναι να ετοιµάσουν οι φοιτητές µια βιβλιοθήκη µε απλά και πιο σύνθετα κελιά (standard cells) ώστε να ολοκληρώσουν την σχεδίαση του επεξεργαστή στο εργαστηριακό µάθηµα της Σχεδίασης Μικροεπεξεργαστών. Η πρώτη εργαστηριακή άσκηση θα είναι ο σχεδιασµός των πυλών NAND δύο εισόδων. Πρώτα θα σχεδιάσετε το κύκλωµα σε επίπεδο τρανζίστορ όπως δείξαµε στο µάθηµα και στη συνέχεια µε εξοµοίωση θα ελέγξετε τη σωστή του λειτουργία. Στη συνέχεια θα σχεδιάσετε το layout και θα βεβαιώσετε ότι υπακούει στους σχεδιαστικούς κανόνες και υλοποιεί αυτό που σχεδιάσατε σε επίπεδο τρανζίστορ. Με την πύλη NAND και τον αντιστροφέα που σας δίνουµε θα σχεδιάσετε µια AND δύο εισόδων. Τέλος, θα επαναλάβετε όλα τα βήµατα για να δηµιουργήσετε τα δικές σας πύλες NOR και OR δύο εισόδων. Στο τέλος κάθε εργαστηρίου θα ήθελα να σηµειώσετε πόσο χρόνο σας πήρε να το ολοκληρώσετε και αν έχετε κάποιες παρατηρήσεις έτσι ώστε να βελτιωθεί το µάθηµα για τα επόµενα χρόνια.
Το εργαλείο σχεδίασης Electric. Για τη σχεδίαση ολοκληρωµένων κυκλωµάτων είναι απαραίτητη η χρήση εργαλείων CAD (Computer Aided Design) λόγω του µεγάλου αριθµού των τρανζίστορ που περιέχουν (ως 100 εκατοµµύρια). Έτσι έχουν δηµιουργηθεί εργαλεία για την εισαγωγή σχηµατικών (Schematic Entry), φυσική σχεδίαση (Layout), εξοµοίωση (simulation) και επαλήθευση (Verification & Testing). Βέβαια, όπως όλα τα προγράµµατα έχουν bugs, ακόµα και τα εργαλεία που χρησιµοποιούνται για σχεδιασµό υψηλής απόδοσης κυκλωµάτων. Σκοπός µας είναι να πετυχαίνουµε το καλύτερο δυνατό αποτέλεσµα παρά τις ατέλειες των εργαλείων που χρησιµοποιούµε. Για schematic entry και layout το εργαλείο που χρησιµοποιείται από τις περισσότερες σχεδιαστικές οµάδες στην βιοµηχανία παράγεται από την Cadence Design Inc. Η τιµή του για κάθε θέση εργασίας αγγίζει τα 100.000 δολάρια, αν και διατίθεται σε χαµηλότερες τιµές στα (αµερικανικά) πανεπιστήµια. Για να δουλέψει χρειάζεται κάποιο µηχάνηµα που τρέχει Un*x, δηλαδή κάποιο σταθµό εργασίας που το κόστος του είναι περίπου 10.000 δολάρια. Το στήσιµο και η συντήρηση ενός τέτοιου εργαλείου µπορεί να αποτελέσει πλήρη απασχόληση για ένα µηχανικό. Άλλη επιλογή είναι τα εργαλεία της Tanner, της Mentor Graphics ή της Ikos. Τέλος υπάρχει και το εργαλείο Magic, το οποίο χρησιµοποιείται σε κάποια πανεπιστήµια, αλλά το πανεπιστήµιο του Berkeley που το δηµιούργησε σταµάτησε να το υποστηρίζει από το 1994. Για το εργαστήριο του ΗΥ330 θα χρησιµοποιηθεί το σύστηµα σχεδιασµού Electric. Το Electric γράφτηκε από τον Steve Rubin. Τα πλεονεκτήµατά του είναι ότι τρέχει σε οποιοδήποτε λειτουργικό (και κυρίως σε Windows 95/98/2000/NT), παρέχει δυνατότητες εξοµοίωσης και επαλήθευσης που συνεργάζονται µε το σχεδιασµό (δεν χρειάζεται να σώσει κανείς το κύκλωµα και στη συνέχεια να τρέξει κάποιο άλλο εργαλείο για τα παραπάνω), ο κώδικας σε C δίνεται αν κάποιος αποφασίσει να κάνει αλλαγές και το σηµαντικότερο έχει interfaces αντίστοιχα µε τα εργαλεία που χρησιµοποιούνται στη βιοµηχανία και έτσι θα αποκτήσετε µια ιδέα για το τι βλέπει ένας σχεδιαστής. Επίσης, διανέµεται δωρεάν πράγµα που σηµαίνει ότι αν κάποιος θέλει µπορεί να το εγκαταστήσει στον προσωπικό του υπολογιστή. Το Electric που θα χρησιµοποιήσουµε µπορείτε να το κατεβάσετε από το website του ΗΥ330. Ένα από τα κύρια µειονεκτήµατα είναι το ότι το Electric δεν έχει τελειοποιηθεί ακόµη: αρκετά κοµµάτια γράφονται ακόµη µε αποτέλεσµα κάποια πράγµατα να µην γίνονται όπως κάποιος θα περίµενε. Βέβαια, έχει χρησιµοποιηθεί ήδη δύο φορές στη διδασκαλία αντιστοίχων µαθηµάτων σχεδίασης VLSI µε αποτέλεσµα να έχουν αντιµετωπισθεί οι «παιδικές ασθένειες» του προγράµµατος. Σίγουρα θα αντιµετωπίσετε προβλήµατα, αλλά αυτά είναι συνηθισµένα στην περιοχή αφού ακόµη και τα πολύ ακριβά εργαλεία παρουσιάζουν παρόµοια προβλήµατα. Πρώτα βήµατα. Το Electric είναι εγκατεστηµένο στα PC του εργαστηρίου. Για να ξεκινήσετε αντιγράψτε την βιβλιοθήκη hy330.elib στην περιοχή σας την οποία θα µετονοµάσετε σε lab1_xyz, όπου xyz είναι τα τρία τελευταία ψηφία του κωδικού σας. Η βιβλιοθήκη αυτή περιέχει έναν αναστροφέα CMOS που θα χρησιµοποιήσετε σαν υπόδειγµα.
Κάντε δύο κλικ στο Electric για να ξεκινήσετε το πρόγραµµα. ιώξτε τη σελίδα εκκίνησης κι στη συνέχεια επιλέξτε Info>See Manual για να δείτε το εγχειρίδιο του Electric. Μπορείτε να συµβουλεύεστε τα παρακάτω κοµµάτια: Chapter I: 1-2, 6-9 Chapter II: 1-6 Chapter III: 1-12 Μην προβληµατιστείτε αν κάποια πράγµατα δεν είναι κατανοητά. Με το τέλος του εργαστηρίου ξανακοιτάξτε τα παραπάνω κοµµάτια, κυρίως αυτά που σας δυσκόλεψαν. Αν ακόµη έχετε απορίες ζητήστε τη βοήθεια των επιβλεπόντων. Το manual θα το συµβουλεύεστε αφού θα πρέπει να µάθετε τη λειτουργία κάποιων κοµµατιών του Electric. Σχηµατική Σχεδίαση (Schematic Entry). Το πρώτο πράγµα που πρέπει να κάνετε είναι η εισαγωγή σχηµατικών για µια πύλη NAND δύο εισόδων. Θυµηθείτε ότι κάθε σχέδιο βρίσκεται σε κάποιο facet. Για παράδειγµα το σχηµατικό που θα φτιάξετε θα βρίσκεται στο facet nand2{sch}, ενώ το αντίστοιχο layout θα τοποθετηθεί στο facet nand2{lay} και η πύλη AND στο facet and2{sch}. Επιλέξτε, File>Open Library για να ανοίξετε τη βιβλιοθήκη lab1_xyz που δηµιουργήσατε. Στη συνέχεια επιλέξτε Facet>Edit Facet για να φτάσετε στο επιλογέα facet. Επιλέξτε New Facet. ώστε nand2 σαν όνοµα και schematic σαν view. Ένα παράθυρο για editing θα παρουσιαστεί µε τίτλο lab1_xyz:nand2{sch}, που προσδιορίζει τη βιβλιοθήκη, το facet, και το facet view. Το Electric έχει διάφορες τεχνολογίες για σχηµατικά και φυσικά σχέδια. Για σχεδιασµό σε επίπεδο τρανζίστορ πρέπει να επιλέξετε την τεχνολογία analog schematic µε τον εξής τρόπο: επιλέξτε Technology>Change Current Technology και στη συνέχεια το schematic, analog. Εδώ περιλαµβάνονται βασικά κυκλωµατικά στοιχεία όπως τρανζίστορ, αντιστάσεις, πυκνωτές, τάση τροφοδοσίας και γείωση. Τα τρανζίστορ έχουν πάνω τους το µήκος και το πλάτος του καναλιού, το οποίο βρίσκεται ακριβώς πάνω στο τρανζίστορ. Έτσι όταν προσπαθούµε να επιλέξουµε το τρανζίστορ µε το ποντίκι µπορεί κατά λάθος να επιλέξουµε το label µε τις διαστάσεις. Για να αποφύγουµε αυτό το πρόβληµα επιλέξτε Edit>Selection>Selection Options και βεβαιωθείτε ότι δεν είναι επιλεγµένο το Easy selection of annotation text. Στόχος σας είναι να φτιάξετε µια πύλη όπως αυτή της Εικόνας 1. Επιλέξτε, Windows>Toggle Grid για δείτε το πλέγµα που θα σας βοηθήσει να ευθυγραµµίσετε τα κυκλωµατικά στοιχεία. Με το αριστερό πλήκτρο του ποντικιού κάντε κλικ στο σύµβολο του τρανζίστορ τύπου n (nmos) στο µενού των στοιχείων. Στη συνέχεια κάντε κλικ στο παράθυρο edit. Επαναλάβετε αυτή τη διαδικασία έως ότου έχετε δύο τρανζίστορ τύπου n και δύο τρανζίστορ τύπου p (pmos), το κυκλικό σύµβολο της τάσης τροφοδοσίας και το τριγωνικό σύµβολο της γείωσης τοποθετηµένα όπως δείχνει η Εικόνα 1. Μπορείτε να µετακινήσετε τα κυκλωµατικά στοιχεία πατώντας το δεξί πλήκτρο του ποντικιού και στη συνέχεια µετακινώντας το ποντίκι. Τα τρανζίστορ έχουν πλάτος/µήκος 2/2. Κάντε διπλό κλικ πάνω στο pmos και το πλάτος σε 12. Επειδή τα nmos είναι σε σειρά πρέπει και αυτά να έχουν πλάτος 12.
Εικόνα 1. nand2{sch}. Τώρα φτιάχνουµε τις συνδέσεις. Με το αριστερό πλήκτρο του ποντικιού επιλέγουµε έναν ακροδέκτη του τρανζίστορ και στη συνέχεια µε το δεξί πλήκτρο επιλέγουµε έναν άλλο ακροδέκτη που θέλουµε να ενώσουµε µε τον πρώτο. Έτσι δηµιουργείται ένα wire (σύρµα) µε µπλε χρώµα. Τέλος πρέπει να ορίσουµε τους ακροδέκτες (exports) που καθορίζουν τις εισόδους και τις εξόδους του κυκλώµατός µας. Πατήστε το αριστερό πλήκτρο του ποντικιού πάνω στην άκρη του σύρµατος που θέλετε να επιλέξετε. Πρέπει να δείτε ένα µικρό τετράγωνο κουτί στην άκρη του σύρµατος. Αν όλο το σύρµα αλλάξει χρώµα, τότε έχετε επιλέξει το µέσον του σύρµατος αντί για την άκρη. Ξαναπροσπαθήστε. Όταν έχετε επιλέξει την άκρη του σύρµατος τότε επιλέξτε Export>Create Export. ώστε το όνοµα στον ακροδέκτη π.χ. Α και ανάλογα µε το αν είναι είσοδος ή έξοδος δώστε του το χαρακτηριστικό input ή output. Στην πύλη NAND ορίστε τις δύο εισόδους σαν a και b και την έξοδο σαν y. Επίσης, µπορείτε να επιλέξετε από τα components το off-page και να γίνει η διαδικασία πιο αυτοµατοποιηµένα ( είτε το σχηµατικό του inv). Χρησιµοποιήστε File>Save Library (Ctrl-s) για να σώσετε τη βιβλιοθήκη σας. Καλό είναι να σώζετε συχνά την δουλειά σας γιατί το Electric κάνει crash συχνά. Προσοµοίωση Επιπέδου ιακοπτών (Switch-level simulation). Το επόµενο βήµα είναι να ελέγξουµε αν το κύκλωµα λειτουργεί σωστά. Το Electric έχει δύο switch-level simulators τους IRSIM και ALS. Ο ALS έχει προβλήµατα και για τον λόγο αυτό θα χρησιµοποιήσουµε τον IRSIM. Ο IRSIM αντιµετωπίζει τα τρανζίστορ σαν διακόπτες που έχουν δύο καταστάσεις on και off. Λαµβάνει υπόψη χωρητικότητες και αντιστάσεις ανάλογα µε το µέγεθος του τρανζίστορ όµως δεν έχει αναλυτικό υπολογισµό των καθυστερήσεων κάθε πύλης. Αρχίζουµε επιλέγοντας Tools>Simulation(Built-in)>Simulation Options... και ορίζουµε ως simulation engine: IRSIM. Προσέξτε να είναι επιλεγµένο το αρχείο παραµέτρων scmos0.3.prm, το οποίο
περιέχει πληροφορίες για τις αντιστάσεις και τις χωρητικότητες της τεχνολογίας που χρησιµοποιούµε. Στην συνέχεια για την προσοµοίωση επιλέγουµε Tools>Simulation(Builtin)>Simulation. Θα δηµιουργηθεί ένα παράθυρο µε κυµατοµορφές µε όλους τους κόµβους του σχεδίου. Αν έχετε κάνει τα πάντα σωστά θα παρατηρήσετε τους τρεις κόµβους A, B και Υ (Εικόνα 2). Επίσης, µπορείτε να δείτε και τον κόµβο που βρίσκεται ανάµεσα στην σύνδεση των εν σειρά nmos, και ονοµάζεται net3. Ο προσοµοιωτής έχει δύο λευκούς κάθετους οδηγούς. Ο πρωτεύων οδηγός (χωρίς το x) χρησιµοποιείται για τη δηµιουργία της κυµατοµορφής εισόδου. Μετακινήστε τον πρωτεύοντα οδηγό στα 40ns. Στη συνέχεια κάντε κλικ στο Α και πατήστε το h ή το 1 για να οδηγήσετε το Α σε λογικό 1. Στη συνέχεια µετακινήστε τον οδηγό στα 70ns και επαναλάβετε για το Β. Στα 90ns επιλέξτε το Α και πατήστε l ή 0 για να οδηγήσετε το Α σε λογικό 0. Επαναλάβετε για το Β στα 100ns. Ελέγξτε αν η συµπεριφορά του Υ είναι αυτή που περιµένατε για µια πύλη NAND. Αν όχι διορθώστε το σφάλµα στη σχηµατική περιγραφή και επαναλάβετε την εξοµοίωση. Εικόνα 2. Εξοµοίωση nand2{sch}. Ο δευτερεύων οδηγός χρησιµοποιείται για να µετράµε καθυστερήσεις ως προς τον πρωτεύοντα. Θα δείτε ότι όλες οι καθυστερήσεις των πυλών χωρίς φορτίο είναι πάνω από 100ps. Η καθυστέρηση των πυλών εξαρτάται από την χωρητικότητα που οδηγεί, έτσι µε την σύνδεση στον ακροδέκτη εξόδου ενός ρεαλιστικού φορτίου θα επιβραδύνει την πύλη. Αν τοποθετήσετε το παράθυρο εξοµοίωσης και το παράθυρο µε τη σχηµατική περιγραφή το ένα δίπλα στο άλλο(windows>adjust Position>Tile Vertically) µπορείτε να παρακολουθήσετε την αλλαγή των χρωµάτων των συρµάτων στο σχηµατικό ανάλογα µε το που βρίσκεται ο πρωτεύων οδηγός. Το µπλε αντιστοιχεί σε λογικό 0, το µοβ σε λογικό 1 και το µαύρο είναι η µη επιτρεπτή τιµή x. Η πορφυρή χοντρή µπάρα δηλώνει ότι η κατάσταση είναι απροσδιόριστη ή ότι είναι ασταθής. Με την βοήθεια του προσοµοιωτή µπορούµε να ανακαλύψουµε τα προβλήµατα του σχεδίου µας. Στις καλές συνήθειες συγκαταλέγεται και το να χρησιµοποιούµε την εξοµοίωση συχνά και για κάθε facet που δηµιουργούµε έτσι ώστε να ανακαλύπτουµε τα λάθη νωρίς.
Το Electric δεν τυπώνει απευθείας τις κυµατοµορφές. Για να εκτυπώσετε τα αποτελέσµατα των προσοµοιώσεων, πατήστε το πλήκτρο P ( Preserve ) όσο βρίσκεστε στο παράθυρο κυµατοµορφών. Αυτό θα δηµιουργήσει ένα facet µε το όνοµα nand2{sim} που περιέχει τις κυµατοµορφές. Ανοίξτε το facet και εκτυπώστε το. Φυσική Σχεδίαση (Layout). Αφού ολοκληρώσουµε τη σχηµατική περιγραφή περνάµε στη φυσική περιγραφή. Επιλέγουµε Facet>Edit Facet και στη συνέχεια New Facet. ίνουµε nand2 σαν το όνοµα και layout σαν view. Η τεχνολογία που θα χρησιµοποιήσουµε είναι η AMI 0.5µm process αλλά σε συνδυασµό µε τους MOSIS submicron βαθµωτούς κανόνες µπορούµε να την προσαρµόσουµε στην AMI 1.5µm process ή σε άλλη. Για να ορίσουµε την τεχνολογία υλοποίησης επιλέγουµε Technology>Change Current Technology και επιλέγουµε mocmos. Έπειτα επιλέγουµε Technology>Change Units και ορίζουµε το Lambda σαν 600 half-millimicrons δηλαδή 0.3µm (Το Lambda ορίζεται συνήθως σαν το µισό του ελάχιστου µήκους καναλιού πύλης που µπορεί να σχεδιαστεί. Αν και το ελάχιστο µήκος καναλιού πύλης είναι 0.6µm - δηλαδή το πλάτος του πολυπυριτίου η εταιρία που χαρακτηρίζει την τεχνολογία το αναφέρει µε τιµή 0.5µm). Χρησιµοποιούµε το Arc>New Arc Options για να ορίσουµε το πλάτος του metal-1 και του metal-2 σε 4 για διευκόλυνση του σχεδιασµού. Τέλος, στο Technology>Technology Options επιλέγουµε 3 metal layers, submicron rules, και alternate active and poly contact rules. Οι κανόνες MOSIS submicron βρίσκονται στο MOSIS web page. Η επιλογή Alternate Active and Poly contact rules χρησιµοποιεί παλαιότερο, άλλα πιο ευκρενές σύνολο σχεδιαστικών κανόνων που δεν χρησιµοποιούν διαστάσεις half-lambda. Σκοπός µας είναι να δηµιουργήσουµε κάτι σαν αυτό που φαίνεται στο Εικόνα 3. Είναι πολύ σηµαντικό να έχουµε µια συγκεκριµένη µεθοδολογία στη φυσική σχεδίαση έτσι ώστε τα κυκλώµατα που σχεδιάζουµε να µπορούν να µπαίνουν εύκολα το ένα δίπλα στο άλλο, όπως θα δούµε παρακάτω. Για τις ανάγκες του εργαστηρίου θα ακολουθήσουµε το εξής: η γραµµή τροφοδοσίας και η γείωση είναι σε metal-2 και υλοποιούνται σαν δύο παράλληλες γραµµές στην κορυφή και στη βάση του σχεδίου. εν βάζουµε τίποτε άλλο σε metal-2 µέσα στο σχέδιο. Τα τρανζίστορ τύπου n είναι κοντά στη βάση και τα τρανζίστορ τύπου p κοντά στην κορυφή. Κάθε κύκλωµα έχει τουλάχιστον από µια επαφή υποβάθρου και n-well. Καλό είναι να χρησιµοποιήσετε τον αναστροφέα σαν υπόδειγµα. Για να το πετύχετε αυτό χρησιµοποιήστε Edit>New Facet Instance και επιλέξτε inv{lay}. Αρχίστε φτιάχνοντας το τρανζίστορ τύπου n. Το τρανζίστορ τύπου n δηµιουργείται όταν πολυπυρίτιο περνά πάνω από n-diffusion. Τo n-diffusion αναπαριστάνεται στο Electric σαν πράσινο που περιβάλλεται από κίτρινες τελείες και όλο µέσα σε γραµµοσκιασµένο µαύρο p-well. Στο Electric το σχήµα αυτό είναι έτοιµο και υπάρχει στο αριστερό τµήµα (components) όπου βρίσκονται τα βασικά κυκλωµατικά στοιχεία. Καθώς το ποντίκι περνά πάνω από τα διάφορα κυκλωµατικά στοιχεία το όνοµα τους θα εµφανίζεται δίπλα στην λέξη NODE στο κάτω αριστερό τµήµα της οθόνης.
Εικόνα 3. nand2{lay}. Επιλέγουµε το nmos και το τοποθετούµε στο παράθυρο του layout. Με Edit>Rotate>90 Degrees Counterclockwise γυρίζουµε το τρανζίστορ έτσι ώστε το πολυπυρίτιο να είναι κάθετο (Εικόνα 4). Θέλουµε δύο nmos στην πύλη NAND και τα κάνουµε µεγαλύτερα για να έχουν την απόδοση που θέλουµε. Κάνουµε διπλό κλικ πάνω στο τρανζίστορ και κάνουµε το πλάτος του 12. Φτιάχνουµε ένα όµοιο τρανζίστορ µε Edit>Duplicate. Στη συνέχεια φέρνουµε τα δύο τρανζίστορ κοντά έτσι που µόλις να µην ακουµπάνε. Κάνουµε αριστερό κλικ στην υποδοχή του ενός και δεξί κλικ στην πηγή του άλλου. Στη συνέχεια φέρνουµε το ένα κοντά στο άλλο έτσι ώστε το πολυπυρίτιο των πυλών να απέχει 3λ (Εικόνα 5). Για να δούµε το πλέγµα χρησιµοποιούµε και πάλι Windows>Toggle Grid. Επίσης µπορούµε µε Windows>Grid Options να κάνουµε τα τρανζίστορ να στοιχίζονται σε 0.5λ ή 1λ. Η αρχική ρύθµιση του εργαλείου είναι τα αντικείµενα να στοιχίζονται στο 1-λ. Αν θέλουµε να το αλλάξουµε αυτό επιλέγουµε Windows>Alignment Options. Επίσης, µπορούµε να µετακινούµε τα αντικείµενα και µε τα βελάκια του πληκτρολογίου. Αν πατήσουµε το πλήκτρο h ή το f µπορούµε µε τα βελάκια να µετακινούµε τα αντικείµενα κατά µισό ή 1- λ αντίστοιχα. Εικόνα 4. Το τρανζίστορ nmos πριν και µετά την περιστροφή και την αλλαγή µεγέθους.
Εικόνα 5. Επαφές τρανζίστορ στο layout της nand2. Το Electric έχει ενσωµατωµένο έναν Design Rule Checker. Αν κάποια στοιχεία τοποθετηθούν πολύ κοντά θα αναφερθούν ως λάθη στο παράθυρο Electric Messages. Φέρτε τα τρανζίστορ σε απόσταση 2λ. Το λάθος θα αναφερθεί. Τοποθετήστε τα πάλι στη σωστή απόσταση (Οι κανόνες για τις ελάχιστες αποστάσεις των τρανζίστορ παρουσιάζονται στην Εικόνα 6). Το λάθος εξαφανίζεται (Σε περίπτωση που σας ενοχλεί ο συνεχής έλεγχος των κανόνων, µπορείτε να το απενεργοποιήσετε Tools>DRC>DRC Options, µε την µη επιλογή του on). Με την εντολή Tools>DRC>Hierarchical Check το Electric ελέγχει όλο το σχέδιο για λάθη. Σε περίπτωση αναφοράς λάθους µπορείτε να δείτε στο παράθυρο µηνυµάτων του Electric τα λάθη µε το πλήκτρο >. Σε πολύ µεγάλες σχεδιάσεις µπορείτε να ενεργοποιήσετε και τον υπερφωτισµό των λαθών (Tools>DRC>DRC Options, µε την επιλογή highlights errors). Εικόνα 6. Οι ελάχιστες αποστάσεις των pmos και nmos.
Λίγα λόγια για τους Κανόνες Φυσικής Σχεδίασης. Οι σχεδιαστικοί κανόνες είναι διαθέσιµοι στο MOSIS website. H MOSIS είναι µια υπηρεσία που συλλέγει µικρές σχεδιάσεις και τις συνδυάζει σε µια µεγαλύτερη παραγγελία, ωστε να συµφέρει η παραγωγή της σε ένα εργαστασιο ολοκληρωµένων (semiconductor manufacturing facility). Για µεγαλύτερη πυκνότητα σχεδίασης θα µπορούσαµε να βελτιστοποιήσουµε µια συγκεκριµένη διαδικάσια παραγωγής chip µε την σχεδίαση σε µονάδες microns αντί για lambda. Στην περίπτωση όµως που εισάγεται σε διαφορετική τεχνολογία η φυσική σχεδίαση απαιτεί επανασχεδίαση µιας οι σχεδιαστικοί κανόνες αλλά και τα µεγέθη των τρανζίστορ αλλάζουν. Η MOSIS έχει δηµιουργήσει ένα σύνολο απο βαθµωτούς σχεδιαστικούς κανόνες για τεχνολογίες CMOS (Scalable CMOS design rules) οι οποίοι είναι έξυπνα ορισµένοι για να δουλέυουν για όλες τις σχεδιάσεις. Οι γνήσιοι κανόνες, SCMOS, εφαρµόζονται σε παλαιότερες τεχνολογίες. Εµείς θα χρησιµοποιήσουµε τους SUBM submicron rules που είναι πιο συντηριτικοί και επαρκούν για πιο ανώτερες τεχνολογίες. Οι κανόνες αυτοί έχουν ιοθετηθεί τόσο από την AMI 0.5 και 1.5 micron τεχνολογίες. Τελικά, η DEEP deep submicron κανόνες σχεδίασης είναι ελαφρώς πιο συντηριτικοί και χρειάζονται για καλύτερη απόδοση σε τεχνολογίες 0.25 µm και χαµηλότερες τεχνολογίες. Για ιστορικούς λόγους, και τα τρία σύνολα κανόνων επιλέγονται απο στο Electric µε την επιλογή scmossub process, από το Technology Options παράθυρο. Οι πίνακες 3 και 4 on the MOSIS web page παρουσιάζουν τις διαφορές µεταξύ των σχεδιαστικών κανόνων. http://www.mosis.org/technical/designrules/scmos/scmos-main.html Εµείς θα σχεδιάσουµε για παραγωγή µε τη χρήση του SCNE τεχνολογικού κώδικα που ορίζεται στον Πίνακα 5 της ιστιοσελίδας. Το ακρώνυµο SCNE σηµαίνει Scalable CMOS µε N-wells και έναν Electrode layer, π.χ. polysilcon 2. Κάντε κλικ σε κάθε στρώµµα (layer) για να δείτε τους σχεδιαστικούς κανόνες. Για παράδειγµα, οι σχεδιαστικοί κανόνες για το Metal1 παρουσιάζεται στην Εικόνα 7. Θα ακολουθήσουµε το σύνολο σχεδιαστικών κανόνων SUBM, που απαιτεί ελάχιστο πλάτος metal και απόσταση 3µ. Κανόνας Περιγραφή Lambda SCMOS SUBM DEEP 7.1 Minimum width 3 3 3 7.2 Minimum spacing 2 3 3 7.3 Minimum overlap of any contact 1 1 1 7.4 Minimum spacing when either metal line is wider than 10 lambda 4 6 6 Πίνακας. SCMOS Κανόνες Σχεδίασης - Metal1.
Εικόνα 7. SCMOS Metal1 Κανόνες σχεδίασης. Στη συνέχεια θα δηµιουργήσουµε επαφές από την περιοχή n-diffusion στο metal1. Η περιοχή διάχυσης (diffusion) αναφέρεται και ως ενεργός περιοχή (active area). Τοποθετήστε µια τετράγωνη Metal-1-N-Active-Contact. Αλλάξτε το µέγεθός της κατά τον Υ άξονα σε 12. Φτιάξτε µια ακόµη για την άλλη πλευρά του n-diffusion. Φέρτε τις κοντά στο n-diffusion και ενώστε τις µε το n-diffusion µε ένα σύρµα από diffusion. Στη συνέχεια φέρτε τις κοντά στο πολυπυρίτιο. Αρκεί κενό 1λ. Με τον ίδιο τρόπο υλοποιούµε και το κοµµάτι µε τρανζίστορ τύπου-p. Τελικά πρέπει να έχετε κάτι που να µοιάζει µε την Εικόνα 5. Οι απλοποιηµένοι κανόνες βασισµένοι στο lambda παρουσιάζονται στην Εικόνα 8. Εικόνα 8. Κανόνες σχεδίασης. Σχεδιάστε τα σύρµατα πολυπυριτίου που ενώνουν τις πύλες και αποτελούν τις εισόδους Α και Β καθώς και το σύρµα σε metal1 που αποτελεί την έξοδο Υ. Στη συνέχεια τοποθετήστε τους αγωγούς της τάσης τροφοδοσίας και της γείωσης. Για να το πετύχετε αυτό τοποθετήστε δύο metal2 pins και στη συνέχεια ενώστε τα µε metal2. Προσέξτε να βρίσκονται σε απόσταση 80λ όπως έχουµε ορίσει. Στη συνέχεια κάντε κλικ στην επαφή metal1-n-diffusion της πηγής του τρανζίστορ τύπου-n που πρέπει να συνδεθεί µε την γείωση και στη συνέχεια δεξί κλικ στο metal2 της γείωσης. Έτσι θα δηµιουργηθεί µια via που έχει άσπρο χρώµα. Συµπληρώστε την σύνδεση µε µέταλλα των τρανζίστορ. Επιπλέον πρέπει να τοποθετήσουµε επαφές υποστρώµατος. Οι επαφές υποστρώµατος
είναι απαραίτητες για να διασφαλίσουµε ότι οι δίοδοι ανάµεσα στα wells και τις περιοχές διαχύσεως της πηγής/υποδοχής του τρανζίστορ είναι ανάστροφα πολωµένες. Για να γίνει αυτό πρέπει να τοποθετήσουµε τις επαφές και να τις συνδέσουµε µε την τάση τροφοδοσίας (p-well contact) ή µε την γείωση (n-well contact). Η σύνδεση γίνεται µέσω metal1 και vias (βλέπε Εικόνα 9). Εικόνα 9. Το p-well contact και n-well contact. Στη µεθοδολογία σχεδίασης θέλουνε να ενώνουµε τις γειτονικές πύλες µε γραµµές metal2. Αλλά το metal2 δεν µπορεί να συνδεθεί κατευθείαν µε το πολυπυρίτιο. Για να το πετύχουµε αυτό δηµιουργούµε επαφές από πολυπυρίτιο σε metal1. Έτσι διευκολύνουµε τον µετέπειτα σχεδιασµό. Αν το Electric δεν δηµιουργεί σύρµα του τύπου που θέλετε αλλά σε κάποιο άλλο επίπεδο επιλέξτε αυτό που θέλετε από τα components. Μια καλή ιδέα είναι να φτιάξουµε τους αγωγούς της τάσης τροφοδοσίας και της γείωσης κάπως µεγαλύτερους αφού άγουν το ρεύµα που φορτίζει ή αποφορτίζει όλους τους πυκνωτές. Οι αγωγοί τροφοδοσίας είναι οριζόντιοι σε metal2 και απέχουν 80λ από κέντρο σε κέντρο. Για να µετρήσετε µια απόσταση µπορείτε να χρησιµοποιήσετε την επιλογή Info > Measure Distance (Shift + M) και να κάνετε κλικ στα σηµεία που σας ενδιαφέρουν. Για να απενεργοποιήσετε την επιλογή πατάτε ξανά Shift + M ή επιλέγετε Info > Stop Measure Distance. Τέλος ορίζουµε τους ακροδέκτες (exports) του κελιού. Όπως και στην περίπτωση της σχηµατικής περιγραφής, κάνουµε αριστερό κλικ κοντά στην άκρη του αγωγού που θέλουµε να ορίσουµε ως ακροδέκτη του κυκλώµατος και ακολουθούµε την ίδια διαδικασία ορίζοντας το όνοµα και την φορά. Με αυτό τον τρόπο ορίζουµε τις εισόδους Α και Β και την έξοδο Υ. Επίσης ορίζουµε σαν ακροδέκτες τον αγωγό της τάσης τροφοδοσίας και τον αγωγό της γείωσης µε ονόµατα vdd και gnd µε τύπους power και ground αντίστοιχα (χρησιµοποιούµε αυστηρά την ονοµατολογία αυτή για όλες τις γραµµές τροφοδοσίας και γείωσης). Η επιλογή facet center µοιάζει µε έναν µικρό σταυρό και υποδεικνύει ένα σηµείο αναφοράς για το κελί. Τοποθετώντας ένα facet center αποτρέπουµε κάποια off-grid λάθη στο Electric. Αν δεν υπάρχει ήδη, τοποθετήστε ένα facet center στην κάτω αριστερή γωνία της εικόνας (πάνω στον ακροδέκτη gnd ) χρησιµοποιώντας την επιλογή Edit> New Special Object> Facet Center. Αν αφήσετε και προσπαθήσετε να επιλέξετε ξανά τον σταυρό θα δείτε ότι είναι δύσκολο να τον µετακινήσετε. Το facet center είναι αρχικά ρυθµισµένο στην επιλογή hard to select. Για να επιλέξετε ένα κόµβο µε την
επιλογή hard to select σε ένα µηχάνηµα µε Windows, κρατήστε το πλήκτρο Alt ενώ κάνετε κλικ. Χρησιµοποιώντας facet centers σε όλα τα icons και layout facets θα αποφύγετε χαζά off-grid λάθη στην δουλεία σας. Το σχέδιοo σας πρέπει να µοιάζει µε την Εικόνα 3 και να περνάει χωρίς λάθη DRC. Το Electric έχει τη δυνατότητα να παρουσιάσει το layout σε 3D. Επιλέγοντας Windows>3D Display>View in 3D µπορείτε να δείτε µια τρισδιάστατη άποψη του κυκλώµατος. Όταν θέλετε να επιστρέψετε στην προηγούµενη κατάσταση επιλέξτε Windows>3D Display>View in 2D. Επαλήθευση της Φυσικής Σχεδίασης. Η επαλήθευση της φυσικής σχεδίασης είναι πιο περίπλοκη από αυτή της σχηµατικής σχεδίασης. Οι έλεγχοι περιλαµβάνουν Design Rule Checks (DRC), Electrical Rule Checks (ERC), Network Consistency Checking και προσοµοίωση. Πρώτα πρέπει να ελέγξετε ότι ικανοποιούνται όλοι οι κανόνες σχεδιασµού (DRC) µε την χρήση ιεραρχικού ελέγχου (hierarchical DRC). Επιλέξτε Tools>DRC>Hierarchical Check (F1) και διορθώστε όποια λάθη τυχόν υπάρχουν. Στη συνέχεια επιλέξτε Tools>Electrical Rules>Analyze Wells (F2). Αυτός ο έλεγχος επιβεβαιώνει ότι κάθε n-well έχει επαφή µε το vdd και κάθε p-well µε το gnd. Επίσης αναφέρει τον αριθµό των τρανζίστορ που αναγνωρίστηκαν. Πρέπει να δείτε δύο nmos και δύο pmos για την πύλη NAND. Θα δείτε επίσης και την µέγιστη απόσταση τµηµάτων των wells από τις αντίστοιχες επαφές. Αν είναι µεγαλύτερη από 100 πρέπει να βάλετε και άλλες επαφές για να αποφύγετε φαινόµενα latch-up. Συχνά, λάθη ERC έχουµε αν ξεχάσουµε να ορίσουµε τα vdd και gnd, ή αν τα δώσουµε διαφορετικό όνοµα ή τύπο ακροδέκτη. Στη συνέχεια χρησιµοποιούµε τον προσοµοιωτή όπως και στην περίπτωση των σχηµατικών για να επιβεβαιώσουµε την λειτουργία του κυκλώµατος. Το Electric έχει τη δυνατότητα να ελέγξει αν η σχηµατική και η φυσική περιγραφή είναι ισοδύναµες (Layout Versus Schematic LVS). Στο Electric η δυνατότητα αυτή λέγεται Network Consistency Checker (NCC). Εάν είναι ισοδύναµα τότε ξέρετε ότι δεν υπάρχει κάποιο πρόβληµα στη φυσική σχεδίαση. Αν δεν είναι ισοδύναµα τότε δεν έχει ιδιαίτερη αξία να κοιτάξετε τα λάθη που αναφέρει. Περιπλέκει περισσότερο από ότι βοηθά. Τέλος το NCC υλοποιεί έναν περίπλοκο αλγόριθµο που δεν είναι σίγουρο ότι έχει µεταφερθεί σωστά. Πολλά bugs έχουν αναφερθεί σε αυτή την περιοχή. Με το Facets>Edit Facet ελέγχουµε αν µόνο τα facets nand2{sch} και nand2{lay}είναι ανοιχτά. Κλείνουµε όλα τα άλλα αλλιώς δεν πρόκειται να τρέξει σωστά το NCC. Για να χρησιµοποιήσουµε το NCC επιλέγουµε Tools>Network>Ncc Control and options... Επιλέγουµε για όλα τα facet τα Recurse through hierarchy, Check export names, Check component sizes, και Ignore Power and Ground. Στη συνέχεια επιλέγουµε Do NCC. Αν έχουµε ισοδύναµες περιγραφές τότε θα δούµε: Comparing facet nand2{lay} with facet nand2{sch} - Flattening hierarchy; Ignoring Power and Ground nets - Parallel components not merged; Series transistors not merged
- Checking export names and component sizes - No facet overrides Extracting networks from nand2{lay}... Extracting networks from nand2{sch}... Facet nand2{lay} has 4 components, 4 nets; facet nand2{sch} has 4 components, 4 nets Facets nand2{lay} and nand2{sch} are equivalent (0.11 seconds) Το µήνυµα αυτό δείχνει ότι το layout και το schematic έχουν από 4 συνιστώντα µέρη, τα 2 nmos και τα 2 pmos τρανζίστορς. Έχουν, επίσης, και τα δυο από 4 nets: A, B, Y, και το καλώδιο ανάµεσα στα εν σειρά nmos. Σηµειώστε ότι τα vdd και ground έχουν αγνοηθεί και για το λόγο αυτό δεν αναφέρεται κάτι. Ο έλεγχος NCC δείχνει ότι τα facets είναι ισοδύναµα. Σε περίπτωση που υπάρχουν λάθη πρέπει µεθοδικά να προσπαθήσετε να τα διορθώσετε. Σας παραθέτουµε κάποια κλασσικά λάθη: Για να γίνει ο NCC έλεγχος πρέπει µόνο τα παράθυρα των layout και schematic facets να είναι ανοιχτά. Οι ονοµατολογία των Port πρέπει να είναι ίδια και να έχει την ίδια σειρά. Για παράδειγµα η σειρά των εν σειρά nmos τρανζίστορς στην NAND παίζει ρόλο. Η µια είσοδος είναι πιο κοντά στο gnd από την άλλη. Αν οι είσοδοι Α και Β είναι στην ανάποδη θέση στο layout από ότι στο schematic, θα δείτε το µήνυµα: ******* Export differences have been found! (0.01 seconds) Αν πατήσετε το πλήκτρο > για να δείτε τα λάθη µέχρι και το τελευταίο, θα δείτε τις εισόδους υπερφωτισµένες και το ακόλουθο µήνυµα θα έχει εµφανιστεί: NCC: Export names 'nand2{sch}:b' and 'nand2{lay}:a' do not match NCC: Export names 'nand2{sch}:a' and 'nand2{lay}:b' do not match Τα µεγέθη των τρανζίστορς πρέπει να συµφωνούν. Αν έχετε ξεχάσει να ορίσετε τους ακροδέκτες vdd και gnd στο layout αυτό θα προκαλέσει πολλά λάθη. Να είστε βέβαιοι ότι το Ignore Power and Ground επιλογή στο NCC είναι επιλεγµένη. Σε άλλη περίπτωση θα δείτε το µήνυµα: Note: facet flop{lay} has 1 power and 1 ground net(s), while facet flop{sch} has 0 power and 0 ground net(s) Ένα ακόµη χρήσιµο εργαλείο για να ανιχνεύουµε τα λάθη είναι το NCC Preanalysis. Το εργαλείο αυτό καταγράφει όλα τα συνιστώντα µέρη (components) και δίκτυα-καλώδια(networks) µέσα σε µια σχεδίαση. Πρέπει αν περιµένετε ίσους αριθµούς από διασυνδέσεις στο layout και το schematic, Έτσι κοιτώντας για διαφορές µπορείτε να προβλήµατα στην σχεδίαση σας. οκιµάστε να τρέξετε την Preanalysis σε µια καλή σχεδίαση για να δείτε πως είναι µια σωστή αναφορά όταν όλα είναι σωστά, ώστε να µπορείτε να διαβάζετε πιο αποδοτικά µια αναφορά που θα περιέχει πολλά λάθη. Μπορείτε να ενεργοποιήσετε την επιλογή Verbose NCC (text) ή (graphics) στο παράθυρο NCC options για να έχετε πληροφορία πως το NCC ψάχνει να ταιριάξει τα συνιστώντα µέρη του layout και του schematic.
Ιεραρχική σχεδίαση. Με την ολοκλήρωση του σχεδιασµού της πύλης NAND δύο εισόδων, µπορούµε να προχωρήσουµε στο σχεδιασµό της πύλης AND δύο εισόδων µε τη βοήθεια και του αναστροφέα. Όπως είδαµε η φυσική σχεδίαση µιας πύλης είναι µάλλον χρονοβόρα. Γιαυτό θέλουµε να αποφύγουµε να σχεδιάζουµε πύλες σε φυσικό επίπεδο όπου είναι δυνατόν και χωρίς να µειώνουµε πολύ την απόδοση του κυκλώµατος. Κάθε σχηµατική περιγραφή έχει ένα αντίστοιχο σύµβολο(icon) όπως είδαµε στη λογική σχεδίαση, που χρησιµεύει για την αναπαράσταση της λογικής πύλης σε υψηλότερα επίπεδα περιγραφής. Θα δηµιουργήσουµε κάτι τέτοιο και για την πύλη NAND που µόλις σχεδιάσαµε. Ανοίγουµε το nand2{sch} και επιλέγουµε View>Make Icon. Το Electric δηµιουργεί ένα απλό σύµβολο µε βάση τους ορισµένους ακροδέκτες που µοιάζει µε την Εικόνα 10. Στο σηµείο αυτό κάνουµε κλικ στο icon και επιλέγουµε Facets> Down Hierarchy για να τοποθετήσει το icon µέσα στο nand2{ic}. Εικόνα 10. nand2{ic} Βέβαια η σχηµατική περιγραφή διαβάζεται ευκολότερα αν έχουµε τα γνωστά µας σύµβολα αντί των παραλληλογράµµων που παράγει το Electric. Έτσι µετατρέπουµε τα σύµβολα σε κάτι σαν την Εικόνα 11. Εικόνα 11. Τελική µορφή nand2{ic} Αλλάζουµε την τεχνολογία (Technology>Change Current Technology) σε artwork. Εµφανίζεται ένας επιλογέας µε διάφορα σχήµατα. Σβήνουµε το παραλληλόγραµµο που τοποθέτησε το Electric προσέχοντας να µην σβήσουµε τους ακροδέκτες. Στη συνέχεια δηµιουργούµε το καινούριο σύµβολο. Χρησιµοποιούµε ένα ηµικύκλιο, έναν κύκλο και ένα ανοιχτό πολύγωνο. Για να υλοποιήσουµε το ηµικύκλιο επιλέγουµε ένα κύκλο και µε διπλό κλικ ορίζουµε το µέγεθος του σε 6x6
και την κάλυψη σε 180 ο. Ορίζουµε το µέγεθος του δεύτερου κύκλου σε 1x1 και τον τοποθετούµε αφού ορίσουµε την ακρίβεια σε 0.5. Στη συνέχεια επιλέγουµε και τοποθετούµε ένα ανοιχτό πολύγωνο. Το επιλέγουµε και µε Edit>Special Function>Outline Edit τροποποιούµε το σχήµα του στο επιθυµητό. Με λίγη προσπάθεια µέχρι να συνηθίσετε αυτόν τον τρόπο ορισµού του σχήµατος του δίνουµε το σχήµα που θέλουµε. Στη συνέχεια µε Edit>Special Function>Exit Outline Edit κλείνουµε αυτή τη διαδικασία. Αν έχουµε κάνει λάθος, σβήνουµε το λάθος σχήµα και αρχίζουµε από την αρχή. Ιδιαίτερη προσοχή χρειάζεται όταν µετακινούµε τους ακροδέκτες. Χρησιµοποιείστε το αντικείµενο Text από την παλέτα του artwork και τοποθετήστε µια ετικέτα nand2 στo κέντρο του icon. Τώρα έχουµε ένα σύµβολο µε τρεις ακροδέκτες δηµιουργούµε µια σχηµατική άποψη µε το όνοµα and2. Αλλάζουµε την τεχνολογία σε schematic, analog αφού δουλεύουµε σε σχηµατικό επίπεδο και πάλι. Χρησιµοποιούµε το Edit>New Facet Instance για να δηµιουργήσουµε ένα nand2{ic} και inv{ic}. Τα ενώνουµε µε wires και ορίζουµε τους ακροδέκτες σαν Α, Β και Υ (βλέπε Εικόνα 12). Ορίζουµε τον κόµβο ανάµεσα στις δύο πύλες σαν ΥΒ για να µπορούµε να το παρακολουθούµε κατά τη διάρκεια της προσοµοίωσης. Χρησιµοποιήστε τον εξοµοιωτή για να βεβαιωθείτε ότι η πύλη λειτουργεί σωστά. Χρησιµοποιήστε την εντολή Tools>Simulation>Down Hierarchy για να δείτε τις εσωτερικές κυµατοµορφές κάθε πύλης. Οι δύο πύλες που χρησιµοποιήσατε έχουν ονοµαστεί NODE4 και NODE5 από το Electric. Με διπλό κλικ δώστε τους ονόµατα που θα σας επιτρέπουν να τις ξεχωρίζετε. Εικόνα12. and2{sch} Στη συνέχεια δηµιουργήστε ένα καινούργιο layout που ονοµάζεται and2{lay}. Αλλάξτε την τεχνολογία σε mocmos. Αρχικά οι φυσικές περιγραφές φαίνονται σαν δυο µαύρα κουτιά µε ακροδέκτες. Επιλέξτε και τα δύο και δείτε τη φυσική περιγραφή µε Facet>Expand Facet Instances>All the Way. Συνδέστε τους αγωγούς της τροφοδοσίας και της γείωσης. Φέρτε τις δύο πύλες όσο πιο κοντά σας επιτρέπουν οι κανόνες σχεδιασµού (DRC). Ενώστε την έξοδο της NAND µε την είσοδο του αναστροφέα µε metal1. Ορίστε σαν ακροδέκτες Α, Β, Υ και τους αγωγούς τροφοδοσίας. Επιβεβαιώστε τη σωστή λειτουργία µε DRC, ERC και εξοµοίωση. Τέλος, ελέγχουµε τη σχηµατική περιγραφή σε σχέση µε τη φυσική περιγραφή. Υπάρχουν τρεις δυνατότητες: Check current facet only, Flatten Hierarchy, και Recursively check subfacets. Μην χρησιµοποιείτε την πρώτη. Η χρήση των δύο άλλων είναι ισοδύναµη αλλά η Flatten Hierarchy δηµιουργεί µια τεράστια περιγραφή του κυκλώµατος που σε µεγαλύτερα κυκλώµατα δεν θα δουλέψει. Πριν τρέξετε το NCC πατήστε το πλήκτρο Clear Valid NCC Dates για να βεβαιωθείτε ότι θα ελεγχθεί όλο το κύκλωµά σας. Τώρα που έχει ολοκληρωθεί ο σχεδιασµός της πύλης AND χρησιµοποιήστε το Info>Check and Repair Libraries για οποιεσδήποτε ανωµαλίες στη βιβλιοθήκη σας. εν πρέπει να υπάρχουν αλλά καλό είναι να γίνεται αρκετά συχνά λόγω της αστάθειας του Electric.
Σχεδιασµός πυλών NOR/OR. Ο επεξεργαστής MIPS υποστηρίζει την εντολή OR όπως και την AND. Με ανάλογο τρόπο να γίνει ο σχεδιασµός των πυλών NOR/OR δύο εισόδων. Να τις ονοµάσετε nor2 και or2. Τα pmos πρέπει να έχουν πλάτος 16 και τα nmos 4. Σηµειώσεις. Πληροφορίες. ιδάσκων : Σταµούλης Γεώργιος georges@uth.gr Εργαστήριο WebSite Μαθήµατος : Νέστορας Ευµορφόπουλος Καραµπατζάκης ηµήτρης : http://support.inf.uth.gr/courses/ce330/ nestevmo@my.ntua.gr ofni@uth.gr