Εργασία Μικροηλεκτρονικής 2013-2014 Θέμα: Σχεδίαση και Ανάλυση CMOS Αντιστροφέα και CMOS Λογικών Κυκλωμάτων στο SPICE Ονοματεπώνυμο: Αλέξανδρος Γεώργιος Μουντογιαννάκης Σχολή: Τμήμα Επιστήμης Υπολογιστών ΑΠΘ ΑΕΜ: 1938 12 Φεβρουαρίου 2014 1
1 Περίληψη Η εργασία έγινε στα πλαίσια του μαθήματος της Μικροηλεκτρονικής με σκοπό αρχικά την εκμάθηση του προσωμοιωτή ηλεκτρικών κυκλωμάτων SPICE και στη συνέχεια την σχεδιάση και ανάλυση βασικών κυκλωμάτων, σχετικών με δημιουργία λογικών συνδυαστικών πυλών, βασισμένων σε MOSFET. Η εργασία υλοποιήθηκε εξ ολοκλήρου στο πρόγραμμα PSpice και τα αποτελέσματα που προέκυψαν σχετίζονται με την εύρεση του πίνακα αληθείας, ανάλογα με την ενίοτε κατάσταση των PMOS και NMOS. Η ορθή κατάληξη των αποτελεσμάτων συνεπάγεται την επαλήθευση της σχεδίασης του λογικού κυκλώματος. 2 Εισαγωγή Το αντικείμενο που έχουμε να μελετήσουμε είναι το εξής: Το πρώτο στάδιο είναι η υλοποίηση ενός στοιχειώδους ψηφιακού λογικού αντιστροφέα CMOS, ενός κυκλώματος με 2 ταιριασμένα MOSFET πύκνωσης. Στη συνέχεια, με βάση τον αντιστροφέα που υλοποιήσαμε, πρέπει να σχεδιάσουμε δύο κυκλώματα, ανάλογα με τις λογικές εκφράσεις που μας ζητούνται. Το κύριο πρόβλημα που αντιμετωπίζουμε αφορά την σωστή συνδεσμολογία των τρανζίστορ PMOS και NMOS, καθώς μόνο με απόλυτα σωστή συνδεσμολογία μπορούν να προκύψουν τα σωστά αποτελέσματα. Μετά το τέλος της συνδεσμολογίας, πρέπει να δοθούν σε όλες τις παλμογεννήτριες συγκεκριμένες τιμές, έτσι ώστε να καλύπτουν όλο το εύρος των πιθανών τιμών ενός λογικού πίνακα. Τέλος, αφού μιλάμε για ηλεκτρικά κυκώματα, η υλοποίησή τους πρέπει να γίνει πάντα σε ορθά ηλεκτρολογικά πλαίσια, που σημαίνει ότι το σύνολο των PMOS πρέπει να συνδέεται με πηγή VDD και το σύνολο των NMOS με γείωση. Σκοπός όλων αυτών είναι να προκύψει ένα διάγραμμα με άξονα x από 0 έως την μέγιστη τιμή περιόδου που έχουμε αναθέσει σε μία παλμογεννήτρια. Ο άξονας των y υποδεικνύει την τάση κάθε στιγμής στο σημείο του κυκλώματος που έχουμε θέσει εμείς. Αν το σημείο αυτό είναι η τάση Vout στο τέλος του κυκλώματος, το διάγραμμα που προκύπτει αντιστοιχεί στον πίνακα αληθείας του λογικού κυκλώματος. 3 Κύριο Μέρος Εργαλεία που χρησιμοποιήθηκαν: το πρόγραμμα PSpice για την υλοποίηση και ανάλυση κυκλωμάτων και το πρόγραμμα Logisim (διδάχτηκε στα πλαίσια της Ψηφιακής Σχεδίασης) για την εξαγωγή πινάκων αληθείας και ελαχιστοποίησης εκφράσεων. Για το μοντέλο των τρανζίστορ χρησιμοποιήθηκε η βιβλιοθήκη TSMC180.lib. Αρχεία στο CD: Η υποχρεωτική άσκηση είναι η Project.sch, η εργασία 3α 2
είναι η Exercise3a2.sch και η εργασία 3β είναι η Exercise3b.sch. Ανάμεσα στα αρχεία που είναι απαραίτητα για τη λειτουργία των προσομοιώσεων, βρίσκεται και η βιβλιοθήκη TSCM180.lib. Μεθοδολογία Υποχρεωτικής Άσκησης: Αφού επιλέχτηκε το Directory του Project και αποθηκεύτηκε εκεί η βιβλιοθήκη μας, ξεκινήσαμε την υλοποίηση του αντιστροφέα CMOS. Τοποθετούμε σε ένα νέο αρχείο του PSpice Schematics μία παλμογεννήτρια για την οποία όταν θέτουμε V 1 = 1.8V, V 2 = 0, αντιστοιχούν 2 ακραίες περιπτώσεις: όταν η τάση εισόδου είναι στη στάθμη του λογικού 0, δηλαδή όταν V in = 0 και όταν η τάση εισόδου είναι στη στάθμη του λογικού 1, δηλαδή όταν V in = V dd = 1.8V. Τέλος, συνδέουμε τον αρνητικό ακροδέκτη της παλμογεννήτριας με μία γείωση. Αφού ρυθμίσαμε την παλμογεννήτρια, χωρίζουμε το συνδεδεμένο με τον θετικό ακροδέκτη καλώδιο σε 2 μέρη, όπου στο πάνω μέρος το καλώδιο συνδέεται με το gate του PMOS (στο PSpice επιλέγουμε το αντικείμενο MbreakP) και το κάτω με το gate του NMOS (MbreakN). Αναθέτουμε στα MOSFET τις απαραίτητες παραμέτρους που δόθηκαν στην εκφώνηση της εργασίας. Μία πύλη CMOS είναι ένας συνδυασμός δύο δικτύων, του pull-up network(pun) και του pulldown network(pdn). Η λειτουργία του PUN είναι να παρέχει μία σύνδεση μεταξύ της εξόδου και της V dd, κάθε φορά που η έξοδος της λογικής πύλης είναι 1. Ομοίως, η λειτουργία του PDN είναι να συνδέει την έξοδο με τη γείωση, όταν η έξοδος της λογικής πύλης προορίζεται να είναι 0. Συνδέουμε στο πάνω μέρος του PMOS τον θετικό ακροδέκτη μιας V dd πηγής (στο PSpice επιλέγουμε το αντικείμενο VDC) και στο κάτω μέρος του NMOS μία γείωση. Σε αυτά τα μέρη έχουμε σταθερή τάση και τα άκρα αυτά αποτελούν το source μέρος των MOSFET. Η τάση εξόδου V out προκύπτει στην ένωση του κάτω άκρου του PMOS με το πάνω άκρο του NMOS, δηλαδή των drain. 3
Αντιστροφέας CMOS Ο κώδικας SPICE για την υλοποίηση του συγκεκριμένου κυκλώματος είναι: V Vin $N 0001 0 +PULSE 1.8V 0 0 0.1p 0.1p 1n 2n M M1 $N 0002 $N 0001 Vout $N 0002 MpTSMC180 + W=720n + AD=0.324p + AS=0.324p + PD=2340n + PS=2340n V VDD $N 0002 0 1.8V M M2 Vout $N 0001 0 0 MnTSMC180 + W=360n + AD=0.162p 4
+ AS=0.162p + PD=1620n + PS=1620n Μεθοδολογία Άσκησης 3α: Στην δεύτερη άσκηση μας ζητείται η μεταφορά της λογικής έκφρασης F = A(B + CD) σε λογικό κύκλωμα, με βάση τον αντιστροφέα που δημιουργήσαμε στην πρώτη άσκηση. Η φιλοσοφία σχεδίασης είναι η ίδια με του αντιστροφέα μίας εισόδου: τοποθετούμε 4 παλμογεννήτριες, μία για κάθε είσοδο. Τοποθετούμε ακόμα 4 PMOS και 4 NMOS (ο μικρότερος αριθμός απο τρανζίστορ που χρειάζονται για να κατασκευαστεί μία λογική πύλη Ν εισόδων είναι 2Ν) και τα συνδέουμε με την αντίστοιχη παλμογεννήτρια. Τώρα θέλουμε να συνδέσουμε τα MOSFET με τέτοιο τρόπο, ώστε το κύκλωμα να έχει ως έξοδο τον λογικό πίνακα της έκφρασης. Οπως αναφέραμε και παραπάνω, το PUN αποτελείται από το σύνολο των PMOS και το PDN από το σύνολο των NMOS. Για την κατασκευή λογικών εκφράσεων ορίζονται συγκεκριμένοι κανόνες. Οταν τα NMOS είναι συνδεδεμένα σε σειρά ανταποκρίνονται στην AND λειτουργία, ενώ όταν είναι παράλληλα αναποκρίνονται στην OR λειτουργία. Παρόμοιοι κανόνες ισχύουν και για τα PMOS: όταν τα PMOS είναι συνδεδεμένα σε σειρά ανταποκρίνονται στη NOR (A B = A + B) ενώ όταν είναι συνδεδεμένα παράλληλα, ανταποκρίνονται στη NAND (A + B = A B). Είναι αυτονόητο ότι τα PUN και PDN είναι συμπληρωματικά (complementary). Το πρώτο βήμα για την υ- λοποίηση του κυκλώματός μας είναι η παραγωγή του PDN. Ονομάζουμε όλα τα NMOS X2, όπου X το όνομα της εισόδου. Ξεκινάμε από το τέλος της έκφρασης και μετακινούμαστε προς την αρχή. Συνδέουμε το C2 με το D2 σε σειρά, δηλαδή ενώνουμε το κάτω άκρο του C2 με το πάνω άκρο του D2 και ενώνουμε το κάτω άκρο του D2 με μία γείωση. Ετσι, προκύπτει η λογική έκφραση C D. Για την OR ενώνουμε το πάνω άκρο του B2 με το πάνω άκρο του ενωμένου σε σειρά C2 D2 (παράλληλα) και έχουμε την έκφραση B + C D. Επίσης, πρέπει να συνδέσουμε το κάτω άκρο του B2 στην γείωση που έχουμε νωρίτερα τοποθετήσει. Τέλος, ενώνουμε το κάτω άκρο του A2 με τα πάνω άκρα του B2 και C2 D2 και, όσον αφορά τα NMOS, έχουμε παράγει το A(B + CD), το οποίο είναι η έξοδος του πάνω άκρου του A2. Για να προκύψει η λογική έκφραση αντεστραμμένη, πρέπει να σχεδιάσουμε και το PUN. Ονομάζουμε όλα τα PMOS X1, όπου X το όνομα της εισόδου. Η λογική είναι όμοια και αντίστροφη με αυτής της κατασκευής του PDN: τα κάτω άκρα των C1 και D1 συνέονται παράλληλα και το κοινό τους μέρος συνδέεται στο πάνω άκρο του B1 σε σειρά. Τα κάτω άκρα του B1 και A1 συνδέονται παράλληλα και οδηγούν προς την τάση εξόδου V out, όπως και το πάνω άκρο του A2, δηλαδή του PDN που κατασκευάσαμε πριν. Τα πάνω άκρα των D1, C1 και A1 είναι συνδεδεμένα με τον θετικό πόλο της V dd = 1.8V. 5
CMOS Κύκλωμα A(B + CD) Ο κώδικας SPICE για την υλοποίηση του συγκεκριμένου κυκλώματος είναι: V B $N 0001 0 +PULSE 1.8V 0 0 0.1p 0.1p 4n 8n V D $N 0002 0 +PULSE 1.8V 0 0 0.1p 0.1p 1n 2n V C $N 0003 0 +PULSE 1.8V 0 0 0.1p 0.1p 2n 4n M C2 $N 0005 $N 0003 $N 0004 $N 0004 MnTSMC180 + W=1080n + AD=0.486p + AS=0.486p + PD=3060n + PS=3060n V A $N 0006 0 6
+PULSE 1.8V 0 0 0.1p 0.1p 8n 16n M B2 $N 0005 $N 0001 0 0 MnTSMC180 + W=1080n + AD=0.486p + AS=0.486p + PD=3060n + PS=3060n M A2 Vout $N 0006 $N 0005 $N 0005 MnTSMC180 + W=1080n + AD=0.486p + AS=0.486p + PD=3060n + PS=3060n M B1 $N 0007 $N 0001 Vout $N 0007 MpTSMC180 + W=1440n + AD=0.648p + AS=0.648p + PD=3780n + PS=3780n M C1 $N 0008 $N 0003 $N 0007 $N 0008 MpTSMC180 + W=1440n + AD=0.648p + AS=0.648p + PD=3780n + PS=3780n M D1 $N 0008 $N 0002 $N 0007 $N 0008 MpTSMC180 + W=1440n + AD=0.648p + AS=0.648p + PD=3780n + PS=3780n M A1 $N 0008 $N 0006 Vout $N 0008 MpTSMC180 + W=1440n + AD=0.648p + AS=0.648p 7
+ PD=3780n + PS=3780n V VDD $N 0008 0 1.8V M D2 $N 0004 $N 0002 0 0 MnTSMC180 + W=1080n + AD=0.486p + AS=0.486p + PD=3060n + PS=3060n Μεθοδολογία Άσκησης 3β: Στην τρίτη άσκηση μας ζητείται η μεταφορά της λογικής έκφρασης F = AB + BC + CD + DA σε λογικό κύκλωμα, με τον μικρότερο δυνατό αριθμό από τρανζίστορ. Για να γίνει αυτό, πρέπει πρώτα να παραγοντοποιήσουμε την F. Αυτό που θέλουμε είναι να προκύψει μια λογική έκφραση της μορφης F = x, δηλαδή μια ολόκληρη αντεστραμμένη έκφραση, όπως ακριβώς στην άσκηση 3α. Σχεδιάζοντας το κύκλωμα στο Logisim, μπορούμε με τον πίνακα Karnaugh να ελαχιστοποιήσουμε τη συνάρτηση. Η ελαχιστοποιημένη μορφή της έκφρασης είναι η A C + B D. Είναι προφανές ότι η έκφραση αυτή είναι παραγοντοποιημένη της (A + C)(B + D). Επομένως έχουμε αυτό που ζητάμε παραπάνω. Επαναλαμβάνουμε ότι θα χρειαστούμε τουλάχιστον 2Ν τρανζίστορ για την σχεδίαση του κυκλώματος. Αρχικά, σκοπεύουμε να δημιουργήσουμε τις 2 NOR πύλες A + C και B + D. Ξεκινάμε όπως πάντα από το PDN. Ενώνουμε παράλληλα πρώτα τα πάνω άκρα των C2 και A2 και μετά των D2 και B2. Στον σχεδιασμό τα B2 και D2 βρίσκονται κάτω από τα A2 και C2, επομένως συνδέουμε το κάτω άκρο του B2 με γείωση και το κάτω άκρο του D2 στην γείωση κάτω από το B2. Τέλος, ενώνουμε τη σύνδεση των κάτω άκρων των C2 και D2 με τη σύνδεση των πάνω άκρων των B2 και D2, ώστε να είναι συνδεδεμένα σε σειρά. Ετσι, προέκυψε η έκφραση (A + C)(B + D). Για να την αντιστρέψουμε, δημιουργούμε το PUN με τον εξής τρόπο: συνδέουμε σε σειρά το D1 με το B1 και το C1 με το A1. Τοποθετούμε την V dd πάνω από το D1 και συνδέουμε το πάνω άκρο της D1 και το πάνω άκρο της C1 με τον θετικό πόλο της V dd. Τέλος για την αντιστροφή της έκφρασης, πρέπει να ενωθούν παράλληλα τα D1 + B1 με τα C1 + A1. Ενώνουμε τα κάτω άκρα του B1 με του A1 και το ίδιο καλώδιο ενώνεται με αυτό του PDN για να προκύψει η V out. 8
CMOS Κύκλωμα AB + BC + CD + DA Ο κώδικας SPICE για την υλοποίηση του συγκεκριμένου κυκλώματος είναι: M D1 $N 0003 $N 0001 $N 0002 $N 0003 MpTSMC180 + W=1440n + AD=0.648p + AS=0.648p + PD=3780n + PS=3780n V C $N 0004 0 9
+PULSE 1.8V 0 0 0.1p 0.1p 4n 8n V B $N 0005 0 +PULSE 1.8V 0 0 0.1p 0.1p 2n 4n M C1 $N 0003 $N 0004 $N 0006 $N 0003 MpTSMC180 + W=1440n + AD=0.648p + AS=0.648p + PD=3780n + PS=3780n M A2 Vout $N 0008 $N 0007 $N 0007 MnTSMC180 + W=720n + AD=0.324p + AS=0.324p + PD=2340n + PS=2340n M C2 Vout $N 0004 $N 0007 $N 0007 MnTSMC180 + W=720n + AD=0.324p + AS=0.324p + PD=2340n + PS=2340n M D2 $N 0007 $N 0001 0 0 MnTSMC180 + W=720n + AD=0.324p + AS=0.324p + PD=2340n + PS=2340n M B1 $N 0002 $N 0005 Vout $N 0002 MpTSMC180 + W=1440n + AD=0.648p + AS=0.648p + PD=3780n + PS=3780n V D $N 0001 0 +PULSE 1.8V 0 0 0.1p 0.1p 8n 16n V VDC $N 0003 0 1.8V 10
M A1 $N 0006 $N 0008 Vout $N 0006 MpTSMC180 + W=1440n + AD=0.648p + AS=0.648p + PD=3780n + PS=3780n V A $N 0008 0 +PULSE 1.8V 0 0 0.1p 0.1p 1n 2n M B2 $N 0007 $N 0005 0 0 MnTSMC180 + W=720n + AD=0.324p + AS=0.324p + PD=2340n + PS=2340n 4 Αποτελέσματα Οπως αναφέρθηκε στην εισαγωγή, οι τιμές που δίνονται από τις παλμογεννήτριες πρέπει να καλύπτουν όλο το εύρος ενός λογικού πίνακα. Παραδείγματος χάρη, σε περίπτωση που το κύκλωμα έχει 4 εισόδους, με τιμές εισόδων 0 ή 1, οι πιθανοί συνδυασμοί είναι 2 4 = 16. Επομένως ένας τρόπος εφαρμογής του αναφερθέντος σε ηλεκτρικό κύκλωμα είναι αφού βάλουμε ένα συγκεκριμένο πλάτος σε μία παλμογεννήτρια-είσοδο, να της αναθέσουμε περίοδο ίση με 2 φορές το πλάτος, έτσι ώστε να καλύπτει την περίπτωση του 0 μέχρι το μισό της περιόδου και τη περίπτωση του 1 στο δεύτερο μισό της περιόδου. Αν θέσουμε το πλάτος μίας εισόδου ίσο με x και τη περίοδο της ίση με 2x, στην επόμενη είσοδο μπορούμε να θέσουμε το πλάτος ίσο με τη περίοδο της προηγούμενης εισόδου, δηλαδή 2x και την περίοδο ίση με το διπλάσιο του πλάτους, δηλαδή 4x κ.ο.κ. Με αυτόν τον τρόπο η πρώτη είσοδος κάνει 4 αλλαγές στην τάση και καλύπτει τα ενδεχόμενα που δεν κάλυπτει η δεύτερη είσοδος, που κάνει 2 αλλαγές. Ετσι δίνουμε τις τιμές εισόδου στον πίνακα αληθείας. Στην άσκηση 3α έχουν δοθεί οι τιμές: P W a = 8n, P ERa = 16n, P W b = 4n, P ERb = 8n, P W c = 2n, P ERc = 4n, P W d = 1n, P ERd = 2n, όπου PW είναι το πλάτος του παλμού και PER η περίοδος. Στην άσκηση 3α έχουν δοθεί οι τιμές: P W a = 1n, P ERa = 2n, P W b = 2n, P ERb = 4n, P W c = 4n, P ERc = 8n, P W d = 8n, P ERd = 16n. Το διάγραμμα που προκύπτει από την υποχρεωτική άσκηση είναι: 11
Σχήμα 1 Το διάγραμμα που προκύπτει από την άσκηση 3α, μία με marker σε όλες τις V in και στην V out και μία μόνο στην V out είναι: Σχήμα 2 12
Σχήμα 3 Το διάγραμμα που προκύπτει από την άσκηση 3β, μία με marker σε όλες τις V in και στην V out και μία μόνο στην V out είναι: Σχήμα 4 13
Σχήμα 5 Σημειώνεται ότι οι στιγμιαίες αυξομείωσεις στα διαγράμματα οφείλονται στο ότι εκείνες τις στιγμές γίνεται η αλλαγή της εισόδου, επομένως είναι ενεργοποιημένο τόσο το PUN όσο και το PDN. Άρα, στιγμιαία η έξοδος δέχεται πολύ τάση. 5 Ανάλυση Αποτελεσμάτων Στο διάγραμμα της υποχρεωτικής άσκησης μας με κόκκινο συμβολίζεται η τάση εισόδου V in, όπου V inmax = V dd = 1.8V αντιστοιχεί στην τιμή 1 του λογικού πίνακα και V inmin = 0 αντιστοιχεί στην τιμή 0. Με πράσινο συμβολίζεται η τάση εξόδου V out. Παρατηρούμε ότι το κύκλωμα που σχεδιάσαμε πραγματοποιεί τον στόχο του, δηλαδή αντιστρέφει την τιμή της τάσης εισόδου. Οταν η τάση εισόδου είναι μέγιστη, η τάση εξόδου είναι ελάχιστη και αντίστροφα. Ο αντιστροφέας είναι μια απλή πύλη NOT. Ο πίνακας αληθείας της λογικής έκφρασης της άσκησης 3α (το κύκλωμα σχεδιάστηκε στο Logisim είναι ο εξής: 14
Θα τον συγκρίνουμε με το διάγραμμα του σχήματος 3. Παρατηρούμε ότι από t0 = 0 μέχρι t1 = 11ns η τάση εξόδου είναι μέγιστη, επομένως οι πρώτες 11 τιμές του πίνακα αληθείας πρέπει να είναι ίσες με 1. Από την t1 = 11ns μέχρι την t2 = 16ns η V out είναι ίση με 0, που σημαίνει ότι οι 5 τελευταίες τιμές του πίνακα αληθείας πρέπει να είναι 0. Ο πίνακας αληθείας επαληθεύει τα λεγόμενά μας, πράγμα που σημαίνει ότι το κύκλωμα που υλοποιήσαμε αντιστοιχεί στην λογική έκφραση. Ο πίνακας αληθείας της λογικής έκφρασης της άσκησης 3β (το κύκλωμα σχεδιάστηκε στο Logisim είναι ο εξής: 15
Θα τον συγκρίνουμε με το διάγραμμα του σχήματος 5. Παρατηρούμε ότι από 0 3ns, 4 6ns, 8 9ns και 10 11ns η τάση εξόδου είναι μέγιστη, άρα οι τιμές του πίνακα αληθείας στα αντίστοιχα σημεία πρέπει να είναι ίσες με 1. Από 3 4ns, 6 8ns, 9 10ns, 11 16ns η V out είναι ίση με 0, που σημαίνει ότι οι τιμές του πίνακα αληθείας στα αντίστοιχα σημεία πρέπει να είναι 0. Ο πίνακας αληθείας επαληθεύει τα λεγόμενά μας, πράγμα που σημαίνει ότι το κύκλωμα που υλοποιήσαμε αντιστοιχεί στην λογική έκφραση. 6 Βιβλιογραφία Για την υλοποίηση της εργασίας χρησιμοποιήθηκαν τα εξής βιβλία: Μικροηλεκτρονικά Κυκώματα Πέμπτη Εκδοση, από Sedra/Smith, Εκδόσεις Παπασωτηρίου SPICE, από Αλκιβιάδη Χατζόπουλο, Σάμι Άμπου-Φάρχα, Γιώργο Μπόντζιο, Δημήτρη Παπακωνσταντίνου, Εκδόσεις Τζιόλα Ιδιαίτερα χρήσιμο ήταν το έγγραφο σε μορφή PDF Designing Combinational Logic Gates in CMOS, που βρέθηκε ύστερα από αναζήτηση στο Διαδίκτυο. 16