ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Σχεδίαση και επαλήθευση βρόχου κλειδώματος φάσης εξαιρετικά υψηλών συχνοτήτων με χρήση τεχνικών μικτού σήματος Διπλωματική εργασία Μάριος Καρατζιάς Υπό την επίβλεψη του καθηγητή Χατζόπουλου Αλκιβιάδη. Bracknell, Ηνωμένο Βασίλειο 2014 1 Περίληψη Οι ανάγκες της σύγχρονης αγοράς ολοκληρωμένων κυκλωμάτων μεταφράζονται σε τάση για ενσωμάτωση συνολικών συστημάτων, τα οποία περιέχουν επεξεργασία δεδομένων αλλά και αλληλεπίδραση με το περιβάλλον, σε ένα ASIC. Οι παγιωμένες αλλά συνεχώς εξελισσόμενες μεθοδολογίες σχεδίασης αναλογικών και ψηφιακών κυκλωμάτων πρέπει να συνδυαστούν κατάλληλα, συγκροτώντας το Mixed Signal flow, ώστε τα εκατομμύρια τρανζίστορ του ψηφιακού μέρους που προσομοιώνονται με τη μέγιστη αφαίρεση και τα μικρά αναλογικά τμήματα που απαιτούν αναλυτική επίλυση των κυκλωματικών εξισώσεων να σχεδιαστούν αρμονικά. Με την αυξανόμενη πολυπλοκότητα των σχεδίων έγινε αναγκαίο να επιβεβαιώνεται η λειτουργία επιμέρους τμημάτων σε εύλογο χρόνο. Στην παρούσα διπλωματική χρησιμοποιούνται οι αρχές της μεθοδολογίας αναλογικής επαλήθευσης, σε top-down σχεδίαση, για την εκπόνηση του front-end ενός PLL μικτού σήματος, πετυχαίνοντας ορθή λειτουργικότητα με την πρώτη προσέγγιση. Σε πρώτο στάδιο γίνεται η μοντελοποίηση σε Verilog-AMS και SystemVerilog, έπειτα δε τα υποκυκλώματα σχεδιάζονται και επαληθεύονται ώστε το σύστημα να λειτουργεί εντός προδιαγραφών. Το PLL υλοποιήθηκε σαν N-fractional με εύρος από 4GHz ως 12GHz, αλλά και σαν συμβατικό, παράγοντας συχνότητα 100GHz στην έξοδο, επιδεικνύοντας την ευελιξία που παρέχει η μοντελοποίηση πραγματικών αριθμών. Για οποιαδήποτε απορία ή διαφωνία, παρακαλώ στείλτε τα σχόλιά σας στη διεύθυνση mariosck@auth.gr "Η έγκριση της παρούσης Διπλωματικής Εργασίας από το Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης δεν υποδηλώνει αποδοχή των γνωμών του συγγραφέως" (Ν. 5343/1932, άρθρο 202, παρ. 2) 2 Abstract The needs of the modern market of integrated circuits correspond to a tendency of integrating complete systems on a single ASIC, that contain both data processing and interaction with the environment functionalities. The established, yet constantly evolving analog and digital flow methodologies have to be properly combined, forming the so-called mixed signal flow, so that the vast amounts of digital devices that are simulated at the highest abstraction level can be gracefully co-designed with the analog devices, which require analytical resolution. Plus, with the growing complexity of contemporary designs, verification has become an indispensable stage. This dissertation demonstrates the principles of analog verification combined with a top-down approach on a real front-end PLL design, achieving good results without any respins. First, real number models are written in Verilog-AMS and SystemVerilog for every block. Subsequently, each subcircuit is designed and verified on-the-fly, so that the system operates according to the specifications. The PLL was implemented in two ways; a N-fractional PLL with a bandwidth from 4GHz to 12GHz and a conventional EHF PLL operating at 100GHz, thus exhibiting the portability that real number modeling provides. In case of any questions or a translation demand, please feel free to send your email at mariosck@auth.gr. "The approval of this Dissertation from the Department of Electrical and Computers Engineering of Aristotle University of Thessaloniki does not connote consensus with the writer's opinions" (Legislation 5343/1932, article 202, paragraph. 2) 3 Περιεχόμενα Κεφάλαιο 1 ................................................................................................................................ 6 1.1 Εισαγωγή ....................................................................................................................... 6 1.2 Mixed Signal Design Flow .............................................................................................. 9 1.3 Μεθοδολογία αναλογικής επαλήθευσης ................................................................... 15 Κεφάλαιο 2 .............................................................................................................................. 20 2.1 Αρχή Λειτουργίας ........................................................................................................ 20 2.2 Εφαρμογές................................................................................................................... 22 2.3 Προδιαγραφές Συστήματος ........................................................................................ 24 2.4 Μοντέλα Συμπεριφοράς ............................................................................................. 27 2.4.1 Κρυσταλλικός Ταλαντωτής .......................................................................................... 27 2.4.2 Ανιχνευτής Φάσης ....................................................................................................... 29 2.4.3 Αντλία φορτίου ............................................................................................................ 33 2.4.4 Χαμηλοπερατό Φίλτρο ................................................................................................ 36 2.4.5 Ταλαντωτής εξαρτώμενος από τάση ........................................................................... 44 2.4.6 Διαιρέτης συχνότητας και διεπαφή ελέγχου .............................................................. 46 2.4.7 Μετρητής συχνότητας ................................................................................................. 48 2.5 Προσομοίωση .............................................................................................................. 49 2.5.1 Βελτιστοποίηση παραμέτρων ..................................................................................... 52 2.5.2 Υλοποίηση με SystemVerilog ....................................................................................... 55 Κεφάλαιο 3 .............................................................................................................................. 57 3.1 Ταλαντωτής ελεγχόμενος από τάση ........................................................................... 58 3.1.1 Ring VCO ...................................................................................................................... 58 3.1.2 Ταλαντωτής Colpitts .................................................................................................... 64 3.2 Διαιρέτης συχνότητας ................................................................................................. 71 3.2.1 Προδιαιρέτης συχνότητας 100GHz ............................................................................. 77 3.3 Ανιχνευτής διαφοράς φάσης ...................................................................................... 82 3.4 Φίλτρο διέλευσης χαμηλών συχνοτήτων.................................................................... 86 3.5 Αντλία φορτίου............................................................................................................ 90 3.6 Μετρητής συχνότητας ................................................................................................. 95 Κεφάλαιο 4 .............................................................................................................................. 98 4.1 Προσομοίωση σε κυκλωματικό επίπεδο .................................................................... 98 4.2 XPS ............................................................................................................................. 100 4.3 RF αναλύσεις ............................................................................................................. 108 4.4 Προσομοίωση συνθηκών και αξιοπιστίας ................................................................ 115 4.5 Monte Carlo ............................................................................................................... 123 Κεφάλαιο 5 ............................................................................................................................ 128 5.1 Συμπεράσματα .......................................................................................................... 128 4 5.2 Πεδία έρευνας ........................................................................................................... 129 5.3 Βιβλιογραφία............................................................................................................. 130 5.4 SKILL ........................................................................................................................... 133 5.5 Ακρωνύμια................................................................................................................. 139 5 Ηλεκτρονική Σχεδίαση με Αυτοματοποίηση Κεφάλαιο 1 Ηλεκτρονική σχεδίαση αυτοματοποίηση με 1.1 Εισαγωγή Βασικό χαρακτηριστικό της ανθρώπινης φύσεως είναι η αναζήτηση εύκολων τρόπων για την περαίωση απλών και σύνθετων εργασιών. Σταδιακά, ο άνθρωπος μετέβη από τη χρήση των χειροκίνητων εργαλείων στη στήριξη σε μηχανές και πλέον στην τεχνολογία των πληροφοριών. Ορόσημο σε αυτή την εξέλιξη αποτέλεσε η εμφάνιση των ηλεκτρικών κυκλωμάτων. Πέρα από την άμεση παράδοση ενέργειας σε κάθε σημείο του δικτύου διανομής και την εμφάνιση ηλεκτροκίνητων μηχανών, μια από της επαναστάσεις που επέφερε ο ηλεκτρισμός ήταν η χρήση των ημιαγωγών στη μικροηλεκτρονική. Από τη δημιουργία του πρώτου τρανζίστορ το 1947 μέχρι σήμερα, η όψη του κόσμου έχει επηρεαστεί ριζικά από τα κυκλώματα ημιαγωγών: επεξεργαστές, πομποδέκτες, κινητά τηλέφωνα, μικροελεγκτές, ραντάρ και πολλές περισσότερες εφαρμογές τους αποτελούν αναπόσπαστο κομμάτι της σύγχρονης κοινωνίας. Για να γίνουν εφικτές όλες αυτές οι καινοτόμες εφαρμογές, ήταν απαραίτητο να καταστεί λογικό το κόστος παραγωγής και το μέγεθος των κυκλωμάτων. Έτσι, οι έρευνες συγκεντρώθηκαν στην "ολοκλήρωση" των διακριτών εξαρτημάτων πάνω σε ενιαία πλάκα ημιαγωγού (wafer), σχηματίζοντας ένα αδιάτμητο στοιχείο. Το πρώτο ολοκληρωμένο κύκλωμα (Integrated Circuit, IC) δημιουργήθηκε το 1958 και τα ICs των επόμενων χρόνων αριθμούσαν ελάχιστο αριθμό εξαρτημάτων. Καθώς όμως οι τεχνολογικές μέθοδοι επέτρεψαν και συνεχίζουν να επιτρέπουν την κατασκευή μικρότερων "συσκευών" πάνω στα wafers ημιαγωγού - ο οποίος είναι συνήθως πυρίτιο - πλέον τα ICs μπορούν να φέρουν μέχρι και μερικά δισεκατομμύρια στοιχείων. Μάλιστα ο σχετικός εμπειρικός νόμος του Moore αναφέρει ότι η πυκνότητα των τρανζίστορ σε ένα IC διπλασιάζεται κάθε δύο χρόνια ενώ το κόστος παραγωγής θα υποδιπλασιάζεται. Μαζί με την πυκνότητα, βελτιώνονται και η ταχύτητα απόκρισης αφού οι αποστάσεις μεταξύ των στοιχείων μειώνονται και η καταναλισκόμενη ισχύς, διότι οι μικρότερες συσκευές λειτουργούν με χαμηλότερες τάσεις. Έτσι λοιπόν καθίσταται εφικτό η υπολογιστική δύναμη που χαρακτήριζε έναν υπερυπολογιστή της δεκαετίας του 80 να είναι μόλις ένα κλάσμα αυτής του προσωπικού υπολογιστή που βρίσκεται σήμερα στο σπίτι σχεδόν κάθε πολίτη. Ωστόσο, αυτή την εποχή χρησιμοποιείται ως ελάχιστο μήκος βάσης των τρανζίστορ τα 7nm και προβλέπεται περιθώριο μέχρι και τα 3.5nm προτού εξαντληθούν τα άτομα που απαρτίζουν το τρανζίστορ. Καθώς η τεχνολογία κατασκευής των ICs πλησιάζει το ελάχιστο δυνατό σημείο, ο νόμος αυτός αρχίζει να αποκλίνει και εν τέλει θα πάψει να ισχύει. Η μέθοδος παρασκευής των σύγχρονων chip ημιαγωγών είναι η φωτολιθογραφία. Αρχικά, το μόνο υλικό που εισάγεται στη διαδικασία είναι το wafer πυριτίου, δηλαδή υπόστρωμα του ημιαγωγού. Στη συνέχεια, κάποιο φωτοευαίσθητο χημικό στοιχείο τοποθετείται πάνω στο wafer και "βομβαρδίζεται" στα κατάλληλα σημεία. Ανάλογα με το στοιχείο, τη διάρκεια και την ένταση της δέσμης, σχηματίζονται οι κατάλληλες χημικές 6 Κεφάλαιο 1ο ενώσεις που διαμορφώνουν τα στρώματα του IC. Η διαδικασία επαναλαμβάνεται για όλα τα στρώματα και δεν είναι σπάνιο ένα wafer να περαστεί από τον κύκλο φωτολιθογραφίας ακόμα και 50 φορές[1]. Το πατρόν που ακολουθεί κάθε κύκλος "τυπώνεται" σε μάσκες και προέρχεται από ένα αρχείο (GDSII) που περιέχει το layout του εκάστοτε IC. Το αρχείο αυτό αποστέλλεται από το σχεδιαστή του IC προς το εργοστάσιο παρασκευής ημιαγωγών (foundry, χυτήριο), όπου γίνεται η τύπωση του ολοκληρωμένου. Είναι σαφές πως η δημιουργία ενός μεμονωμένου IC είναι ιδιαίτερα δαπανηρή, όμως με μεγάλους όγκους ζήτησης που επικρατούν και το τεράστιο μέγεθος παραγωγής, το κόστος ελαχιστοποιείται. Είναι ενδεικτικό πως μέχρι το τέλος του έτους εκτιμάται πως θα κυκλοφορούν 1.5 δισεκατομμύρια smartphones[2], καθένα από τα οποία φέρει πλήθος ICs. Τα ICs χωρίζονται σε δύο μεγάλες κατηγορίες: τα Application Specific Integrated Circuits (ASIC) και τα Field Programmable Gate Arrays (FPGA). Όπως προδιαθέτει το όνομά τους, τα ASIC είναι πλήρως προσαρμοσμένα (full-custom) κυκλώματα που αναπτύσσονται για μια συγκεκριμένη λειτουργία η οποία δε μπορεί να μεταβληθεί στη συνέχεια. Ο όρος full-custom σημαίνει πως οι συσκευές οι οποίες τυπώνονται στο κύκλωμα μπορούν να έχουν κάθε δυνατό μέγεθος και χαρακτηριστικά. Αρχικά οι εφαρμογές που εκτελούσαν ήταν βασικές (π.χ. ο χρονοδιακόπτης 555), πλέον ωστόσο μπορούν να περιέχουν μεγάλη πολυπλοκότητα. Για παράδειγμα, ένας επεξεργαστής ή μια κάρτα γραφικών είναι ASIC. Όταν το ASIC ενσωματώνει έναν επεξεργαστή και κάποιο λογισμικό, αναφέρεται και ως System on Chip (SOC). Τα δε FPGA δεν εξειδικεύονται σε μια εφαρμογή κατά την κατασκευή τους αλλά αφήνεται στο χρήστη να προσδώσει ψηφιακή λογική στο κύκλωμα. Αφότου προγραμματιστεί, το FPGA φαίνεται να λειτουργεί σαν ASIC, ωστόσο η δυνατότητα επαναπρογραμματισμού του με διαφορετικό κώδικα κάθε φορά που διακόπτεται η τροφοδοσία τα διαχωρίζει σημαντικά. Εκτός αυτού, άλλες σημαντικές διαφορές είναι η αυξημένη κατανάλωση ισχύος και το χαμηλότερο κόστος παραγωγής, αφού η σχεδίαση είναι απλούστερη και υπάρχει η δυνατότητα διόρθωσης σφαλμάτων αφού το προϊόν έχει παραδοθεί. Και στις δύο κατηγορίες υπάρχει η δυνατότητα αναλογικών και ψηφιακών λειτουργιών, ενώ και τα εξελιγμένα FPGA δύνανται να ενσωματώνουν μικροεπεξεργαστές και μνήμες. Συνεπώς, κάθε μια από τις κατηγορίες έχει τα πλεονεκτήματα και τα μειονεκτήματα της, οπότε η επιλογή ανάμεσα στα ASIC και τα FPGA εξαρτάται από τον όγκο παραγωγής των ICs και την εφαρμογή στην οποία θα χρησιμοποιηθούν. 7 Ηλεκτρονική Σχεδίαση με Αυτοματοποίηση Εικόνα 1.1: FPGA και ASIC flows Κατά τη διάρκεια των πρώτων ετών χρήσης ολοκληρωμένων κυκλωμάτων, η σχεδίαση και η κατασκευή τους γινόταν με μη αυτόματο τρόπο, κυρίως χειροκίνητα. Καθόσον το μέγεθος και η πολυπλοκότητα των κυκλωμάτων αυξανόταν, έπρεπε να αναζητηθούν τρόποι επιτάχυνσης, αυτοματοποίησης και βελτιστοποίησης της διαδικασίας σχεδίασης και κατασκευής, αλλά και να περιοριστεί ο παράγοντας του ανθρώπινου λάθους. Όπως αναφέρεται παραπάνω, τα χυτήρια πλέον χρησιμοποιούν μεθόδους φωτολιθογραφίας και η εφαρμογή των μασκών γίνεται φυσικά από μηχανές. Όσον αφορά τη σχεδίαση, τα πρώτα εργαλεία Electronic Design Automation (EDA) έκαναν την εμφάνισή τους σε ακαδημαϊκό περιβάλλον τη δεκαετία του 80, ενώ σύντομα δημιουργήθηκαν εσωτερικά τμήματα σε μεγάλες επιχειρήσεις ηλεκτρονικών για την αντιμετώπιση του προβλήματος της πολύπλοκης σχεδίασης. Το 1981 ιδρύονται οι πρώτες εταιρείες που ειδικεύονται στην ηλεκτρονική σχεδίαση με αυτοματοποίηση δίχως να παράγουν δικά τους σχέδια και ICs. Σήμερα, τα εργαλεία που παρέχουν οι αντίστοιχες εταιρείες καλύπτουν στο ακέραιο το design flow, δίνοντας τη δυνατότητα σχεδίασης, υλοποίησης, προσομοίωσης και επαλήθευσης των ολοκληρωμένων προτού αυτά τυπωθούν. Στη σύγχρονη σχεδίαση κυκλωμάτων, τέτοιου είδους λογισμικά είναι ζωτικά για κάθε ανταγωνιστική ομάδα μηχανικών. 8 Κεφάλαιο 1ο 1.2 Mixed Signal Design Flow Με την πάροδο των χρόνων, την ανάγκη για όλο και πολυπλοκότερα κυκλώματα και την εξέλιξη της τεχνολογίας των υλικών που επέτρεψε τοποθέτηση μεγαλύτερου όγκου ενεργών στοιχείων στα ολοκληρωμένα κυκλώματα, αναπτύχθηκαν καινούριες μέθοδοι, τεχνικές και περιβάλλοντα σχεδίασης. Όπως προαναφέρθηκε, είναι εφικτή η full-custom σχεδίαση ενός ASIC , δηλαδή η προσαρμογή μεγεθών όπως οι διαστάσεις των τρανζίστορ οπουδήποτε σε ένα επιτρεπτό διάστημα, τα όρια του οποίου ορίζονται από την τεχνολογία σχεδίασης. Η μέθοδος αυτή είναι χρονικά η πρώτη που εφαρμόστηκε, ωστόσο έγινε γρήγορα φανερό πως έθετε περιορισμούς τόσο στο μέγεθος, διότι για μεγάλα κυκλώματα καθίσταται ανυπόφορα χρονοβόρα, όσο και στην αποδοτικότητα, αφού πολλές τοπολογίες όπως αυτές των κυκλωμάτων ψηφιακής λογικής (π.χ. μια πύλη AND) είναι ουσιαστικά παγιωμένες. Αναδύθηκε λοιπόν η semi-custom μεθοδολογία, στην οποία ο μηχανικός εκμεταλλεύεται την επαναληψιμότητα συγκεκριμένων βασικών κυκλωμάτων και ξεκινά τη σχεδίαση από ένα ανώτερο επίπεδο αφαίρεσης. Τα δομικά στοιχεία στη semi-custom προσέγγιση ονομάζονται standard cells και συνήθως απαρτίζονται από μια ευρεία ποικιλία πυλών, οι οποίες εμφανίζονται με μεγάλη συχνότητα κατά τη σχεδίαση. Πλέον, με τη μέθοδο αυτή σχεδιάζονται ολοκληρωμένα ψηφιακής λογικής, όπως οι επεξεργαστές, που περιέχουν ακόμα και δισεκατομμύρια τρανζίστορ. Ωστόσο η τάση για ενσωμάτωση συνολικών συστημάτων που περιέχουν επεξεργασία δεδομένων αλλά και αλληλεπίδραση με το περιβάλλον σε ένα IC, έχει οδηγήσει στην εμφάνιση υβριδικών τεχνικών σχεδίασης ASIC. Οι εν λόγω τεχνικές μικτού σήματος ονομάζονται Analog Mixed Signal και Digital Mixed Signal. Εξετάζοντας την αρχέγονη full-custom προσέγγιση ανάπτυξης ολοκληρωμένων κυκλωμάτων, παρατηρείται ένας ισχυρός διαχωρισμός των σταδίων σχεδίασης, που συχνά επεκτείνεται σε διαφορετικά καθήκοντα και αρμοδιότητες εντός της ομάδας μηχανικών. Αρχικά, τα πρόχειρα προσχέδια μεταφέρονται στον επεξεργαστή του σχηματικού (schematic editor), όπου τα επιμέρους στοιχεία (π.χ. MOSFETs, αντιστάσεις, πυκνωτές, κλπ.) απεικονίζονται με τα συμβατικά σύμβολα τους. Περαιτέρω πληροφορίες όπως το μέγεθος του κάθε στοιχείου δεν είναι εμφανείς στο σχέδιο αλλά εισάγονται σαν τιμές παραμέτρων των μοντέλων. Όταν κριθεί πως η τοπολογία είναι κατάλληλη και οι επιλεγμένες μεταβλητές είναι κοντά στο να πληρούν τις προδιαγραφές, το κύκλωμα προσομοιώνεται και βάσει της συμπεριφοράς του, εγκρίνεται ή γίνονται οι απαραίτητες διορθώσεις. Ο προσομοιωτής τοποθετεί τις τιμές που έχουν εκχωρηθεί στις μεταβλητές στα μοντέλα που τα στοιχεία χρησιμοποιούν (π.χ. BSIM4, BSIMSOI, κλπ.)[3],[4] ώστε να επιλύσει τις εξισώσεις κυκλώματος. Φυσικά, η σχεδίαση γίνεται σχεδόν πάντα ιεραρχικά, δηλαδή κυκλώματα υψηλότερου επιπέδου έχουν στιγμιότυπα κυκλωμάτων χαμηλότερου επιπέδου, τα οποία δίνουν υπόσταση (instantiate) σε άλλα κ.ο.κ. Αυτό συμβάλλει στη συνεκτικότητα και κατανόηση του σχεδίου, στην αποφυγή επανασχεδίασης του ίδιου κυκλώματος όταν αυτό επανεμφανίζεται και στο διαμοιρασμό των καθηκόντων σε ένα project. Οι εργασίες μέχρι αυτό το σημείο ολοκληρώνουν το στάδιο σύλληψης της ιδέας, της τοπολογίας και της προσομοίωσης του κυκλώματος και ονομάζονται front-end design (FED). Το δίχως άλλο, το ολοκληρωμένο δεν είναι σε καμία περίπτωση έτοιμο να παρασκευαστεί. Αφού έχει αναπτυχθεί ένα ικανοποιητικό front-end design, ακολουθεί η αποτύπωσή του στοn "καμβά" που απεικονίζει την διάταξη όπως θα εμφανίζεται πραγματικά στο κύκλωμα (layout). Σε αυτό το στάδιο τα επιμέρους στοιχεία τοποθετούνται σε κατάλληλες θέσεις και γίνονται οι διασυνδέσεις (place & route). Έπειτα, πραγματοποιούνται έλεγχοι συνοχής (Design Rule Check, DRC), οι οποίοι ορίζονται από την τεχνολογία που χρησιμοποιείται, παραδείγματος χάρη η απαίτηση να μην επικαλύπτονται 9 Ηλεκτρονική Σχεδίαση με Αυτοματοποίηση διαφορετικά στοιχεία. Πλέον οι αδιάστατες διασυνδέσεις παρουσιάζονται με το αντίστοιχο υλικό (μέταλλο, ημιαγωγος, κλπ.), αποκτούν όγκο και φυσικές ιδιότητες. Είναι φανερό πως το σύνολο των παρασιτικών φαινομένων, που οφείλονται στην αλληλεπίδραση των στρωμάτων (layers) και δεν είναι εμφανές στην προσομοίωση του front-end design, επηρεάζει τη συμπεριφορά του κυκλώματος. Συνεπώς, το επόμενο βήμα είναι η ανίχνευση αυτών των φαινομένων. Σήμερα, τα εργαλεία που χρησιμοποιούνται για αυτό το σκοπό (Physical Verification System, PVS) εντοπίζουν και αναπαριστούν τις παρασιτικές χωρητικότητες και αντιστάσεις με τα αντίστοιχα στοιχεία. Η περίπλοκη αυτή διαδικασία ονομάζεται parasitics extraction και μπορεί να επεκταθεί σημαντικά, ανάλογα με τις ανάγκες και τις προδιαγραφές του συστήματος. Τέλος, γίνεται σύγκριση του σχεδίου του σχηματικού με το τελικό φυσικό σχέδιο που πρόκειται να σταλεί στο foundry προς εκτύπωση (Layout Versus Schematic, LVS), άλλα και πλήθος προσομοιώσεων του ολοκληρωμένου μαζί με τα παρασιτικά στοιχεία, ώστε να επιβεβαιωθεί πως το κύκλωμα εξακολουθεί να επιδεικνύει την επιθυμητή συμπεριφορά. Η full-custom μεθοδολογία εξακολουθεί να εφαρμόζεται κατά την ανάπτυξη κυκλωμάτων με αναλογική λειτουργικότητα, όπως ενισχυτές, φίλτρα, μίκτες κλπ., καθώς είναι αναγκαία η παραμετροποίηση διάφορων μεταβλητών αλλά και δοκιμή ποικίλων τοπολογιών που δεν καλύπτονται από τα standard cells. Έτσι λοιπόν, η συγκεκριμένη προσέγγιση ταυτίζεται με και αποκαλείται συνήθως analog flow. Και δίνει πράγματι τη μεγαλύτερη ευχέρεια. Ωστόσο, υπάρχουν κάποια θεμελιώδη ζητήματα που τίθενται εν προκειμένω. Το σημαντικότερο εξ αυτών είναι η πολυπλοκότητα σχεδίασης μεγάλων κυκλωμάτων. Γίνεται εύκολα κατανοητό πως οι σχεδιαστικές επιλογές, τόσο σε τοπολογία όσο και στις τιμές των μεγεθών, αυξάνονται εκθετικά και η βέλτιστη λύση αποτελεί ένα χαοτικό και συνήθως άλυτο πρόβλημα. Αυτός ο δομικός περιορισμός εμποδίζει την αυτοματοποιημένη σχεδίαση των αναλογικών κυκλωμάτων, με πολλούς μηχανικούς και επιστήμονες να υποστηρίζουν μάλιστα ότι αυτή δε θα επέλθει ποτέ. Επίσης, εντοπίζονται και άλλα μειονεκτήματα τα οποία γίνονται φανερά σε σύγκριση με την semi-custom μεθοδολογία που ακολουθεί. Η χρήση των standard cells ήρθε να δώσει απάντηση στο ζήτημα και να "λύσει τα χέρια" των μηχανικών σε σχέση με την αυτοματοποίηση του σχεδίου. Όχι μόνον καθιερώθηκε η χρήση βελτιστοποιημένων υποκυκλωμάτων και τοπολογιών ώστε ο εκάστοτε σχεδιαστής να ξεκινά την υλοποίηση αμέσως από ένα ανώτερο επίπεδο αφαίρεσης, αλλά με την ανάπτυξη των γλωσσών περιγραφής υλικού (Hardware Definition Language, HDL) μπορεί να περιγράψει με κώδικα την επιθυμητή συμπεριφορά του κυκλώματος. Αυτή η επαναστατική μέθοδος άλλαξε ριζικά τη βιομηχανία και την ανθρώπινη δραστηριότητα, καθώς επέτρεψε την ολοκλήρωση δισεκατομμυρίων ενεργών στοιχείων σε ένα ολοκληρωμένο. Οι HDLs έχουν δύο κύριες εφαρμογές: την προσομοίωση και την σύνθεση σε επίπεδο πυλών. Η προσομοίωση είναι βασικό στάδιο καθώς επιτρέπει την κατανόηση περίπλοκων συστημάτων προτού αρχίσει το δύσκολο εγχείρημα της υλοποίησης. Η σύνθεση είναι η διαδικασία κατά την οποία ο κώδικας HDL μετατρέπεται σε ένα ισοδύναμο κύκλωμα που έχει φυσική υπόσταση. Στην πρώτη περίπτωση οι HDLs είναι επιθυμητό η γλώσσα που χρησιμοποιείται να έχει εκφραστικότητα, ενώ στη δεύτερη να περιορίζει τις δομές σε αυτές που έχουν αντιστοιχία σε πραγματικό κύκλωμα (π.χ. ένα πρόγραμμα που εισάγει καθυστέρηση δεν έχει φυσική υλοποίηση). Επομένως δικαιολογείται η ποικιλία σε HDLs, καθώς καθεμία παρουσιάζει συγκεκριμένα πλεονεκτήματα. Οι οικογένειες της Verilog και της VHDL έχουν επικρατήσει καθώς καλύπτουν και τα δύο σημεία, με τη Verilog να γίνεται σταδιακά περισσότερο δημοφιλής. Σήμερα, μόνο ψηφιακές μηχανές πεπερασμένων καταστάσεων, όπου ο κώδικας είναι σε RTL επίπεδο, μπορούν να συντεθούν. 10 Κεφάλαιο 1ο Πιο συγκεκριμένα, τα συστήματα που επεξεργάζονται ψηφιακά δεδομένα χρησιμοποιούν ένα σχετικά περιορισμένο εύρος standard cells. Αυτό έγινε αντιληπτό από τους επιστήμονες των περασμένων δεκαετιών, οι οποίοι ανέπτυξαν εργαλεία "μετάφρασης" του HDL κώδικα (Verilog, VHDL) σε λογικές πύλες συνδεδεμένες κατάλληλα ώστε να επιτελούν την αντίστοιχη συμπεριφορά. Η διαδικασία αυτή ονομάζεται logic synthesis και τα εν λόγω εργαλεία synthesis tools (π.χ. Register Transfer Level Compiler, RTL Compiler®, RC). Ας σημειωθεί ότι αποτελείται από δύο στάδια, πρώτα μετασχηματισμοί ισοτιμίας αποσκοπούν στη μείωση του συνολικού αριθμού πυλών, άρα στη μείωση του εμβαδού και αύξηση της ταχύτητας, και έπειτα η ικανότητα οδήγησης κάθε standard cell προσαρμόζεται ώστε να καταναλώνει την ελάχιστη ισχύ ενώ πληρούνται οι προδιαγραφές. Ακόμα και έτσι δίνεται μεγάλο πλήθος επιλογών στην ομάδα σχεδιασμού, τόσο στις διάφορες προσεγγίσεις του κώδικα όσο και στην επιλογή της ισχύος οδήγησης, του χρόνου απόκρισης του standard cell, κλπ. Καμία σχέση όμως με το χαοτικό πρόβλημα του fullcustom design που προαναφέρθηκε. Με τη χρήση των HDLs και τη μετάβαση σε επίπεδο πυλών εισήχθησαν τρία σημαντικά πλεονεκτήματα στη διαδικασία σχεδίασης: • • • Εμφανίστηκε σαφής διαχωρισμός μεταξύ των δύο σταδίων σχεδίασης, αυτού της ανάπτυξης του κώδικα και αυτού της υλοποίησης του πραγματικού κυκλώματος. Με τον τρόπο αυτό, έγινε εφικτή η περαίωση των δύο σταδίων από άτομα και ομάδες με διαφορετικές ικανότητες, διότι η ανάπτυξη κώδικα HDL έχει αρκετές ομοιότητες με τον προγραμματισμό, ενώ το back-end, δηλαδή η υλοποίηση, απαιτεί βαθύτερες γνώσεις πάνω στην τεχνολογία και τα φαινόμενα ηλεκτρονικής. Μάλιστα, ανερχόμενα είναι τα εργαλεία EDA που μεταφράζουν συμβατικά προγράμματα σε HDL, για να αποδοθεί έπειτα σε επίπεδο πυλών (π.χ. HDL Coder®, C-to-Silicon Compiler®, CTOS). Τα τελευταία χρόνια που αναπτύσσονται κώδικες για ολοκληρωμένα με τεράστιο μέγεθος, προέκυψε η ανάγκη για επιβεβαίωση της ορθής λειτουργικότητας του HDL προγράμματος. Αυτό επιτελείται στον κλάδο του Verification, όπου με διάφορες, καθόλου τετριμμένες μεθόδους (π.χ. formal verification, assertions, κλπ.) επιδιώκεται η εξακρίβωση της συμπεριφοράς ώστε να προληφθούν αστοχίες. Καθώς ο κώδικας μεταφράζεται σε επίπεδο πυλών σε διακριτό στάδιο, είναι φανερό πως ο ίδιος κώδικας μπορεί να χρησιμοποιηθεί ως έχει σε ένα άλλο project, ή στην περίπτωση που το ίδιο σχέδιο μεταφερθεί σε άλλο PDK ή ακόμα σε τεχνολογία μικρότερων κόμβων. Το δεύτερο στάδιο της semi-custom μεθοδολογίας, η οποία αντίστοιχα ταυτίζεται με το digital flow καθώς τα κυκλώματα που εμφανίζουν ψηφιακές λειτουργίες σχεδιάζονται καθ' αυτόν τον τρόπο, αποτελείται από πολλά επιμέρους βήματα. Στόχος είναι η απόδοση του HDL κώδικα στο τελικό φυσικό σχέδιο (layout) του κυκλώματος, που θα αποσταλεί στο foundry ώστε να παρασκευαστεί το ολοκληρωμένο (tapeout). Τα standard cells προσφέρουν διάφορα κυκλώματα για την ίδια λειτουργικότητα (π.χ. μια πύλη NOR), τα οποία ποικίλουν στο τρίπτυχο ισχύς-απόδοση-έκταση (Power-Performance-Area, PPA) και σε άλλα χαρακτηριστικά, όπως η δύναμη οδήγησης, η χωρητικότητα, ο χρόνος απόκρισης της εξόδου, κλπ. Συνεπώς ο μηχανικός καλείται να επιλέξει κατάλληλα standard cells ώστε να μη μεταβάλλεται η συμπεριφορά στο layout, όπου η επίδραση των χρόνων διάδοσης και απόκρισης είναι φανερή. Ο υπολογισμός των καθυστερήσεων, της ακεραιότητας του σήματος, η στατική χρονική ανάλυση και η επιλογή τοποθέτησης εξαρτημάτων ώστε να αντισταθμιστούν τα ανεπιθύμητα φαινόμενα ονομάζεται timing signoff. Επιπλέον, χρήζει αναφοράς το Clock Tree Synthesis (CTS), διαδικασία αναγκαία καθώς είναι αδύνατο για ένα ρολόι παλμών να 11 Ηλεκτρονική Σχεδίαση με Αυτοματοποίηση οδηγήσει ένα κύκλωμα αξιοσημείωτου μεγέθους, λόγω της χωρικής απόστασης των υποκυκλωμάτων αλλά και της ισχύος που θα απαιτούσε. Αντ' αυτού, χρησιμοποιείται μια δενδρική δομή, όπου το πηγαίο clock οδηγείται αναδρομικά μέσω διάφορων buffers στα τελικά κυκλώματα. Είναι εύκολα κατανοητό ότι το συγκεκριμένο στάδιο της σχεδίασης είναι εξαιρετικά σημαντικό στην ακολουθιακή λογική, όπου οι παλμοί του ρολογιού πρέπει να φτάνουν σχεδόν ταυτόχρονα σε όλα τα standard cells, και η διαδικασία έχει αυτοματοποιηθεί πλέον με τη χρήση σύγχρονων εργαλείων (π.χ. Encounter Timing System®, ETS) σε μεγάλο βαθμό. Φυσικά, ο κύκλος σχεδίασης περιλαμβάνει και άλλα καθήκοντα, όπως το floorplanning, τον υπολογισμό της ακεραιότητας ισχύος (power integrity), την επιβεβαίωση ότι δεν υπάρχει επικίνδυνη πτώση τάσης μακριά από την πηγή, την ανεύρεση παρασιτικών αντιστάσεων και χωρητικοτήτων (QRC extraction), διάφορες post-layout προσομοιώσεις και άλλα. Όμως η περαιτέρω ανάλυση ξεπερνά τα πλαίσια της συγκεκριμένης διπλωματικής εργασίας. Εικόνα 1.2: Analog και Digital Design flows Η εκτέλεση των προσομοιώσεων του κυκλώματος σε καθένα από τα δύο flows αποτελεί ειδοποιό διαφορά και η αντίληψή της είναι η βάση για την κατανόηση της μεθοδολογίας μικτού σήματος. Συνοπτικά, οι αναλογικοί επιλυτές (analog solvers) που χρησιμοποιούνται στο analog flow καταστρώνουν κυκλωματικές εξισώσεις με τη μέθοδο κόμβων και επιλύουν τους πίνακες για κάποιο χρονικό βήμα (timestep). Η επίλυση συνοδεύεται από υπολογισμό των παραμέτρων του κάθε στοιχείο, αφού αυτά αναπροσαρμόζονται για το σύνολο των μεταβλητών κατάστασης που επικρατούν κάθε στιγμή. Από την άλλη πλευρά, οι ψηφιακοί επιλυτές (digital solvers) ακολουθούν τη ροή του σήματος, δεν επιλύουν εξισώσεις και είναι οδηγούμενοι από γεγονότα (event driven), δηλαδή μεταβάλλουν την κατάσταση του κυκλώματος και εκτελούν μέρος του κώδικα όταν οι είσοδοι το υποδείξουν. Μοιάζουν λοιπόν περισσότερο σε Compiler γλώσσας προγραμματισμού, παρά στον αναλογικό επιλυτή. 12 Κεφάλαιο 1ο Εξετάζοντας πιο αναλυτικά τους αναλογικούς επιλυτές (SPICE, PSPICE, HSPICE®, Spectre®, κλπ.), αξίζει να αναφερθεί πως διαχωρίζονται σε δύο κατηγορίες: τους άμεσους και τους έμμεσους. Οι πρώτοι εξάγουν το netlist από το σχηματικό, το οποίο κατ' ουσία είναι όλες οι πληροφορίες που απεικονίζονται, μετατρεπόμενες στη γλώσσα του προσομοιωτή, και επιλύουν το κύκλωμα. Αντίθετα, οι έμμεσοι πραγματοποιούν τη διαδικασία σε δύο βήματα, με ένα στάδιο "υποδοχής", δηλαδή μετατροπής του SPICE netlist και των "εκφράσεων" (expressions) σε γλώσσα κατανοητή στον προσομοιωτή. Παρόλο που και οι δύο μέθοδοι έχουν συγκεκριμένα πλεονεκτήματα, οι άμεσοι επιλυτές έχουν επικρατήσει λόγω βελτιωμένης απόδοσης. Με τη χρήση μεθόδων αριθμητικής ανάλυσης (π.χ. Newton Raphson), οι αναλογικοί προσομοιωτές επιλύουν τις κυκλωματικές εξισώσεις κατάστασης ώστε το σφάλμα από τις πραγματικές τιμές των μεταβλητών κατάστασης να είναι μικρότερο από κάποιο επιτρεπτό όριο. Στην πραγματικότητα, υπάρχει πλήθος αλγορίθμων επίλυσης, ο καθένας με τα δικά του πλεονεκτήματα και μειονεκτήματα, και ο μηχανικός καλείται να επιλέξει την κατάλληλη μέθοδο ώστε να λάβει τα επιθυμητά αποτελέσματα σε εύλογο χρονικό διάστημα. Η επίλυση του κυκλώματος μπορεί να είναι μια διαδικασία μεγάλης διάρκειας και να απαιτεί σημαντικούς υπολογιστικούς πόρους. Σε πολλές περιπτώσεις πρέπει να γίνει αντιστάθμιση μεταξύ της ακρίβειας των αποτελεσμάτων και της ταχύτητας υπολογισμού. Πρόσφατα, παρατηρείται μάλιστα μια εξειδίκευση των αλγορίθμων ανάλογα με το κύκλωμα που αντιμετωπίζουν, για παράδειγμα έχει αναπτυχθεί συγκεκριμένος αλγόριθμος που επιταχύνει την επίλυση των ταλαντωτών, εκμεταλλευόμενος την περιοδικότητα των κυματομορφών σε κατάσταση ηρεμίας. Όσον αφορά τις δυνατότητες που παρέχουν, οι αναλογικοί επιλυτές είναι ιδιαίτερα διαμορφώσιμοι και φέρουν μεγάλο πλήθος λειτουργιών. Η βασικότερη ανάλυση που διαθέτουν είναι αυτή στο πεδίο του χρόνου, όπου ο μηχανικός δύναται να επιλέξει, ανάμεσα στις υπόλοιπες προδιαγραφές, την ακρίβεια της επίλυσης, τον αλγόριθμο που θα χρησιμοποιηθεί, τα σήματα που θα αποθηκευθούν και ενδεχόμενα σημεία παύσης του αλγορίθμου. Φυσικά, η χρονική ανάλυση βασίζεται στη στατική ανάλυση (DC simulation) του κυκλώματος, με επανάληψη της επίλυσης των εξισώσεων για κάθε χρονικό βήμα. Μια ακόμα ανάλυση που χρησιμοποιείται κατά κόρον σε φίλτρα, ενισχυτές, μίκτες και όλα σχεδόν τα αναλογικά κυκλώματα, είναι αυτή στο πεδίο της συχνότητας, ώστε να εξετασθεί η συμπεριφορά του συστήματος στο εύρος συχνοτήτων που ενδιαφέρει. Πιο εξειδικευμένες αλλά εξίσου χρήσιμες λειτουργίες αποτελούν η ανάλυση ευαισθησίας, θορύβου, συνάρτησης μεταφοράς, αξιοπιστίας και Monte Carlo. Επιπρόσθετα, οι προσομοιωτές που χρησιμοποιούνται σήμερα στη βιομηχανία παρέχουν συγκεκριμένες αναλύσεις αφοσιωμένες για κυκλώματα που λειτουργούν σε υψηλές συχνότητες (radio frequencies, RF) και παρουσιάζουν ορισμένες ιδιαιτερότητες, με τη βασικότερη να είναι η περιττή επανάληψη της επίλυσης στη συχνότητα φέροντος. Τέτοιου είδους αναλύσεις είναι η ανίχνευση περιβάλλουσας, η περιοδική ανάλυση μικρού σήματος, η ανάλυση S-παραμέτρων και ο υπολογισμός του σημείου IIP3. Σχετικά με τη μέθοδο επίλυσης, είναι σημαντικό να επιλεγεί η κατάλληλη, αφού το πεδίο του χρόνου ενδείκνυται για κυκλώματα με απότομες αλλαγές, ενώ το πεδίο συχνότητας προτείνεται για πιο γραμμικά κυκλώματα. Κάθε είδους ανάλυση επιτρέπει την παραμετροποίηση μεγεθών, ώστε να επιλεχθεί η βέλτιστη τιμή των μεταβλητών βάσει της επιθυμητής απόκρισης του συστήματος, αλλά και ακραίων συνθηκών (θερμοκρασίας, κατασκευαστικών ελαττωμάτων, κλπ.), ώστε να προσδιοριστούν τα όρια λειτουργίας του κυκλώματος. Αντιθέτως, οι ψηφιακοί επιλυτές θα μεταβάλλουν την κατάσταση ενός μέρους του κυκλώματος μόνο όταν κάποιο γεγονός πυροδοτήσει το κομμάτι του κώδικα από το οποίο αντιπροσωπεύεται. Δεν επιλύονται κυκλωματικές εξισώσεις, άρα δεν υπάρχουν πληροφορίες για την τάση, το ρεύμα, κλπ. των κόμβων, παρά μόνο αριθμητικές και λογικές πράξεις, τα αποτελέσματα των οποίων συνήθως αποθηκεύονται σε καταχωρητές. Όπως και 13 Ηλεκτρονική Σχεδίαση με Αυτοματοποίηση στους συμβατικούς compilers προγραμματισμού, ο HLD κώδικας μετατρέπεται σε γλώσσα χαμηλότερου επιπέδου προτού εκτελεστεί. Η τεράστια αφαίρεση(abstraction) που εμφανίζεται σε αυτή την περίπτωση και φυσικά η ταχύτατη προσομοίωση του κυκλώματος σε σύγκριση με τους αναλογικούς επιλυτές, οδήγησε στην ανάπτυξη λειτουργιών και τεχνικών για αποσφαλμάτωση του κώδικα, επαλήθευσης της ορθότητας των αλγορίθμων με μαθηματικές μεθόδους και εγγύηση ότι τα αδιέξοδα είναι αδύνατα (formal verification), έλεγχος ότι το πρόγραμμα πραγματοποιεί τα καθήκοντα που τίθενται στις προδιαγραφές (functional verification), και άλλων. Αυτές οι μέθοδοι που αναπτύχθηκαν λόγω της ανάγκης για επαλήθευση των όλο και μεγαλύτερων HDL προγραμμάτων, σε συνδυασμό με την χρονική ανάλυση για διάφορες τιμές εισόδου και τοποθέτηση ισχυρισμών (assertions) μέσα στον κώδικα, οι οποίοι ελέγχουν την τιμή κρίσιμων μεταβλητών, στοχεύουν στο να επιβεβαιώσουν σε ικανοποιητικό βαθμό ότι το πρόγραμμα λειτουργεί με τον τρόπο που προορίζεται. Στα πλαίσια της σύγκρισης των προσομοιωτών, αξίζει να αναφερθεί ότι έχουν αναπτυχθεί και θα συνεχίσουν να αναπτύσσονται νέοι και ισχυρότεροι. Ενδεικτικά, ο επιλυτής που χρησιμοποιήθηκε στο μεγαλύτερο μέρος της παρούσας διπλωματικής εργασίας είναι ο Accelerated Parallel Simulator® (APS) της Cadence®. Αυτός, πέρα από το βελτιωμένο αλγόριθμο που χρησιμοποιεί, δίνει τη δυνατότητα για κατάτμηση του πίνακα με τις εξισώσεις κατάστασης και επίλυσης σε διαφορετικούς επεξεργαστές, δηλαδή μπορεί να παραλληλίσει την επίλυση του κυκλώματος. Επιπλέον, προσφέρει επιλογές για βαθμωτή αντιστάθμιση μεταξύ επίδοσης και ακρίβειας, ομαλοποίηση των παρασιτικών σε μια postlayout προσομοίωση ώστε να αγνοηθεί μεγάλο πλήθος εξαρτημάτων που δε μεταβάλλουν τη συμπεριφορά, αυξάνοντας έτσι σημαντικά την ταχύτητα υπολογισμού της παρασιτικής πτώσης τάσεως στο φυσικό σχέδιο και εξειδικευμένες μεθόδους για συγκεκριμένα κυκλώματα (π.χ. ταλαντωτές). Παρομοίως, υπάρχουν και άλλοι προσομοιωτές που εξειδικεύονται σε συγκεκριμένες λειτουργίες, καθώς οι εταιρείες στο χώρο του EDA επιχειρούν να κερδίσουν κομμάτι της αγοράς. Έχοντας εξετάσει εποπτικά τα δύο flows και τους αντίστοιχους επιλυτές, εισάγεται η έννοια της μεθοδολογίας μικτού σήματος, η οποία συνδυάζει τις τεχνικές που προαναφέρθηκαν. Η ανάγκη για ανάπτυξη ενός υβριδικού μοντέλου ανάπτυξης ολοκληρωμένων κυκλωμάτων προέκυψε από το εγχείρημα τοποθέτησης ψηφιακών και αναλογικών μερών στο ίδιο τσιπ. Οι επιμέρους σχεδιάσεις του αναλογικού και του ψηφιακού μέρους δε διαφέρουν σημαντικά από τα αμιγώς αναλογικά και ψηφιακά κυκλώματα, αντίστοιχα. Τα στάδια σχεδίασης μάλιστα, είναι τα ίδια. Όμως οι ιδιαιτερότητες που προκύπτουν σχετίζονται με τις πληροφορίες που ενδιαφέρουν σε κάθε περίπτωση, αλλά και τις δυνατότητες που προσφέρουν οι προσομοιωτές. Πιο αναλυτικά, ο ψηφιακός επιλυτής δεν προσφέρει καμία πληροφορία σχετικά με τις τάσεις και τα ρεύματα λειτουργίας, που είναι απαραίτητα για την εξαγωγή των επιθυμητών κυματομορφών στα αναλογικά υποκυκλώματα. Από την άλλη, ο αναλογικός επιλυτής δεν ενδείκνυται για να χειριστεί τα εκατομμύρια τρανζίστορ που αντιπροσωπεύουν την ψηφιακή λογική, ούτε οι πληροφορίες που θα εξάγει για αυτά είναι χρήσιμες, καθώς ενδιαφέρει μονάχα η διακοπτική λειτουργία των NMOS και PMOS. Συνεπώς, δεν είναι εφικτή η προσομοίωση ολόκληρου του IC σε έναν επιλυτή. Στην πράξη, αυτό που συμβαίνει είναι η αντιπροσώπευση του ψηφιακού μέρους στο αναλογικό και αντίστροφα. Στην πρώτη περίπτωση γίνεται λόγος για Analog-Mixed Signal (AMS), ενώ στη δεύτερη για Digital-Mixed Signal (DMS). Στο AMS flow, στόχος είναι η ανάπτυξη του αναλογικού μέρους δεδομένης της συμπεριφοράς του ψηφιακού. Αντί λοιπόν να εισαχθεί το φυσικό σχέδιο (GDSII) από το digital flow στο φυσικό σχέδιο του αναλογικού, να εξαχθούν οι παρασιτικές αντιστάσεις και 14 Κεφάλαιο 1ο χωρητικότητες, να αποκομισθεί ένα ενιαίο netlist και να γίνει η προσομοίωση, μια διαδικασία αυστηρά αδύνατη στην πράξη ακόμη και για σχετικά μικρά ψηφιακά κυκλώματα, επιλέγεται η χρήση του HDL κώδικα ώστε να αναπαραστήσει τη λειτουργικότητα του ψηφιακού μέρους. Ως επιπρόσθετο πλεονέκτημα θα πρέπει να αναγνωριστεί ότι το HDL πρόγραμμα προσομοιώνεται ταχύτατα, άρα δεν είναι αναγκαίοι περισσότεροι υπολογιστικοί πόροι. Απαιτείται όμως η ικανότητα προσομοίωσης του HDL κώδικα από τον αναλογικό επιλυτή. Αυτό οδήγησε στην ανάπτυξη των προσομοιωτών μικτού σήματος. Για παράδειγμα, η Cadence προσφέρει το AMS Designer® (AMSD), το οποίο αποτελεί ένα πακέτο που ενσωματώνει τους δύο επιλυτές σε ένα εκτελέσιμο αρχείο, υποστηρίζει όλες τις γλώσσες του στάνταρ (SPICE, Spectre, Verilog-A/MS, VHDL-A/MS, SystemVerilog, SystemC, κλπ.), επιτρέπει διάφορα επίπεδα αφαίρεσης (RTL, behavioral, κλπ.), εναλλαγή ανάμεσα σε διαφορετικές υλοποιήσεις κάθε υποκυκλώματος μέσω του Hierarchy Editor και συνοδεύεται από πλήθος άλλων λειτουργιών. Το πιο ενδιαφέρον σημείο εντοπίζεται στην επικοινωνία μεταξύ του αναλογικού μέρους, που εκφράζει τους κόμβους με τάσεις και ρεύματα, και του ψηφιακού, που αναγνωρίζει μόνο δυαδική λογική και πραγματικούς αριθμούς. Για το λόγο αυτό έχουν αναπτυχθεί και χρησιμοποιούνται στοιχεία διασύνδεσης (interface elements, connect modules, CM) που μεταφράζουν τις πολυδιάστατες μεταβλητές κατάστασης του αναλογικού μέρους, σε 0,1,x,z που μπορεί να αναγνωρίσει ο ψηφιακός επιλυτής. Βέβαια, η διαδικασία γίνεται και αντίστροφα. Τα CMs είναι κομμάτια κώδικα γραμμένα σε κάποια AMS γλώσσα και είναι ιδιαιτέρως προσαρμόσιμα. Έτσι, είναι εφικτό να επιβεβαιωθεί η ορθή λειτουργία ολόκληρου του τσιπ διαμέσου του analog flow. Τα τελευταία χρόνια η πολυπλοκότητα των σχεδίων έχει αυξηθεί εκθετικά και είναι αναμενόμενο πως θα συνεχίσει να αυξάνεται. Αναντιρρήτως, με την εμφάνιση των επεξεργαστών που χειρίζονται ψηφιακά δεδομένα και των Digital Signal Processors (DSP), η αυτοματοποίηση στο digital flow συνέβαλε σημαντικά στη δημιουργία ευφυών συστημάτων. Όμως όλο και περισσότερα από αυτά τα σχέδια περιλαμβάνουν κάποια αναλογική λειτουργικότητα, για παράδειγμα οι πομποδέκτες, οι δέλτα-σίγμα διαμορφωτές, οι μετατροπείς A2D και D2A και γενικότερα οποιοδήποτε σύστημα έχει επαφή με τον πραγματικό κόσμο. Απόρροια της συνεχούς αλληλεπίδρασης μεταξύ του αναλογικού και του ψηφιακού μέρους εντός των εν λόγω συστημάτων είναι η αναζήτηση μεθόδων επιβεβαίωσης της ορθής επικοινωνίας και λειτουργίας του SoC, το οποίο συνθέτει τον ορισμό του Verification. Ωστόσο, καθότι η προσομοίωση σε αναλογικούς επιλυτές (Spice, Spectre, etc.) είναι τάξεις μεγέθους πιο αργή από την προσομοίωση σε αμιγώς ψηφιακούς επιλυτές, η βιομηχανία στράφηκε στην ανάπτυξη μοντέλων πραγματικών αριθμών (Real Number Modeling, RNM) για την αναπαράσταση αναλογικής συμπεριφοράς σε συστήματα μικτού σήματος, γεφυρώνοντας με αυτό τον τρόπο το χάσμα και επιτρέποντας συμβιβασμούς μεταξύ της ακεραιότητας των αποτελεσμάτων και του χρόνου εκτέλεσης. Οι γλώσσες περιγραφής hardware (HDLs) στις οποίες κάτι τέτοιο είναι εφικτό είναι η VerilogAMS με τη χρήση μεταβλητών τύπου wreal και η SystemVerilog. Με τον τρόπο αυτό, δηλαδή τη μοντελοποίηση της συμπεριφοράς του αναλογικού μέρους, αντιπροσωπεύεται το αντίστοιχο κομμάτι του κυκλώματος στο digital front-end flow. 1.3 Μεθοδολογία αναλογικής επαλήθευσης Η αντιπροσώπευση της αναλογικής συμπεριφοράς αποτέλεσε το κίνητρο για την αφετηρία του RNM. Ωστόσο, δε χρησιμοποιήθηκε αποκλειστικά για αυτό το λόγο. 15 Ηλεκτρονική Σχεδίαση με Αυτοματοποίηση Συγκεκριμένα, αποτελεί μια τεχνική επιτάχυνσης των προσομοιώσεων. Σε σύγκριση με την επίλυση των μη γραμμικών διαφορικών εξισώσεων μέσω του υπολογισμού του μοντέλου του κάθε στοιχείου, η προσομοίωση RNM αναπαριστά τα αναλογικά μέρη με διακριτές πραγματικές τιμές, ο υπολογισμός των οποίων γίνεται στον ψηφιακό επιλυτή. Ανταλλάσσεται λοιπόν ακρίβεια στους υπολογισμούς με πολλών τάξεων μεγέθους επιτάχυνση. Επιπρόσθετα, δεν τίθενται ζητήματα μη-σύγκλισης (non-convergence) και είναι εφικτή η παράλληλη προσομοίωση υλικού και λογισμικού κατά τη διάρκεια επαλήθευσης ενός MS SoC. Τα χαρακτηριστικά αυτά κατέστησαν το RNM ιδανικό για περιγραφή των αναλογικών μπλοκ, όχι μόνο σε mixed signal κυκλώματα αλλά και στην ανάπτυξη αμιγώς αναλογικών υποκυκλωμάτων. Συνήθως υπάρχουν συγκεκριμένα τμήματα του σχεδίου που είναι κρίσιμα σε μια δεδομένη στιγμή της σχεδίασης και για κάθε γκρουπ μηχανικών. Αντί λοιπόν να προσομοιώνεται ολόκληρο το σχέδιο σε επίπεδο τρανζίστορ, μια διαδικασία εξαιρετικά χρονοβόρα, αντικαθίσταται από μοντέλα συμπεριφοράς και μόνο τα κομμάτια που ενδιαφέρουν επιλύονται εκτενώς. Ακόμα, το testbench μπορεί να αντικατασταθεί από ένα μοντέλο συμπεριφοράς, δίνοντας ευχέρεια στην εφαρμογή διεγέρσεων. Στην εικόνα 1.3 συγκρίνονται οι επιδόσεις και ο κόπος ανάπτυξης διάφορων μοντελοποιήσεων. Προφανώς, τα SPICE και FastSPICE (π.χ. UltraSIM®, APS®) models απαιτούν μόνο την τοποθέτηση τιμών στις παραμέτρους τους. Από την άλλη, ο κώδικας απαιτεί κάποια προσπάθεια στο να συνταχθεί, όμως προσομοιώνεται πολλές τάξεις μεγέθους ταχύτερα. Η μοντελοποίηση σε Verilog- και VHDL-AMS καταλαμβάνει μεγαλύτερο χωρίο καθώς το επίπεδο αφαίρεσης ποικίλει ιδιαιτέρως. Εικόνα 1.3: Ακρίβεια, κόστος και επιδόσεις ανάμεσα σε μοντελοποιήσεις 16 Κεφάλαιο 1ο Οι ειδήμονες του EDA αναγνώρισαν τη μεγάλη ευκαιρία που παρουσιάστηκε: ήταν πλέον εφικτή η γρήγορη επαλήθευση της ορθής συμπεριφοράς κάθε αναλογικού υποκυκλώματος ή ομάδας υποκυκλωμάτων. Η διαδικασία αυτή που σταδιακά εδραιώνεται στη βιομηχανία των ημιαγωγών ονομάζεται αναλογική επαλήθευση (analog verification), πρόκειται δε για functional verification καθώς εξετάζεται με συμβατικό τρόπο (χρονική ανάλυση) η συμπεριφορά του υπό εξέταση μέρους του κυκλώματος. Ο έλεγχος των αναλογικών μπλοκ γίνεται συνήθως από εκατοντάδες, ακόμα και χιλιάδες σήματα, συνεπώς πέρα από την εσωτερική λειτουργία είναι αναγκαίο να ελεγχθεί και η αλληλεπίδραση με το υπόλοιπο σύστημα. Δίχως μια μεθοδική και δομημένη διαδικασία επαλήθευσης, είναι πολύ πιθανό να υπάρξουν λογικά σφάλματα, που προφανώς είναι σημαντικότερα από τις επιδόσεις του ολοκληρωμένου. Ειδικά όσο η πολυπλοκότητα αυξάνει, τα functional λάθη είναι αυτά που προκαλούν πρόβλημα και χαρακτηρίζουν το τσιπ. Μέσω του analog verification εντοπίζονται τριών ειδών σφάλματα: • • • σφάλματα εντός διακριτών, αμιγώς αναλογικών υποκυκλωμάτων σφάλματα στην ενδοεπικοινωνία μεταξύ διαφορετικών μπλοκ σφάλματα σε κάποιο ψηφιακό μπλοκ που είτε ελέγχει το αναλογικό μέρος, είτε επεξεργάζεται τα δεδομένα που αυτό παράγει Με το στήσιμο testbenches, την εξέταση του κάθε μπλοκ ξεχωριστά, τη γρήγορη εύρεση των κατάλληλων τιμών και τοπολογιών (αφού η προσομοίωση ολόκληρου του συστήματος διαρκεί ελάχιστα περισσότερο), την εξακρίβωση της σωστής επικοινωνίας και την εξαντλητική προσομοίωση για πλήθος πιθανών εισόδων, ο μηχανικός μπορεί να είναι πεπεισμένος ότι τα λογικά σφάλματα έχουν εντοπιστεί και οι επιδόσεις είναι αποδεκτές. Επιπλέον, τα μοντέλα που αναπτύσσονται για τα αναλογικά μπλοκ μπορούν να χρησιμοποιηθούν από την ομάδα επαλήθευσης του ψηφιακού μέρους, ενώ οποιαδήποτε ιδέα για αλλαγή μπορεί να προσομοιωθεί προτού επιχειρηθεί η αντίστοιχη μεταβολή στο σχέδιο. Καθίσταται έτσι εφικτή η σχεδίαση πολύπλοκων συστημάτων μικτού σήματος (π.χ. πολύτροπων ασύρματων πομποδεκτών) με δυνατότητα αποφυγής του διαβόητου respin, δηλαδή της επανάληψης της σχεδίασης όταν δεν πληροί τις προδιαγραφές. Ειδικά σε τέτοιες περιπτώσεις συστημάτων με πολλές λειτουργίες, πρέπει να ελεγχθούν όλα τα functional σφάλματα. Ένα ακόμα πλεονέκτημα της μεθοδολογίας είναι ότι η διαδικασία των τεστ παλινδρόμησης για βελτιστοποίηση των επιδόσεων δε γίνεται να ξεκινήσει προτού μια αρχική επιβεβαίωση της λειτουργίας ολοκληρωθεί. Αντίθετα, κρατώντας σε επίπεδο τρανζίστορ μόνο τα υπό αμφισβήτηση μπλοκ που χρήζουν βελτίωσης, το εν λόγω εμπόδιο ξεπερνιέται. Η ανάπτυξη των ολοκληρωμένων κυκλωμάτων ακολουθεί δύο προσεγγίσεις[5], ως προς τη σειρά σχεδίασης των επιμέρους τμημάτων. Αυτές είναι η από κάτω προς τα πάνω (bottom-up) και η από πάνω προς τα κάτω (top-down). Χρονικά, η bottom-up μεθοδολογία είναι αυτή που προηγήθηκε. Σε αυτή, πρώτα σχεδιάζονται τα απλούστερα υποκυκλώματα χαμηλού επιπέδου, μετά τα πιο σύνθετα και στο τέλος συνδυάζονται για να απαρτίσουν το συνολικό σύστημα. Η παραδοσιακή προσομοίωση για το κάθε υποκύκλωμα εκτελείται χωριστά. Συνεπώς, πρέπει να ορίζονται προδιαγραφές για κάθε διαφορετικό μέρος, ακόμα και τα πιο θεμελιώδη. Καθώς όμως τα ολοκληρωμένα καλούνται να επιτελέσουν περισσότερες λειτουργίες και σε συνδυασμό με την εφαρμογή των νέων τεχνικών που προαναφέρθηκαν, η top-down προσέγγιση έχει γίνει η πλέον δημοφιλής. Σε σχετική έρευνα του Ron Collett το 1997, αποκαλύφθηκε ένα χάσμα παραγωγικότητας μεταξύ ομάδων σχεδίασης που χρησιμοποιούσαν τις δύο διαφορετικές μεθόδους. Ο λόγος που η bottomup τεχνική δεν αποδίδει σε πολύπλοκα συστήματα είναι ότι: 17 Ηλεκτρονική Σχεδίαση με Αυτοματοποίηση • • • • • η διαδικασία επαλήθευσης ξεκινά αργά στον κύκλο σχεδίασης, κάτι που συχνά οδηγεί σε σφάλματα και respins η προσομοίωση του τελικού συστήματος μπορεί να έχει εξαιρετικά μεγάλη διάρκεια δεν είναι εφικτό να βελτιωθούν οι επιδόσεις με κάποια μεταβολή σε επίπεδο αρχιτεκτονικής απαιτείται πολύ στενή συνεργασία μεταξύ των υποομάδων μηχανικών που είναι υπεύθυνες για ξεχωριστά μέρη, ώστε το τελικό σύστημα να δουλεύει πολλές διεργασίες γίνονται αυστηρά σειριακά. Η top-down μεθοδολογία σχεδίασης στηρίζεται στη σχεδίαση και επαλήθευση του συστήματος σε ένα αφηρημένο επίπεδο, προτού ξεκινήσει η σχεδίαση των επιμέρους υποκυκλωμάτων. Αυτό το επίπεδο προσεγγίζεται με την ανάπτυξη μοντέλων συμπεριφοράς, είτε με τη μέθοδο RNM για συστήματα μικτού σήματος, είτε με αναλογικά μοντέλα (Verilog-A) για αμιγώς αναλογικά κυκλώματα, τα οποία αντιπροσωπεύουν τα μέρη που θα υλοποιηθούν στην πορεία. Προηγείται λοιπόν η προσομοίωση σε επίπεδο συστήματος, η οποία μπορεί να γίνει είτε σε Verilog-/VHDL-AMS, είτε σε υπολογιστικά λογισμικά όπως το Simulink® που επιτρέπουν εξερεύνηση διαφόρων αλγορίθμων, όπου η αποσφαλμάτωση και οι αντισταθμίσεις είναι εύκολες. Μόλις ο κατάλληλος αλγόριθμος επιλεχθεί, πρέπει να αντιστοιχηθεί σε κάποια αρχιτεκτονική. Έπειτα, αναπτύσσονται πιο λεπτομερή μοντέλα, που περιγράφουν τη λειτουργία των πραγματικών στοιχείων (π.χ. δίοδοι, πυκνωτές) και σταδιακά, ανάλογα με τις ανάγκες και το μέγεθος, προσεγγίζεται το τελικό κύκλωμα για το κάθε μέρος. Πιο αναλυτικά, ακολουθούνται οι εξής βασικές αρχές: • • • • • Υπάρχει μια κοινή αναπαράσταση του συστήματος για όλη τη διάρκεια του project που χρησιμοποιείται από κάθε υποομάδα (αρχιτέκτονες, μηχανικούς συστημάτων, front- και back-end μηχανικούς) Καθεμία μεταβολή προσομοιώνεται σε επίπεδο συστήματος Τα κρίσιμα σημεία και τα ρίσκα αναγνωρίζονται εκ των προτέρων, κατά την ανάπτυξη των μπλοκ Η βελτίωση των επιδόσεων ακολουθεί τη στοιχειώδη λειτουργική επιτυχία Οι προδιαγραφές, τα σχέδια και γενικά το documentation του αποκτά ενεργό ρόλο και θα πρέπει, στα πλαίσια του εφικτού, να δηλωθούν ως scripts που επιβεβαιώνουν τη λειτουργία (π.χ. design specs, βλ. παράγραφο 5.4) τα οποία θα τρέχουν σε καθημερινή βάση. Ένα ακόμη πλεονέκτημα είναι αυτό της επαναχρησιμοποίησης των υποκυκλωμάτων, η οποία διευκολύνεται από το γεγονός ότι το αντίστοιχο μοντέλο υψηλού επιπέδου είναι διαθέσιμο μαζί με το transistor-level σχέδιο, οπότε η αξιολόγηση της καταλληλότητάς του ενισχύεται και επίσης δρα ως ένα δεύτερο στάδιο τεκμηρίωσης. Φυσικά, δεν αποκλείεται η bottom-up επαλήθευση μικρών κομματιών, εκεί όπου κρίνεται προτιμότερη. Όμως το σημαντικότερο σημείο, αυτό της ροής των σημάτων ελέγχου στα pins, της ορθής επικοινωνίας μεταξύ των υποκυκλωμάτων και αντίστοιχα της επικοινωνίας μεταξύ των υποομάδων σχεδίασης είναι παρόν μόνο στην top-down μεθοδολογία. Είναι φανερό λοιπόν ότι αυξάνει την παραγωγικότητα και επιτρέπει την παράλληλη εκτέλεση πολλών σχεδιαστικών καθηκόντων (π.χ. αξιολόγηση της IP όσο οι μηχανικοί συστήματος ολοκληρώνουν την αρχιτεκτονική). Για τους λόγους αυτούς, στην παρούσα διπλωματική εργασία ακολουθείται μια αυστηρή top-down μεθοδολογία, με τη VAMS να είναι το θεμέλιο πάνω στο οποίο χτίζεται. 18 Κεφάλαιο 1ο Με όσα ειπώθηκαν παραπάνω, καλώς εχόντων των πραγμάτων, έχει γίνει σαφές ότι η διαδικασία της αναλογικής επαλήθευσης είναι αλληλένδετη με τη μεθοδολογία της topdown σχεδίασης. Στο κεφάλαιο 2 που ακολουθεί, αναπτύσσονται αφαιρετικά και πιο λεπτομερή μοντέλα συμπεριφοράς για το κάθε υποκύκλωμα και για διάφορες προσεγγίσεις. Έπειτα, στο κεφάλαιο 3 υλοποιούνται τα επιμέρους κυκλώματα και παρουσιάζονται τα αποτελέσματα σε επίπεδο συστήματος. Καταλήγοντας, το σχέδιο προσομοιώνεται καθολικά σε επίπεδο τρανζίστορ, όπως δηλαδή προστάζει η μεθοδολογία αναλογικής επαλήθευσης. Εικόνα 1.4: Σχηματικό διάγραμμα Analog Verification 19 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων Κεφάλαιο 2 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων 2.1 Αρχή Λειτουργίας Ο Βρόχος Κλειδώματος Φάσης (Phase-Locked Loop, PLL) είναι ένα σύστημα ελέγχου με ανάδραση, που χρησιμοποιείται σε ένα πολύ ευρύ φάσμα εφαρμογών. Πρόκειται για ένα κύκλωμα το οποίο παράγει ένα περιοδικό σήμα στην έξοδό του, η συχνότητα του οποίου είναι πολλαπλάσια κάποιου σήματος αναφοράς που δίνεται ως είσοδος. Εάν το τελικό σήμα εξόδου είναι τετραγωνικοί παλμοί μιλάμε για αμιγώς ψηφιακό (All Digital PLL, ADPLL) και αν είναι ημιτονοειδές για αναλογικό ή ψηφιακό PLL αντίστοιχα, βάσει των δομικών στοιχείων που χρησιμοποιούνται. Σε όλες τις υλοποιήσεις εμφανίζονται τα εξής υποκυκλώματα (subcircuits): 1) ένα ρολόι αναφοράς (reference clock, REF) 2) ένας ανιχνευτής διαφοράς φάσης (Phase Detector, PD) 3) μία αντλία φορτίου (Charge Pump, CP) 4) ένα χαμηλοπερατό φίλτρο (Low-Pass Filter, LPF) 5) ένας ταλαντωτής του οποίου η συχνότητα εξαρτάται από μια τάση ελέγχου (Voltage Controlled Oscillator, VCO) 6) ένας διαιρέτης συχνότητας, ο οποίος κλείνει το βρόχο ανάδρασης 20 Κεφάλαιο 2ο Εικόνα 2.1: Σχηματικό διάγραμμα PLL Πιο αναλυτικά, το σήμα αναφοράς που δίνεται ως είσοδος μπορεί να προκύπτει είτε από κάποια διαφορετική βαθμίδα του συστήματος, είτε από κάποιον κρυσταλλικό ταλαντωτή (crystal oscillator). Βασική προϋπόθεση αποτελεί η σταθερότητα του σήματος αυτού. Αν για παράδειγμα προκύπτει από κάποιο σήμα κεραίας, η διαμόρφωση στην οποία υπόκειται θα πρέπει να μην επηρεάζει τη συχνότητά του για σημαντικό χρόνο, καθώς αυτό θα επηρεάσει σημαντικά τη συχνότητα του σήματος εξόδου. Για το λόγο αυτό συνήθως επιστρατεύονται κρυσταλλικοί ταλαντωτές, ολοκληρωμένα κυκλώματα που βασίζονται στο μηχανικό συντονισμό κάποιου κρυσταλλικού ή πιεζοηλεκτρικού στοιχείου για να παράγουν σήματα με σταθερή συχνότητα. Το εύρος συχνοτήτων τους ξεκινά σε λιγότερα από 100 kHz και μπορεί να ξεπερνά τα 100 MHz. Το PLL καλείται να μετατρέψει αυτό το σήμα αναφοράς σε τάξης μεγέθους μεγαλύτερες συχνότητες. Στη βαθμίδα του ανιχνευτή διαφοράς φάσης γίνεται η σύγκριση μεταξύ του σήματος αναφοράς (reference, ref) και του σήματος ανατροφοδότησης (feedback, fb). Στην πιο απλή του μορφή, είναι μια πύλη XOR, συνεπώς παράγει έξοδο μόνο όταν η φάση ενός εκ των δύο σημάτων προηγείται της φάσης άλλου. Αν λοιπόν οι φάσεις και κατ΄επέκταση οι συχνότητες των δυο σημάτων είναι ίδιες, το κύκλωμα PD δίνει μηδενική έξοδο. Όταν υπάρχει διαφορά, παράγεται ένα σήμα ελέγχου με διάρκεια όση η διαφορά φάσης μεταξύ των σημάτων αναφοράς και ανατροφοδότησης, το οποίο υποδεικνύει στις επόμενες βαθμίδες πιο σήμα φτάνει γρηγορότερα, ώστε η διαφορά να διορθωθεί. Το υποκύκλωμα αυτό λοιπόν έχει δύο εισόδους και τροφοδοτεί την αντλία φορτίου. Σε συνδυασμό με το χαμηλοπερατό φίλτρο, το υποκύκλωμα της αντλίας φορτίου καλείται να ρυθμίσει την τάση ελέγχου του ταλαντωτή (VCO). Όταν ο PD υποδείξει πως το σήμα αναφοράς προηγείται ή καθυστερεί σε σχέση με το σήμα ανάδρασης, η τάση ελέγχου μειώνεται ή αυξάνεται αντιστοίχως. Το όνομα "αντλία φορτίου" προκύπτει από την φόρτιση και εκφόρτιση των πυκνωτών του φίλτρου, το οποίο είναι απαραίτητο ώστε να κρατήσει μια σταθερή τάση εισόδου για τον ταλαντωτή αλλά και να γειώσει μέσω των πυκνωτών αποσύζευξης τις ανώτερες αρμονικές συχνότητες που προκύπτουν παρασιτικά. Το ζωτικότερο κομμάτι του συστήματος, ο ταλαντωτής, παράγει το περιοδικό σήμα εξόδου, η συχνότητα του οποίου είναι ανάλογη της τάσης ελέγχου. Διαφορετικές τοπολογίες παράγουν διαφορετικά είδη εξόδου, με τα πλέον χρήσιμα να είναι οι 21 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων τετραγωνικοί παλμοί σε ψηφιακά συστήματα και τα ημίτονα σε συστήματα όπως οι πομποδέκτες. Στη συνέχεια αναλύονται και οι δύο αυτοί τύποι. Ως το πλέον ενεργό κομμάτι του συστήματος, o VCO καταναλώνει την περισσότερη ισχύ και είναι η κύρια αιτία εμφάνισης αρμονικών συχνοτήτων. Ας μη παραβλεφθεί ότι στη CMOS τεχνολογία η κατανάλωση σταθερής κατάστασης είναι μηδαμινή και η ισχύς αυξάνεται κατά τις μεταβάσεις, δικαιολογώντας απόλυτα την παραπάνω δήλωση. Τέλος, ο βρόχος κλείνει με τη βαθμίδα ανατροφοδότησης, το διαιρέτη συχνότητας. Λειτουργία αυτού είναι η διαίρεση της υψηλής συχνότητας του σήματος εξόδου είτε με κάποια σταθερά, είτε με αριθμό που δίνεται ως είσοδος στο κύκλωμα. Στη δεύτερη περίπτωση γίνεται λόγος για N-Frequency Synthesizer, δηλαδή το PLL έχει τη δυνατότητα να παράγει μια μπάντα "Ν" αριθμού συχνοτήτων, με το σήμα εξόδου να έχει συχνότητα Ν φορές αυτή του σήματος αναφοράς. Κι αυτό διότι ο βρόχος "κλειδώνει" όταν η διαφορά φάσης και συχνότητας μεταξύ των σημάτων αναφοράς - ανάδρασης τείνει στο μηδέν, δηλαδή: D ( Ffb - Fref ) -> 0 Καθώς λοιπόν Ffb = Fout / N, η κατάσταση ηρεμίας του PLL προκύπτει όταν η συχνότητα του σήματος εξόδου Fout είναι Ν-φορές μεγαλύτερη της συχνότητας του σήματος εισόδου. Σχετικά με τα είδη PLL, χαρακτηρίζονται ως εξής: 1. Analog PLL, εάν ο ανιχνευτής φάσης και το φίλτρο είναι αναλογικά κυκλώματα 2. Digital PLL, όταν ο ανιχνευτής φάσης χρησιμοποιεί ψηφιακή λογική 3. All Digital PLL, όταν και ο VCO είναι ψηφιακό κύκλωμα. 2.2 Εφαρμογές Τα PLLs κατασκευάζονται σαν ολοκληρωμένα κυκλώματα, επιφέροντας όλα τα σχετικά πλεονεκτήματα που συζητήθηκαν στο 1ο κεφάλαιο, και αποτελούν στοιχειώδες κύκλωμα για αμέτρητο αριθμό εφαρμογών. Όπως αναφέρθηκε στην προηγούμενη παράγραφο, οι κρυσταλλικοί ταλαντωτές έχουν εύρος μέχρι και μερικές εκατοντάδες MHz. Επομένως, για οποιαδήποτε εφαρμογή που απαιτεί ταχύτερο clock, η λύση του PLL είναι η βασική προσέγγιση. Εν γένει, το PLL αποτελεί δομικό στοιχείο πολλών συστημάτων. Οι εφαρμογές που χρειάζονται έναν τόνο χρησιμοποιούν αναλογικό PLL, όσες ενσωματώνουν ψηφιακή λογική θα στραφούν σε ψηφιακό PLL, ενώ εκείνες που χρειάζονται σήματα σε διάφορες συχνότητες θα ενσωματώσουν ένα N-fractional PLL. Χαρακτηριστικά παραδείγματα είναι αυτά των πομποδεκτών και των διαμορφωτών σημάτων[6]. Σε τέτοια κυκλώματα, το PLL δημιουργεί το φέρον σήμα και μπορεί να χρησιμοποιείται σε συνδυασμό με ένα μίκτη για μετατόπιση της baseband συχνότητας από και προς τις ραδιοσυχνότητες. Επίσης, είναι στοιχειώδες μέρος της διάταξης για παραγωγή συμφασικής και ορθογώνιας συνιστώσας, μιας εφαρμογής που επεκτείνεται στους PSK και ASK αστερισμούς, αλλά και της ανακατασκευής του αρχικού σήματος. 22 Κεφάλαιο 2ο Εικόνα 2.2: Παραγωγή συνιστωσών και σήματος (αριστερά), μετατροπή συχνότητας (πάνω), δέκτης Costas (κάτω) Περαιτέρω διαμορφωτές και ανιχνευτές που χρησιμοποιούν κάποιο σήμα τοπικού ταλαντωτή, δηλαδή PLL, είναι αυτός της διπλής πλευρικής ζώνης με καταπιεσμένο φέρον, ο ανιχνευτής ομόδυνης φώρασης, ο δέκτης Costas, ο διαμορφωτής Vestigial Side Band (VSB), η ΑΜ και η broadband FM διαμόρφωση και αποδιαμόρφωση, η στερεοφωνική πολυπλεξία και πολλοί άλλοι. Σε αυτό το σημείο, αξίζει να αναφερθεί ο διαχωρισμός του φάσματος σε ζώνες ανάλογα με το μέγεθος της συχνότητας. Υπάρχουν τρεις επίσημες κατατμήσεις, αυτή του ITU, αυτή της IEEE και αυτή του NATO. Φυσικά πρόκειται για μια λιγότερο σημαντική σύμβαση, με το ITU να δίνει την παρακάτω αντιστοίχιση: Όνομα VLF LF MF HF VHF UHF SHF EHF THF Εύρος 3 to 30 kHz 30 to 300 kHz 300 to 3000 kHz 3 to 30 MHz 30 to 300 MHz 300 to 3000 MHz 3 to 30 GHz 30 to 300 GHz 300 to 3000 GHz Μήκος κύματος 10 to 100 km 1 to 10 km 100 to 1000 m 10 to 100 m 1 to 10 m 10 to 100 cm 1 to 10 cm 1 to 10 mm 0.1 to 1 mm Ιδιαίτερα για τις EHF συχνότητες που θα απασχολήσουν στη συνέχεια, η κυριότερη εφαρμογή είναι τα ραντάρ στην αυτοκινητοβιομηχανία, με το στάνταρ της IEEE να καταχωρεί τη συχνότητα των 77GHz για αυτό το σκοπό. Τα εν λόγω συστήματα αποσκοπούν στη συλλογή πληροφοριών όπως απόσταση, ταχύτητα και κατεύθυνση των κοντινών στο 23 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων ραντάρ οχημάτων, ώστε να ρυθμίζεται αυτόματα η ταχύτητα και να διατηρείται απόσταση ασφαλείας προς αποφυγήν ατυχημάτων, θεσπίζοντας έτσι τη βάση του συστήματος αυτόματου πιλότου. Στην ίδια μπάντα συχνοτήτων υπάρχουν εφαρμογές δορυφορικών τηλεπικοινωνιών, διαστημικής έρευνας, στρατιωτικής ανίχνευσης και στόχευσης, οπλικών συστημάτων, ιατρικής, security screening σε αεροδρόμια κλπ. που χρησιμοποιούν εξελιγμένα PLLs για τη δημιουργία των απαιτούμενων τόνων. Επιπλέον, αναφέρονται ενδεικτικά διάφορες εφαρμογές[7]: • • • • • • • • • • Ζωνοπερατό φίλτρο παρακολούθησης για σήματα διαμορφωμένα κατά γωνία Ανάκτηση φέροντος σε συνεχές κύμα Πολλαπλασιασμός & διαίρεση συχνοτήτων Ενίσχυση διαμορφωμένων κατά γωνία σημάτων Διαμόρφωση γωνίας και σύνθεση συχνοτήτων (για συμβατικό, μη N-fractional PLL) Ανάκτηση σήματος από θορυβώδες κανάλι Ανάκτηση ρολογιού σε πραγματικό χρόνο από σήμα που λαμβάνεται Παραγωγή ακριβούς παλμοσειράς ρολογιού για ψηφιακά συστήματα ακολουθιακής λογικής. DTMF και modems για N-fractional PLLs Δειγματοληψία και DSP 2.3 Προδιαγραφές Συστήματος Όπως προμηνύει ο τίτλος της διπλωματικής εργασίας, στόχος είναι η δημιουργία ενός PLL το οποίο θα λειτουργεί αποτελεσματικά σε εξαιρετικά υψηλές συχνότητες. Ωστόσο η απαίτηση αυτή είναι ασαφής και ακαθόριστη, αφού το συγκεκριμένο εγχείρημα μπορεί να προσεγγιστεί με διάφορους τρόπους, καθένας εκ των οποίων παρουσιάζει βελτιστοποίηση κάποιων χαρακτηριστικών αλλά και ιδιαίτερα μειονεκτήματα. Σε αυτή την παράγραφο γίνεται μια σύντομη ανάλυση των προδιαγραφών που συνήθως απασχολούν τους σχεδιαστές PLL, καθώς και μια υποστήριξη των επιλογών σχεδίασης που ακολουθήθηκαν. Συχνότητα εξόδου και αναφοράς Σκοπός του PLL είναι η παραγωγή ενός τόνου ή μιας παλμοσειράς στην έξοδο. Η κυματομορφή αυτή χρησιμοποιείται για το ιδιαίτερο χαρακτηριστικό της, την καθορισμένη συχνότητα. Συνεπώς, όταν προτείνεται ένα νέο σχέδιο για PLL, η πρώτη και σημαντικότερη προδιαγραφή είναι η συχνότητα αυτή. Αντικείμενο της παρούσας διατριβής, είναι η ανάπτυξη ενός PLL που να λειτουργεί στο φάσμα των EHF. Τίθεται λοιπόν μια εξαιρετικά υψηλή συχνότητα εξόδου ως προδιαγραφή, αυτή των 100GHz. Επίσης, το σήμα αναφοράς θα πρέπει να έχει καθοριστεί σαφώς. Το επιλέγουμε στα 25MHz, που απέχει τάξεις μεγέθους από τη συχνότητα εξόδου, ώστε να τονιστεί η ευρωστία του κυκλώματος. PDK και τάση λειτουργίας Από τις πλέον αρχικές επιλογές είναι αυτή της τεχνολογίας που θα χρησιμοποιηθεί για την εκπόνηση του συστήματος. Η εκλογή βασίζεται στις ανάγκες του σχεδίου: αν είναι low-power, αν απαιτεί λειτουργία σε υψηλές συχνότητες, αν το κόστος παραγωγής πρέπει να είναι μικρό, αν είναι κύκλωμα ισχύος και λοιπές ιδιαιτερότητες που μπορεί να έχει. Εδώ 24 Κεφάλαιο 2ο επιλέχθηκε η χρήση της πιο εξελιγμένης μα ταυτόχρονα μη "προηγμένης" τεχνολογίας, το CMOS GPDK045nm. "Προηγμένη" τεχνολογία (advanced nodes) ονομάζεται χονδρικά αυτή που είναι κάτω από 22nm, όπου εμφανίζονται συγκεκριμένα φυσικά φαινόμενα που πρέπει να ληφθούν υπόψη. Μάλιστα και τα εργαλεία EDA συχνά διαφοροποιούνται (π.χ. η Cadence χρησιμοποιεί το πακέτο ICADV® 12.1). Επιλέγονται λοιπόν συσκευές με μικρό μήκος καναλιού όπου τα standard cells αντιδρούν με μεγαλύτερη ταχύτητα, άρα θα επιτρέψουν μεγαλύτερες συχνότητες λειτουργίας. Επίσης, η τάσεις VDD και VSS συνήθως καθορίζονται από την εφαρμογή, χωρίς όμως αυτό να είναι πάντα απαραίτητο. Καθώς υπάρχουν αμέτρητες μεταβλητές, επιλέγεται λειτουργία στα 1.2Vpp ως προδιαγραφή, κρατώντας όμως την τάση VSS ως παράμετρο, σε περίπτωση που η προδιαγραφή χρειαστεί να αλλάξει. Θερμοκρασία Τα ολοκληρωμένα κυκλώματα έχουν εν γένει την ελάχιστη προδιαγραφή λειτουργίας από 0 ως 70οC. Γενικά, δεν υπάρχει κάποιος τυποποιημένος κανόνας, αλλά κάποιες εταιρείες ημιαγωγών δημιουργούν δικές τους ταξινομήσεις, η ALTERA® για παράδειγμα: • Commercial: 0°C to 85°C • Industrial: −40°C to 100°C • Automotive: −40°C to 125°C • Extended: −40°C to 125°C • Military: −55°C to 125°C Όμως σε αυτό το σημείο δεν είναι ακόμα γνωστό αν το σύστημα θα λειτουργήσει καν, σε τόσο υψηλές συχνότητες. Επομένως η προδιαγραφή της θερμοκρασίας λειτουργίας αφήνεται στην ελάχιστη [0 οC, 70 οC] προς το παρόν. Frequency Synthesizer Πολλές φορές είναι χρήσιμη η παραγωγή περισσότερων παλμοσειρών με διαφορετικές συχνότητες, ή διαφορετικούς τόνους αν είναι ημιτονοειδείς. Αν ζητείται κάτι τέτοιο, εισάγεται η επιπλέον προδιαγραφή των βημάτων αυξομείωσης της συχνότητας. Για κάθε λοιπόν βήμα 1/N σε ένα Ν-fractional PLL, είναι θεμιτό η συχνότητα να μεταβάλλεται κατά fMAX/N. Με άλλα λόγια, η ποσότητα Kvco=(R2-R1)/(v2-v1) επιδιώκεται να είναι σταθερή σε όλο το εύρος ρύθμισης. Κάτι τέτοιο φυσικά δε συμβαίνει ποτέ στην πράξη, όμως είναι σημαντικό να προσεγγίζεται στα πλαίσια του εφικτού. Επίσης, συχνή προδιαγραφή είναι ο ορισμός a priori του εύρους συχνοτήτων που μπορεί να παράγει το Nfractional PLL. Κυματομορφή εξόδου Όπως προαναφέρθηκε, η κυματομορφή στην έξοδο μπορεί να είναι ένας τόνος, μια παλμοσειρά, ένα τριγωνικό σήμα κλπ. Θα θεωρηθεί ότι σαν προδιαγραφή ζητείται ως έξοδος ένα ημιτονοειδές σήμα και μια παλμοσειρά, ούτως ώστε να μπορεί να εφαρμοστεί άμεσα σε αναλογικά και ψηφιακά συστήματα αντιστοίχως. Παράλληλα, θα φανεί πως η μετάβαση από τη μια μορφή στην άλλη γίνεται εύκολα. Χρόνος αποκατάστασης Προχωρώντας σε προδιαγραφές επιδόσεων, κάποιες φορές ορίζεται το απαιτούμενο settling time, δηλαδή ο χρόνος που περιλαμβάνει τα μεταβατικά φαινόμενα μεταξύ της εκκίνησης του συστήματος και της κατάστασης "ηρεμίας", όπου η κυματομορφή 25 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων εξόδου παράγεται κατά το δοκούν. Πρόκειται λοιπόν για το χρόνο κλειδώματος του βρόχου. Αυτός εξαρτάται από την εφαρμογή για την οποία προορίζεται το PLL και μπορεί να μην ενδιαφέρει καθόλου, ενδέχεται όμως να είναι αρκετά απαιτητικός. Εν προκειμένω, τίθεται μια σχετικά αυστηρή προδιαγραφή στα 20us. Περιθώριο φάσης Σε αναλογικά συστήματα, απαραίτητη προδιαγραφή είναι η διασφάλιση ενός περιθωρίου φάσης, που ποικίλει ανάλογα με το αν πρόκειται για χρήση σε Design for Reliability(DFR) ή όχι. Αν η αξιοπιστία του συστήματος είναι κρίσιμη, τότε δεν είναι επιτρεπτό να επέλθει αστάθεια, δηλαδή οι πόλοι των υποκυκλωμάτων πρέπει να βρίσκονται στο αριστερό μιγαδικό επίπεδο. Ωστόσο, επειδή το κύκλωμα ανατροφοδότησης και το κύκλωμα ελέγχου της αντλίας φορτίου αναμένεται να είναι ψηφιακό, δηλαδή να εφαρμόζει πεπερασμένες τιμές τάσης, η ευστάθεια του βρόχου είναι εγγυημένη. Το μόνο σημείο που ενδεχομένως αυτό να μην ισχύει είναι η τάση ελέγχου στο φίλτρο, όμως με κατάλληλη ψηφιακή λογική στον PD δεν υπάρχει κίνδυνος. Εξ ορισμού και από την αρχιτεκτονική που θα ακολουθηθεί, η εν λόγω προδιαγραφή πληρείται. Φασικός Θόρυβος Σε βιομηχανικές εφαρμογές η συγκεκριμένη προδιαγραφή χαρακτηρίζει τα συστήματα υψηλών επιδόσεων. Ο φασικός θόρυβος (Jitter για ψηφιακές κυματομορφές) ορίζεται ως μικρές μεταβολές στη συχνότητα εξόδου του PLL, που ωστόσο μπορεί να αποβούν μοιραίες για τη λειτουργικότητα του συστήματος. Ο φασικός θόρυβος αναλύεται εκτενέστερα στην παράγραφο 4.3, σε αυτό όμως το σημείο θα τεθεί μια ελαστική προδιαγραφή της τάξεως του 1%, δηλαδή 1GHz απόκλιση από την ονομαστική συχνότητα. Επιπλέον, αλληλένδετες με την έννοια του θορύβου είναι και οι παρασιτικές συχνότητες που κάνουν την εμφάνισή τους στην έξοδο. Καθώς η τρίτη αρμονική είναι αυτή που μελετάται συνήθως (π.χ. ΙΙP3), έστω η προδιαγραφή περιορισμού των αισθητών αρμονικών σε δύο (fOUT, 2*fOUT). Κατανάλωση Σε όλο και περισσότερες εφαρμογές, τα κυκλώματα σχεδιάζονται με αρχές lowpower. Πάραυτα, σε αυτή τη σχεδίαση θα αποσιωπηθεί η εν λόγω προδιαγραφή, διότι πρώτον το εγχείρημα σχεδίασης PLL σε 100GHz με CMOS τεχνολογία στα 45nm δεν είναι τετριμμένο και δεύτερο ξεπερνά τα όρια της διατριβής. Κόστος Όπως αναμένεται, το ολοκληρωμένο πρέπει να παραχθεί με το χαμηλότερο κόστος. Με χρήση της τεχνολογίας CMOS, αυτό επιτυγχάνεται καθώς πρόκειται για φθηνές συσκευές με μεγάλη ικανότητα ολοκλήρωσης. Dead band Για αποφυγή συνεχών μεταβολών στη συχνότητα εξόδου και περιορισμού της κατανάλωσης, είναι θεμιτό να υπάρχει μια ζώνη αποδεκτών συχνοτήτων. Αυτή η προδιαγραφή διαφοροποιείται ελάχιστα από το Jitter, καθώς αναφέρεται αποκλειστικά στο baseband μέρος του κυκλώματος. Συγκεκριμένα, ο PD και ακολούθως η αντλία φορτίου πρέπει να έχουν μια νεκρή ζώνη, όπου δηλαδή οι φάσεις των δύο σημάτων εισόδου είναι αρκετά κοντά ώστε ο ανιχνευτής να μην υποδεικνύει διαφορά. 26 Κεφάλαιο 2ο 2.4 Μοντέλα Συμπεριφοράς Σύμφωνα με τη μεθοδολογία του analog verification που προτάθηκε στο πρώτο κεφάλαιο και η οποία θα ακολουθείται στην παρούσα διπλωματική, όσο αυτό είναι εφικτό, πρώτο βήμα για τη σχεδίαση του κυκλώματος αποτελεί η διατύπωση των επιμέρους υποκυκλωμάτων σε επίπεδο συμπεριφοράς (behavioral modeling). Αυτό το στάδιο είναι ζωτικής σημασίας, καθώς σηματοδοτεί την αρχή της top-down σχεδίασης και δίνει τη δυνατότητα διάσπασης της υλοποίησης σε διαφορετικές ομάδες μηχανικών. Έτσι λοιπόν το μοντέλο συμπεριφοράς αναπτύσσεται βάσει των προδιαγραφών που έχουν τεθεί και συχνά συντίθεται από τους επικεφαλής σχεδιαστές, οι οποίοι λαμβάνουν συντονιστικό ρόλο. Σκοπός είναι η δημιουργία μοντέλων με πραγματικούς αριθμούς τα οποία θα είναι ικανά να αντιπροσωπεύσουν τη συμπεριφορά του κυκλώματος δίχως να απαιτούν μεγάλο χρόνο προσομοίωσης και αναρίθμητους υπολογιστικούς πόρους. Αυτό επιτυγχάνεται μέσω του event-driven modeling, όταν δηλαδή η εκτέλεση του κώδικα ενός υποκυκλώματος πυροδοτείται μονάχα από τη μεταβολή κάποιου σήματος. Αποφεύγεται λοιπόν η συμβατική δειγματοληψία και τη θέση της καταλαμβάνει η ροή σήματος (signal flow). Οι επιδόσεις της προσομοίωσης αναμένεται να γίνουν ακόμα καλύτερες όταν στη συνέχεια θα εισαχθούν τα υποκυκλώματα που περιέχουν θεμελιακά στοιχεία (transistor level design). Τότε, οι μονάδες σύνδεσης (connect modules) που αποτελούν interface elements μεταξύ των θεμελιακών στοιχείων και μοντέλων πραγματικών αριθμών (wreals, SVDC) έχουν κώδικα κατάλληλο ώστε να πυροδοτούν γεγονότα μόνο όταν κάποιο σήμα μεταβληθεί τουλάχιστον κατά δεδομένη ποσότητα. Οποιαδήποτε άλλη μεταβολή εντός των δεδομένων ορίων αγνοείται, επιταχύνοντας δραστικά την προσομοίωση. Στη συνέχεια του κεφαλαίου παρουσιάζονται τα μοντέλα συμπεριφοράς, ξεχωριστά για κάθε υποκύκλωμα, και αιτιολογούνται οι αποφάσεις που λήφθηκαν στα σημαντικότερα σημεία. Στο τέλος, ο κώδικας εισάγεται στο SimVision του Incisive και επιχειρείται η πρώτη προσομοίωση. Αξίζει να επισημάνουμε πως στο σημείο αυτό προσομοιώνουμε ένα αναλογικό κύκλωμα σε έναν αμιγώς ψηφιακό προσομοιωτή. Για το τεχνικό μέρος της συγκεκριμένης ενότητας χρησιμοποιήθηκαν τα εγχειρίδια που παρατίθενται στη βιβλιογραφία[8]. 2.4.1 Κρυσταλλικός Ταλαντωτής Ας αρχίσουμε το behavioral modeling με το πιο απλό μέρος του συστήματος, ώστε να μη δυσκολευτεί να ακολουθήσει ακόμα και ο αναγνώστης που δε γνωρίζει Verilog. Όπως προαναφέρθηκε στην παράγραφο 2.1, το PLL δέχεται ως είσοδο ένα σήμα αναφοράς, το οποίο αναπαράγεται στην έξοδο σε τάξης μεγέθους μεγαλύτερες συχνότητες. Καθώς αυτό συνήθως προκύπτει από έναν κρυσταλλικό ταλαντωτή, στο εξής θα αναφερόμαστε στο εν λόγω υποκύκλωμα ως "crystal_osc". 27 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων Εικόνα 2.3: Κρύσταλλος Χαλαζία σε διακριτό στοιχείο (αριστερά), σε ολοκληρωμένο κύκλωμα (κέντρο) και δομή εντός του ολοκληρωμένου (δεξιά) Ακολουθώντας τις προδιαγραφές της προηγούμενης παραγράφου, επιλέγουμε έναν κρυσταλλικό ταλαντωτή με συχνότητα 25MHz. Αυτό για δύο λόγους. Πρώτον, διότι σε αυτήν περίπου τη συχνότητα η τιμή αγοράς παρουσιάζει τοπικό ελάχιστο, σύμφωνα με διάφορους προμηθευτές ολοκληρωμένων (Fox Crystals®, Shenzhen Electronics® κ.α.). Δεύτερον, είναι ευνόητο πως όσο μεγαλύτερη είναι η συχνότητα του σήματος αναφοράς, τόσο πιο εύκολη θα είναι η υλοποίηση του συστήματος. Όμως, δε θα ήταν θεμιτό να καταφύγουμε σε κάποια εξεζητημένη λύση ενός ταλαντωτή που λειτουργεί σε υψηλές συχνότητες (της τάξεως εκατοντάδων MHz), τόσο για λόγους κόστους όσο και για να δοθεί έμφαση στην απόδοση της σχεδίασης. Οι κρυσταλλικοί ταλαντωτές παρέχουν έξοδο με μία αρμονική συχνότητα, χαρακτηριστική του κρυστάλλου. Συνεπώς, το σήμα εξόδου τους είναι ημιτονοειδές. Ωστόσο μπορεί εύκολα να μετατραπεί σε τετραγωνικό με τη χρήση μιας βαθμίδας απομόνωσης (buffer) ή ενός αντιστροφέα (inverter) με μηδενική τάση κατωφλίου Vt. Για το λόγο αυτό, το μοντέλο συμπεριφοράς θα πρέπει παράγει μια παλμοσειρά σταθερής συχνότητας: `timescale 1ns/1ps module crystal_osc #( parameter real freqMHz = 25, parameter real dutyCycle = 0.5, parameter real HI = 1.2, parameter real LO = 0 ) ( output wreal REF ); reg clk; real zero, one, period; initial begin period = 1000/freqMHz; clk = 1'b0; one = dutyCycle*period; zero = period-one; end always begin if(clk) 28 Κεφάλαιο 2ο #one clk = ~clk; else #zero clk = ~clk; end assign REF = clk? HI:LO; endmodule Το μοντέλο αυτό χρησιμοποιεί συνεχείς και διαδικαστικές εκχωρήσεις για να παράγει τετραγωνικούς παλμούς συχνότητας "freqMHz". Οι συνεχείς εκχωρήσεις (continuous assignments) στη γενική περίπτωση αντιπροσωπεύουν άμεση σύνδεση δύο αγωγών, συνεπώς χρησιμοποιούνται για εκχώρηση τιμών σε μεταβλητές τύπου wire, tri κλπ. Εκτελούνται με μέγιστη προτεραιότητα κάθε φορά που η παράσταση στο δεξί μέρος μεταβάλλεται και μπορούν να μοντελοποιήσουν μόνο συνδυαστική λογική. Από την άλλη, οι διαδικαστικές εκχωρήσεις (procedural assignments) μοντελοποιούν και την ακολουθιακή λογική και βρίσκονται εντός διαδικαστικών μπλοκ που οδηγούν μεταβλητές όπως reg, real, integer κλπ. Στη γενική τους περίπτωση χρησιμοποιούνται για εκχώρηση τιμών σε καταχωρητές. Η θεμελιώδης διαφορά μεταξύ των δύο είναι ότι οι συνεχείς εκχωρήσεις εκτελούνται ταυτόχρονα, ενώ οι διαδικαστικές εμποδίζουν την περαιτέρω εκτέλεση μέχρι να γίνουν οι απαραίτητες ενέργειες, εκμεταλλευόμενες έτσι τις blocking και non-blocking εκχωρήσεις. Στο παραπάνω μοντέλο, τόσο η συχνότητα του σήματος αναφοράς όσο και ο "κύκλος εργασίας" (duty cycle) είναι παραμετροποιημένα για μετατροπή βάσει των αναγκών της εφαρμογής. 2.4.2 Ανιχνευτής Φάσης Το συγκεκριμένο υποκύκλωμα (ενδεχομένως η ονομασία "ανιχνευτής διαφοράς φάσης" του αρμόζει καλύτερα) αναλαμβάνει τη σύγκριση δύο σημάτων που δέχεται στην είσοδό του. Αυτό μπορεί να επιτευχθεί με διάφορες κυκλωματικές δομές, όπως για παράδειγμα μία πύλη XOR, η οποία χρησιμοποιεί μόνο ένα bit για να καθορίσει αν το σήμα ανάδρασης προηγείται σε σχέση με το σήμα αναφοράς. Όμως η εν λόγω αρχιτεκτονική, ανάλογη της Δέλτα Διαμόρφωσης, υπολείπεται στο ότι υπάρχει συνεχώς μεταβολή στη συχνότητα, καθώς η δυαδική έξοδος επιτάσσει είτε αύξηση είτε μείωση της συχνότητας. Αυτό μεταφράζεται σε υψηλότερη κατανάλωση ρεύματος στην αντλία φορτίου, μεγαλύτερο χρόνο κλειδώματος του βρόχου και ευπάθεια σε αναταράξεις. Έτσι, επιλέχθηκε μία τοπολογία διαφορικής εξόδου, όπου η μία έξοδος χρησιμοποιείται για να δώσει εντολή στην αντλία φορτίου να προμηθεύσει με ρεύμα το αναλογικό φίλτρο και άρα να αυξήσει την τάση ελέγχου, ενώ η δεύτερη έξοδος προστάζει την άντληση ρεύματος με το αντίθετο αποτέλεσμα. Η αρχή λειτουργίας γίνεται εύκολα κατανοητή: 1. εάν ο παλμός του σήματος αναφοράς φθάσει πρώτος, στέλνεται σήμα αύξησης της τάσης ελέγχου, 2. εάν ο παλμός του σήματος ανάδρασης φθάσει πρώτος, στέλνεται σήμα μείωσης της τάσης ελέγχου, 29 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων 3. μόλις εμφανιστεί θετική ακμή (positive edge, posedge) του παλμού που έρχεται δεύτερος, η έξοδος του ανιχνευτή διαφοράς φάσης μηδενίζεται. `timescale 1ps/1fs module PD #( parameter real stallInterval=1000, parameter real tr=25, parameter real tf=15, parameter real Vth = 0.6, parameter real lockFreq=150 ) ( output wreal INC, DEC, input wreal FB, REF, PDWN, VDD, VSS ); real stall, tref, tfb; reg increg; reg decreg; reg reset; reg fbreg, refreg; integer stuck; always@(cross(PDWN-Vth,1)) begin increg = 1'b0; decreg = 1'b0; reset = 1'b1; end assign fbRegInst = FB>Vth; assign refRegInst = REF>Vth; always@(fbRegInst) fbreg<= #(lockFreq) fbRegInst; always@(refRegInst) refreg<= #(lockFreq) refRegInst; initial begin stall=0; increg = 1'b0; decreg = 1'b0; reset = 1'b0; stuck = 0; end always@(posedge refreg) begin : OpenPump tref = $abstime*1e+12; if(!reset) begin if(($abstime*1e+12>stall) && !increg) begin if (!decreg && ((!fbRegInst) || (stuck>2))) begin #tr increg=1'b1; end else begin stall = tref+stallInterval; end end end end always@(posedge fbreg) begin : OpenDrain 30 Κεφάλαιο 2ο tfb = $abstime*1e+12; if(!reset) begin if (($abstime*1e+12>stall) && !decreg) begin if (!increg && !refRegInst) begin #tr decreg=1'b1; end else begin stall = tfb+stallInterval; end end end end always@ (posedge fbreg) begin : ClosePump if(!reset) begin if (increg) begin #tf increg = 1'b0; end end end always@ (posedge refreg) begin : CloseDrain if(!reset) begin if (decreg) begin #tf decreg = 1'b0; end end end always@(posedge refreg) stuck = stuck+1; always@(posedge fbreg) stuck = 0; assign INC = increg?VDD:VSS; assign DEC = decreg?VDD:VSS; endmodule Είναι εύκολο να διακρίνει κανείς ότι τα μπλοκ OpenPump, CloseDrain και OpenDrain, ClosePump ενεργοποιούνται αντίστοιχα από τα ίδια γεγονότα. Πρόκειται για ένα συχνό φαινόμενο κατά τη σύνταξη HDL και η αποφυγή συνθηκών ανταγωνισμού (race conditions) είναι καθήκον του προγραμματιστή. Εδώ τα τέσσερα αυτά μπλοκ ανταποκρίνονται σε τέσσερα διακριτές περιπτώσεις: 1. OpenPump: Σε αυτό το σημείο του κώδικα ελέγχεται η ανάγκη αύξησης της συχνότητας. Εάν λοιπόν το σήμα αναφοράς καταφθάσει πρώτο, δηλαδή ο καταχωρητής decreg δεν έχει ενεργοποιηθεί από το block OpenDrain, τότε ο PD πρέπει να υποδείξει αύξηση της τάσης ελέγχου του VCO. 2. OpenDrain: Αντίστοιχα, όταν το σήμα ανάδρασης καταφθάνει πρώτο συνεπάγεται πως η συχνότητα του είναι μεγαλύτερη από αυτή του σήματος αναφοράς και πρέπει να περιοριστεί. Συνεπώς εάν δεν έχει προηγηθεί το σήμα αναφοράς -o καταχωρητής increg θα είχε ήδη ενεργοποιηθεί- δίνεται εντολή να ανοίξει η καταβόθρα ρεύματος ώστε να μειωθεί η τάση ελέγχου. 3. ClosePump: Αυτό το κομμάτι αναλαμβάνει να κλείσει την αντλία ρεύματος εάν είναι ανοικτή, άρα πυροδοτείται μόλις φθάσει το σήμα ανάδρασης. 31 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων 4. CloseDrain: Αντίστοιχα, η έλευση του σήματος αναφοράς οφείλει να κλείσει την καταβόθρα ρεύματος της αντλίας φορτίου στην περίπτωση που αυτή είναι ανοικτή, κάτι το οποίο συμβαίνει όταν το σήμα ανάδρασης έχει προηγηθεί. Παρατηρεί κανείς πως οι εντολές εντός των μπλοκ είναι αμοιβαίως αποκλειόμενες. Σε κάθε κύκλο μονάχα ένα εκ των σημάτων αύξησης και μείωσης της τάσης ελέγχου ενεργοποιείται. Η παράμετρος stallInterval χρησιμοποιείται στο μπλοκ που εκτελείται δεύτερο ούτως ώστε να διασφαλιστεί πως δε θα γίνει κάποια περαιτέρω ενέργεια στον ίδιο κύκλο βασικής ζώνης (baseband, BB). Αποφασιστικό παράγοντα για την απόδοση του μοντέλου αποτελεί η Ανομοιόμορφη Δειγματοληψία (Non-Uniform Sampling), καθώς κάθε ένα από τα μπλοκ ενεργοποιούνται από κάποια μεταβολή σήματος και όχι ανά δεδομένα χρονικά διαστήματα. Εν τέλει, ο ανιχνευτής διαφοράς φάσης αναμένεται να έρθει σε ηρεμία όταν αισίως το PLL κλειδώσει. Ιδανικά, θα θέλαμε να βγάζει μηδενική έξοδο ώστε η τάση ελέγχου του VCO να μένει σταθερή. Ωστόσο τα μη ιδανικά ενεργά στοιχεία που θα εισαχθούν στη συνέχεια περιπλέκουν τα πράγματα καθώς εμφανίζουν μη μηδενικούς χρόνους ανόδου και καθόδου. Αξίζει να αναφερθεί ότι στις παραμέτρους tr και tf (rise/fall time, χρόνοι ανόδου/καθόδου) δεν εκχωρήθηκαν αυθαίρετες τιμές αλλά αυτές που καταγράφονται σε προσομοιώσεις του flip flop που θα αποτελέσει δομικό στοιχείο της παρούσας υλοποίησης: Εικόνα 2.4: Καθυστέρηση απόκρισης του D-FlipFlop Έτσι υπάρχει πιθανότητα ταυτόχρονης εκτέλεσης των μπλοκ OpenPump και OpenDrain, αλλά και ο κίνδυνος μη εκτέλεσης των εντολών κλεισίματος της αντλίας, κάτι το οποίο οδηγεί σε βέβαιο "ξεκλείδωμα" του PLL. Για τούτο το λόγο οι καταχωρητές fbreg και refreg καθυστερούν να πάρουν τιμές από τις εισόδους FB και REF, αντίστοιχα. Η σωστή λειτουργία διασφαλίζεται με τον έλεγχο των εισόδων, οι οποίες ανήκουν φαινομενικά σε επόμενα σημεία στο χρόνο. Ή -πιο σωστά- η εκτέλεση των μπλοκ ελέγχου καθυστερεί κατά ένα χρονικό διάστημα lockFreq της ανάγνωσης των εισόδων. Η παραμετροποίηση αυτού του μεγέθους έχει σημαντικό ρόλο στο σχέδιο, καθώς καθορίζει ένα διάστημα ανοχής, όπου η διαφορά φάσης μεταξύ των σημάτων δε δημιουργεί έξοδο. Κατ΄επέκταση, χαρακτηρίζει το PLL και το "τρεμούλιασμα" (jitter) που παρουσιάζει στη συχνότητα εξόδου. Ωστόσο αυτός ο επιπρόσθετος μηχανισμός συνοδεύεται από τον κίνδυνο να αυξηθεί σημαντικά ο χρόνος κλειδώματος του PLL, καθότι εάν η συχνότητα λειτουργίας είναι χαμηλή, η είσοδος FB του PD αργεί να αλλάξει κατάσταση. Όσο λοιπόν είναι σε κατάσταση λογικού 1, ο ανιχνευτής δεν παράγει σήμα κατάλληλο ώστε να "ανοίξει" η τροφοδοσία προς την αντλία φορτίου. Καθώς η τάση ελέγχου ξεκινά από το μηδέν και αυξάνεται όσο το PLL τείνει προς την κατάσταση ηρεμίας, είναι πιθανό η είσοδος FB να μείνει στο λογικό 1 για μεγάλο διάστημα. Για την αντιμετώπιση αυτού του ζητήματος χρησιμοποιείται η μεταβλητή stuck, η οποία όταν ανιχνεύσει περισσότερες από δύο αιχμές 32 Κεφάλαιο 2ο της παλμοσειράς του σήματος αναφοράς, αντιλαμβάνεται ότι το σύστημα έχει περιέλθει στην συνθήκη που μόλις περιγράφηκε και επιτρέπει την ενεργοποίηση του σήματος INC. Μία τέτοια λειτουργικότητα αναμένεται να υλοποιηθεί από έναν εμβόλιμο counter στο σχηματικό. Οι ανωτέρω προσεγγίσεις επαληθεύονται από τις κυματομορφές που ακολουθούν. Εικόνα 2.5: Κυματομορφές εισόδου-εξόδου ανιχνευτή διαφοράς φάσης 2.4.3 Αντλία φορτίου Η ψηφιακές έξοδοι του ανιχνευτή διαφοράς φάσης οδηγούνται στην αντλία φορτίου, ένα κατ'εξοχήν push-pull κύκλωμα. Τα push-pull κυκλώματα, όπως προδίδει και η ονομασία, χρησιμοποιούν ζεύγη ενεργών στοιχείων (συνήθως CMOS) για να παρέχουν ή να αντλήσουν ρεύμα από ένα φορτίο. Αυτό ακριβώς καλείται να κάνει και το υποκύκλωμα CP στο παρόν σύστημα, τροφοδοτώντας το αναλογικό φίλτρο. 33 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων Εικόνα 2.6: Παραστατικό διάγραμμα των διατάξεων αντλίας φορτίου & φίλτρου Εν ολίγοις, το φίλτρο διατηρεί την τάση ελέγχου του VCO σχετικά σταθερή, επιτρέποντας τη χρονική μεταβολή που επιτάσσει η αντλία φορτίου αλλά γειώνοντας τις ανώτερες αρμονικές που προκύπτουν. Όταν δοθεί σήμα αύξησης της συχνότητας (frequency increase, INC), παρέχεται ρεύμα στο φίλτρο και συνεπώς η τάση ελέγχου αυξάνεται. Αντίστροφα, μόλις δοθεί σήμα μείωσης της συχνότητας (frequency decrease, DEC), ρεύμα αντλείται από το φίλτρο, ελαττώνοντας την τάση ελέγχου. `timescale 1ps/1fs module CP #( parameter real Vth = 0.6, parameter real iAmp = 100u, parameter delay = 20 ) ( input wreal INC, DEC, PDWN, inout wreal IOUTP, IOUTN ); integer integer real inc_reg = 0; dec_reg = 0; incI, decI, leakage; assign up = INC>Vth; assign dwn = DEC>Vth; assign off = PDWN>Vth; initial begin incI = `wrealZState; decI = `wrealZState; leakage = iAmp/100; end always @(posedge up) begin : OpenPump disable ClosePump; #delay inc_reg = 1; end 34 Κεφάλαιο 2ο always @(posedge dwn) begin : OpenDrain disable CloseDrain; #delay dec_reg = 1; end always @(negedge up) begin : ClosePump disable OpenPump; #delay inc_reg = 0; end always @(negedge dwn) begin : CloseDrain disable OpenDrain; #delay dec_reg = 0; end always @(off, dec_reg, inc_reg) begin if (!off) begin incI = (inc_reg>0) ? iAmp : leakage; decI = (dec_reg>0) ? iAmp : leakage; end else begin incI = `wrealZState; decI = `wrealZState; end end assign IOUTP = incI; assign IOUTN = -decI; endmodule Τα μπλοκ ελέγχου της αντλίας φορτίου αντιστοιχούν σε αυτά του ανιχνευτή διαφοράς φάσης, καθώς πρόκειται για τα ίδια γεγονότα. Ο PD υποδεικνύει άνοιγμα ή κλείσιμο της αντλίας ή της καταβόθρας ρεύματος και η CP εκτελεί τις εντολές, καθορίζοντας έτσι το ρεύμα που παρέχεται ή απορροφάται από το χαμηλοπερατό φίλτρο. Το σκεπτικό πίσω από τη μοντελοποίηση αυτή είναι ότι οι ακροδέκτες εξόδου IOUTP, IOUTN θα είναι υπεύθυνοι για την παροχή ρεύματος σε ή άντληση ρεύματος από το φίλτρο, αντίστοιχα. Η παραμετροποίηση μεγεθών όπως είναι η συγκεκριμένη ποσότητα ρεύματος θα φανεί χρήσιμη κατά τη διάρκεια των δοκιμών παλινδρόμησης (regression testing), όπου εκτελείται μεγάλος αριθμός προσομοιώσεων με σκοπό την εύρεση της βέλτιστης λύσης. Αξίζει να σημειωθεί σε αυτό το σημείο η χρήση της ποσότητας wrealZState, η οποία αντιπροσωπεύει την κατάσταση υψηλής αντίστασης, δηλαδή όταν ένας ακροδέκτης δεν οδηγεί ή οδηγείται από κάποιο άλλο κομμάτι του κυκλώματος (floating net). Αυτή, σε συνδυασμό με την ποσότητα wrealXState, η οποία δηλώνει ότι ο κόμβος οδηγείται από ψηφιακή ποσότητα η οποία δεν έχει καθοριστεί, συμπληρώνουν τα κενά που υπάρχουν στην μοντελοποίηση κυκλωμάτων με πραγματικούς αριθμούς. Αποτελούν δε ενσωματωμένες σταθερές των εργαλείων προσομοίωσης αλλά και standard της IEEE για τη γλώσσα Verilog-AMS. 35 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων 2.4.4 Χαμηλοπερατό Φίλτρο Σε αυτή την παράγραφο παρατίθεται το μοντέλο του φίλτρου (Low Pass Filter, LPF), εξηγούνται οι περιορισμοί που υπάρχουν στον ψηφιακό προσομοιωτή (digital kernel) και υποστηρίζονται οι σχεδιαστικές επιλογές που λαμβάνονται. Σύμφωνα με τις αρχές μοντελοποίησης κυκλωμάτων με wreals και την εισαγωγή που έγινε στο πρώτο κεφάλαιο, η ανάλυση του κάθε υποκυκλώματος βασίζεται στη ροή του κάθε σήματος και όχι σε κατάστρωση-επίλυση εξισώσεων κόμβων. Για παράδειγμα, μία αντίσταση (που αποτελεί θεμελιακό αναλογικό στοιχείο) δε μπορεί να μοντελοποιηθεί ως μια σταθερή αναλογία ανάμεσα στην τάση και το ρεύμα των ακροδεκτών της ( V ∕ I = R ). Αντίστοιχος περιορισμός ισχύει και για τα αναλογικά φίλτρα. Εν γένει, ο ψηφιακός προσομοιωτής δε μπορεί να αντιληφθεί διαφορικές και ολοκληρωτικές λειτουργίες, οι οποίες χρησιμοποιούνται από αλγορίθμους επίλυσης όπως ο οπισθοδρομικός Euler ή ο τραπεζοειδής κανόνας. Η προσέγγιση που ακολουθήθηκε κατά τη σχεδίαση είναι η εξής: 1. Σε αρχικό στάδιο, επιλέγεται η τάξη του αναλογικού φίλτρου και η τοπολογία του κυκλώματος. 2. Ακολουθεί η επίλυση των κυκλωματικών εξισώσεων με σκοπό την εύρεση των μεγεθών (αντιστάσεις, χωρητικότητες, κλπ.). 3. Το φίλτρο εισάγεται ώστε να γειώνει τις αρμονικές που τυχόν εμφανίζονται στην τάση ελέγχου και άρα να κρατά μία βραδέως μεταβαλλόμενη Vcntl. Συνεπώς πρέπει να αποφασιστεί η επιθυμητή συχνότητα αποκοπής ώστε να δοθούν κατάλληλες τιμές στα θεμελιακά στοιχεία. 4. Τέλος, το σημείο-κλειδί είναι η χρήση του διγραμμικού μετασχηματισμού για τη μετατροπή του αναλογικού φίλτρου σε ψηφιακό πεπερασμένης παλμικής αποκρίσεως (Finite Impulse Response, FIR). Δεδομένου ότι στο σύστημα εμφανίζονται συχνότητες που ανήκουν σε δύο τάξεις μεγέθους: 1. Baseband περί τα 25 MHz, όπου λειτουργούν τα κυκλώματα του ανιχνευτή διαφοράς φάσης, της αντλίας φορτίου, του φίλτρου και φυσικά του κρυσταλλικού ταλαντωτή 2. Radio Frequency στη συχνότητα εξόδου του VCO και την είσοδο του διαιρέτη συχνότητας είναι απαραίτητο να σχεδιαστεί ένα φίλτρο το οποίο θα γειώνει συχνότητες της δεύτερης ομάδας ενώ θα επιτρέπει την αργά μεταβαλλόμενη έλευση σημάτων της πρώτης. Η ποικιλία χαμηλοπερατών φίλτρων είναι γνωστή: RC, RLC, Sallen-Key, Butterworth, Chebyshev, feedback είναι μόνο μερικά. Επίσης η τάξη του φίλτρου μπορεί να αυξάνει όταν οι ζώνες διέλευσης και αποκοπής είναι κοντά. Εφόσον οι προδιαγραφές του συγκεκριμένου PLL υποδεικνύουν ότι baseband και RF απέχουν κατά τάξεις μεγέθους συχνότητες, μπορεί να χρησιμοποιηθεί ένα RC φίλτρο πρώτης τάξεως. Όσο μεγαλύτερη η χωρητικότητα αυτού, τόσο πιο αργή θα είναι η μεταβολή της τάσεως ελέγχου. Αυτό επηρεάζει άμεσα το χρόνο ηρεμίας, ο οποίος αυξάνει μεν αλλά το σύστημα γίνεται λιγότερο επιρρεπές στο ενδεχόμενο ξεκλειδώματος. Επιπρόσθετα, η παράλληλη τοποθέτηση ενός πυκνωτή μικρής χωρητικότητας συμβάλλει στην απευθείας γείωση των RF συχνοτήτων που παρασιτικά εμφανίζονται σε υποκυκλώματα πέραν του VCO. Στη διάταξη που ακολουθεί εμφανίζεται 36 Κεφάλαιο 2ο το υποψήφιο φίλτρο. Αξίζει να σημειωθεί η αντίσταση Requiv, η οποία αποτελεί τη σύνθετη αντίσταση των διατάξεων PD και VCO που συνδέονται με το LPF. Συνυπολογίζοντας λοιπόν αυτή, καθώς και τον πυκνωτή αποσύζευξης, έχουμε ένα φίλτρο δεύτερης τάξεως. Εικόνα 2.7: Κύκλωμα φίλτρου δεύτερης τάξεως Καθώς η είσοδος του VCO αναμένεται να είναι η πύλη κάποιου MOS, η αντίσταση εισόδου μπορεί να θεωρηθεί άπειρη. Η δε έξοδος της αντλίας φορτίου είναι push-pull κύκλωμα, οπότε κάθε στιγμή ένα MOS θα είναι στην περιοχή κόρου, ενώ το άλλο στην αποκοπή. Με μία γρήγορη προσομοίωση ενός αντιστροφέα, προκύπτει ότι για την τεχνολογία των 45nm που χρησιμοποιείται και για τροφοδοσία 1.2V η αντίσταση Rout της διάταξης είναι περίπου 6ΜΩ. Έτσι για το φίλτρο αυτό καλούμαστε να επιλέξουμε τρεις τιμές: την τιμή της αντίστασης Rzero (ονομάστηκε έτσι καθώς καθορίζει το μηδενικό της συνάρτησης μεταφοράς) και τις τιμές των δύο χωρητικοτήτων. Η Baseband συχνότητα του συστήματος είναι 25MHz, επομένως θέλουμε η τάση ελέγχου του VCO να μεταβάλλεται αρκετά πιο αργά, ώστε να προλαβαίνει το σύστημα να διαπιστώνει την επίδραση στην όποια αλλαγή της. Συνεπώς, οι τιμές αυτές πρέπει να επιλεχθούν ώστε η συχνότητα αποκοπής να είναι της τάξεως λίγων MHz και ο δεύτερος πόλος να γειώνει αυτόματα συχνότητες αρκετά πάνω από τη βασική ζώνη, δηλαδή της τάξεως των εκατοντάδων MHz, όπου και αναμένεται το χαμηλότερο όριο συχνοτήτων εξόδου. Επίσης, το σύστημα πρέπει να μην επιτρέπει ταλαντώσεις, οπότε χρειάζεται μέριμνα ώστε ο συντελεστής απόσβεσης ("ζ") στη συνάρτηση μεταφοράς δευτέρου βαθμού να είναι θετικός[9]. Έστω Iin το ρεύμα εισόδου από την προηγούμενη διάταξη. Θεωρώντας το ισοδύναμο Norton για την αντλία φορτίου και σύμφωνα με το νόμο του Kirchhoff για τις τάσεις, προκύπτουν οι ακόλουθες εξισώσεις βρόχων: � 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 + 𝑍𝑍𝑍𝑍2 −𝑍𝑍𝑍𝑍2 𝐽𝐽1 −𝑍𝑍𝑍𝑍2 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗ 𝐼𝐼𝐼𝐼𝐼𝐼 �*� �=� � 𝐽𝐽2 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 + 𝑍𝑍𝑍𝑍1 + 𝑍𝑍𝑍𝑍2 0 (2.1) Έστω Z(s) η συνάρτηση μεταφοράς του φίλτρου στο πεδίο συχνότητας. Ισχύει ότι Vcntl = Z(s) * Iin <=> Z(s) = Vcntl / Iin 37 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων το οποίο μετά από πράξεις γίνεται Z(s) =Requiv * 1+𝑠𝑠∗𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶1 1+𝑠𝑠[𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶1+𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶2+𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶1]+𝑠𝑠 2 ∗𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶1∗𝐶𝐶2 (2.2) Το συγκεκριμένο φίλτρο έχει λοιπόν τα εξής μεγέθη: 1 • Φυσική συχνότητα ωn = • Συντελεστή απόσβεσης ζ = 2*ωn*(Requiv*C1+Requiv*C2+Rzero*C1) (2.4) • Πόλους P1,2= - ζ * ωn ±j * ωn �1 − 𝜁𝜁 2 = (2.5) �𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶1∗𝐶𝐶2 (2.3) = (Requiv*C1+Requiv*C2+Rzero*C1)2 - 4*Rzero*Requiv*C1*C2 Πλέον μπορούμε να θεσπίσουμε την επιθυμητή συχνότητα αποκοπής και το δεύτερο πόλο που θα καθορίσει πλήρως τη βηματική απόκριση. Για να γίνει η επιλογή, αρκεί να ληφθεί υπόψη η baseband συχνότητα στα 25MHz. Θα θέλαμε το σύστημα να προλαβαίνει να αντιδρά σε κάθε μεταβολή της τάσης ελέγχου και η έξοδος του ανιχνευτή διαφοράς φάσεως να προωθεί τα αποτελέσματα των αλλαγών στον επόμενο κύκλο. Διαφορετικά, το σύστημα μπορεί να κυμαίνεται σε συγκεκριμένες συχνότητες και να μη κλειδώνει, αφού η τάση ελέγχου θα μεταβάλλεται προτού τα αποτελέσματα της προηγούμενης μεταβολής γίνουν φανερά. Συνεπώς, διαλέγοντας μία συχνότητα αποκοπής της τάξεως των 5MHz, ο κίνδυνος αυτός αναμένεται να αποφευχθεί. Γνωρίζοντας ήδη ότι η τιμή της Requiv είναι περίπου 6MΩ, μένει να υπολογιστούν οι υπόλοιπες τρεις ποσότητες. Ωστόσο θα πρέπει να ληφθεί και μία σχεδιαστική απόφαση, καθώς έχουμε ένα σύστημα δύο εξισώσεων με τρεις αγνώστους. Όπως αναφέρθηκε στην αρχή της παραγράφου, το φίλτρο αποτελεί υβρίδιο μεταξύ πρώτης και δεύτερης τάξης, αφού υλοποιείται από ένα RC φίλτρο πρώτης τάξεως με την προσθήκη ενός πυκνωτή αποσύζευξης για τις υψηλές συχνότητες. Μέσω λοιπόν trial & error, ενός εργαλείου σχεδίασης φίλτρων[10] και με την παραδοχή ότι η χωρητικότητα C2 θα είναι αρκετά μικρότερη από τη C1, επιλέχθηκαν τα δυνατά διαστήματα: C1 = [40p , 100p] Rzero = [20k , 80k] C2=[100f, 2p] Με τη βοήθεια μιας παραμετρικής ανάλυσης σε ένα απλό testbench, η απόκριση συχνότητας 125 συνδυασμών εντός αυτών των τιμών φαίνεται στην παρακάτω εικόνα. 38 Κεφάλαιο 2ο Εικόνα 2.8: Παραμετρική ανάλυση συχνότητας του φίλτρου Επιλέγοντας Rzero = 30kΩ, C1 = 44pF και C2 = 1.5pF προκύπτουν από την εξίσωση (2.5) P1 = 3645.6MHz και P2 = 230.66MHz. Επίσης, ωn = 917kHz, ζ = 125.8 από τις (2.3) και (2.4) αντιστοίχως, που επαληθεύει πως οι πόλοι βρίσκονται στο δεξί μιγαδικό ημιεπίπεδο, άρα το σύστημα είναι ευσταθές. Εικόνα 2.9: Απόκριση συχνότητας 39 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων Ο διγραμμικός μετασχηματισμός χρησιμοποιείται κατά κόρον στην ψηφιακή επεξεργασία σήματος και τη μετατροπή συστημάτων συνεχούς χρόνου σε συστήματα διακριτού χρόνου. Σε αυτά, οι τιμές των μεταβλητών λαμβάνονται σε ξεχωριστά χρονικά σημεία, δηλαδή ακριβώς αυτό που εκμεταλλεύεται η προσομοίωση ψηφιακού και μικτού σήματος. Ο πυρήνας της εν λόγω μετατροπής βρίσκεται στην μετάβαση της συνάρτησης μεταφοράς από το πεδίο συχνότητας (S-plane) στο μιγαδικό πεδίο (Z-plane). Στην περίπτωση του χαμηλοπερατού φίλτρου, χρησιμοποιείται για τη δημιουργία ενός 2 𝑍𝑍−1 ψηφιακού LPF με παρόμοια χαρακτηριστικά. Εξ ορισμού, 𝑍𝑍 = 𝑒𝑒 𝑠𝑠𝑠𝑠 ή s ≈ , όπου Τ είναι 𝛵𝛵 𝑍𝑍+1 το βήμα της αριθμητικής ολοκλήρωσης του μετασχηματισμού, που ισοδυναμεί με το διάστημα δειγματοληψίας[11]. Αντικαθιστώντας στη συνάρτηση μεταφοράς προκύπτει: Vcntl = Z( 2 𝑍𝑍 −1 1+ 𝛵𝛵 𝑍𝑍 +1 2 𝑍𝑍 −1 𝛵𝛵 𝑍𝑍 +1 1+ ∗𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶1 [𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶1+𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶2+𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶1]+( 2 𝑍𝑍−1 𝛵𝛵 𝑍𝑍+1 ) * Iin = 2 𝑍𝑍 −1 2 ) ∗𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 𝛵𝛵 𝑍𝑍 +1 ∗𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 ∗𝐶𝐶1∗𝐶𝐶2 *Requiv * Iin (2.6) Σύμφωνα με το κριτήριο Nyquist, πρέπει fsampling>2*fmax. Αυτό μεταφράζεται στο ότι η καθορισμένη συχνότητα δειγματοληψίας (uniform sampling) πρέπει να είναι υπερδιπλάσια της συχνότητας αποκοπής του φίλτρου. Θέτοντας 2 f = , k = Rzero*C1, m = Rzero*C1+Requiv*C2+Requiv*C1, n = Rzero*Requiv*C1*C2 𝛵𝛵 προκύπτει: Vcntl = Iin*Requiv * ή, ύστερα από πράξεις: 1+𝑓𝑓 𝑍𝑍 −1 k 𝑍𝑍 +1 𝑍𝑍 −1 2 + �𝑓𝑓 � 𝑛𝑛 𝑍𝑍 +1 1+𝑓𝑓 𝑍𝑍 −1 𝑚𝑚 𝑍𝑍 +1 (2.7) Vcntl (1 + fm + f2n) = Iin*Requiv [(1+fk)+2z-1+(1-fk)z-2] - 2(1-f2n)Vcntl*z-1 - (1-fm+f2n)Vcntl*z-2 (2.8) Η φυσική σημασία της μεταβλητής 𝑍𝑍 −𝑛𝑛 μεταφράζεται στη n-οστή παρελθοντική τιμή στο πεδίο διακριτού χρόνου. Έτσι, οι συντελεστές του αριθμητή αποτελούν την τροφοδότηση των τιμών της εισόδου, ενώ του παρονομαστή την ανατροφοδότηση της εξόδου του φίλτρου. Διαγραμματικά, το ψηφιακό φίλτρο έχει τη μορφή: 40 Κεφάλαιο 2ο Εικόνα 2.10: Σχηματικό διάγραμμα ψηφιακού φίλτρου ενώ οι συντελεστές σύμφωνα με τη συνάρτηση μεταφοράς είναι: b0 = Requiv*(1+fk) = Requiv(1+f*Rzero*C1) (2.9) b1 = 2*Requiv (2.10) b2 = Requiv*(1-fk) = Requiv*(1-f*Rzero*C1) (2.11) a1 = 2(1-f2n) = 2(1-f2*Rzero*Requiv*C1*C2) (2.12) a2 = 1-fm+f2n = 1-f(Rzero*C1+Requiv*C2+Requiv*C1)+f2(Rzero*Requiv*C1*C2) (2.13) Κατά τα γνωστά, η είσοδος του φίλτρου - δηλαδή το ρεύμα εξόδου της αντλίας φορτίου - θα πρέπει να υπολογίζεται κατά τη μεταβολή του μεγέθους (non-uniform sampling). Ωστόσο η έξοδος το φίλτρου δε νοείται να υπολογίζεται με τον ίδιο ρυθμό, καθώς θα μεταβάλλεται ακόμα και αν το ρεύμα εισόδου παραμένει σταθερό. Συνεπώς ο υπολογισμός της εξόδου ανά σταθερά χρονικά διαστήματα κρίνεται αναγκαίος. Μάλιστα, εφόσον η μεταβολή της τάσης ελέγχου αναμένεται σχετικά αργή λόγω των χωρητικοτήτων του φίλτρου, ο υπολογισμός της εξόδου μπορεί να βασιστεί σε ένα μέσο όρο του ρεύματος εισόδου. Αυτή η προσέγγιση ακολουθείται ώστε να αποτυπωθεί η πραγματική συμπεριφορά του κυκλώματος, καθώς οι μεταβάσεις από την αντλία φορτίου είναι ταχείες 𝛵𝛵 ∫ 𝐼𝐼𝐼𝐼𝐼𝐼 είναι θεμιτή έναντι μεμονωμένων και ιδανικές. Επομένως η χρήση του μέσου όρου 𝛵𝛵 τιμών στο διάστημα (iAmp, -iAmp). Πώς όμως θα υπολογιστεί το ολοκλήρωμα στον ψηφιακό επιλυτή? Χρησιμοποιώντας τη συνάρτηση idt() θα έμπαινε σε λειτουργία ο analog solver, κάτι το οποίο θέλουμε να αποφύγουμε καθώς θα επηρεάσει σημαντικά τις επιδόσεις. Η μόνη λύση στο ζήτημα είναι η χρήση αριθμητικής μεθόδου, όπως παρακάτω: `timescale 1ns / 1ps module LPF #( parameter real C1 = 45p, 41 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων parameter real Rz=3000, parameter real C2 = 1.5p, parameter real Re=6e+06, parameter real SR = 160M ) ( output wreal Vout, inout wreal VDD, inout wreal VSS, input wreal Iin, input wreal PDWN ); logic off; real f; real b0, b1, b2, a0, a1, a2; real Iinst, CurrIn; real X, X1, X2; real Y, Y1, Y2; reg pllUnlock; real I_idt, Im, lasttime, lastval, lastSampling; //reset initial conditions and define coefficients initial begin Y2 = 0; Y1 = 0; Y = 0; X2 = 0; X1 = 0; X = 0; lasttime = 0; lastval = 0; f = SR*2; b0 = Re*(1+f*Rz*C1); b1 = 2*Re; b2 = Re*(1-f*Rz*C1); a0 = 1+f*(Rz*C1+Re*C2+Re*C1)+(f**2)*Rz*Re*C1*C2; a1 = 2*(1-(f**2)*Rz*Re*C1*C2); a2 = 1-f*(Rz*C1+Re*C2+Re*C1)+(f**2)*(Rz*Re*C1*C2); pllUnlock = 1'b0; //#4000 pllUnlock = 1'b1; //#4400 pllUnlock = 1'b0; end //non-uniform sampling always @(Iin) begin if ((Iin !== `wrealXState) && (Iin !== `wrealZState)) CurrIn=Iin; else CurrIn=0; //numerical iteration method I_idt = I_idt + lastval * ($abstime - lasttime); lasttime = $abstime; lastval = CurrIn; end //uniform sampling always #(1.0E+9/SR) begin I_idt = I_idt + lastval * ($abstime - lasttime); lasttime = $abstime; lastval = CurrIn; //calculate the mean current 42 Κεφάλαιο 2ο Im = I_idt/($abstime-lastSampling); lastSampling = $abstime; I_idt = 0; //FIR filter inputs X2 = X1; X1 = X; X = Im; //average I as input Y2 = Y1; Y1 = Y; Y = (b0*X + b1*X1 + b2*X2 - a1*Y1 - a2*Y2)/a0 ; if (Y < VSS ) Y = VSS; if (Y > VDD ) Y = VDD ; end assign off = (PDWN>(VDD/2)); assign Vout = off? 0 : (Y? (pllUnlock? 1 : Y) : (VDD/8)); endmodule Στο επάνω κομμάτι κώδικα, αρχικοποιούνται οι συντελεστές όπως υπολογίστηκαν στην ανάλυση που προηγήθηκε, υπολογίζεται το ολοκλήρωμα του ρεύματος και η μέση τιμή αυτού για το διάστημα δειγματοληψίας και τέλος καθορίζεται η έξοδος του ψηφιακού φίλτρου. Πέρα από τους συντελεστές, κρίσιμο ρόλο παίζει και η συχνότητα ομοιόμορφης δειγματοληψίας SR. Το μέγεθός της συγκεκριμένης παραμέτρου επηρεάζει τόσο τις επιδόσεις του μοντέλου συμπεριφοράς, αλλά και την κυματομορφή εξόδου, η οποία υπολογίζεται ανά 1/SR διαστήματα. Συνεπώς θα έχει αντίκτυπο και στη συνολική απόκριση του PLL. Επιπλέον, όπως κάθε άλλη συχνότητα ομοιόμορφης δειγματοληψίας, πρέπει να πληροί το κριτήριο Nyquist. Καθώς λοιπόν η συχνότητες ενδιαφέροντος είναι εν προκειμένω μέχρι και 25MHz, η τιμή της μεταβλητής SR θα είναι τουλάχιστον 50ΜΗz. Ένας "rule of the thumb" που χρησιμοποιείται σε αυτή την περίπτωση αναφέρει ότι η συχνότητα δειγματοληψίας λαμβάνεται συνήθως 10 φορές μεγαλύτερη της μέγιστης συχνότητας ενδιαφέροντος[12]. Η πλέον χρήσιμη ανάλυση φίλτρων είναι η συχνοτική σάρωση (Frequency ή AC sweep), η οποία χρησιμοποιείται και για την εικόνα 2.9. Ωστόσο αυτό δεν είναι εφικτό σε mixed signal και digital προσομοιώσεις. Τα εργαλεία προσφέρουν τη δυνατότητα AC προσομοίωσης, η οποία όμως πραγματοποιείται μόνο για τα υποκυκλώματα που είναι υλοποιημένα με αναλογικά θεμελιακά στοιχεία και αφού τα ψηφιακά κομμάτια του συστήματος έχουν φτάσει σε κατάσταση ισορροπίας (steady state). Αυτό συμβαίνει με την εύρεση του σημείου λειτουργίας (DC operating point), κάτι το οποίο δεν έχει νόημα για το ψηφιακό μοντέλο παρά μόνον όταν ακολουθείται συγκεκριμένη μεθοδολογία μοντελοποίησης[13]. Συνεπώς, το ψηφιακό φίλτρο που υλοποιήθηκε δε μπορεί να επαληθευτεί παρά μόνον με ένα testbench στο οποίο η είσοδος είναι υπέρθεση μιας παλμοσειράς με συχνότητα μικρότερη της αποκοπής και μιας με συχνότητα μεγαλύτερη της αποκοπής. 43 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων Εικόνα 2.11: Συμπεριφορά ψηφιακού φίλτρου Να σημειωθεί πως εργαλεία για τη συχνοτική ανάλυση στο πεδίο μικτού σήματος βρίσκονται υπό ανάπτυξη, έχοντας ως προϋπόθεση ο κώδικας να είναι σε επίπεδο πυλών (gate level RTL), και βασίζονται στην εύρεση του περιοδικού σημείου λειτουργίας (Periodic Steady State, PSS). 2.4.5 Ταλαντωτής εξαρτώμενος από τάση H βαθμίδα του Voltage Controlled Oscillator παράγει την περιοδική κυματομορφή υψηλής συχνότητας που αποτελεί την έξοδο του συστήματος. Παράλληλα, το ίδιο σήμα είναι αυτό που κλείνει το βρόχο ανάδρασης, μέσω του διαιρέτη συχνότητας. Υπάρχει μεγάλη ποικιλία στο σχεδιασμό ταλαντωτών· κάθε προσέγγιση παρουσιάζει συγκεκριμένα πλεονεκτήματα και μειονεκτήματα. Στο πρώιμο στάδιο μοντελοποίησης που βρισκόμαστε, ο κώδικας που γράφτηκε για αυτό το υποκύκλωμα δέχεται μία τάση ελέγχου ως είσοδο και παράγει ημιτονοειδές σήμα του οποίου η συχνότητα είναι ανάλογη της Vcntl. Ο στόχος της μοντελοποίησης είναι η απόδοση κατά το δυνατόν της πραγματικής λειτουργίας του κάθε υποκυκλώματος. Έτσι, κρίνεται απαραίτητο να συμπεριληφθεί το φαινόμενο διακύμανσης της συχνότητας, δηλαδή το jitter, το οποίο είναι αναμενόμενο σε κάθε υλοποίηση και η ελαχιστοποίησή του αποτελεί βασική προδιαγραφή της σχεδίασης PLL. Το "τρεμούλιασμα" της συχνότητας ενός τέτοιου συστήματος αποτυπώνεται στη διαφορά φάσης μεταξύ του σήματος ανάδρασης και αναφοράς. Ακόμα και όταν ο βρόχος κλειδώσει, υπάρχει πιθανότητα η διαφορά φάσης των δύο σημάτων να είναι μη μηδενική (static phase offset). Αυτό που όμως προκαλεί ιδιαίτερο πρόβλημα είναι η ακαθόριστη διαρκής μεταβολή της εν λόγω διαφοράς φάσεως (tracking jitter), κάτι το οποίο προκύπτει είτε από το VCO με τη δημιουργία αρμονικών συχνοτήτων, είτε από τη μεγάλη ευαισθησία στην τάση ελέγχου, είτε ακόμη και από κάποιο άλλο κομμάτι του συστήματος. Στο μοντέλο που ακολουθεί, η τάση ελέγχου μετατρέπεται στην περίοδο ταλαντώσεων· κατόπιν, εισάγεται τυχαία χρονική διακύμανση στην περίοδο, το μέγεθος της οποίας λαμβάνεται από κανονική κατανομή. Ως αποτέλεσμα προκύπτει ένας VCO με λευκό θόρυβο, που καταφέρνει να αντιπροσωπεύσει επαρκώς έναν πραγματικό VCO και ταυτόχρονα να έχει μηδαμινό χρόνο προσομοίωσης συγκριτικά με ένα transistor level design. 44 Κεφάλαιο 2ο `timescale 1ps / 1fs module VCO #( parameter real minFreq = 5e+08, parameter real Fmult=0.01, parameter acjitter = 0.00001 ) ( output wreal OUT, inout wreal VSS, VDD, input wreal PDWN, Vcntl ); reg clk; real freq, delay; integer seed; initial begin clk=0; seed = $realtime; (λινκ εξπλειν) end always @(Vcntl) begin freq = minFreq/10e+12 + Vcntl*Fmult; delay = 1.0/(2*freq)+acjitter*$dist_normal(seed,0,1); end always begin #delay clk = ~clk; end assign OUT = (PDWN<(VDD-VSS)/2)? (clk ? VDD : VSS) : 0; endmodule Εικόνα 2.12: Κυματομορφές εισόδου-εξόδου του VCO Η παράμετρος Fmult δίνει τη δυνατότητα προσαρμογής του VCO σε οποιαδήποτε μπάντα συχνοτήτων. Καθώς το PLL έχει στις προδιαγραφές του λειτουργία στα 1.2V ως 0V, 45 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων θέτοντας Fmult = 0.01 παράγει συχνότητες μέχρι και 12GHz, θέτοντας Fmult = 0.1 παράγει συχνότητες μέχρι και 120GHz κ.ο.κ. Φυσικά, η ακρίβεια του VCO και η ικανότητα του PLL να κλειδώσει αλλά και να περιορίσει το jitter επιδεινώνεται όσο η συχνότητα λειτουργίας αυξάνει. Η παράμετρος acjitter καθορίζει το μέγεθος των διακυμάνσεων της συχνότητας. Παρόλο που το μέγεθος αυτό απορρέει και από το τυχαίο αποτέλεσμα της κανονικής κατανομής, η δειγματοληψία από αυτή γίνεται συνεχώς και το τελικό αποτέλεσμα πρακτικά εμφανίζει εξίσου όλες τις συχνότητες στην μπάντα [freq - acjitter-1, freq + acjitter-1]. Τέλος, η παράμετρος minFreq εισάγεται για δύο λόγους. Πρώτον, η καθυστέρηση delay έχει άγνωστη τιμή όταν η προσομοίωση ξεκινά, κάτι που οδηγεί σε ατέρμων βρόχο στην εναλλαγή του καταχωρητή clk. Η χρήση της παραμέτρου minFreq απομακρύνει αυτό το πρόβλημα. Αυτό βέβαια θα μπορούσε να αποφευχθεί και με αρχικοποίηση του delay στο initial block. Ωστόσο η συγκεκριμένη παράμετρος έχει φυσική σημασία, περιορίζοντας το PLL από το να προσεγγίσει χαμηλότερες συχνότητες στο φάσμα των VHF. Κάτι τέτοιο είναι αναμενόμενο, καθώς ακόμα και N-fractional PLLs δεν έχουν δυνατότητα κάλυψης όλου του εύρους συχνοτήτων στο χαμηλότερο φάσμα. 2.4.6 Διαιρέτης συχνότητας και διεπαφή ελέγχου Ο διαιρέτης συχνότητας συνδέει την έξοδο του VCO με τον ανιχνευτή διαφοράς φάσης, κλείνοντας το βρόχο ανάδρασης. Σκοπός του είναι η αναπαραγωγή της κυματομορφής εξόδου με συχνότητα διαιρεμένη κατά "N" φορές. Καθώς η συχνότητα αναφοράς και η παραγόμενη συχνότητα απέχουν αρκετές τάξεις μεγέθους, χρησιμοποιείται ένας σταθερός προδιαιρέτης (prescaler) συχνότητας δια 40. Πρόκειται για ένα καθαρά ψηφιακό κύκλωμα, η λειτουργία του οποίου βασίζεται σε ένα μετρητή παλμών. Μόλις ανιχνεύσει "Ν" παλμούς, αλλάζει κατάσταση στην έξοδο. Ο αριθμός "N" των παλμών αποτελεί τη μοναδική είσοδο του PLL και για αυτό εισάγεται ένα module ελέγχου, το οποίο μετατρέπει το όρισμα σε ψηφιακούς αγωγούς. `timescale 1ps / 100fs module Ndivider #( parameter real FFdelay=23, //give the DFFX1 delay parameter real HI=1.2, parameter real LO=0 ) ( output wreal OUT, input wreal IN, PDWN, input wire [7:0] N ); real Vth; integer sum; reg lowFreq; wire highFreq, off; initial begin lowFreq = 0; sum = 0; Vth = (HI+LO)/2; 46 Κεφάλαιο 2ο end assign assign highFreq = (IN>Vth); off = PDWN>Vth; always@(IN>Vth) begin if(!off) begin if (highFreq) begin #FFdelay sum = sum+1; if(sum==(N*40)/2) begin #FFdelay lowFreq=~lowFreq; sum=0; end end end end assign OUT = lowFreq ? HI : LO; endmodule `timescale 1ns / 1ps module dividerControl #( parameter integer GhzMultiplier=10 ) ( output wire [7:0] N ); integer tmp; initial begin tmp = GhzMultiplier; //#2500 tmp = GhzMultiplier+3; //switch band for testing end assign N=tmp; endmodule Ένας μη ιδανικός διαιρέτης συχνότητας παρουσιάζει - όπως και οποιοδήποτε άλλο στοιχείο - καθυστερήσεις. Ωστόσο το κλείδωμα ενός PLL δεν επηρεάζεται εφόσον οι καθυστέρηση παραμένει σταθερή, μιας και εν τέλει οι συχνότητες και οι φάσεις του σήματος ανάδρασης και του σήματος αναφοράς θα ταυτιστούν. Με άλλα λόγια, παρόλο που ο N-οστός παλμός του σήματος εξόδου θα φαίνεται να συμπίπτει με τον παλμό του σήματος αναφοράς, στην πραγματικότητα αυτό συμβαίνει αρκετά νωρίτερα καθώς το υποκύκλωμα του Ndivider αναμένεται να έχει αρκετές μεταβάσεις μέχρις ότου να παράγει έξοδο. Μέσω της ανάδρασης, και δεδομένου ότι οι καθυστερηση του Ndivider είναι πάγια, η χρονική αυτή διαφορά παραμένει σχετικά σταθερή. Στη βιβλιογραφία, αυτό το φαινόμενο αναφέρεται ως "cycle-to-cycle jitter". Επομένως δεν εισάγονται καθυστερήσεις στο μοντέλο του ψηφιακού Ndivider, πέραν αυτής της μετάβασης του D-flipflop. Όσον αφορά τη διεπαφή ελέγχου, όταν δοθεί ως είσοδος "N" ίσο με το μηδέν, τότε στη συγκεκριμένη υλοποίηση αυτό εκλαμβάνεται ισοδύναμο με κλείσιμο του PLL. Ο έλεγχος αυτός γίνεται στην παρακάτω ενότητα, όπου ορίζονται και οι τάσεις παροχής. 47 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων 2.4.7 Μετρητής συχνότητας Παρόλο που τα αναλογικά εργαλεία EDA παρέχουν πλήθος βοηθητικών συναρτήσεων επεξεργασίας σήματος (π.χ. μέτρηση κέρδους, φάσης, πλάτους, θορύβου σήματος κλπ.), τα ψηφιακά επικεντρώνονται στη ροή σήματος και λειτουργούν περισσότερο σαν compilers. Συνεπώς, δεν υπάρχει τρόπος μέτρησης της συχνότητας της εξόδου του PLL όταν αυτό προσομοιώνεται στον αμιγώς ψηφιακό επιλυτή. Για το λόγο αυτό συντάχθηκε το module που ακολουθεί, το οποίο υπολογίζει προσεγγιστικά τη στιγμιαία συχνότητα, βάσει του χρονικού διαστήματος που μεσολάβησε από τον προηγούμενο παλμό. Η κλίμακα μέτρησης της συχνότητας (kHz, MHz, GHz κλπ) ορίζεται από το χρήστη μέσω της παραμέτρου scaleFreq. `timescale 1ns / 1ps module R2F #( parameter real scaleFreq=1G, parameter real vsup=1.2 ) ( output wreal OUT, input wreal IN ); //optional frequency scaling factor real freq; real vthi, vtlo; real lastPos,lastNeg; initial begin vthi = vsup /1.5; vtlo = vsup / 3; lastPos=0; lastNeg=0; freq=0; end always @(posedge (IN>vthi)) begin if (lastPos>0) freq = 1/($abstime-lastPos); lastPos=$abstime; end always @(posedge (IN<vtlo)) begin if (lastNeg>0) freq = 1/($abstime-lastNeg); lastNeg=$abstime; end assign OUT = freq/scaleFreq; endmodule Το module αυτό τοποθετείται στην έξοδο του VCO και ανιχνεύει τη συχνότητα της παραγόμενης κυματομορφής. Η συμβολή του στη διαδικασία σχεδίασης αποδείχθηκε ιδιαίτερα σημαντική καθώς επιτάχυνε σημαντικά τις μετρήσεις και την επαλήθευση των επιμέρους υποκυκλωμάτων. 48 Κεφάλαιο 2ο 2.5 Προσομοίωση Μπορούμε πλέον να προχωρήσουμε στην προσομοίωση του κυκλώματος. Η μόνες προσθήκες στα παραπάνω μοντέλα είναι μία ενότητα παροχής των τάσεων VDD και VSS, αλλά και ενός netlist που θα δημιουργεί αντικείμενα (instances) των συστατικών μερών του PLL. Ο κώδικας εισάγεται στο irun και το κύκλωμα - παρόλο που είναι αναλογικό προσομοιώνεται αποκλειστικά στον digital solver. Αρχικά δίνεται ως είσοδος GhzMultiplier η τιμή 10, που σημαίνει ότι ο Ndivider θα διαιρεί τη συχνότητα του VCO με τον αριθμό 400, ώστε στην κατάσταση ηρεμίας να ισχύει freq(REF) = freq(EHF) / GhzMultiplier*40. Παρακάτω παρουσιάζονται οι παραγόμενες κυματομορφές. Εικόνα 2.13: Κυματομορφές προσομοίωσης με wreal μοντελοποίηση Στη συνέχεια, η είσοδος GhzMultiplier αυξάνεται στα 100 και 255 ώστε να προσομοιωθεί το κύκλωμα σε όλο το φάσμα EHF (το όριο των 255GHz καθορίζεται από το ότι ο dividerControl παράγει 8-bit έξοδο, συνεπώς για μεγαλύτερες συχνότητες θα έπρεπε να προστεθούν περισσότεροι αγωγοί στο bus 49 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων Εικόνα 2.14: Προσομοίωση στα 100GHz Εικόνα 2.15: Προσομοίωση στα 255GHz Το εργαλείο Simvision του Incisive δίνει τη δυνατότητα σχηματοποίησης του κώδικα. Αυτή η υπηρεσία μπορεί να φανεί ιδιαίτερα χρήσιμη και εν προκειμένω βοήθησε αρκετά στη μετάβαση σε ένα εργαλείο design entry, όπως είναι το PSpice ή το Virtuoso Schematic Editor. 50 Κεφάλαιο 2ο Εικόνα 2.16: Σχηματικό διάγραμμα του PLL Σε αυτό το σημείο αξίζει να αναφερθεί η ρύθμιση wreal_resolution. Στον πραγματικό κόσμο είναι πολύ συχνό φαινόμενο ένας κόμβος να "οδηγείται" από περισσότερα του ενός σήματα. Ως εκ τούτου, αυτό συμβαίνει και στα RNM modules, όπου στη μεταβλητή net που αντιστοιχεί στον κόμβο εκχωρούνται περισσότερες από μία τιμές. Αυτή η συμπεριφορά πρέπει να μοντελοποιηθεί κατάλληλα στο HDL πρόγραμμα, ώστε ο προσομοιωτής να ξέρει πως να χειριστεί την κατάσταση. Ας σημειωθεί ότι σε αμιγώς ψηφιακά κυκλώματα, όπου χρησιμοποιείται η δυαδική λογική {0,1,x,z}, η εν λόγω περίσταση θα δώσει τιμή "x" στο net. Σύμφωνα με το πρότυπο, έξι συναρτήσεις απόφασης υποστηρίζονται: • • • • • • DEFAULT, όπου μόνο ένας οδηγός επιτρέπεται, διαφορετικά ο προσομοιωτής υποδεικνύει σφάλμα 4STATE, όμοιο με τη δυαδική λογική για τα ψηφιακά nets SUM, άθροισμα των τιμών των οδηγών και εκχώρηση στον κόμβο AVG, εκχώρηση του μέσου όρου MIN, εκλογή της μικρότερης ως τιμή του κόμβου MAX, αντίστοιχα, εκλογή της μεγαλύτερης. Κάθε wreal resolution function προτιμάται για κάποια ιδιαίτερη περίπτωση (π.χ. παράλληλες πηγές τάσεως σε έναν κόμβο αντιπροσωπεύονται από τη MAX). Εν προκειμένω, τα δύο ρεύματα εξόδου της αντλίας φορτίου οδηγούν τον ακροδέκτη του φίλτρου, συνεπώς πρέπει να επιλεγεί η SUM, όπως προστάζει ο νόμος ρευμάτων του Kirchhoff. Παρόλο που το εργαλείο δε μπορεί να γνωρίζει τη φύση του κυκλώματος, ο προσεκτικός αναγνώστης παρατηρεί τις ομοιότητες μεταξύ της παραπάνω εικόνας και της εικόνας 2.1. Ακολούθως, με το παραπάνω διάγραμμα σαν οδηγό, τα επιμέρους modules εισήχθησαν στο design framework του Virtuoso όπου δημιουργήθηκαν ξεχωριστά cells για το κάθε υποκύκλωμα του συστήματος. Ένα πολύ σημαντικό στοιχείο είναι ο πραγματικός χρόνος (wall clock time) που διήρκησαν οι συγκεκριμένες προσομοιώσεις. Για διάστημα 4us λοιπόν, έχουμε: PLL στα 10GHz → 13 δευτερόλεπτα PLL στα 100GHz → 14 δευτερόλεπτα PLL στα 300GHz → 17 δευτερόλεπτα. 51 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων Αν αναλογιστεί κανείς ότι αυτοί οι χρόνοι συμπεριλαμβάνουν τα στάδια compilation και elaboration, τότε είναι εμφανές ότι τα μοντέλα που συντάχθηκαν απαιτούν ελάχιστο χρόνο πραγματικής προσομοίωσης. Στις ενότητες που ακολουθούν χρησιμοποιείται GhzMultiplier ίσος με 10, για λόγους απλότητας. Τα συμπεράσματα επεκτείνονται για κάθε ρύθμιση αυτής της παραμέτρου. 2.5.1 Βελτιστοποίηση παραμέτρων Κατά τη σύνταξη των υποκυκλωμάτων, εσκεμμένα κάποιες μεταβλητές τέθηκαν ως παράμετροι, ώστε να βρεθεί μέσω παραμετρικής ανάλυσης ο βέλτιστος συνδυασμός τιμών. Αυτή η προσέγγιση είναι συνήθης τακτική, καθώς σε μεγάλα κυκλώματα οι μαθηματικοί υπολογισμοί και οι σχεδιαστικές επιλογές έχουν απόρροιες οι οποίες γίνονται εμφανείς μόνο κατά την προσομοίωση. Σε αυτή την ενότητα αναφέρονται οι παράμετροι που επηρεάζουν τις επιδόσεις και τα αποτελέσματα του κυκλώματος. acjitter Μέσω της συγκεκριμένης παραμέτρου εισάγεται ο αναμενόμενος θόρυβος στη συχνότητα εξόδου. Δίνεται έτσι η δυνατότητα ισοκατανομής του φάσματος μεταξύ των τιμών [freq - acjitter-1, freq + acjitter-1], όπου freq η επιθυμητή συχνότητα. Έτσι λοιπόν, για GhzMultiplier=10 η καθυστέρηση αλλαγής εξόδου του VCO είναι ίση με 50ps. Σύμφωνα με τις προδιαγραφές της παραγράφου 2.3 και γνωρίζοντας ότι το 95% περίπου των τιμών της κανονικής κατανομής εμπεριέχεται μεταξύ [μ-2σ , μ+2σ] - ή [-2, 2] στη συγκεκριμένη περίπτωση - επιλέγονται τιμές μεταξύ 0.1 και 2 για την παράμετρο acjitter. Στην ακραία περίπτωση όπου η καθυστέρηση θα φτάνει τα 50±6ps, αυτό μεταφράζεται σε 12% ποσοστιαία μεταβολή στη συχνότητα (10±1.2 GHz). Εικόνα 2.17: Συχνότητα εξόδου για διάφορες τιμές του acjitter 52 Κεφάλαιο 2ο Συνεπώς μπορούμε να ρυθμίσουμε τη συγκεκριμένη παράμετρο στην τιμή 1.2, στα πλαίσια ενός worst-case σεναρίου. lockFreq Η επίδραση της συγκεκριμένης παραμέτρου γίνεται εμφανής στον ανιχνευτή διαφοράς φάσης, όπου επιτρέπει μια "χαλάρωση" των κριτηρίων σύγκρισης, καθώς η κάθε είσοδος συγκρίνεται με την εικόνα της ομόλογης εισόδου μετατοπισμένης κατά lockFreq ps. Έτσι, όταν η διαφορά φάσης μεταφράζεται σε λιγότερα από lockFreq ps, η έξοδος του PD παραμένει μηδενική. Αυτό μειώνει την καταναλισκόμενη ισχύ και επιπλέον καθιστά το PLL ικανό να αποφύγει περιττά "ξεκλειδώματα" του βρόχου. Το όνομα της παραμέτρου δεν είναι τυχαίο και προκύπτει από το γεγονός ότι σε κατάσταση κλειδώματος του PLL, είναι επιθυμητό να μην παράγεται συνεχώς έξοδος που προκαλεί διακυμάνσεις στην τάση ελέγχου. Κάτι τέτοιο πρέπει να αποφευχθεί, πόσο μάλλον στη συγκεκριμένη περίπτωση όπου η συχνότητα αναφοράς και η συχνότητα εξόδου διαφέρουν αρκετά, ώστε οι επιπτώσεις στην τάση ελέγχου αργούν να γίνουν εμφανείς μέσω της ανάδρασης (απαιτούνται πολλοί κύκλοι στον VCO μέχρι το σήμα ανάδρασης να αλλάξει κατάσταση). Εικόνα 2.18: Συχνότητα εξόδου για σάρωση του lockFreq Η χρυσή τομή στην επιλογή κατάλληλου lockFreq έγκειται μεταξύ ελάχιστης κατανάλωσης και ποιότητας του αποτελέσματος. Μιας και οι μικρότερες διακυμάνσεις έχουν μεγαλύτερο βάρος σαν προδιαγραφή, επελέγη η τιμή lockFreq=450ps. Sampling Rate (SR) Όπως προαναφέρθηκε, η έξοδος του φίλτρου υπολογίζεται ανά σταθερά χρονικά διαστήματα (uniform sampling). Είναι εμφανές ότι το πόσο συχνά αλλάζει η έξοδος επηρεάζει τη συνολική συμπεριφορά του PLL, ενώ η συχνότητα των υπολογισμών επηρεάζει τις επιδόσεις του μοντέλου. Πλέον σημαντικό για το μοντέλο του φίλτρου είναι να μην παραλείψει κάποια μεταβολή του ρεύματος αντλίας φορτίου, πρέπει συνεπώς η συχνότητα δειγματοληψίας να είναι μεγαλύτερη της baseband (25ΜHz) ή, με άλλα λόγια, να καλύπτει το κριτήριο Nyquist. Έτσι ορίζεται το ελάχιστο όριο. Από την άλλη, καθώς λαμβάνεται υπόψη το μέσο ρεύμα που διαρρέει το φίλτρο και όχι το στιγμιαίο, το ανώτερο όριο περιορίζεται από τις αιχμές (bursts) της εισόδου. 53 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων Εικόνα 2.19: Συχνότητα εξόδου για διάφορες τιμές της παραμέτρου SR Παρατηρεί κανείς ότι για υψηλή συχνότητα δειγματοληψίας, η τάση ελέγχου είναι επιρρεπής στη μεταβολή, ενώ για μικρές τιμές η απόκριση του PLL δεν προσεγγίζει την πραγματικότητα, παρόλο που ακολουθεί την τάση κλειδώματος του βρόχου. Ως βέλτιστη συχνότητα δειγματοληψίας επιλέχθηκε αυτή των 200ΜΗz, επιβεβαιώνοντας το γνωστό rule of the thumb που αναφέρθηκε στην παράγραφο 2.4.4. CP current (iAmp) Η αναμενόμενη δομή της αντλίας φορτίου είναι προσεγγιστικά ένα ζεύγος πηγής ρεύματος με διακόπτη. Το ένα μέρος του ζεύγους αποτελεί την αντλία ρεύματος και το άλλο την καταβόθρα. Συνεπώς θα πρέπει να οριστεί η ονομαστική τιμή αυτής της πηγής/καταβόθρας ρεύματος. Κριτήρια αποτελούν η ποιότητα απόκρισης, καθώς το μοντέλο του FIR φίλτρου υπολογίζει την τάση με βάση το ρεύμα εισόδου, αλλά και η κατανάλωση. Είναι προφανές πως για μεγαλύτερες τιμές ονομαστικού ρεύματος, ο χρόνος ανόδου του PLL θα μειώνεται καθώς οι αλλαγές θα είναι ταχύτερες. Ωστόσο από ένα σημείο κι έπειτα τίθεται ζήτημα για την ικανότητα του PLL να κλειδώσει, καθότι οι μεταβολές είναι πιο γρήγορες από την ικανότητα του βρόχου να ανατροφοδοτήσει. Τα παρακάτω αποτελέσματα δεν αφήνουν αμφιβολίες στο θέμα της επιλογής iAmp = 100uA. 54 Κεφάλαιο 2ο Εικόνα 2.20: Συχνότητα εξόδου για διάφορες τιμές ρεύματος αντλίας 2.5.2 Υλοποίηση με SystemVerilog Η SystemVerilog αποτελεί, όπως και η Verilog-AMS, υπερσύνολο της Verilog. Ενώ η χρήση της Verilog-AMS συγκεντρώνεται γύρω από εφαρμογές μικτού σήματος, η συγκεκριμένη γλώσσα αναπτύχθηκε αρχικά για να βελτιστοποιήσει τη δυνατότητα σχεδίασης με HDL, αλλά και να επιτρέψει αποτελεσματική επαλήθευση του σχεδίου. Πιο συγκεκριμένα, νέες δομές επιτρέπουν το σαφή καθορισμό της λογικής (συνδυαστική, ακολουθιακή), κάτι το οποίο αποτυπώνεται εν τέλει στο κύκλωμα μέσα από τα εργαλεία synthesis. Επίσης, είναι περισσότερο φιλική προς τον προγραμματιστή, επιτρέποντας εκτενέστερη περιγραφή του κυκλώματος με ταυτόχρονα λιγότερο μέγεθος κώδικα. Σημαντική είναι και η ενίσχυση στον τομέα της χρήσης με κάποιο εργαλείο EDA, καθώς κάποιες δομές της Verilog, αλλά και το τελικό netlist που παράγεται, ερμηνεύονται διαφορετικά από το εκάστοτε εργαλείο. Εγκυμονεί λοιπόν ο κίνδυνος το τελικό κύκλωμα να μη συμπεριφέρεται όπως ο αντίστοιχος RTL κώδικας. Πέρα όμως από τις διευκολύνσεις και την υψηλή αφαίρεση στη σχεδίαση, η SystemVerilog ενισχύει και τις λειτουργίες επαλήθευσης του σχεδίου, με την εισαγωγή Assertions. Πρόκειται για δομές που εισάγονται μέσα στον κώδικα και αγνοούνται από τα εργαλεία synthesis, ωστόσο ο προσομοιωτής τα χρησιμοποιεί, δίνοντας τη δυνατότητα στο σχεδιαστή να επαληθεύσει τη λειτουργικότητα και την επικοινωνία μεταξύ διάφορων modules (π.χ. πρόκληση σφάλματος στην περίπτωση που για σειρά γεγονότων, ένα σύνολο μεταβλητών δεν έχει τις καθορισμένες τιμές). Σε σύγκριση με τη Verilog, πλέον καθίσταται εφικτή η δήλωση του τύπου μεταβλητής για εισόδους/εξόδους των modules. Σε σύγκριση με τη Verilog-AMS, η SystemVerilog επιτρέπει τον ορισμό τύπου δεδομένων από το χρήστη (User Defined Types, UDT), αλλά και συναρτήσεων που συνοδεύουν τα UDTs (User Defined Resolution functions, UDR), οι οποίες εκτελούνται σε κάθε μεταβολή των δεδομένων. Μέρος της αύξησης της δημοτικότητας της SystemVerilog έναντι της Verilog-AMS αποδίδεται στο γεγονός ότι μεγάλες εταιρείες ηλεκτρονικών αρχίζουν να περιγράφουν τα αναλογικά τους κυκλώματα ορίζοντας όχι μόνο τάση αλλά και αντίσταση των αγωγών (UDT), έχοντας παράλληλα μια συνάρτηση που δρα αναδρομικά ελέγχοντας το ρεύμα τους (UDR). Ουσιαστικά, αυτό σκιαγραφεί τη λειτουργία του αναλογικού επιλυτή, ωστόσο η ταχύτητα επίλυσης είναι τάξεις μεγέθους ταχύτερη. Επιπροσθέτως, επιτρέπει την 55 Βρόχος Κλειδώματος Φάσης Εξαιρετικά Υψηλών Συχνοτήτων τοποθέτηση πολυδιάστατων πινάκων ως είσοδο/έξοδο των modules, χαρακτηριστικό απαραίτητο με την αυξανόμενη πολυπλοκότητα των κυκλωμάτων και την ανάγκη για υψηλότερη αφαίρεση. Ο κώδικας του συστήματος αναπτύχθηκε και σε SystemVerilog, ωστόσο δεν παρατίθεται στο έγγραφο διότι οι δομές και η ροή σήματος είναι αρκετά όμοιες με αυτές στη Verilog-AMS. Τα συμπεράσματα από τα αποτελέσματα είναι όμοια: Εικόνα 2.21: Απόκριση με υλοποίηση SV για διάφορες παραμέτρους Αρχικά αναπτυγμένη για σκοπούς επαλήθευσης, η SystemVerilog έχει γενικά ένα υψηλότερο επίπεδο και λειτουργίες σε αυτόν τον τομέα. Μια ακόμα ειδοποιός διαφορά με τις υπόλοιπες γλώσσες της οικογένειας Verilog είναι ότι οι δημιουργοί της επέτρεψαν continuous assignments σε καταχωρητές, πραγματικές μεταβλητές (real) κλπ. ώστε να μπορούν να "οδηγηθούν" σαν κόμβοι. Επιπλέον, είναι εφικτή η αλληλεπίδραση με wreal models δίχως να εκτελεστεί κάποιο CM, αλλά μόνο με ένα typecasting. Πρόκειται για γλώσσα με OOP χαρακτηριστικά, όπου κλάσεις μπορούν να οριστούν σαν UDTs, φέροντας ομάδες μεταβλητών ταυτόχρονα. Γενικά, στη βιομηχανία γίνονται εικασίες ότι με την επικείμενη εδραίωση της SystemVerilog θα απομακρυνθούν σταδιακά τα CMs και τη θέση τους θα λάβουν UDTs με τυποποιημένες κλάσεις και κατάλληλα UDRs. 56 Κεφάλαιο 3ο Κεφάλαιο 3 Υλοποίηση σε Επίπεδο Transistor Στο κεφάλαιο αυτό θα ασχοληθούμε με την επιμέρους μετατροπή των μοντέλων συμπεριφοράς στο χαμηλότερο επίπεδο, αυτό των αναλογικών συστατικών στοιχείων του PDK. Είναι το στάδιο που ακολουθεί, αφότου έχουν οριστεί επαρκώς οι προδιαγραφές μέσω της wreal μοντελοποίησης και τα υποκυκλώματα του σχεδίου έχουν διαμοιραστεί στις ομάδες μηχανικών. Σε κάθε κομμάτι του PLL αναλύονται οι επιλογές που λαμβάνονται και το κύκλωμα προσομοιώνεται τόσο σε αυτοτελές testbench όσο και σε επίπεδο συστήματος, όπως προτείνεται από τη μεθοδολογία του analog verification. Το μαθηματικό μοντέλο (SPICE model) του κάθε αναλογικού θεμελιακού στοιχείου (analog primitive) περιγράφει σε βάθος όλες τις φυσικές ιδιότητες και εξάγεται μέσα από μετρήσεις που κάνει το foundry. Το σύνολο των μοντέλων, μαζί με ένα σετ κανόνων σχεδίασης (για DRC και LVS), τα επιτρεπτά στρώματα στοιχείων (layers) και άλλες πληροφορίες συντάσσουν το Process Design Kit (PDK). Τα μοντέλα των ενεργών και παθητικών στοιχείων (devices - συσκευές), όπως το CMOS ή ένας πυκνωτής, χρησιμοποιούνται από τον αναλογικό επιλυτή κατά την επεξεργασία των κυκλωματικών εξισώσεων, ενώ οι περισσότερες από τις λοιπές πληροφορίες αφορούν στο backend του σχεδίου (layout). Πλέον πολλά PDK συνοδεύονται από μια βιβλιοθήκη με standard cells, τα οποία είναι κυκλώματα με συνήθη χρήση (π.χ. μια πύλη NAND). Η χρήση των standard cells επιταχύνει τη διαδικασία σχεδίασης, ιδιαίτερα στο digital flow, όπου αντί για τα μοντέλα SPICE χαμηλού επιπέδου χρησιμοποιούνται πίνακες δεδομένων (π.χ. πίνακες αλήθειας, χρόνοι απόκρισης, κατανάλωση κλπ.). Έτσι η θέση της επίλυσης του μοντέλου SPICE για κάθε δομικό στοιχείο αντικαθιστάται από αναζήτηση σε LUT για ολόκληρες πύλες που μπορεί να αριθμούν εκατοντάδες μοντέλα SPICE. Η εν λόγω αλλαγή καθιστά εφικτή τη σχεδίαση και προσομοίωση κυκλωμάτων με εκατομμύρια ενεργές συσκευές. Το digital flow βασίζεται αποκλειστικά σε standard cells, των οποίων τα ονόματα έχουν τη μορφή DFFX4, δηλαδή η λειτουργικότητα συνοδευόμενη από τη δύναμη οδήγησης. Όσον αφορά το custom IC flow, τα standard cells αντιμετωπίζονται όπως κάθε custom ανεπτυγμένο κύκλωμα, ωστόσο προσφέρουν ευκολία στη σχεδίαση αφού είναι δοκιμασμένα και δεν απαιτείται από το μηχανικό η δημιουργία στοιχείων όπως ένα flip-flop. Στη συνέχεια, αναλύονται μόνο τα κυκλώματα που σχεδιάστηκαν αποκλειστικά κατά τη διάρκεια του παρόντος project. Τα εγχειρίδια που χρησιμοποιήθηκαν μπορούν να εντοπιστούν στη βιβλιογραφία[14]. Σημείωση: Καθώς αναφέρονται συχνά οι χρόνοι που διαρκούν οι προσομοιώσεις, αξίζει να επισημανθεί ότι αυτές εκτελούνται σε server με λογισμικό διαμοιρασμού του φορτίου (Load Balancing System, LBS), με ίδιο αριθμό threads και ίδια προδιαγραφή ακρίβειας. Συνεπώς οι διαφορές στη διάρκεια αποτυπώνουν απόλυτα ή τουλάχιστον πολύ καλά τις απαιτήσεις της εκάστοτε προσομοίωσης σε χρόνο και υπολογιστική δύναμη. 57 Υλοποίηση σε Επίπεδο Transistor 3.1 Ταλαντωτής ελεγχόμενος από τάση Στόχος της παρούσας διατριβής είναι η σχεδίαση ενός PLL εξαιρετικά υψηλών συχνοτήτων. Η ακριβής συχνότητα δεν έχει θεσπιστεί ακόμα. Όπως αναφέρθηκε, το PLL θα είναι κατά προτίμηση N-frequency synthesizer, ωστόσο μεγάλες μεταβολές στη συχνότητα δεν είναι πάντοτε εφικτές. Με τα σημερινά δεδομένα, η σχεδίαση VCO που μπορεί να παράγει συχνότητες από λίγα GHz μέχρι εκατοντάδες GHz απαιτεί στην ουσία διπλότυπα εξαρτήματα τα οποία εισάγονται στο κύκλωμα διαμέσου διακοπτών. Κάτι τέτοιο δε θα είχε πρακτικό νόημα, καθώς τα PLL είναι συνήθως προσανατολισμένα για χρήση σε κάποια μπάντα συχνοτήτων. Για το λόγο αυτό, αλλά και για να γίνει εμφανής η δυνατότητα επαναχρησιμοποίησης των μοντέλων wreal, στη συνέχεια παρουσιάζονται δύο VCO: ένας ring oscillator και ένας ταλαντωτής Colpitts. 3.1.1 Ring VCO Η αρχή λειτουργίας του δημοφιλούς αυτού κυκλώματος είναι αρκετά σαφής. Πρόκειται για μια αλυσίδα από inverters με ανάδραση, όπου η έξοδος του τελευταίου αντιστροφέα εισάγεται στην είσοδο του πρώτου. Η απόδοση του βασίζεται στην καθυστέρηση απόκρισης των inverters, δηλαδή το πόσο γρήγορα η έξοδος ακολουθεί τη μεταβολή της εισόδου. Ως γνωστόν, τα MOSFETs έχουν μικρότερο χρόνο απόκρισης όσο το DC ρεύμα λειτουργίας αυξάνει. Συνεπώς για ταχύτερες αλλαγές κατάστασης των inverters, άρα και μεγαλύτερη συχνότητα εξόδου, απαιτείται μεγαλύτερο ID. Το ρεύμα αυτό μπορεί εύκολα να ελεγχθεί από μια πηγή ρεύματος ελεγχόμενη από τάση, ώστε ο VCO να πάρει την τελική του μορφή. Παρακάτω παρουσιάζεται ο ταλαντωτής που χρησιμοποιήθηκε. Εικόνα 3.1: Τοπολογία Ring VCO Υπάρχει πλήθος βιβλιογραφίας πάνω στη συγκεκριμένη διάταξη. Ένας κρίσιμος περιορισμός είναι ότι η συχνότητα που μπορεί να παράγει έχει άνω όριο που ορίζεται από την τεχνολογία που χρησιμοποιείται. Εν προκειμένω έγιναν μικροαλλαγές ώστε να παρέχει 58 Κεφάλαιο 3ο το μέγιστο δυνατό φάσμα για αποδεκτή κατανάλωση ρεύματος, με πιο συγκεκριμένα τη μείωση του μήκους και πλάτους καναλιού των inverters και την αύξηση του μεγέθους των καθρεπτών ρεύματος. Σαν inverter χρησιμοποιείται το standard cell INVX1 τροποποιημένο ώστε να παρέχει τον ελάχιστον χρόνο απόκρισης. Στο στάδιο εξόδου προστίθεται ένας buffer ώστε η κυματομορφή να είναι ακέραια με 1.2Vpp. Χρησιμοποιώντας ένα απλό testbench, όπου ο VCO προσομοιώνεται για διάφορες τάσεις εισόδου, η συχνότητα εξόδου παρουσιάζει τα εξής αποτελέσματα: Εικόνα 3.2: Συχνότητα εξόδου με σάρωση της τάσεως εισόδου Η συμπεριφορά του κυκλώματος είναι άψογη για τάσεις ελέγχου μεγαλύτερες από 350mV. Ωστόσο για μικρότερες τάσεις, το MOSFET στην είσοδο του κυκλώματος που ρυθμίζει την πηγή ρεύματος δεν πολώνεται στον κόρο, επομένως το ρεύμα πέφτει αισθητά με αποτέλεσμα τα ενεργά στοιχεία των inverters να μη λειτουργούν σα διακόπτες. Εξ ου και η αστάθεια στη συχνότητα για Vcntl = 300mV. Σε αυτό το σημείο αξίζει να επανέλθουμε προσωρινά στη μοντελοποίηση με πραγματικούς αριθμούς. Το μοντέλο ταλαντωτή που παρουσιάστηκε στην ενότητα 2.4.5 είναι αρκετά εξιδανικευμένο, από την άποψη ότι μεταβολές στην τάση ελέγχου αυξομειώνουν ανάλογα τη συχνότητα λειτουργίας. Κάτι τέτοιο δε συμβαίνει στην πραγματικότητα αφού, όπως φαίνεται και από τη χαρακτηριστική ενός nMOS, αύξηση της VGS δε συνεπάγεται ανάλογη αύξηση στο ρεύμα πόλωσης: 59 Υλοποίηση σε Επίπεδο Transistor Εικόνα 3.3: Χαρακτηριστικές Καμπύλες ΝΜΟS Επιπλέον, ο χρόνος που απαιτείται ώστε το MOS να αλλάξει το 90% της κατάστασής του είναι προσεγγιστικά 2.3*τ = 2.3*R*C, αλλά τόσο η Cgs όσο και η Cgd χωρητικότητα είναι στην πράξη εξαρτώμενες από την τάση που εφαρμόζεται στα άκρα του τρανζίστορ, άρα και από την τάση ελέγχου. Επομένως, πέρα από το ενεργό στοιχείο που χρησιμοποιείται στην πόλωση, και η ταχύτητα αλλαγής των inverters δεν είναι ακριβώς ανάλογη της τάσης στην είσοδο του VCO, άρα και η συχνότητα λειτουργίας του. Όλα αυτά είναι μάλλον αδύνατο να μοντελοποιηθούν. Μία εναλλακτική λύση είναι αυτή της χρήσης LUT, όπου για κάθε τάση ελέγχου αντιστοιχεί μία συχνότητα ταλάντωσης. Εξάλλου, το γραμμικό μοντέλο της ενότητας 2.4.5 μπορεί να "επαρκεί για την επαλήθευση της λειτουργίας σε αρχικό στάδιο και του verification των υπόλοιπων κυκλωμάτων, δεν είναι χρήσιμο όμως για τον ίδιο το VCO αφού η γραμμικότητα είναι σπάνια και δυσπρόσιτη κατάσταση"[15]. Το standard της IEEE για τη VerilogAMS ορίζει τη συνάρτηση table_model, της οποίας η δημοτικότητα αυξάνει συνεχώς καθώς δύναται να προσομοιώσει ικανοποιητικά κάποιο κύκλωμα με μοναδική προϋπόθεση την ύπαρξη των σχετικών δεδομένων για τις ανεξάρτητες μεταβλητές και υπολογιστικό κόστος της παρεμβολή (interpolation) ανάμεσα και παρεκβολή (extrapolation) εκατέρωθεν των δεδομένων αυτών. Επιπλέον πλεονέκτημα είναι η δυνατότητα του μηχανικού να ορίσει τόσο τη μέθοδο παρεμβολής / παρεκβολής (γραμμική, πολυωνυμική κλπ) όσο και την ακρίβεια των υπολογισμών. Η προσέγγιση αυτή μπορεί να αντιπροσωπεύει την τελική συμπεριφορά του κυκλώματος, αν οι μετρήσεις γίνουν μετά το parasitic extraction. `include "constants.vams" `include "disciplines.vams" `timescale 1ps/1fs module VCO #( parameter real minFreq = 5e+07, parameter real acjitter = 0.1, parameter real HI = 1.2, 60 Κεφάλαιο 3ο parameter real LO = 0, parameter real detAb = 1G ) ( output wreal OUT, inout wreal VSS, VDD, input wreal PDWN, Vcntl ); real delay, freq, prevFreq, Dfreq, vcoFreq; integer seed; reg clk; logic off; initial begin delay = 1/(2*minFreq)*1e+12; seed = $realtime; clk=0; end always #delay begin if(!off) begin clk = !clk; end end always @(Vcntl) begin //freq = $table_model(Vcntl,"/home/mariosk/Desktop/thesis/VCOEHF.tbl","CL"); freq = $table_model(Vcntl,"/home/mariosk/Desktop/thesis/VCOSHF.tbl","CL"); if(freq<0) begin $strobe("Illegal frequency found. Exiting...\n" ); $finish(); end Dfreq = freq - prevFreq; if(Dfreq>detAb) Dfreq = detAb; if(Dfreq<-detAb) Dfreq = -detAb; vcoFreq = prevFreq + Dfreq; delay = 1.0/(2.0*vcoFreq)*1e+12 + acjitter*$dist_normal(seed,0,1); prevFreq = freq; end assign off = (PDWN>(HI/2)); assign OUT = (!off)? (clk ? HI : LO) : 1'b0; endmodule Στο παραπάνω κομμάτι κώδικα, η συχνότητα ταλάντωσης υπολογίζεται αποκλειστικά βάσει της τάσης ελέγχου μέσα από LUTs. Η παράμετρος detAb (detection ability) εισάγεται με σκοπό να περιορίσει τη μέγιστη μεταβολή στη συχνότητα, ώστε μεγάλες μεταβολές στην τάση ελέγχου να μην επιφέρουν αστάθεια. Με τον τρόπο αυτό αντιμετωπίζεται το ζήτημα της μεγάλης διαφοράς συχνότητας μεταξύ της εξόδου και του σήματος αναφοράς, καθώς δίνεται η δυνατότητα στον PD να εξετάσει την επίδραση της κάθε μεταβολής. Το όρισμα ελέγχου της συνάρτησης table_model είναι "CL", δηλαδή η παρεμβολή γίνεται γραμμικά για τιμές μεγαλύτερες από την πλησιέστερη τάση ελέγχου, ενώ για μικρότερες τιμές επιστρέφεται η κοντινότερη τάση ελέγχου. 61 Υλοποίηση σε Επίπεδο Transistor Το μοντέλο αυτό πλεονεκτεί λόγω μεταφερσιμότητας (μπορεί να χρησιμοποιηθεί απαράλλακτο με διαφορετικά δεδομένα ταλάντωσης), ευκολίας στη σύνταξη μιας και δεν απαιτείται κάποια τεχνική παρά μόνο δεδομένα μετρήσεων και απόδοσης. Συγκεκριμένα, στην πράξη επιτυγχάνεται σχεδόν ίδιο αποτέλεσμα προσομοίωσης με το transistor level design σε χρόνο μόλις 23 δευτερολέπτων. Λίγο πιο κάτω φαίνεται ότι ο αντίστοιχος χρόνος προσομοίωσης αν αντικατασταθεί μόνο ο VCO από το transistor level design είναι περί τα 33' με χρήση του APS και με multithreading. Εικόνα 3.4: Επαλήθευση λειτουργίας στα πλαίσια του συστήματος Η συχνότητα του PLL "παίζει" μεταξύ 8 και 12 GHz, το οποίο δεν είναι αποδεκτό και προκύπτει από το γεγονός ότι οι συχνότητες εξόδου και αναφοράς απέχουν αρκετές τάξεις μεγέθους. Κατ' επέκταση, η εμφάνιση των αποτελεσμάτων μιας μεταβολής στην τάση ελέγχου αργεί να κάνει φανερές τις επιδράσεις της μέσω του βρόχου ανατροφοδότησης. Το ζεύγος αντίστασης-πυκνωτή στην είσοδο του ταλαντωτή χρησιμοποιείται σαν φίλτρο εξομάλυνσης της τάσης ελέγχου. Αυτή η διάταξη αντιστοιχεί στο LPF του PLL. Παρακάτω βλέπουμε την κυματομορφή της τάσεως ελέγχου η οποία λειένεται με παραμέτρους τη χωρητικότητα και αντίσταση του φίλτρου, και την αντίστοιχη συχνότητα ταλάντωσης. Το στάδιο του φίλτρου είναι εξαιρετικά σημαντικό και αντιμετωπίστηκαν αρκετά προβλήματα μέχρι να εισαχθεί στο σχέδιο, καθώς η απόκριση του PLL άλλαζε ραγδαία, χωρίς να επιτρέπεται στον PD να ανιχνεύσει τις επιδράσεις εγκαίρως. Απόρροια αυτού ήταν η συχνή εμφάνιση αιχμών στη συχνότητα κλειδώματος, όπως φαίνεται στην παραπάνω εικόνα 3.4. 62 Κεφάλαιο 3ο Εικόνα 3.5: Επίδραση του φίλτρου με σάρωση του πυκνωτή 1Εικόνα 3.6: Επίδραση του φίλτρου με σάρωση της αντίστασης Εικόνα 3.7: Συχνότητα εξόδου για διαφορετικές αντιστάσεις ringRes 63 Υλοποίηση σε Επίπεδο Transistor Δεν είναι τυχαίο που οι τελικές επιλογές R = 300k και C = 110 fF προσεγγίζουν το συνδυασμό RC της βαθμίδας του φίλτρου· αντικατοπτρίζουν την εξομάλυνση που θα επιφέρει η διάταξη LPF όταν το μοντέλο του αντικατασταθεί από το κύκλωμα σε επίπεδο τρανζίστορ. Για τις συγκεκριμένες τιμές η συχνοτική απόκριση του PLL είναι αυτή της δεύτερης κυματομορφής της παραπάνω εικόνας, ενώ ο χρόνος προσομοίωσης για 4us κυμαίνεται στα 45 λεπτά. Συγκριτικά με την κυματομορφή που παράγεται από τα μοντέλα πραγματικών αριθμών, παρατηρείται ικανοποιητικά πιστή αναπαραγωγή. Οι αιχμές μηδενικής συχνότητας προκύπτουν από το γεγονός ότι η τάση ελέγχου στα συγκεκριμένα σημεία δεν είναι αρκετά μεγάλη ώστε να πολώσει το NMOS της πηγής ρεύματος. Εικόνα 3.8: Κυματομορφή για τον επιλεγμένο συνδυασμό 3.1.2 Ταλαντωτής Colpitts Η δημιουργία συχνοτήτων στο φάσμα EHF θέτει σχεδιαστικά ζητήματα, πολύ περισσότερο όταν απαιτείται η δυνατότητα αυξομείωσης της συχνότητας ταλάντωσης. Σε αυτή την παράγραφο αναλύονται οι περιορισμοί της CMOS τεχνολογίας 45nm που χρησιμοποιείται, εξηγείται γιατί δε χρησιμοποιήθηκαν οι συνήθεις συνδεσμολογίες που εμφανίζονται σε εφαρμογές στα 77GHz και παρουσιάζεται το τελικό κύκλωμα ταλαντωτή. Σαν σχέδιο αναφοράς, προσεγγίζεται ένας VCO στα 100GHz και ενσωματώνεται στο PLL. Ο ταλαντωτής της προηγούμενης ενότητας, παρόλο που η γενική ιδέα είναι αμιγώς αναλογική, θα μπορούσε να υλοποιηθεί ως ένα ψηφιακό κύκλωμα μέσω του digital flow. Η σύλληψη είναι απλή: στοιχεία αντιστροφέων κυκλικά συνδεδεμένα με τοποθέτηση delay cells ενδιάμεσα. Με τη βοήθεια εργαλείων όπως το ΕΤS, ο σχεδιαστής δύναται να ρυθμίσει τις χρονικές αποστάσεις μεταξύ των μεταβολών στην κατάσταση των inverters. Αυτό που επιτρέπει τη συγκεκριμένη προσέγγιση είναι η δυνατότητα της τεχνολογίας να ανιχνεύσει εγκαίρως μεταβολές στην είσοδο του κάθε standard cell και να τις μεταδώσει στην έξοδο. Ωστόσο ο χρόνος ανόδου και καθόδου των CMOS δεν είναι μηδενικός, επομένως η συχνότητα λειτουργίας τους είναι περιορισμένη. Όσο μικρότερο είναι το μήκος καναλιού της τεχνολογίας, η συχνότητα λειτουργίας μπορεί να αυξάνει, αλλά όχι επ' άπειρον. Εν προκειμένω, τα standard cells του PDK που χρησιμοποιήθηκε δείχνουν σωστή συμπεριφορά για συχνότητες μέχρι και 14GHz. Μεγαλύτερες συχνότητες λειτουργίας οδηγούν αστοχία του Sample and Hold (δηλ. τα flipflops δεν ανιχνεύουν ορθά τις μεταβολές του ρολογιού). Για παραγωγή εξαιρετικά υψηλών συχνοτήτων θα πρέπει να εξετασθεί κάποιο κύκλωμα με παθητικά στοιχεία, καθώς το ρεύμα κυλάει συνεχώς και δεν απαιτείται καμία αναμονή για μεταβολή κατάστασης, όπως ισχύει στα CMOS. EHF PLLs προορίζονται για χρήση κυρίως σε οπλικά συστήματα, αστροφυσικές και αστροναυτικές εφαρμογές αλλά κατά βάση σε ραντάρ αυτοκινητοβιομηχανίας. Στη σχετική 64 Κεφάλαιο 3ο βιβλιογραφία[16][17][18], ο VCO βασίζεται σε μία διάταξη ομοεπίπεδου κυματοδηγού (coplanar waveguide - CPWG). Η συγκεκριμένη τοπολογία (βλ. εικόνα 3.9) αντικαθιστά το LC-tank που συνήθως χρησιμοποιείται και προκαλεί συντονισμό ανάλογα με την τάση που εφαρμόζεται στα άκρα της. Το λογισμικό της Cadence, στο οποίο εκπονήθηκε η παρούσα μελέτη, παρέχει interface για CPWG (το component ονομάζεται mTline και είναι στοιχείο της built-in rfLib), ωστόσο μόνο για απολύτως ευθείς κυματοδηγούς. Καθώς απαιτείται ιδιαίτερη τοπολογία η οποία δεν υποστηρίζεται, η μόνη προοπτική αξιοποίησης της συγκεκριμένης προσέγγισης θα ήταν η χρήση κάποιου third party πεδιακού επιλυτή (field solver) όπως το ADS® της Agilent®, για εξαγωγή των S-παραμέτρων και αντικατάσταση του CPWG με ένα S-parameter εξάρτημα στο Virtuoso®. Έτσι, αυτή η δημοφιλής διάταξη εγκαταλείφθηκε. Εικόνα 3.9: Colpitts με CPWG σε σχήμα σκάλας Μια δεύτερη προσέγγιση είναι αυτή της χρήσης ΗΒΤ (Heterojunction Bipolar Transistor) γερμανικού πυριτίου. Τα HBTs δημιουργούνται με χρήση διαφορετικού layer για τη βάση και διαφορετικού για τον εκπομπό. Το πλεονέκτημα είναι ότι μπορεί να ακολουθήσει μεταβολές μικρού σήματος που φτάνουν τις αρκετές εκατοντάδες GHz. Το μειονέκτημα είναι το κόστος, το οποίο αυξάνει αναλογικά με τον αριθμό στρωμάτων. Για να ακολουθηθεί αυτή η προσέγγιση θα ήταν αναγκαία η χρήση MTS τεχνικών (MultiTechnology Simulation) αφού το PDK που χρησιμοποιήθηκε δεν περιέχει αυτά τα εξειδικευμένα μοντέλα. Εν γένει, μια εσφαλμένη αντίληψη είναι ότι ένα PDK μπορεί να έχει τόσο CMOS συσκευές όσο και BJT. Τα διπολικά που σπανίως συναντώνται σε CMOS processes προκύπτουν από την εκμετάλλευση των παρασιτικών BJT ανάμεσα σε ένα NMOS και ένα PMOS. Είναι εμφανές ότι αυτό τα καθιστά μη αποτελεσματικά και δύσχρηστα, αφού δεν επιτρέπονται ιδιαίτερες μεταβολές και υπάρχει ζήτημα στο layout του σχεδίου. Αποτέλεσμα των παραπάνω περιορισμών ήταν η ανάπτυξη ενός προσαρμοσμένου ταλαντωτή Colpitts σε τεχνολογία CMOS. Βασικό χαρακτηριστικό της συγκεκριμένης συνδεσμολογίας είναι η χρήση δεξαμενών πηνίων-πυκνωτών (LC-tanks) για τη φόρτιση και εκφόρτιση των πυκνωτών εξόδου. Πώς όμως μπορεί να ρυθμιστεί η συχνότητα ταλάντωσης ώστε να κλειδώνει ο βρόχος; Εκεί ακριβώς εντοπίζεται το ιδιαίτερο σημείο της εν λόγω προσέγγισης· έγκειται στη χρήση MOS capacitors, δηλαδή ενεργών στοιχείων με βραχυκυκλωμένους ακροδέκτες πηγής-εκροής, ώστε να επιτρέπεται η μεταβολή της χωρητικότητας, άρα και της συχνότητας ταλάντωσης. 65 Υλοποίηση σε Επίπεδο Transistor Εικόνα 3.10: Κύκλωμα του ταλαντωτή Colpitts Το κύκλωμα αυτό εξυπηρετεί αρκετές από τις προδιαγραφές σχεδίασης[19]. Η παραπάνω τοπολογία συναντάται στη βιβλιογραφία ως "negative resistance" έναντι της τοπολογίας ανατροφοδότησης, αφού στην ανάλυση μικρού σήματος προκύπτει ότι RAC=Δu/Δi<0. Συγκεκριμένα, για την παραπάνω τοπολογία έχει αποδειχθεί ότι η ισοδύναμη AC αντίσταση που "φαίνεται" από την έξοδο είναι R=−gm/ω2*C1*C2. Η τάση στην οποία λειτουργεί ο ταλαντωτής είναι η μέγιστη δυνατή, ώστε να ελαχιστοποιηθεί ο φασικός θόρυβος (jitter). Το βασικό trade-off είναι λοιπόν μεταξύ jitter και κατανάλωσης, αλλά έχοντας το πρώτο σαν βασικότερη προδιαγραφή, επιλέχθηκε μεταβολή της τάσης από VDD έως -VDD και για το λόγο αυτό τοποθετείται η δίοδος στην έξοδο του κυκλώματος. Όσον αφορά στον προσδιορισμό των τιμών των παθητικών στοιχείων, οι τελικές προέκυψαν από εκτενείς προσομοιώσεις έχοντας ως αρχική προσέγγιση χαμηλές επαγωγές, μιας και επιθυμούμε μεγάλο ρεύμα Ι = V / jωL, και αντίστοιχες χωρητικότητες στη δεξαμενή ώστε να παράγεται η επιθυμητή συχνότητα λειτουργίας. Η συχνοτική απόκριση του κυκλώματος 66 Κεφάλαιο 3ο φαίνεται στην εικόνα 3.13, ενώ αμέσως μετά παρουσιάζεται η ημιανορθωμένη συχνότητα κυματομορφής στην έξοδο του PLL. Αν η δίοδος στον κόμβο εξόδου απομακρυνθεί, το PLL παράγει σήμα με τιμές από -VDD ως VDD. Επιπλέον, η τοπολογία δύναται να παράγει ημιτονοειδές σήμα με κατάλληλο tweaking των τιμών των παθητικών στοιχείων, δημιουργώντας έτσι ένα PLL με αναλογική έξοδο (Analog PLL, APLL). Βλέπουμε λοιπόν πως η συμπεριφορά του κυκλώματος είναι πολύ καλή με κόστος αυτό της κατανάλωσης, η οποία υπολογίστηκε στα 19.45mW. Το RLC κύκλωμα που συνδέει τον ταλαντωτή με τη γείωση είναι ένα φίλτρο αποσύζευξης χαμηλών συχνοτήτων, για αυτό η τιμή της επαγωγής επιλέγεται σχετικά μεγάλη με αυτή του LC-tank, ώστε να μην επιτρέπει διέλευση υψηλών συχνοτήτων. Παράλληλα, εξυπηρετεί και σαν κύκλωμα πόλωσης του ρεύματος λειτουργίας των ενεργών συσκευών, αλλά και συμβάλει στη μείωση του θορύβου χαμηλότερων συχνοτήτων που ενδεχομένως προκύπτουν από αρμονικές της συχνότητας ταλάντωσης. Το πλέον ενδιαφέρον κομμάτι της σχεδίασης είναι αυτό της διεπαφής της τάσεως ελέγχου στο κύκλωμα. Προφανώς η χρήση κάποιου MOS για ρύθμιση του ρεύματος λειτουργίας, όπως αυτού στο δακτυλικό ταλαντωτή, δε θα είχε νόημα μιας και το κύκλωμα είναι σταθερά πολωμένο και η συχνότητα ταλάντωσης δεν εξαρτάται από το ρεύμα. Αυτό που μπορεί να μεταβάλλει τη συχνότητα ωosc2 = 1/(Ceq*L) είναι η χρήση πυκνωτών στη δεξαμενή των οποίων η χωρητικότητα εξαρτάται από την τάση λειτουργίας. Τη δυνατότητα αυτή την παρέχουν οι πυκνωτές από ενεργά στοιχεία. Η δομή ενός πυκνωτή MOS (MOS Capacitor - moscap) είναι ένα στρώμα μονωτή ανάμεσα σε ένα στρώμα μετάλλου (Body) και ένα στρώμα ημιαγωγού (Gate). Προσθέτοντας ενώσεις PN στα δύο άκρα του πυκνωτή, σχηματίζεται το γνώριμο MOS τρανζίστορ. Με άλλα λόγια, ένα moscap προκύπτει από ένα MOS όταν οι ακροδέκτες της πηγής και της εκροής είναι ασύνδετοι ώστε το σώμα να ορίζει την κάθοδο του πυκνωτή, ενώ η πύλη αποτελεί την άνοδο. Όπως οι χωρητικότητες των MOS (π.χ. Cgs, Cgd) μεταβάλλονται ανάλογα με την πόλωση, άρα και την τάση στην πύλη, έτσι και τα moscaps αποτελούν πυκνωτές εξαρτώμενους από τάση, των οποίων η μέση χωρητικότητα καθορίζεται από τις διαστάσεις W*L του τρανζίστορ. Το πλέον ενδιαφέρον χαρακτηριστικό των moscaps είναι η ικανότητά τους να μεταβάλλουν τη χωρητικότητά τους με πολύ διαφορετικό τρόπο ανάλογα με την τάση Vgb. Ποιο συγκεκριμένα, μπορούν να βρεθούν σε τρεις καταστάσεις: συσσώρευση(accumulation), εξάντληση(depletion) και αναστροφή(inversion). Εικόνα 3.11: Συμπεριφορά των moscaps 67 Υλοποίηση σε Επίπεδο Transistor Μία ιδιαίτερη ιδιότητα η οποία είναι σημαντική για την ανάλυση των moscaps είναι η ενέργεια επίπεδου εύρους (flat band). Σε αυτή την περίπτωση, όταν εφαρμοστεί κατάλληλη αρνητική τάση Vfb στην πύλη του MOS, οι ενέργειες των φορέων στις πλάκες του πυκνωτή είναι ίσες[20]. Τότε το ηλεκτρικό πεδίο στο υπόστρωμα - άρα και στο οξείδιο - είναι μηδενικό. Δεδομένου ότι χρησιμοποιούνται ΝΜΟS πυκνωτές, όταν στην πύλη εφαρμόζεται τάση μικρότερη από Vfb, είναι αναμενόμενο πως η ενέργεια της πύλης θα αυξάνει, οπές από το υπόστρωμα έλκονται στην επιφάνεια του πυκνωτή και θα ισχύει: Qacc = -Cox ( Vg - Vfb ) (3.1) όπου Qacc το φορτίο συσσώρευσης. Φαίνεται λοιπόν ότι στην κατάσταση αυτή το moscap λειτουργεί σαν κανονικός πυκνωτής με μετατοπισμένη τάση λειτουργίας κατά Vfb. Στην αντίθετη περίπτωση όπου θετικότερη τάση από Vfb εφαρμοστεί στην πύλη, οι οπές του υποστρώματος απωθούνται και σχηματίζεται μία περιοχή αραίωσης φορτίων πάνω στις "πλάκες" του πυκνωτή. Αφού ισχύει ότι Vox = - 𝑄𝑄𝑄𝑄𝑄𝑄𝑄𝑄 𝐶𝐶𝐶𝐶𝐶𝐶 = 𝑞𝑞∗𝑁𝑁𝑁𝑁 ∗𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊 2 𝐶𝐶𝐶𝐶𝐶𝐶 => Cox = Vox *𝑞𝑞 ∗ 𝑁𝑁𝑁𝑁 ∗ 𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊2 (3.2) είναι αναμενόμενο ότι η χωρητικότητα θα μειώνεται εκθετικά καθώς η τάση θα αυξάνει. Όχι όμως αόριστα: από ένα συγκεκριμένο κατώφλι τάσης Vt και έπειτα, οι φορείς του πυκνωτή θα μετατραπούν από οπές σε ηλεκτρόνια, τα οποία εμφανίζονται λόγω της έλξης της Vg. Από εκεί πηγάζει και η τρίτη περιοχή λειτουργίας των moscaps, αφού γίνεται αναστροφή των επιφανειακών φορτίων από τύπο P σε τύπο N. Για τάσεις Vg μεγαλύτερες από Vt , η ενέργεια Wdep έχει φτάσει το μέγιστο όριό της και παραμένει σταθερή. Θα ισχύει λοιπόν: (3.3) Qinv = -Cox ( Vg - Vt ) δηλαδή παρατηρείται ξανά συμπεριφορά ιδανικού πυκνωτή με τάση μετατοπισμένη κατά Vt. Ωστόσο δύο συμπεριφορές είναι πιθανές, ανάλογα με τη συχνότητα του σήματος που διαρρέει τον πυκνωτή. Για Vg > Vt , εάν η τάση μεταβάλλεται με μεγάλη συχνότητα, υπάρχει δυσκολία στη συγκέντρωση ηλεκτρονίων στην επιφάνεια των "πλακών". Ως αποτέλεσμα, οι οπές είναι αυτές που κατά κύριο λόγο χρησιμοποιούνται για τη φόρτιση και εκφόρτιση του πυκνωτή. Εν τέλει, προκύπτει το ακόλουθο διάγραμμα χωρητικότητας μικρού σήματος για τους εν λόγω πυκνωτές ελεγχόμενους από τάση: Εικόνα 3.12: Χωρητικότητα συναρτήσει της τάσεως πύλης 68 Κεφάλαιο 3ο Στην υλοποίησή μας, στόχος είναι η ρύθμιση της χωρητικότητας για μεταβολή της συχνότητας ταλάντωσης, επομένως απαιτείται η λειτουργία στην περιοχή εξάντλησης. Θα περίμενε κανείς ότι η σχέση C-V θα ήταν μονότονα αντιστρόφως ανάλογη. Όμως κατά τις πρώτες δοκιμές του Colpitts VCO, παρατηρήθηκε το εξής φαινόμενο: Εικόνα 3.13: Συχνότητα εξόδου για μεταβαλλόμενη τάση ελέγχου Στην παραπάνω εικόνα εμφανίζεται η συχνοτική απόκριση του υποκυκλώματος για διάφορες τιμές τάσης ελέγχου. Μεγάλη τάση ελέγχου σημαίνει μικρή Vgb που συνεπάγεται μεγάλη χωρητικότητα και άρα πιο αργή συχνότητα ταλάντωσης. Είναι εμφανές όμως ότι αυτό δεν ισχύει πάντα, καθώς ο πυκνωτής εισέρχεται στην περιοχή αναστροφής. Για να αντιμετωπιστεί το συγκεκριμένο πρόβλημα, μία πηγή συνεχούς τάσεως εφαρμόζεται στην τάση ελέγχου ώστε να περιορίζει τη λειτουργία στην περιοχή αραίωσης. Στις επόμενες εικόνες εμφανίζεται η συμπεριφορά του PLL στα 100 GHz. Εικόνα 3.14: Τάση ελέγχου και κλείδωμα συχνότητας στα 100GHz 69 Υλοποίηση σε Επίπεδο Transistor Εικόνα 3.15: Κυματομορφή εξόδου Εικόνα 3.16: Ευαισθησία συχνότητας στην τάση ελέγχου Ο προσεκτικός αναγνώστης θα έχει ήδη εντοπίσει τον σημαντικά μεγαλύτερο χρόνο κλειδώματος - περίπου 10us. Κάτι τέτοιο δεν αποτελεί έκπληξη, λόγω της σπουδαίας διαφοράς μεταξύ των συχνοτήτων αναφοράς και εξόδου, η οποία αγγίζει τις τέσσερις τάξεις μεγέθους. Όταν η συχνότητα εξόδου περί τα 100 GHz διαιρείται δια 4000 για να συγκριθεί με τη baseband συχνότητα αναφοράς, καταλαβαίνει κανείς ότι οι σχετικά μικρές διαφορές της τάξεως μερικών εκατοντάδων MHz θα δημιουργούν εξαιρετικά μικρές αποκλίσεις της τάξεως δεκάδων kHz. Άρα θα πρέπει να διεκπεραιωθούν αρκετά περισσότεροι κύκλοι ώστε να ρυθμιστεί η συχνότητα εξόδου στο τελικό σημείο των 100GHz. Τέλος, ο χρόνος προσομοίωσης είναι περίπου 6:45:00 για 13us ή 2:05:00 για το διάστημα αναφοράς των 4us. Όπως ήταν αναμενόμενο, σημαντικά μεγαλύτερος καθώς πρέπει να γίνουν δεκαπλάσιοι υπολογισμοί και μάλιστα για μεγαλύτερο χρόνο σταματήματος στα υποκυκλώματα που διαχειρίζονται τις εξαιρετικά υψηλές συχνότητες (VCO, Ndivider). 70 Κεφάλαιο 3ο Σημείωση: η Cadence® παρέχει μέσω του SpectreRF® τη δυνατότητα συντονισμού του VCO στην επιθυμητή συχνότητα. Επιλέγοντας το Oscillator Tuning mode, ο χρήστης μπορεί να καθορίσει τη συχνότητα λειτουργίας και ένα σύνολο μεταβλητών του σχεδίου (παράμετροι ή μεταβλητές) και το λογισμικό αναλαμβάνει τη βελτιστοποίηση της τοπολογίας για τη δεδομένη συχνότητα. Ωστόσο η δυνατότητα αυτή έγινε διαθέσιμη αφότου τα σχέδια για τους παραπάνω ταλαντωτές είχαν ολοκληρωθεί. 3.2 Διαιρέτης συχνότητας Έχοντας διαθέσιμα τα σήματα εξόδου εξαιρετικά υψηλών συχνοτήτων, επόμενο βήμα είναι η σύγκριση με το σήμα αναφοράς. Προφανώς, το σήμα πρέπει να οδηγηθεί στον ανιχνευτή διαφοράς φάσης κλείνοντας το βρόχο ανάδρασης και - κυρίως - να αναχθεί σε συχνότητα βασικής ζώνης. Στην πλέον απλουστευμένη του μορφή, ο διαιρέτης συχνότητας είναι μια αλυσίδα από DFF των οποίων η ανάστροφη έξοδος ανατροφοδοτεί τον ακροδέκτη D. Μια τέτοια τοπολογία μπορεί να διαιρεί τη συχνότητα με δυνάμεις του δύο, συνεπώς θα απαιτούνταν η συχνότητα εξόδου να είναι ίση με τη συχνότητα αναφοράς επί μια δύναμη του δύο. Πέραν αυτού του περιορισμού, μια στατική τοπολογία τέτοιου τύπου δεν επιτρέπει το σχεδιασμό ενός N-frequency synthesizer καθώς η συχνότητα διαιρείται με μία σταθερά. Σε αυτή την παράγραφο γίνεται η σχεδίαση του κυκλώματος Ndivider σε επίπεδο τρανζίστορ, το οποίο δέχεται έναν ακέραιο αριθμό - τη μόνη είσοδο του κυκλώματος - και διαιρεί την εξαιρετικά υψηλή συχνότητα εξόδου με αυτόν. Σαν πρώτη προσέγγιση, το μοντέλο συμπεριφοράς με wreal μετατρέπεται σε structural Verilog και με χρήση ενός εργαλείου Synthesis (RTL Compiler) εξάγεται το σχέδιο σε επίπεδο πυλών. Αν και το αποτέλεσμα μπορεί να χρησιμοποιηθεί απευθείας στο PLL, γίνονται κάποιες βελτιστοποιήσεις. Γενικότερα, η μετάφραση του κώδικα HDL σε σχηματικό είναι διαδικασία απαραίτητη στο digital flow, ενώ στο ΑΜS flow μπορεί να συμβάλλει σημαντικά με την απευθείας σχεδίαση αμιγώς ψηφιακών κυκλωμάτων. Παράλληλα, εισάγεται ένα τροποποιημένο flip-flop σαν prescaler για την αντιμετώπιση του περιορισμού που εισάγει η τεχνολογία, επιτρέποντας έγκυρο Sample and Hold σε συχνότητες μεγαλύτερες των 12GHz. Η συγγραφή κώδικα HDL μπορεί να γίνει: • • • σε επίπεδο συμπεριφοράς, που παρουσιάζει τη μεγαλύτερη αφαίρεση και περιέχει όλες τις διαθέσιμες δομές της Verilog/VHDL, σε επίπεδο πυλών, το οποίο χρησιμοποιούν τα εργαλεία υλοποίησης για μετατροπή του κώδικα σε layout και σε δομικό επίπεδο, που περιέχει μόνο δομές αποδεκτές από το εργαλείο Synthesis (synthesizable statements) και αποτελεί το συνδετικό κρίκο ανάμεσα στα άλλα δύο επίπεδα. Παρακάτω παρατίθεται η structural Verilog του μοντέλου του Ndivider. Σε σύγκριση με το μοντέλο συμπεριφοράς της ενότητας 2.4.6, παρατηρεί κανείς ότι οι διαφορές συγκεντρώνονται στην απαλοιφή χρονικών καθυστερήσεων, την αντικατάσταση πραγματικών αριθμών με δυαδική λογική (π.χ. έξοδος ίση με τροφοδοσία-1.2V αντικαθίσταται με φορτισμένο bit) και απομάκρυνση του initial block. Γενικά, το initial block μεταφράζεται στο Reset του κάθε ψηφιακού κυκλώματος, αφού είναι 71 Υλοποίηση σε Επίπεδο Transistor κοινός τόπος ότι τα ψηφιακά ASIC ξεκινούν τη λειτουργία τους με ένα μικρό διάστημα επανεκκίνησης. module Νdivider(output OUT, input IN, input PDWN, input wire [7:0] N ); integer sum; reg lowFreq; always@(posedge PDWN) begin lowFreq = 0; sum = 0; end always@(posedge IN) begin if(!PDWN) begin sum = sum+1; if(sum==(N*40)/2) begin lowFreq=~lowFreq; sum=0; end end end assign OUT = lowFreq ? 1'b1:1'b0; endmodule Το συγκεκριμένο module είναι synthesizable και εισάγεται στον RTL Compiler, μαζί με τις απαραίτητες βιβλιοθήκες που περιέχουν τους πίνακες αλήθειας, τους χρόνους απόκρισης και άλλες πληροφορίες για τα διαθέσιμα standard cells. Αυτό που επιστρέφεται είναι ένα netlist με το σχέδιο σε επίπεδο πυλών. Η Verilog περιέχει ενσωματωμένα θεμελιακά στοιχεία όπως πύλες, διακόπτες και στοιχεία καθυστέρησης, τα οποία αν και δε χρησιμοποιούνται στη σύνταξη κώδικα, μονοπωλούν το σχέδιο μετά το στάδιο του Synthesis. Τότε, τα στοιχεία αυτά χρησιμοποιούνται στην προσομοίωση καθώς και οι τυποποιημένες λοιπές πληροφορίες τους, όπως οι καθυστερήσεις διάδοσης (Standard Delay Format simulation, SDF). Στην πράξη, ο RTL Compiler μεταφράζει τις δομές HDL σε κυκλωματικές δομές, παρέχει δε τη δυνατότητα γραφικής αναπαράστασης του gate level netlist, το οποίο εμφανίζεται στην παρακάτω εικόνα. 72 Κεφάλαιο 3ο Εικόνα 3.17: Synthesis του RTL κώδικα 73 Υλοποίηση σε Επίπεδο Transistor Στο παραπάνω σχηματικό, η είσοδος [7:0] Ν εμφανίζεται στο κάτω αριστερά μέρος, όπου κατάλληλες δομές ελέγχου εξακριβώνουν ποιοι από τους αγωγούς του bus είναι ενεργοί, ώστε στη συνέχεια η συχνότητα να διαιρεθεί αναλόγως. Στο πάνω αριστερά μέρος βρίσκονται τα σήματα εισόδου και επανεκκίνησης. Το μειονέκτημα της αυτοματοποίησης του σχεδίου εντοπίζεται στο ότι η καταμέτρηση των παλμών γίνεται παράλληλα για όλους τους πιθανούς συνδυασμούς ενεργών αγωγών N[i], κάτι που μπορεί να διορθωθεί με συγκεκριμένες τροποποιήσεις. Ως έχει, το σχηματικό αυτό πραγματοποιεί την καταμέτρηση για κάθε είσοδο Ν και η έξοδος αλλάζει κατάσταση όταν ανιχνευθούν N*40 παλμοί. Μεταθέτοντας τον έλεγχο ώστε να διενεργείται παράλληλα με την καταμέτρηση, μπορούμε να εξοικονομήσουμε σημαντικό αριθμό συσκευών. Το τελικό transistor-level σχέδιο εμφανίζεται στην εικόνα που ακολουθεί. Εικόνα 3.18: Κύκλωμα του Νdivider Το βελτιωμένο αυτό σχέδιο διαφέρει καθώς ο έλεγχος για το αν ο N[i] αγωγός είναι ενεργός εκτελείται αφού έχουν καταμετρηθεί 2𝛮𝛮[𝑖𝑖] − 1 παλμοί, δεδομένου ότι οι αγωγοί μικρότερης βαρύτητας (less significant bits) είναι ενεργοί. Πιο συγκεκριμένα, η είσοδος του διαιρέτη συχνότητας οδηγείται σταδιακά σε DFF με βραχυκυκλωμένους ακροδέκτες Q- και D που πραγματοποιούν διαίρεση δια δύο. Εάν ο αντίστοιχος αγωγός N[i] είναι ενεργός, ο πολυπλέκτης μηδενίζει το flipflop μόλις προσπελασθούν όλα τα bits από μία φορά, ώστε η καταμέτρηση να διεκπεραιωθεί ξανά. Η διαδικασία αυτή επαναλαμβάνεται στα υποκυκλώματα που διακρίνονται συνδεδεμένα σε αλυσίδα, η δομή των οποίων η παρακάτω. 74 Κεφάλαιο 3ο Εικόνα 3.19: Δομικό στοιχείο της αλυσίδας διαίρεσης Είναι αναμενόμενο λοιπόν ότι κάποιες διαιρέσεις συχνότητας θα λάβουν χώρα ανεξάρτητα με την είσοδο του υποκυκλώματος, μιας και απαιτείται τουλάχιστον ένας κύκλος για τον έλεγχο κάθε αγωγού N[i]. Συγκεκριμένα, ο Ndivider διαιρεί πάντα τη συχνότητα δια δέκα και έπειτα ανάλογα με την είσοδο του κυκλώματος. Επίσης, είναι 8-bit Ν-Divider, συνεπώς μπορεί να διαιρέσει τη συχνότητα μέχρι και 255+10=265 φορές. Φυσικά, αυτό δεν είναι αρκετό αφού χρειάζεται μεγαλύτερη ικανότητα διαίρεσης (π.χ. 10GHz/25MHz = 400). Για το λόγο αυτό, αλλά και για να σταθεροποιηθεί το duty cycle στην έξοδο του Ndivider, εισάγεται ένας απλός διαιρέτης συχνότητας δια δύο. Η μεγάλη συχνότητα εξόδου, ωστόσο, παραμένει εμπόδιο για την ορθή λειτουργία των ψηφιακών κυκλωμάτων. Όπως προαναφέρθηκε, η τεχνολογία μήκους καναλιού 45nm αρχίζει να "χάνει" παλμούς από τα 12GHz και άνω. Το κύκλωμά μας δύναται να κλειδώνει στα 16GHz, ενώ ακόμα και για 10GHz εμφανίζονται αρκετά υψηλότερες συχνότητες κατά την προσπάθεια του συστήματος να έρθει σε ισορροπία. Για την επίλυση του συγκεκριμένου προβλήματος χρησιμοποιήθηκε ένα τροποποιημένο flipflop σε συνδεσμολογία μονοφασικού ρολογιού(True Single-Phase Clock , TSPC)[21]. 75 Υλοποίηση σε Επίπεδο Transistor Εικόνα 3.20: Κύκλωμα Prescaler Το πλεονέκτημα της διάταξης είναι ότι εξαλείφει οποιοδήποτε παρασιτικό σήμα λόγω του διαμοιρασμού του φορτίου που λαμβάνει χώρα εσωτερικά στο κύκλωμα. Συνεπώς ο χρόνος που απαιτείται ώστε να αλλάξει η κατάσταση του τρανζίστορ (ανοικτόςκλειστός διακόπτης) μειώνεται αρκετά. Σε αντίθεση με τα διάφορα δυναμικά D-flipflops που έχουν προταθεί, η τοπολογία TSPC χρησιμοποιεί μόνο δύο ακροδέκτες και για αυτό είναι εξειδικευμένη για υψηλής ταχύτητας διαιρέτες συχνότητας. Έτσι η κλίση που παρουσιάζει το ρολόι (skew) δεν αποτελεί πρόβλημα για το flipflop και μόνο οι καθυστέρηση μετάδοσης μπορεί να επηρεάσει τις επιδόσεις. Επίσης, είναι προφανές ότι για λιγότερους ακροδέκτες απαιτούνται λιγότερες ενεργές συσκευές. Μετά τις μικρορυθμίσεις που έγιναν, η εν λόγω διάταξη λειτουργεί αποδοτικά σε και μπορεί να ανιχνεύσει μέχρι και συχνότητες περί τα 15GHz. 76 Κεφάλαιο 3ο Εικόνα 3.21: Επαλήθευση στα πλαίσια του συστήματος Συνολικά λοιπόν έχουμε ένα διαιρέτη συχνότητας δια N ο οποίος μπορεί να διαιρεί το σήμα εξόδου από 10 έως 265 φορές, ένα διαιρέτη δια δύο στην έξοδο και έναν prescaler δια δύο στην είσοδο του Ndivider. Αυτό μεταφράζεται σε μία ικανότητα διαίρεσης από 40 έως 1060 και το υποκύκλωμα δοκιμάστηκε σε όλη αυτή τη μπάντα σημάτων ελέγχου. Για παράδειγμα, στο PLL των 10GHz θα πρέπει να δοθεί είσοδος Ν = (10G/25M)/4 - 10 =90. 3.2.1 Προδιαιρέτης συχνότητας 100GHz Το κύκλωμα του prescaler που εισάγεται παραπάνω αποτελεί βελτιστοποίηση ενός flipflop με ανάδραση, το οποίο υπάγεται στους ίδιους τεχνολογικούς περιορισμούς με το καθιερωμένο D-flipflop. Αυτοί συγκεντρώνονται στο γεγονός ότι τα NMOS και PMOS απαιτούν έναν ελάχιστο χρόνο μετάβασης μεταξύ της περιοχής αποκοπής και κόρου. Όπως αναφέρθηκε και στην παράγραφο 2.4.2, για το D-flipflop με το συγκεκριμένο PDK, αυτός ο χρόνος είναι περίπου 20ps. Είναι λοιπόν φύσει αδύνατο να διαιρεθούν συχνότητες πάνω από 20GHz, εάν μόνο για το "άνοιγμα" και "κλείσιμο" των συσκευών απαιτούνται έως και 50ps. Απάντηση σε αυτό το πρόβλημα αποτελεί η χρήση τοπολογιών που εκμεταλλεύονται τη συνεχή ροή του ρεύματος (Current Mode Logic, CML). Η βασική ιδέα για την υλοποίηση ενός latch και κατ' επέκταση ενός διαιρέτη συχνότητας με τη μεθοδολογία CML είναι η κατεύθυνση του ρεύματος στο κάθε μέρος του ζεύγους ενός διαφορικού ενισχυτή, ανάλογα με την τάση στις πύλες των τρανζίστορ. Έτσι καμία ενεργή συσκευή δεν αλλάζει κατάσταση με βάση τη γνωστή ψηφιακή λογική, αλλά το ρεύμα είναι αυτό που καθορίζει τη λειτουργία και εν τέλει επιβάλλει την τάση εξόδου. Στη μεθοδολογία CML χρησιμοποιείται αποκλειστικά διαφορική λογική, συνεπώς πρώτη ενέργεια είναι να μετατραπεί το σήμα EHF σε διαφορικό. Αυτό υλοποιείται μέσω ενός μετατροπέα balun (Balanced-Unbalanced), που αποτελείται από καταλλήλως συζευγμένα ιδανικά πηνία, τα οποία επιδεικνύουν ίδια συμπεριφορά σε όλες τις συχνότητες. Έπειτα, με έναν αντιστροφέα το αρχικό σήμα διαχωρίζεται σε δύο πανομοιότυπα, τα οποία έχουν διαφορά φάσης 180 μοίρες. 77 Υλοποίηση σε Επίπεδο Transistor Εικόνα 3.22: Balun και οι σχετικές κυματομορφές Η λειτουργία του latch βασίζεται σε αυτή ακριβώς τη διαφορά φάσης. Το διαφορικό αυτό σήμα τροφοδοτεί δύο όμοιους διαφορικούς ενισχυτές που λειτουργούν αντιστρόφως, δηλαδή όταν ο ένας δίνει θετική έξοδο στον πρώτο κλάδο, ο έτερος δίνει θετική έξοδο στο δεύτερο κλάδο. Κάθε τρανζίστορ από τα δύο αυτά διαφορικά ζεύγη τροφοδοτεί έναν όμοιο διαφορικό ενισχυτή, αυξάνοντας το συνολικό αριθμό των ζευγών στα έξι. Ο διαιρέτης συχνότητας στην ουσία αποτελεί ένα latch με ανατροφοδότηση. Για να γίνει κατανοητή η λειτουργία του, παρουσιάζεται σε συνδεσμολογία ανοικτού βρόχου, ο οποίος κλείνει με την ανάδραση της εξόδου στη βαθμίδα εισόδου των "δεδομενων", ή καλύτερα της κατάστασης στην οποία βρίσκεται κάθε στιγμή. Εικόνα 3.23: CML divider ανοικτού βρόχου Η λογική CML βασίζεται στη σταδιακή κατεύθυνση του ρεύματος (current steering) στα διάφορα διαφορικά ζεύγη, τα οποία χωρίζονται στα δύο κατευθυντικά (δεύτερη σειρά) και τους τέσσερις μανδαλωτές (πρώτη σειρά). Σε πρώτη φάση, το ρεύμα του πρώτου διαφορικού ζεύγους διοχετεύεται στον πρώτο μανδαλωτή, αφού η είσοδος σε φάση φέρνει το αντίστοιχο τρανζίστορ στην περιοχή κόρου. Συνεπώς ο πρώτος μανδαλωτής μπορεί να λειτουργήσει, προωθώντας τις τιμές από την είσοδο του διαφορικού ενισχυτή στην έξοδο του και άρα τον επόμενο μανδαλωτή. Σε 78 Κεφάλαιο 3ο δεύτερη φάση, όταν η είσοδος σε φάση αλλάξει πρόσημο και το δεύτερο τρανζίστορ πλέον άγει, η έξοδος του κατευθυντικού διαφορικού ζεύγους μεταβάλλεται και πλέον τροφοδοτείται ο δεύτερος μανδαλωτής. Όπως φαίνεται στην παραπάνω συνδεσμολογία, η είσοδος του δεύτερου ζεύγους αποτελείται από την ανάστροφη έξοδο του πρώτου μανδαλωτή, συνεπώς τα δεδομένα στην είσοδο του latch προωθούνται στο δεύτερο ζεύγος με την ίδια σειρά, όταν όμως το ρολόι σε φάση 180 μοιρών είναι ενεργό ή, με άλλα λόγια, όταν ο παλμός του EHF σήματος είναι στο μηδέν. Η ίδια ακριβώς διαδικασία συμβαίνει και στα επόμενα δύο ζεύγη μανδαλωτών και το αντίστοιχο κατευθυντικό ζεύγος. Ως αποτέλεσμα, το σήμα στην είσοδο του latch προωθείται στην έξοδο μετά από τέσσερις εναλλαγές του σήματος εισόδου, δηλαδή μετά από δύο κύκλους του EHF σήματος. Συμπερασματικά, η συχνότητα του σήματος που διαρρέει τις εκροές των ζευγών μανδαλωτών είναι η [22][23][24] . Τέλος, με την ανατροφοδότηση της εξόδου στην είσοδο των μισή αυτής του ρολογιού δεδομένων, επιτυγχάνεται η διαίρεση της συχνότητας δια δύο. Αξιοποιώντας την συνεχή ροή του ρεύματος, ο CML διαιρέτης μπορεί να αντιληφθεί και να διαιρέσει πολύ μεγαλύτερες συχνότητες συγκριτικά με το D-flipflop της προηγούμενης παραγράφου. Ωστόσο, έχει φυσικά ένα όριο στη συχνότητα που μπορεί να δεχθεί, το οποίο καθορίζεται από τη σταθερά χρόνου τ=RC, η οποία με τη σειρά της ορίζει τη συχνότητα αποκοπής fc=1/2π*τ . Όμως οι καθυστερήσεις διάδοσης του σήματος μεταξύ των κόμβων πρέπει να είναι αρκετά μικρότερες από 1/2*fEHF. Η εν λόγω σταθερά χρόνου σχηματίζεται από την αντίσταση στην εκροή σε συνδυασμό με τις χωρητικότητες που "βλέπει" ο κόμβος κάθε εκροής, δηλαδή την Cgd, Cds και κυρίως την Cgs. Ορίζεται λοιπόν ένα παρασιτικό χαμηλοπερατό φίλτρο ή, με άλλα λόγια, οι παρασιτικές χωρητικότητες περιορίζουν την επίδοση του CML latch θέτοντας ένα άνω φράγμα στη συχνότητα. Ακόμα λοιπόν και με αυτή τη σχεδίαση, η τεχνολογία που χρησιμοποιείται επιβάλει περιορισμούς. Είναι προφανώς επιθυμητό να μετατοπιστεί ο πόλος όσο πιο αριστερά γίνεται, δηλαδή η χρονική σταθερά τ=RC να ελαχιστοποιηθεί. Από την άλλη μεριά, η αντίσταση R λαμβάνει την ελάχιστη τιμή της από την ικανότητα των διαφορικών ζευγών να παράγουν επαρκή μεταβολή τάσης στην εκροή (output swing). Συνεπώς, η ικανότητα του διαιρέτη καθορίζεται τελικά από τα μοντέλα των συσκευών της τεχνολογίας που χρησιμοποιείται και τις παρασιτικές χωρητικότητες που αυτά εμφανίζουν. Το output swing είναι ανάλογο του ρεύματος που διαρρέει το τρανζίστορ, αφού V=I*R. Για να μετατοπιστεί ο πόλος προς τα αριστερά, πρέπει να μειωθεί η αντίσταση κρατώντας τη μεταβολή της τάσης σταθερή. Έτσι δίνεται μεγαλύτερο περιθώριο στη συχνότητα εάν μειωθεί η αντίσταση και αυξηθεί το ρεύμα. Εμφανίζεται λοιπόν ένας επιπλέον συμβιβασμός, μεταξύ ταχύτητας και κατανάλωσης. Για διατήρηση του ίδιου swing και αύξηση της ταχύτητας, απαιτείται περισσότερη ισχύς. Όμως και αυτό το trade-off έχει όρια στα οποία μπορεί να εφαρμοστεί, καθώς οι συσκευές δεν μπορούν να οδηγηθούν από μεγάλες ποσότητες ρεύματος. Πιο συγκεκριμένα, η τάση στην πύλη των NMOS είναι καθορισμένη, άρα από το μοντέλο πρώτης τάξης ID = 𝜇𝜇 𝑛𝑛 𝐶𝐶𝑜𝑜𝑜𝑜 2 ∗ W L ∗ (VGS − Vth )2 (1 + 𝜆𝜆(VDS − VDSsat )) (3.4) προκύπτει ότι αύξηση του ρεύματος συνεπάγεται μείωση της τάσεως πηγής Vs, η οποία είναι η τάση εκροής στο διαφορικό ζεύγος που κατευθύνει το ρεύμα. Για μεγάλη αύξηση ρεύματος, αυτό καταλήγει να μετατοπίζει τη συσκευή στην ωμική περιοχή και τελικά στην αποκοπή, αφού VDS<VGS-Vth. Συγκεκριμένα, η ελάχιστη τάση VDS μετρήθηκε στα VDSsat = 123.34mV. Περαιτέρω εξάντληση των δυνατοτήτων που παρέχει η CML μεθοδολογία είναι η αύξηση του μεγέθους των συσκευών, ούτως ώστε να μπορούν να οδηγήσουν μεγαλύτερο ρεύμα δίχως να μειώνεται η τάση πηγής. Έτσι όμως αυξάνονται και τα μεγέθη Cgd, Cds και Cgs, διότι ως πυκνωτές εξαρτώνται άμεσα από το μήκος πλάτος των συσκευών. Επομένως, η αύξηση του μεγέθους των συσκευών ώστε να μπορούν να οδηγηθούν από μεγαλύτερο ρεύμα αποτελεί λύση η οποία δεν αυξάνει ανάλογα το περιθώριο συχνότητας λειτουργίας του CML latch. Στην πρώτη σχεδιαστική προσέγγιση δεν συμπεριλήφθηκε κάποια πηγή ρεύματος. Ωστόσο αυτό είναι απαραίτητο, όχι μόνο για την εξάντληση των δυνατοτήτων της τεχνολογίας και το σαφή ορισμό έστω μιας από τις παραμέτρους του προβλήματος, αλλά και για να καταστεί εφικτή η 79 Υλοποίηση σε Επίπεδο Transistor δημιουργία διαιρέτη συχνότητας διά του 2, 4, 8, κλπ. με τη σύνδεση CML latches σε σειρά. Δίχως ένα καθρέπτη ρεύματος όπως αυτός στο κάτω μέρος της εικόνας 3.23, το ρεύμα που διαρρέει τα ζεύγη καθορίζεται αποκλειστικά από την πόλωση του τρανζίστορ εισόδου του ρολογιού. Συνεπώς, η τάση θα πρέπει να μεταβάλλεται rail-to-rail, ή τουλάχιστον κατά πολύ πάνω από το όριο Vth. Σε αυτό ακριβώς το γνώρισμα έγκειται το πλεονέκτημα της τεχνολογίας SOI (Silicon on Insulator), η οποία επιτρέπει χρήση μικρότερου swing και άρα μεγαλύτερη ταχύτητα. Οι συσκευές στη συγκεκριμένη τεχνολογία βασίζονται σε ένα υπόστρωμα πυριτίου-μονωτή-πυριτίου, περιορίζοντας σημαντικά τις παρασιτικές χωρητικότητες και μειώνοντας την κατανάλωση εξαιτίας της απομόνωσης από το αχανές συμβατικό υπόστρωμα[25]. Η χαμηλότερη τάση κατωφλίου στην τεχνολογία SOI θα επέτρεπε στο κύκλωμα του CML διαιρέτη να επεξεργαστεί υψηλότερες συχνότητες, αφού θα απαιτείτο μικρότερο swing στην τάση και συνεπώς μείωση της αντίστασης στην εκροή. Συγκεκριμένα, τεχνολογίες SOI μπορούν να είναι μέχρι και δύο γενιές γρηγορότερες συγκριτικά με συμβατικά CMOS PDKs, ωστόσο το κόστος κατασκευής των ολοκληρωμένων είναι αρκετά αυξημένο καθώς ο μονωτής είναι συνήθως διοξείδιο του πυριτίου ή ζαφείρι. Ακόμα και με αυτή την τεχνολογία, ο πόλος παραμένει το μεγαλύτερο ζήτημα, καθώς το κέρδος του κάθε τρανζίστορ πρέπει να είναι μεγαλύτερο της μονάδας, λόγω της ανατροφοδότησης. Το οποίο μεταφράζεται σε κάποιο ελάχιστο όριο για την αντίσταση στην εκροή. Διαφορετικά, ο prescaler δύναται να αυτο-ταλαντωθεί. Αλλά με τον καθρέπτη ρεύματος που εισάγεται, η μεταβολή της τάσης στην είσοδο του latch μπορεί να είναι ελάχιστη, αρκεί και τα δύο μέρη του κατευθυντικού ζεύγους να έχουν VGS>Vth. Συνεπώς, η απόπειρα σειριακής σύνδεσης CML latch είναι επιτυχής, μιας και το output swing στην έξοδο είναι μικρό για να προσεγγισθούν οι υψηλές ταχύτητες που απαιτεί το PLL στα 100GHz. Εικόνα 3.24: Divide-by-2 και Divide-by-4 συνδεσμολογίες 80 Κεφάλαιο 3ο Εικόνα 3.25: Κυματομορφές CML divider Όπως φαίνεται και στα παραπάνω διαγράμματα, στη συγκεκριμένη CMOS τεχνολογία 45nm μπορεί να επιτευχθεί επιτυχής διαίρεση συχνότητας μέχρι και στα 60GHz. Ακόμα πιο υψηλή ταχύτητα μπορεί να επιτευχθεί με τη χρήση επαγωγών σε σειρά με τις αντιστάσεις. Τότε, ο πόλος του παρασιτικού χαμηλοπερατού φίλτρου καθορίζεται από το συντελεστή ποιότητας. Τα πηνία "βλέπουν" τις παρασιτικές χωρητικότητες παράλληλα, συνεπώς για κατάλληλη τιμή των επαγωγών προκαλείται συντονισμός του κυκλώματος στη συχνότητα λειτουργίας και έτσι τα παθητικά στοιχεία αλληλοεξουδετερώνονται, εκτοξεύοντας την ισοδύναμη αντίδραση στο άπειρο και αφήνοντας θεωρητικά - τον καθορισμό του πόλου στην αντίσταση R. Καθώς η συχνότητα που εμφανίζεται στις εκροές των μανδαλωτών είναι 100GHz/2, η απαιτούμενη τιμή για τις επαγωγές προσεγγίζεται από f = 1/2π riza(LC) => 100G/2 =... => L= f= 1 2𝜋𝜋√𝐿𝐿∗𝐶𝐶 => 100G/2 = 1 2𝜋𝜋√𝐿𝐿∗𝐶𝐶 => L = 10 −23 𝐶𝐶 Στην πράξη, ακόμα και με την εισαγωγή πηνίων, η συχνότητα δεν αυξήθηκε αρκετά ώστε να ξεπερνά τα 100GHz. Δυστυχώς λοιπόν το συγκεκριμένο κύκλωμα δεν μπόρεσε να χρησιμοποιηθεί στο EHF PLL, λόγω των προαναφερθέντων τεχνολογικών περιορισμών. Αντ΄ αυτού, αναπτύχθηκε το ακόλουθο μοντέλο συμπεριφοράς σε γλώσσα Verilog-A, η οποία προσομοιώνεται στον αναλογικό επιλυτή. module CMLlatch(in, out); input in; electrical in; output out; electrical out; parameter vth=0.6; parameter del=1p; parameter ttol=1p; real state; 81 Υλοποίηση σε Επίπεδο Transistor analog initial begin state=0; end analog begin @(cross(V(in)-vth, 1)) begin if(state) state=0; else state=2*vth; end V(out) <+ transition(state, del, ttol); end endmodule 3.3 Ανιχνευτής διαφοράς φάσης Πιθανώς το συγκεκριμένο υποκύκλωμα να αποτελεί το σημαντικότερο στοιχείο του PLL. Αυτό διότι τυχόν ατέλειες στη σχεδίαση ή την κατασκευή των λοιπών υποσυστημάτων μπορούν να μην αποβούν μοιραίες για τη λειτουργία του, όμως ο Phase-Frequency Detector οφείλει να εξετάζει αποτελεσματικά τα δύο σήματα στην είσοδό του διαφορετικά η τάση ελέγχου δε διορθώνει τη συχνότητα και το PLL δεν κλειδώνει. Αν και ο PFD είναι συχνά ένα ψηφιακό κύκλωμα με τη μορφή μιας πύλης XOR ή με μεγαλύτερη πολυπλοκότητα, επιλέχθηκε να σχεδιαστεί ένας semi-custom ανιχνευτής διαφοράς φάσης που αποτυπώνει την επιθυμητή συμπεριφορά του μοντέλου της ενότητας 2.4.2. Η βασική ιδέα συγκεντρώνεται σε δύο DFF με Reset, τα οποία έχουν τον ακροδέκτη δεδομένων συνδεδεμένο με την παροχή VDD ώστε να δίνουν έξοδο Q=1 μόλις έρθει μια θετική ακμή του παλμού εισόδου. Στη γενική περίπτωση, οι παλμοί από το σήμα ανάδρασης και το σήμα αναφοράς δεν καταφθάνουν ταυτόχρονα. Η λειτουργία του PD στηρίζεται στο ότι ο παλμός που εμφανίζεται δεύτερος προκαλεί μέσω της πύλης AND το Reset των DFF και έτσι η έξοδος επιστρέφει στο Q=0. Έχοντας υπόψη ότι ο στόχος είναι η ρύθμιση της τάσης ελέγχου, είναι επιθυμητό να γίνονται εμφανείς οι διαφορές φάσεως. Για το λόγο αυτό εισάγονται καθυστερήσεις (delay cells), ώστε να καθυστερεί ο μηδενισμός των flipflops και άρα και των εξόδων INC, DEC. 82 Κεφάλαιο 3ο Εικόνα 3.26: Κύκλωμα του ανιχνευτή φάσης Από την άλλη, όταν το PLL παράγει την απαιτούμενη συχνότητα, δηλαδή οι φάσεις των παλμών ανάδρασης και αναφοράς είναι αρκετά κοντά, είναι καλό να μη παράγεται έξοδος ώστε να περιορίζεται το jitter του συστήματος. Στο μοντέλο συμπεριφοράς εισήχθη ένας ιδιαίτερος μηχανισμός, όπου γίνεται σύγκριση της καθυστερημένης τιμής μιας εισόδου με την παρούσα τιμή της εταίρας εισόδου και έτσι το DFF ενεργοποιείται μόνο αν υπάρχει σχετικά μεγάλη διαφορά φάσης. Συγκεκριμένα, η τιμή της αντίστοιχης μεταβλητής lockFreq τέθηκε στα 450ns. Στο σχηματικό, ο παραπάνω μηχανισμός μεταφράζεται στο στάδιο εισόδου, όπου εισάγονται delay cells για την καθυστέρηση του σήματος και μία πύλη ΝΑΝD η οποία αποτρέπει την ενεργοποίηση των DFF εάν και τα δύο σήματα φθάσουν μέχρι να διαδοθεί η θετική ακμή στο clock του flipflop. Κατά τη διάρκεια των δοκιμών, εντοπίστηκε ένα επιπλέον πρόβλημα. Στην αρχή της λειτουργίας, ο VCO παράγει έξοδο χαμηλής συχνότητας και ο Ndivider αργεί σημαντικά να καταμετρήσει Ν παλμούς. Οι έξοδοι του PD έμεναν στην τιμή μηδέν επειδή το σήμα ανατροφοδότησης έκανε latch στην τιμή ένα. Έτσι κάθε θετικός παλμός του σήματος αναφοράς παρέλειπε να ενεργοποιήσει το σήμα INC. Για το λόγο αυτό εισάγεται η συνδεσμολογία των δύο DFF στο πάνω αριστερά κομμάτι του σχεδίου και ενισχύει το υποκύκλωμα με τον εξής τρόπο: όταν καταμετρηθούν δύο παλμοί του σήματος αναφοράς δίχως να έχει εμφανιστεί παλμός από το σήμα ανάδρασης, ο PD αντιλαμβάνεται πώς το σύστημα έχει "κολλήσει" και εκπέμπει σήμα που ακυρώνει το μηχανισμό lockFreq. Η συγκεκριμένη τοπολογία αντιστοιχεί ακριβώς στην υλοποίηση της μεταβλητής stuck που χρησιμοποιείται στο μοντέλο συμπεριφοράς. Πλέον ο επόμενος θετικός παλμός του σήματος αναφοράς ενεργοποιεί το σήμα INC και η συχνότητα εξόδου αυξάνει αρκετά ώστε το σύστημα να οδηγηθεί γρηγορότερα στην κατάσταση ηρεμίας. 83 Υλοποίηση σε Επίπεδο Transistor Εικόνα 3.27: Κυματομορφές εισόδου-εξόδου στον ανιχνευτή φάσης Στην εικόνα που προηγείται επαληθεύεται η ορθή λειτουργία του PD αφού οι κυματομορφές καλύπτουν τις προαναφερθείσες περιπτώσεις. Στην πρώτη ακμή το σήμα αναφοράς καταφθάνει νωρίτερα με χρονική διαφορά μεγαλύτερη από 450ps (lockFreq), στη δεύτερη το σήμα ανάδρασης είναι ταχύτερο με χρονική διαφορά μικρότερη των 450ps, στην τρίτη και πέμπτη έχει γίνει latch στο σήμα ανάδρασης ενώ στην τέταρτη η φάση του σήματος αναφοράς υπολείπεται του σήματος ανάδρασης για χρόνο μεγαλύτερο του lockFreq. Στο σημείο αυτό και προτού προχωρήσουμε στην υλοποίηση του φίλτρου και της αντλίας φορτίου κρίθηκε σκόπιμη η προσομοίωση του κυκλώματος για μεγάλο εύρος τιμών των παραμέτρων, ώστε να επιβεβαιωθεί η μέχρι τώρα σχεδίαση. Η διαδικασία αυτή επαναλήφθηκε για κάθε νέο κύκλωμα που εισήχθη, όπως προστάζει η μεθοδολογία του analog verification. Με εξαίρεση λοιπόν τα δύο αυτά υποκυκλώματα, τα υπόλοιπα μέρη (PD, VCO, Ndivider) προσομοιώνονται σε επίπεδο τρανζίστορ. Παρακάτω φαίνονται οι αποκρίσεις μερικών από τους πλέον ενδιαφέροντες συνδυασμούς τιμών των παραμέτρων. Επιβεβαιώνεται με αυτό τον τρόπο ότι η βέλτιστη απόκριση του συστήματος εξακολουθεί να εντοπίζεται για τις υπολογισμένες τιμές των παραμέτρων (Rz=3kΩ, Re=6MΩ, C1=45pF, C2=1.5pF) 84 Κεφάλαιο 3ο Εικόνα 3.28: Προσομοίωση συστήματος για διάφορα σετ παραμέτρων 85 Υλοποίηση σε Επίπεδο Transistor 3.4 Φίλτρο διέλευσης χαμηλών συχνοτήτων Η δομή του φίλτρου επιλέχθηκε ήδη από την ενότητα 2.4.4 καθώς ήταν απαραίτητη ώστε να δημιουργηθεί το αντίστοιχο μοντέλο. Μιας και το PLL λειτουργεί επιθυμητά μέχρι αυτό το σημείο, σε αυτή την ενότητα επιχειρείται η άμεση αντικατάστασή του μοντέλου συμπεριφοράς με το αντίστοιχο σχηματικό, το οποίο εμφανίζεται στην παρακάτω εικόνα. Εν προκειμένω, οι ακροδέκτες VDD και VSS που χρησιμοποιούνται στο ψηφιακό φίλτρο δε συμπεριλήφθηκαν στο σχηματικό, καθώς και ο ακροδέκτης PDWN, αφού πρόκειται για ένα κύκλωμα με αμιγώς παθητικά στοιχεία. Η τροφοδοσία και ο έλεγχος λειτουργίας θα εισάγεται στην αντλία φορτίου, η οποία λειτουργεί σε μεγάλη εγγύτητα με το φίλτρο. Εξάλλου, θα ήταν υπερβολή η προσθήκη διακοπτών σε μία τέτοια διάταξη. Είναι προφανές ότι καθώς αυξάνει η τιμή των χωρητικοτήτων, ο χρόνος αποκατάστασης του PLL θα μεγαλώνει και θα μειώνεται η πιθανότητα "ξεκλειδώματος" του βρόχου. Στην πράξη, μόνο ο πυκνωτής C1 δρα ρυθμιστικά και κρατά σταθερή τάση, καθώς η μικρότερη χωρητικότητα C2 χρησιμοποιείται για εισαγωγή του δεύτερου, πιο μακρινού πόλου και άμεση γείωση των υψηλών συχνοτήτων. Ωστόσο σε αυτό το σημείο, η αντλία φορτίου δεν αντικαθιστάται από κάποιο πραγματικό κύκλωμα επιπέδου τρανζίστορ και η Εικόνα 3.29: Κύκλωμα χαμηλοπερατού λειτουργία της περιγράφεται από το μοντέλο φίλτρου συμπεριφοράς της ενότητας 2.4.3. Εκεί, σαν έξοδος χρησιμοποιήθηκε το ρεύμα που είτε αντλείται από το χαμηλοπερατό φίλτρο ώστε να μειωθεί η τάση ελέγχου, είτε παρέχεται για αύξηση της, αντίστοιχα. Τίθεται λοιπόν το εξής ερώτημα: πώς ένας πραγματικός αριθμός ο οποίος δεν έχει κάποια συγκεκριμένη φύση (nature) και αντιπροσωπεύει μία στιγμιαία ποσότητα ρεύματος μεταφράζεται σε κάτι διαχειρίσιμο από τον αναλογικό επιλυτή? Το γεγονός ότι οι πραγματικοί αριθμοί που εμφανίζονται στην έξοδο της αντλίας φορτίου είναι ποσότητες ρεύματος δεν είναι αντιληπτό από το εργαλείο προσομοίωσης και μόνο ο σχεδιαστής του συστήματος μπορεί να γνωρίζει τη φύση των ποσοτήτων αυτών. Είναι λοιπόν προφανές ότι αυτό μπορεί να επιφέρει σύγχυση σε συστήματα όπου ο σχεδιασμός των επιμέρους κυκλωμάτων διαμοιράζεται σε υποομάδες μηχανικών. Κατά τη σύνταξη του VerilogAMS κώδικα για το χαμηλοπερατό φίλτρο στην ενότητα 2.4.4, η είσοδος του φίλτρου αντιμετωπίσθηκε ως ρεύμα και ως έξοδος ορίστηκε η τάση στα άκρα του φίλτρου. Επρόκειτο λοιπόν για ένα χαμηλοπερατό φίλτρο διαντίστασης [ Z(s) = Vout(s) / Iin(s) ], με άλλα λόγια η τάση εξόδου ρυθμίζεται κατάλληλα βάσει του ρεύματος 86 Κεφάλαιο 3ο στους ακροδέκτες εισόδου. Σε αυτό το σημείο θα γίνει αντικατάσταση του μοντέλου του φίλτρου από το πραγματικό κύκλωμα, όπου τα θεμελιακά στοιχεία αντιμετωπίζουν το αδιάστατο μέγεθος που βλέπουν ως έξοδο του ψηφιακού επιλυτή στον κόμβο σαν τάση. Έτσι, δε δίνεται πλέον στον προγραμματιστή η ευχέρεια μεταχείρισης της αδιάστατης εισόδου, η οποία εκλαμβάνεται ως τάση από τη βαθμίδα του φίλτρου εάν τα συμβατικά στοιχεία διασύνδεσης χρησιμοποιηθούν. Υπενθυμίζεται ότι τα ενσωματωμένα connect modules μετατρέπουν τάση σε πραγματικό αριθμό ή δυαδική λογική και αντιστρόφως. Ως τώρα δεν έχει αναπτυχθεί αντίστοιχη υποδομή για μετατροπή ρευμάτων. Όπως προαναφέρθηκε στο πρώτο κεφάλαιο, δίνεται η δυνατότητα ανάπτυξης στοιχείων διασύνδεσης (custom CMs) πέρα από αυτά που παρέχονται με την εγκατάσταση του λογισμικού. Αφήνονται περιθώρια λοιπόν στους χρήστες να δημιουργήσουν φυσικές ποσότητες (natures) και αρχές (disciplines), αντίστοιχες της τάσης και του ρεύματος. Οι ποσότητες αυτές διαχωρίζονται σε δυο μεγάλες κατηγορίες, τις συνεχείς και τις διακριτές, οι οποίες μεταχειρίζονται από τον αναλογικό και τον ψηφιακό επιλυτή αντιστοίχως. Οι δε συνεχείς ποσότητες μπορούν να δηλώσουν δυναμικό ή ροή, καλύπτοντας το σύνολο των ηλεκτρομαγνητικών ποσοτήτων και αφήνοντας περιθώριο για περιγραφή μεγάλου πλήθους φυσικών φαινομένων. Εν προκειμένω όμως χρειάζεται μεταχείριση η έξοδος ενός ψηφιακού μπλοκ, η οποία προφανώς είναι διακριτή ποσότητα. Καθώς το λογισμικό παρέχει στοιχεία μετατροπής μονάχα από και προς τάση, κρίνεται αναγκαία η ανάπτυξη μιας υποδομής ώστε να επιτρέπεται η διαχείριση του διακριτού ρεύματος εξόδου της αντλίας από τον αναλογικό επιλυτή, ο οποίος είναι υπεύθυνος για το κύκλωμα του χαμηλοπερατού φίλτρου, εφόσον αυτό αντικαθίσταται με το αντίστοιχο transistor level design. Τρία στοιχεία είναι απαραίτητα: 1. Η θέσπιση μιας νέας φυσικής ποσότητας (Discipline) που θα περιγράφει το ψηφιακό ρεύμα, την οποία θα αναγνωρίζουν τόσο οι σχεδιαστές όσο και ο ψηφιακός επιλυτής: discipline Ireal domain discrete; enddiscipline Πλέον, δηλώσεις ανάλογες του τύπου electrical netA; μπορούν να γίνουν και για το διακριτό ρεύμα Ireal. Συγκεκριμένα, στο module της αντλίας φορτίου προστίθεται η παρακάτω δήλωση: Ireal IOUTP, IOUTN; Πέρα λοιπόν από την σαφήνεια που εμφυσείται στο σχέδιο (δηλ. πλέον ο κάθε μηχανικός μπορεί εύκολα να αναγνωρίζει αν η ψηφιακή ποσότητα αναφέρεται σε τάση, ρεύμα, κλπ.), ο ψηφιακός επιλυτής δύναται να μεταχειριστεί με ιδιαίτερο τρόπο τις ποσότητες Ireal, όπως φαίνεται παρακάτω. 2. Ένα στοιχείο διασύνδεσης (connect module) το οποίο περιγράφει σε mixed signal γλώσσα την επικοινωνία της ψηφιακής ποσότητας με τον αναλογικό επιλυτή, 87 Υλοποίηση σε Επίπεδο Transistor δηλαδή με τον πραγματικό κόσμο. Προαναφέρθηκε ότι υπάρχουν ενσωματωμένα στοιχεία διασύνδεσης από τάση σε τάση (λογικό 0 ή 1, διακριτή τάση που στην ουσία είναι ένας πραγματικός αριθμός, συνεχής τάση η οποία είναι αλληλένδετη με το ρεύμα και χρησιμοποιείται από τον αναλογικό επιλυτή) και με οποιαδήποτε κατεύθυνση (είσοδο σε έξοδο, έξοδο σε είσοδο, αμφίδρομα). Εν προκειμένω ωστόσο αναζητείται μια διασύνδεση μεταξύ της εισόδου-εξόδου της αντλίας φορτίου και της εισόδου του φίλτρου. Το εργαλείο επεξεργασίας του κώδικα (ncelab) που είναι υπεύθυνο -μεταξύ άλλων - για την επικοινωνία ανάμεσα στα αναλογικά και ψηφιακά μέρη του κυκλώματος, δεν επιτρέπει διασύνδεση μεταξύ αμφίδρομου και μονόδρομου τερματικού, έτσι σε αυτό το σημείο ο ακροδέκτης του φίλτρου εξαναγκάζεται να μετατραπεί σε είσοδο-έξοδο, χωρίς βέβαια αυτό να έχει κάποια επίπτωση μιας και ο αναλογικός επιλυτής δεν αντιλαμβάνεται την έννοια της "ροής" της πληροφορίας. Στο επίπεδο της μετατροπής του ρεύματος σε τάση, αξίζει να σημειωθεί ότι κάθε διεπαφή μεταξύ μοντέλου πραγματικών αριθμών και επιπέδου τρανζίστορ χαρακτηρίζεται από μια κυκλωματική δομή, ώστε να αποφεύγονται οι εξιδανικεύσεις και να τίθεται εφικτός ο υπολογισμός του ρεύματος, εφόσον οι αντιστάσεις εισόδου-εξόδου των ψηφιακών μπλοκ δεν είναι άπειρες-μηδενικές αντιστοίχως. Συγκεκριμένα για το ρεύμα, παρατηρείται δυσκολία στην ανάπτυξη ενός connect module καθώς είναι ιδιαίτερα εξειδικευμένα στην κάθε τοπολογία. Εν προκειμένω, η ακόλουθη τοπολογία επιλέχθηκε για το στοιχείο διασύνδεσης, καθώς δίνει τη δυνατότητα προσαρμογής του σε κάθε υποκύκλωμα: Η παραπάνω τοπολογία περιγράφεται από το εξής στοιχείο διασύνδεσης που αναπτύχθηκε στα πλαίσια του συγκεκριμένου σχεδίου (custom CM): `include "disciplines.vams" `ifdef UDF_DISCIPLINES_VAMS `else `define UDF_DISCIPLINES_VAMS 1 discipline Ireal domain discrete; enddiscipline `endif connectmodule Rcurrent2E (Iin, Aout); inout Iin; wreal Iin; \logic Iin; inout Aout; electrical Aout; parameter real tr = 10p from (0:inf); parameter real tf = tr from (0:inf); parameter real ttol_t = (tr+tf)/20 from (0:inf); parameter real rout = 1k from (0:inf); real Ismooth; assign Iin = Iin; analog begin Ismooth = transition(Iin, 0, tr, tf, ttol_t); I(Aout) <+ (V(Aout) / rout) - Ismooth; end endmodule 88 Κεφάλαιο 3ο Το φίλτρο transition χρησιμοποιείται ώστε να εξομαλύνονται οι απότομες μεταβολές των ψηφιακών ποσοτήτων που μπορούν εύκολα να οδηγήσουν σε αστοχία σύγκλισης του αναλογικού επιλυτή, ο οποίος αδυνατεί να "μαντέψει" το επόμενο σημείο με τη μέθοδο Shooting Newton. Επίσης, η είσοδος του στοιχείου διασύνδεσης είναι ένας πραγματικός αριθμός, ωστόσο η έξοδος είναι ένας κυκλωματικός κόμβος όπου δεν υπάρχει διαχωρισμός μεταξύ ρεύματος και τάσης. Πρέπει λοιπόν και οι δύο ποσότητες να ανταποκρίνονται στις πραγματικές τιμές ή, με άλλα λόγια, ο λόγος του ρεύματος και της τάσης να ορίζει την αγωγιμότητα κοντά σε αυτή του πραγματικού κυκλώματος. 3. Έναν επιπρόσθετο κανόνα διασύνδεσης (Connect Rule), ο οποίος προστάζει την τοποθέτηση του νεοσυσταθέντος στοιχείου διασύνδεσης (Connect Module) στα κατάλληλα σημεία. connectrules Rcurrent2Erule; connect Rcurrent2E #( .tr(100p), .rout(6M) ) Ireal, electrical; endconnectrules Το σημαντικότερο σημείο είναι η επιλογή της rout ως Rcenter = 6ΜΩ, καθώς αμφότερες χρησιμοποιούνται για να περιγράψουν την αντίσταση εξόδου της αντλίας φορτίου, δηλαδή τον συνδυασμό ( Rnout*2 || Rpout*2 ), με Rnout την αντίσταση εξόδου ενός NMOS και Rpout την αντίσταση εξόδου ενός PMOS. Με βάσει τον κανόνα αυτό, κατά το στάδιο του elaboration (ncelab) τοποθετείται στο simulation flow το παραπάνω CM ανάμεσα στις ψηφιακές εισόδους-εξόδους Ireal και τους αναλογικούς κόμβους του κυκλώματος. Καλύπτονται έτσι οι έξοδοι IOUTP και IOUTN οι οποίες μετατρέπονται σε ρεύμα αμέσως μετά την έξοδο τους από την αντλία φορτίου. Πλέον, η wreal_resolution υπαγόρευση δε λαμβάνει χώρα μεταξύ της διαφορικής εξόδου αλλά αυτό συμβαίνει αυτόματα μέσα από τον τρόπο λειτουργίας του αναλογικού επιλυτή (εξίσωση κόμβου κατά τα γνωστά). Με την εισαγωγή του νέου κανόνα και στοιχείου διασύνδεσης, αλλά και την αντικατάσταση του μοντέλου του φίλτρου με το αντίστοιχο κύκλωμα, γίνεται εφικτή η επαλήθευση της ορθότητας της μέχρι τώρα σχεδίασης. Σε αυτό το σημείο, η προσομοίωση σε επίπεδο wreal με το κύκλωμα του φίλτρου διαρκεί περί τα 28 λεπτά (η μικρή διάρκεια δικαιολογείται καθώς δεν εμφανίζονται υψηλές συχνότητες στον αναλογικό επιλυτή), το δε αποτέλεσμα της συχνοτικής απόκρισης για 10GHz φαίνεται στην παρακάτω εικόνα. 89 Υλοποίηση σε Επίπεδο Transistor Εικόνα 3.30: Επαλήθευση LPF στα πλαίσια του συστήματος 3.5 Αντλία φορτίου Το μοντέλο συμπεριφοράς της CP που αναπτύχθηκε, περιγράφει μια πλήρως διαφορική, υψηλής απόδοσης, με ρεύμα πόλωσης αντλία φορτίου. Η λειτουργία της, πέρα από το παρασιτικό ρεύμα διαρροής, είναι αρκετά εξιδανικευμένη. Συγκεκριμένα, δεν εμφανίζονται τα φαινόμενα φασικού σφάλματος, παρασιτικού άλματος (spurious jump), δηλαδή η διαφορά τάσης μεταξύ των τρανζίστορ εξόδου, κυματισμού της εξόδου και κυρίως το φαινόμενο της μεταβολής του ρεύματος φόρτισης και εκφόρτισης του φίλτρου. Το τελευταίο φαινόμενο αποτελεί τροχοπέδη στην επιθυμητή λειτουργία του συστήματος, καθώς επηρεάζει σημαντικά τις επιδόσεις τις αντλίας φορτίου και επιβραδύνει κατά μια τάξη μεγέθους το κλείδωμα του βρόχου. Σε αυτή την παράγραφο γίνεται μια προσέγγιση του κυκλώματος της αντλίας με μια συμβατική push-pull τοπολογία και επιχειρείται μια βελτίωση των αποτελεσμάτων με την προσθήκη ενός τελεστικού ενισχυτή σε συνδεσμολογία ανάδρασης. Εξάλλου σε εφαρμογές εξαιρετικά υψηλών συχνοτήτων η απόδοση όλων των εξαρτημάτων είναι πολύ σημαντική, καθώς ακόμα και μικρή μεταβολή της τάσεως ελέγχου αντιστοιχεί σε μεγάλη διαφοροποίηση της συχνότητας ταλάντωσης. Συνεπώς η σταθερότητα της εξόδου της αντλίας φορτίου επηρεάζει δραματικά τις επιδόσεις του PLL και το χρόνο κλειδώματος. Όπως αναφέρθηκε στην παράγραφο 2.4.3, η αντλία φορτίου ερμηνεύει τα σήματα INC και DEC του ανιχνευτή διαφοράς φάσης και αντίστοιχα τροφοδοτεί σε ή αντλεί ρεύμα από το φίλτρο. Η ποσότητα ρεύματος που μεταφέρεται τέθηκε ως μεταβλητή και η βέλτιστη τιμή της υπολογίστηκε στα 100uA. Αυτή η ποσότητα θα πρέπει να τηρηθεί, συνεπώς πρώτο μέλημα είναι η δημιουργία μίας πηγής ρεύματος. Στην τοπολογία Widlar που ακολουθεί, το ρεύμα καθρεπτίζεται και διπλασιάζεται, καθώς ο λόγος (W/L) των 90 Κεφάλαιο 3ο τρανζίστορ που ακολουθούν είναι διπλάσιος αυτού του τρανζίστορ πόλωσης. Έτσι η πρώτη συσκευή θα πρέπει να διαρρέεται από 50uA. Για την επίτευξή του ρεύματος αυτού, η αντίσταση πόλωσης που χρησιμοποιείται υπολογίζεται στα 5kΩ. Έπειτα προστίθενται οι καθρέπτες ρεύματος και οι διακόπτες ελέγχου. Εικόνα 3.31: Συμβατικό κύκλωμα αντλίας φορτίου Ωστόσο η παραπάνω κλασσική τοπολογία παρουσιάζει αρκετά μειονεκτήματα. Το κυριότερο εξ αυτών είναι η σημαντική διαφορά στα ρεύματα αύξησης και μείωσης της τάσεως ελέγχου. Πιο συγκεκριμένα, το απλουστευμένο μοντέλο συμπεριφοράς του VCO παράγει την επιθυμητή συχνότητα όταν η τάση είναι κοντά στο 1V. Προφανώς, η τάση ελέγχου έχει αρχική τιμή ίση με μηδέν και κλιμακώνεται (ramp up) καθώς το PLL τείνει προς την ηρεμία. Αρχικά λοιπόν, η διαφορά τάσης μεταξύ VDD! και Vcntl είναι αρκετά μεγάλη, επιτρέποντας διέλευση ικανοποιητικής ποσότητας ρεύματος και άρα αύξησης της τάσης 91 Υλοποίηση σε Επίπεδο Transistor ελέγχου. Καθώς όμως η τάση στο φίλτρο αυξάνει, η διαφορά στα άκρα του PMOS PM0 μειώνεται και το τρανζίστορ περνάει στην ωμική περιοχή λειτουργίας όπου ισχύει: Επιπλέον, όπως φαίνεται και από τις χαρακτηριστικές καμπύλες στην εικόνα της παραγράφου 3.1.1, το ρεύμα ID μειώνεται σημαντικά και τείνει στο μηδέν όταν η τάση VDS τείνει στο μηδέν. Αντίστοιχα ισχύουν και για το NMOS NM0. Συμπερασματικά, το ρεύμα παροχής θα μειώνεται καθώς η τάση εξόδου τείνει προς την τάση τροφοδοσίας, ενώ το ρεύμα άντλησης θα αυξάνεται και αντιστοίχως. Άρα τα ρεύματα παροχής και άντλησης στο φίλτρο δεν είναι σταθερά αλλά μεταβάλλονται σημαντικά, επιβραδύνοντας το κλείδωμα του βρόχου. Εικόνα 3.32: Ασυμπτωτική αύξηση τάσης που προκύπτει από την ελάττωση της VDS Κάτι τέτοιο δεν είναι απαραίτητα σημαντικό, καθώς το PLL κλειδώνει και πάλι σε λίγα us, ωστόσο ο χρόνος κλειδώματος του συστήματος έχει θεσπιστεί σαν προδιαγραφή και θα πρέπει να μειωθεί. Επίσης το φαινόμενο αυτό επιδρά αρνητικά και στη σταθερότητα του συστήματος. Βέβαια, το γεγονός ότι ο ανιχνευτής διαφοράς φάσης ουσιαστικά αποσυνδέει το φίλτρο από την αντλία φορτίου σε κατάσταση ηρεμίας περιορίζει σημαντικά τις αναταραχές (jitter), αλλά ακόμα και σε αυτή την κατάσταση υπάρχουν αραιοί παλμοί διόρθωσης της φάσης. Όταν λοιπόν το σήμα DEC ενεργοποιηθεί, το ρεύμα άντλησης είναι αρκετά μεγαλύτερο από 100uA οδηγώντας σε αναταραχές. Η βελτιωμένη εκδοχή της αντλίας φορτίου προτείνεται στο έγγραφο[26] και στηρίζεται στη χρήση ενός τελεστικού ενισχυτή υψηλού κέρδους ώστε να διορθώνεται με ανάδραση το σφάλμα μεταξύ των ρευμάτων παροχής και άντλησης. 92 Κεφάλαιο 3ο Εικόνα 3.33: Το κύκλωμα που χρησιμοποιήθηκε Εδώ το ρεύμα iAmp παροχής σε και άντλησης από το φίλτρο καθορίζεται από την τάση Vbias. Όταν υπάρχει σήμα αύξησης της τάσης ελέγχου, άρα το NM16 είναι στην αποκοπή, το ρεύμα του PM9 και το ρεύμα στη βαθμίδα εξόδου είναι το ίδιο. Όταν φτάνει σήμα μείωσης της τάσης ελέγχου, το PM9 είναι στην αποκοπή και το ρεύμα που διαρρέει το NM16 και τη βαθμίδα εξόδου είναι το ίδιο. Συνεπώς ID9=ID17=Ιdout , δηλαδή τα ρεύματα ταυτίζονται σε μεγάλο βαθμό και η αντλία φορτίου παρουσιάζει ικανοποιητική σταθερότητα. 93 Υλοποίηση σε Επίπεδο Transistor Εικόνα 3.34: Επαλήθευση της CP στα πλαίσια του συστήματος Δεδομένου ότι το συγκεκριμένο υποκύκλωμα αποτελεί συνδετικό κρίκο για το PLL, συμβάλλει ελάχιστα στο συνολικό θόρυβο της εξόδου και είναι το μόνο που χειρίζεται ρεύματα τα οποία μπορούν να παρουσιάσουν αιχμές οι οποίες επιβαρύνουν ιδιαίτερα το έργο της σταθεροποίησης του συστήματος, σε αυτό το σημείο κρίνεται θεμιτή η δημιουργία ενός μοντέλου συμπεριφοράς το οποίο μπορεί να επεξεργαστεί ο αναλογικός επιλυτής. Το μοντέλο αυτό συντάσσεται σε Verilog-A και αποτελεί τη βέλτιστη εκδοχή μιας αντλίας φορτίου. module CP(IOUTN, IOUTP, DEC, INC, PDWN); inout IOUTN; electrical IOUTN; inout IOUTP; electrical IOUTP; input DEC; electrical DEC; input INC; electrical INC; input PDWN; electrical PDWN; parameter real iAmp = 0.0001 ; parameter real delay = 20 ; parameter real I_Out = 0.0003 ; parameter real Vth = 0.6 ; integer off, up, dn; analog begin off = V(PDWN)>0.6; @(initial_step) begin up=0; dn=0; 94 Κεφάλαιο 3ο end @(cross(V(INC)-0.6,0,10p,50m)) up = V(INC)>0.6; @(cross(V(DEC)-0.6,0,10p,50m)) dn = V(DEC)>0.6; I(IOUTP) <+ transition(up&&!off?-iAmp:0,20p,100p,100p); I(IOUTN) <+ transition(dn&&!off?iAmp:0,20p,100p,100p); end endmodule Αξίζει να παρατηρηθεί η χρήση της συνάρτησης cross, η οποία χρησιμοποιείται έχοντας ορίσματα αναλογικές ποσότητες και αποτελεί την ομόλογη συνάρτηση της POSEDGE στον αναλογικό "κόσμο". Έτσι λοιπόν αποφεύγεται ο επαναλαμβανόμενος έλεγχος της τάσεως από τον αναλογικό επιλυτή (uniform sampling) και, αντιθέτως, τα μπλοκ εντολών πυροδοτούνται μόνο τη στιγμή που η τάση σπάει το φράγμα του κατωφλίου. 3.6 Μετρητής συχνότητας Στην ενότητα 2.4.7 αναπτύχθηκε ένα μοντέλο μετρητή συχνότητας για τη διευκόλυνση των μετρήσεων στο εργαλείο Simvision. Το εργαλείο αυτό δεν παρέχει κάποια διεπαφή με συναρτήσεις επεξεργασίας σήματος, όπως για παράδειγμα ο Calculator του Virtuoso. Η βασική ιδέα είναι αρκετά απλή και στηρίζεται στη μέτρηση του χρονικού διαστήματος ανάμεσα στις διαδοχικές αιχμές των παλμών εξόδου (ή την απόσταση περιοδικών σημείων του ημιτόνου, όταν το PLL εξάγει αναλογικό σήμα). Με τη μετάβαση στο Analog Design Environment και τη χρήση της συνάρτησης freq() του Calculator, το στοιχείο αυτό καθίσταται μη απαραίτητο. Ωστόσο μπορεί εύκολα να μετατραπεί σε ένα χρήσιμο εξάρτημα. Μάλιστα, το λογισμικό συνοδεύεται από πλήθος πλασματικών εξαρτημάτων μέτρησης (π.χ. μετρητής ισοδύναμης αντίστασης, μετρητής Ζ-παραμέτρων, βολτόμετρο για αποθήκευση των ζευγών τάσης-χρόνου) αλλά όχι από αντίστοιχο μετρητή συχνότητας περιοδικού σήματος. Αντί για την καθιερωμένη μέθοδο τοποθέτησης του μετρητή, μπορεί να ακολουθηθεί μια διαφορετική προσέγγιση. Στην παραπάνω ενότητα 3.4 έγινε μια πρώτη εφαρμογή της δυνατότητας ανάπτυξης ποσοτήτων που ορίζονται από το χρήστη (userdefined Disciplines). Μετά την ποσότητα Ιreal που υποδηλώνει ρεύμα σε ψηφιακή μορφή, στην παρούσα παράγραφο ορίζεται η ποσότητα myFreq που αντιπροσωπεύει συχνότητα. Και σε αυτή την περίπτωση, χρειάζονται τα ίδια τρία στοιχεία: 1. Η νέα φυσική ποσότητα, η οποία ορίζει τη συχνότητα και μετράται σε Herz: discipline myFreq domain discrete; enddiscipline 2. Το στοιχείο διασύνδεσης, το οποίο βασίζεται σε μεγάλο βαθμό στο εξάρτημα της ενότητας 2.4.7: 95 Υλοποίηση σε Επίπεδο Transistor connectmodule V2F #( parameter real scaleFreq=1G, factor parameter real vsup=1.2 ) ( output wreal OUT, input electrical IN ); //optional frequency scaling real freq; real vthi, vtlo; real lastPos,lastNeg; initial begin vthi = vsup /1.5; vtlo = vsup / 3; lastPos=0; lastNeg=0; freq=0; end always @(cross(V(IN)-vthi)) begin if (V(IN)>vthi) begin if (lastPos>0) freq = 1/($abstime-lastPos); lastPos=$abstime; end else if (V(IN)>vthi) begin if (lastNeg>0) freq = 1/($abstime-lastNeg); lastNeg=$abstime; end end assign OUT = freq/scaleFreq; endmodule Η απαραίτητη μεταβολή ώστε το εξάρτημα V2F να μετασχηματισθεί σε στοιχείο διασύνδεσης είναι η μετατροπή της εισόδου από wreal σε electrical Discipline, καθώς προορίζεται για προσομοιώσεις σε επίπεδο τρανζίστορ, και η εναλλαγή της δεσμευμένης λέξης module με connectmodule, που δηλώνει ρητά ότι πρόκειται για στοιχείο διασύνδεσης. 3. Ο κανόνας διασύνδεσης: connectrules V2Frule; connect V2F #(.vsup(1.2), .scaleFreq(1G)) electrical, myFreq; endconnectrules Πλέον ο χρήστης μπορεί να χαρακτηρίσει οποιοδήποτε net στο οποίο εμφανίζονται περιοδικά σήματα με την ποσότητα myFreq, είτε μέσω του GUI που παρέχει το Analog Design Environment, είτε με υποδείξεις στο ncelab όπως η εξής: -setdiscipline "instterm-pll.tb.VCO0.OUT- myFreq" 96 Κεφάλαιο 3ο Το εργαλείο πλέον γνωρίζει πως πρέπει να τοποθετήσει το στοιχείο διασύνδεσης στην έξοδο του VCO, μετατρέποντας έτσι το περιοδικό σήμα τάσης σε συχνότητα, η οποία μπορεί να αναγνωσθεί όπως κάθε ποσότητα. Επιπλέον, δημιουργήθηκε και ένα εξάρτημα το οποίο εξάγει τη συχνότητα λειτουργίας στην κονσόλα (Command Interpreter Window, CIW). `ifdef UDF_DISCIPLINES_VAMS `else `define UDF_DISCIPLINES_VAMS 1 discipline myFreq domain discrete; enddiscipline `endif module freqCounter (IN); input wreal IN; myFreq IN; always #200 $strobe("Current frequency is %f\n", IN ); Εικόνα 3.35: Σύμβολο Μετρητή endmodule Τέλος, αξίζει να σημειωθεί πως το στοιχείο διασύνδεσης έχει συνταχθεί με δομές Verilog-A, συνεπώς μπορεί άμεσα να μετατραπεί σε ένα συμβατικό μετρητή γραμμένο σε Verilog-A, ο οποίος θα λειτουργεί σε αμιγώς αναλογικό επιλυτή που δεν αντιλαμβάνεται κανένα Discipline πέρα από τα ενσωματωμένα (τάση & ρεύμα). 97 Επαλήθευση και Εξειδικευμένες Αναλύσεις Κεφάλαιο 4 Επαλήθευση και Εξειδικευμένες Αναλύσεις Τα τελευταία χρόνια, η βιομηχανία του EDA έχει αναπτύξει εκλεπτυσμένες μεθόδους προσομοίωσης, οδηγούμενη από τις ανάγκες των δημιουργών ολοκληρωμένων κυκλωμάτων, επιτρέποντάς στους σχεδιαστές να παραδώσουν συστήματα που βρίσκονται στην αιχμή της τεχνολογίας. Ορισμένες από τις εν λόγω μεθόδους χρησιμοποιήθηκαν και κατά τη διάρκεια της παρούσας εργασίας, ενώ φυσικά υπάρχει ακόμα αξιοσημείωτο πλήθος αναλύσεων που οι μηχανικοί καλούνται να διεκπεραιώσουν σε μια βιομηχανική εφαρμογή. Τα εργαλεία προσομοίωσης έχουν ενισχυθεί ώστε να προσφέρουν ταχύτερα αποτελέσματα, εξειδικευμένες μετρήσεις ή ακόμα και απόκριση του συστήματος σε συνθήκες συγκεκριμένου περιβάλλοντος. Στη βιβλιογραφία[27] σημειώνονται και πάλι τα εγχειρίδια που χρησιμοποιήθηκαν για την εκπόνηση των αναλύσεων. 4.1 Προσομοίωση σε κυκλωματικό επίπεδο Σε αυτή την ενότητα επιχειρείται μια αμιγώς αναλογική προσομοίωση του συνολικού συστήματος. Έχοντας επαληθεύσει τη λειτουργία των επιμέρους υποσυστημάτων ένα προς ένα στις προηγούμενες παραγράφους, όπου μόνο το υπό εξέταση υποσύστημα αντικαθίσταται με το κύκλωμα σε επίπεδο αναλογικών συνθετικών στοιχείων ενώ τα υπόλοιπα υποσυστήματα διατηρούνταν σε επίπεδο συμπεριφοράς, το βήμα αυτό ενδεχομένως να κρινόταν περιττό και χρονοβόρο από την άποψη υπολογιστικών πόρων και ανταγωνισμού (time-to-market) σε ένα περιβάλλον βιομηχανικής εφαρμογής. Ωστόσο στην παρούσα εργασία η προσομοίωση με τη συμβατική μέθοδο σε επίπεδο αναλογικών συνθετικών στοιχείων έρχεται να ολοκληρώσει την έρευνα για την πραγματική επιτάχυνση που επιφέρει η χρήση των μοντέλων πραγματικών αριθμών, αλλά και την ακεραιότητα των μέχρι τώρα αποτελεσμάτων. Τα υποκυκλώματα όπου εμφανίζονται οι εξαιρετικά υψηλές συχνότητες - δηλαδή ο VCO και ο διαιρέτης συχνότητας - κυριεύουν το χρόνο προσομοίωσης και απαιτούν την πλειοψηφία των υπολογιστικών πόρων. Είναι εύκολο να παρατηρηθεί στα παραπάνω αποτελέσματα η μεγάλη διαφορά στο χρόνο προσομοίωσης μεταξύ τοπολογιών που διατηρούν το μοντέλο συμπεριφοράς για τα δύο αυτά υποκυκλώματα και τοπολογιών όπου αντικαθίστανται με το αντίστοιχο σχέδιο επιπέδου τρανζίστορ. Κατά μέσο όρο, οι χρόνοι προσομοίωσης στη δεύτερη περίπτωση είναι περίπου μία τάξη μεγέθους μεγαλύτεροι. Φυσικά η προσομοίωση με μοντελοποίηση wreal διαρκεί αμελητέο χρόνο της τάξεως του ενός λεπτού, τα αποτελέσματα δε, είναι ικανοποιητικά όμοια με αυτά των προσομοιώσεων του παρόντος κεφαλαίου. Αυτός άλλωστε είναι και ο στόχος της μεθοδολογίας της topdown σχεδίασης και του analog verification. 98 Κεφάλαιο 4ο Στα αποτελέσματα που εικονίζονται στα παρακάτω διαγράμματα, ο αναγνώστης μπορεί να διακρίνει τη συχνότητα του σήματος εξόδου και την τάση ελέγχου όταν η προσομοίωση εκτελείται με αμιγώς αναλογικά υποκυκλώματα. Στην περίπτωση αυτή, χρησιμοποιείται μονάχα ο αναλογικός επιλυτής. Τόσο για το PLL εξαιρετικά υψηλών συχνοτήτων όσο και για το N-fractional PLL, το ρεύμα της πηγής Widlar που τροφοδοτεί την αντλία φορτίου παραμετροποιήθηκε. Είναι φανερό πως πρόκειται για τη σημαντικότερη παράμετρο του συστήματος, καθώς ρυθμίζει την ανταλλαγή (trade-off) μεταξύ κατανάλωσης και ποιότητας του σήματος εξόδου, διότι επηρεάζει καθοριστικά το χρόνο κλειδώματος και την εμφάνιση θορύβου. Και στις δυο περιπτώσεις όμως, παρατηρείται ικανοποίηση των προδιαγραφών καθώς τηρείται ο χρόνος κλειδώματος, ο θόρυβος, οι αρμονικές και οι λοιπές προδιαγραφές της ενότητας 2.3. Αξίζει να σημειωθεί πως ο χρόνος προσομοίωσης ανέρχεται στις 31 ώρες για το PLL συχνότητας 10GHz για ρεύμα αντλίας φορτίου 50uA και στις 33 ώρες για το ίδιο PLL με ρεύμα 100uA. Η διαφορά έγκειται στο ότι όταν μεγαλύτερο ρεύμα οδηγεί τον VCO, εμφανίζονται μεγαλύτερες αιχμές σημάτων που απορροφούνται μεν στο φίλτρο, υποχρεώνουν δε τον επιλυτή να λαμβάνει μικρότερα βήματα εικασίας του επόμενου σημείου λειτουργίας. Από την άλλη, για το EHF PLL, οι αντίστοιχοι χρόνοι προσομοίωσης για 20us (απαιτείται μεγαλύτερος χρόνος τερματισμού της ανάλυσης, αφού κλειδώνει αρκετά δυσκολότερα) ξεπερνούν τις 1000 ώρες ή, με άλλα λόγια, τις 43 ημέρες. Αυτό καθιστά την προσομοίωση του EHF PLL σε κυκλωματικό επίπεδο απαγορευτική, καθώς οι υπολογιστικοί πόροι για την επίλυση του κυκλώματος θα έπρεπε να δεσμευθούν από τον προσομοιωτή για όλη τη διάρκεια. Επιπλέον τίθεται και ο κίνδυνος αστοχίας του προσομοιωτή (nonconvergence) ή της μηχανής στην οποία εκτελείται η προσομοίωση, σε τόσο μεγάλο χρονικό διάστημα. Συνεπώς, για την προσομοίωση σε επίπεδο τρανζίστορ εκλαμβάνεται μόνο η εκτίμηση για το συνολικό χρόνο εκτέλεσης. Το μέγεθος αυτό δικαιολογείται καθώς ο προσομοιωτής καλείται να λάβει πολύ μικρά βήματα μεταξύ διαδοχικών επιλύσεων του κυκλώματος, της τάξεως των fs (10-15 s) για να αποτυπώσει τις μεγάλες συχνότητες που εμφανίζονται. Αναμένεται λοιπόν να επιλύσει τις εξισώσεις κατάστασης για περισσότερες από 1000 συσκευές και 1600 κόμβους περίπου 20us/10fs=2*109 φορές, αριθμός εξαιρετικά μεγάλος. Τέλος, αξίζει να σημειωθεί ότι η χαλάρωση των προδιαγραφών επίλυσης στα πλαίσια μιας προσπάθειας εξαγωγής της απόκρισης του συστήματος οδήγησε σε εσφαλμένα αποτελέσματα. 99 Επαλήθευση και Εξειδικευμένες Αναλύσεις Εικόνα 4.1: Τάση και συχνότητα του N-fractional PLL για ρεύμα αντλίας 50uA και 100uA 4.2 XPS Στην προηγούμενη παράγραφο αναφέρεται ο λόγος που ο συμβατικός αναλογικός επιλυτής (Spectre) και ο εξελιγμένος αλγόριθμος του APS, ο οποίος διαχωρίζει τους πίνακες εξισώσεων κατάστασης για παραλληλοποίηση της εκτέλεσης, δεν είναι αποτελεσματικοί στην προσομοίωση του EHF PLL. Η Cadence® ανέπτυξε πρόσφατα (Ιούλης 2014) ένα 100 Κεφάλαιο 4ο ιδιαίτερα χρήσιμο προϊόν, μέσω του οποίου αντιμετωπίζεται ο συγκεκριμένος περιορισμός. Το XPS® (eXtensive Partitioning Simulator), το οποίο χρησιμοποιήθηκε για την παρούσα εργασία στα πλαίσια USV (Usability, Supportability & Verification) δοκιμών προτού δοθεί στην παραγωγή, προσφέρει τη δυνατότητα κατάτμησης του κυκλώματος σε αναλογικά και ψηφιακά μέρη, επιλύοντας τα αναλογικά υποκυκλώματα με το APS® και τα ψηφιακά στον τάξεις μεγέθους ταχύτερο ψηφιακό επιλυτή. Πιο αναλυτικά, το στάδιο του partitioning λαμβάνει χώρα αμέσως μετά τη δημιουργία του netlist και επιχειρεί να ανιχνεύσει οποιοδήποτε μοτίβο ψηφιακού κυκλώματος (π.χ. inverters, πύλες AND, NOR, κλπ.). Κατόπιν τα ψηφιακά κυκλώματα επιλύονται με χαμηλή ακρίβεια αλλά πολύ ταχύτερα, δίχως να χρησιμοποιούνται τα συνήθη σύνθετα μοντέλα για τα ενεργά στοιχεία, συνδυάζοντας έτσι την υψηλή ακρίβεια του APS στους αναγκαίους κόμβους με την ταχύτητα εκτέλεσης του ψηφιακού επιλυτή. Επιπλέον πλεονέκτημα αποτελεί το γεγονός ότι αυτή η μέθοδος δεν απαιτεί κάποια περεταίρω ενέργεια από το χρήστη, όπως για παράδειγμα η θέσπιση στοιχείων διασύνδεσης σε προσομοίωση μικτού σήματος. Καθώς λοιπόν είναι προφανές ότι ενδείκνυται για προσομοίωση συστημάτων με αναλογικά και ψηφιακά μέρη, θα μπορούσε να συναχθεί το συμπέρασμα ότι το XPS αποτελεί ένα πολύ σημαντικό βήμα για την ενοποίηση των εργαλείων EDA για τη σχεδίαση και προσομοίωση περίπλοκων ολοκληρωμένων κυκλωμάτων. Επίσης, ενδεχομένως να δώσει στο μέλλον τη δυνατότητα προσομοίωσης - σε λογικό χρόνο - post extraction netlists που προκύπτουν από εισαγωγή του GDS2 από εργαλεία ψηφιακής υλοποίησης (πχ Encounter®) στο Virtuoso Layout Editor®. Στο συγκεκριμένο σύστημα PLL, το XPS αναμένεται να επιταχύνει σημαντικά την προσομοίωση, διότι τόσο ο PD όσο και ο Ndivider είναι κυκλώματα που απαρτίζονται από standard cells, δηλαδή δομικά στοιχεία του digital IC design flow. Προσεγγιστικά λοιπόν, μόνο η αντλία φορτίου, το φίλτρο και ο ταλαντωτής Colpitts απαιτούν εκτέλεση στον αναλογικό επιλυτή. Τα παρακάτω αποτελέσματα παρουσιάζουν τι συμβαίνει στην πράξη· το εξαιρετικό αυτό προϊόν επιτρέπει την προσομοίωση του EHF PLL σε ικανοποιητικό χρόνο με αποτελέσματα που συνάδουν με αυτά της επιμέρους προσομοίωσης με μοντελοποίηση wreal. Επιπρόσθετα, το XPS παρέχει πολλές επιλογές για διάφορες λειτουργίες, από τις οποίες παρουσιάζονται τρεις: προσομοίωση αμιγώς από τον αναλογικό επιλυτή με τον αλγόριθμο του XPS, ενεργοποίηση της δυνατότητας κατάτμησης του κυκλώματος και καθορισμός των ψηφιακών μερών από το χρήστη. Παρατηρείται διαφορά στην ακρίβεια των αποτελεσμάτων αλλά και στους χρόνους προσομοίωσης ανάμεσα στις τρεις αυτές περιπτώσεις. 101 Επαλήθευση και Εξειδικευμένες Αναλύσεις Εικόνα 4.2: Τάση και συχνότητα του N-fractional PLL για ρεύμα αντλίας 50uA και 100uA με το XPS Σε αυτή την προσομοίωση ζητήθηκε από το XPS να καταχωρήσει όλο το σύστημα ως αναλογικό, δηλαδή το 100% των συσκευών επιλύθηκαν στο APS. Συγκριτικά με τα αποτελέσματα της προηγούμενης παραγράφου παρατηρείται πιστή αναπαραγωγή της συχνοτικής απόκρισης και της τάσεως ελέγχου. Η διάρκεια της εκτέλεσης ανέρχεται στις 4 ώρες και 50 λεπτά. 102 Κεφάλαιο 4ο Εικόνα 4.3: Τάση και συχνότητα N-fractional PLL για ρεύμα αντλίας 50uA και 100uA με το XPS και διαμέριση Στα παραπάνω αποτελέσματα αποτυπώνεται η λειτουργία του XPS όπως παρέχεται από την Cadence, δίχως να χρησιμοποιηθεί κάποια από τις διαθέσιμες επιλογές. Τα αποτελέσματα είναι σχεδόν ταυτόσημα, με τη συχνότητα εξόδου να εμφανίζει θόρυβο και μεταβολές στη συχνότητα μικρότερες από 5%. Η αξία του XPS γίνεται φανερή από το χρόνο προσομοίωσης που είναι μόλις 21 λεπτά και 20 δεύτερα, ενώ το ποσοστό των θεμελιακών στοιχείων που αναγνωρίσθηκαν ως μέρος ενός κυκλώματος με ψηφιακή λογική ανέρχεται στο 98,1%. Ακόμα και έτσι, το 1.9% των συσκευών, που πιθανώς είναι αυτές στην αντλία φορτίου και τον ταλαντωτή, αντιστοιχεί στο 59.16% του χρόνου προσομοίωσης. Παρατηρείται λοιπόν μια επιτάχυνση περίπου 32*60/21 = 91 φορών. 103 Επαλήθευση και Εξειδικευμένες Αναλύσεις Εικόνα 4.4: Τάση και συχνότητα του N-fractional PLL για ρεύμα αντλίας 50uA και 100uA με το XPS, διαμέριση και εξαναγκασμό Τέλος, τα παραπάνω αποτελέσματα αντιστοιχούν σε μια προσομοίωση όπου υποδείχθηκε ρητά πως τα υποκυκλώματα που πρέπει να επιλυθούν ως ψηφιακά είναι ο ανιχνευτής διαφοράς φάσης και ο διαιρέτης συχνότητας. Παρατηρείται ταύτιση με τα ανωτέρω διαγράμματα, η οποία σε συνδυασμό με το ότι 98.5% του κυκλώματος αναγνωρίζεται ως ψηφιακό, επιβεβαιώνει πως το XPS ορθά χαρακτηρίζει από μόνο του ποια υποκυκλώματα είναι ψηφιακά. Ο χρόνος προσομοίωσης εδώ είναι 19:20 και 58.9% αυτού αντιστοιχεί στον αναλογικό επιλυτή. 104 Κεφάλαιο 4ο Ακολουθούν οι αντίστοιχες μετρήσεις για το PLL εξαιρετικά υψηλών συχνοτήτων, όπου για πρώτη φορά φαίνεται η ικανοποιητική λειτουργία των επιμέρους κυκλωμάτων σε συνδυασμό. Εικόνα 4.5: Προσομοίωση του όλου συστήματος στα 100GHz Στην παράγραφο 3.1.2 εξηγήθηκε πως το EHF PLL δεν είναι Ν-Fractional, όπως το SHF PLL. Είναι λοιπόν αναμενόμενο πως η συχνότητα του σήματος εξόδου δε θα κάνει ramp-up ακολουθώντας τη μορφή της τάσεως ελέγχου. Όταν το ρεύμα της πηγής Widlar είναι 50uA παρατηρείται μεγαλύτερη σταθερότητα στη συχνότητα εξόδου, αλλά και μεγαλύτερη ευκολία επαναφοράς της ηρεμίας σε περίπτωση ξεκλειδώματος. Από την άλλη, καθυστερεί περίπου 2us να αποκατασταθεί. Ο χρόνος προσομοίωσης είναι μόλις 9 ώρες και 105 Επαλήθευση και Εξειδικευμένες Αναλύσεις 51 λεπτά, επιτυγχάνοντας επιτάχυνση περίπου 1080/9.85 = 109 φορές. Το XPS αναγνωρίζει πως το 99.2% του κυκλώματος είναι ψηφιακό, παρόλα αυτά ο χρόνος προσομοίωσης κυριεύεται κατά 84% από το υπόλοιπο 0.8%. Εικόνα 4.6: Επίδραση διαμέρισης και εξαναγκασμού Όπως φαίνεται και στα παραπάνω διαγράμματα, όταν προσδιοριστούν τα ψηφιακά υποκυκλώματα υπάρχει μεγαλύτερη σταθερότητα στη συχνότητα εξόδου. Μία εικασία για το λόγο που συμβαίνει αυτό είναι ότι υπάρχει κάποιο υποκύκλωμα εντός του PD το οποίο, δίχως τις υποδείξεις, το XPS αναγνωρίζει ως αναλογικό. Έτσι αφού εφαρμοστούν οι 106 Κεφάλαιο 4ο υποδείξεις για το ποια κυκλώματα είναι ψηφιακά, η συμπεριφορά του αναλύεται από τα ψηφιακά μοντέλα και δεν εμφανίζεται η αστάθεια. Η εξήγηση αυτή αποκτά μεγαλύτερη βαρύτητα, αν αναλογιστεί κανείς πως σε αυτή την περίπτωση το 99.6% του κυκλώματος επιλύεται στον ψηφιακό προσομοιωτή, δηλαδή 0.4% περισσότερο από πριν. Ο συνολικός χρόνος προσομοίωσης είναι 8:55:10, ενώ 82.82% αυτού προέρχεται από τον αναλογικό επιλυτή. Τέλος, παρατίθεται ένα διάγραμμα στο οποίο γίνεται εμφανής η επίδραση του προσομοιωτή στα αποτελέσματα του κυκλώματος. Σε αυτή την περίπτωση ζητήθηκε από το XPS να ακολουθήσει συντηρητική πολιτική όσον αφορά στο περιθώριο λάθους και άρα το βήμα επίλυσης των εξισώσεων του κυκλώματος. Παρατηρεί κανείς εύκολα τη σαφή διαφορά με τα προηγούμενα αποτελέσματα για το ίδιο ακριβώς κύκλωμα. Αυτό είναι ένα φαινόμενο διόλου σπάνιο σε κυκλώματα τα οποία ταλαντώνονται και προκαλείται από επίλυση του συστήματος σε συγκεκριμένες στιγμές, προκαλώντας κάτι αντίστοιχο του aliasing, αφού ευθύνεται η δειγματοληψία. Εναποτίθεται λοιπόν στο μηχανικό να αξιολογήσει την πιστότητα των αποτελεσμάτων και σε αυτή τη διαδικασία συμβάλλει ιδιαίτερα το στάδιο της μοντελοποίησης και επιμέρους επαλήθευσης του συστήματος. Ο χρόνος προσομοίωσης είναι 18:58:46 με 85,45% αυτού να απασχολεί τον αναλογικό επιλυτή, ενώ το ποσοστό ψηφιακών συσκευών παραμένει ίδιο με πριν (99.6%). 107 Επαλήθευση και Εξειδικευμένες Αναλύσεις Εικόνα 4.7: Υπαιτιότητα του προσομοιωτή 4.3 RF αναλύσεις Η ανάλυση στο πεδίο του χρόνου (transient analysis) αποτελεί τη βασικότερη εξέταση του κάθε συστήματος. Ωστόσο σε εφαρμογές τηλεπικοινωνιακής ηλεκτρονικής και όχι μόνο, είναι πάντα θεμιτό να ληφθούν και περεταίρω μετρήσεις, όπως η απόκριση συχνότητας, εντοπισμός του σημείου IIP3, ανάλυση της σταθερότητας του συστήματος, ανάλυση θορύβου κλπ. Επίσης, συχνά εμφανίζονται συχνότητες τόσο υψηλές που καθιστούν την παραδοσιακή χρονική ανάλυση μη αποδοτική, όπως για παράδειγμα 108 Κεφάλαιο 4ο συμβαίνει στο EHF PLL παραπάνω. Για τις περιπτώσεις αυτές έχουν αναπτυχθεί εργαλεία σαν το SpectreRF, που προσθέτουν επιπλέον λειτουργίες στους αναλογικούς προσομοιωτές για πολύ ταχύτερα αποτελέσματα των μετρήσεων που ενδιαφέρουν, σε σύγκριση με την εξαγωγή τους από τη χρονική ανάλυση. Η προκαθορισμένη μέθοδος εκτέλεσης της βασικής χρονικής ανάλυσης είναι η κατάστρωση και λύση των κυκλωματικών εξισώσεων με τις τιμές εισόδου για t=0 και έπειτα η λύση των εξισώσεων σε συγκεκριμένες χρονικές αποστάσεις. Με άλλα λόγια, ο αναλογικός προσομοιωτής "μαντεύει" τις τιμές του επόμενου σημείου βάσει της προηγούμενης κατάστασης και των τιμών των εισόδων. Το μέγεθος του βήματος βάσει του οποίου η προσομοίωση προχωρά καθορίζεται από το σφάλμα της εικασίας του προσομοιωτή σε σχέση με τις πραγματικές τιμές. Οι RF αναλύσεις επιδιώκουν να εκμεταλλευτούν το γεγονός ότι η απόκριση των σημάτων θα είναι περίπου η ίδια για κάθε περίοδο του σήματος υψηλής συχνότητας. Έτσι, αφού προηγηθεί η επίλυση του κυκλώματος για μια περίοδο της baseband συχνότητας, τα επόμενα σημεία επίλυσης τοποθετούνται ανά περίοδο του γρήγορου σήματος, με την προσμονή ότι Ε{V(t+T)-V(t)} → 0. Βάσει του σφάλματος αυτού, αποδίδονται οι νέες τιμές τάσεων και ρευμάτων στο κύκλωμα, ενώ εξετάζεται και η ανάγκη νέας επίλυσης για μια περίοδο του baseband σήματος. Είναι προφανές πως σε συστήματα τα οποία εμφανίζουν υψηλές και χαμηλές συχνότητες, όπως τα PLL, οι πομποδέκτες και οι A2D/D2A μετατροπείς, οι RF αναλύσεις μπορούν να κάνουν σημαντική διαφορά στις επιδόσεις. Η επίλυση του κυκλώματος μπορεί να διεκπεραιωθεί είτε στο πεδίο του χρόνου, είτε στο πεδίο συχνότητας. Για κυκλώματα που εμφανίζουν γραμμικότητα ή είναι ελαφρώς μη γραμμικά, προτιμάται η επίλυση στο πεδίο συχνότητας (Harmonic Balance, ΗΒ), ενώ σε περιπτώσεις όπου εμφανίζονται απότομες μεταβολές σε τάσεις και ρεύματα θεωρείται βέλτιστη η επίλυση στο πεδίο του χρόνου (Shooting Newton, SN). Το όνομα της ανάλυσης SN προκύπτει διότι ο προσομοιωτής "σκοπεύει" και επιλέγει το επόμενο σημείο επίλυσης του συστήματος εξισώσεων, το οποίο είναι ένα μη γραμμικό αλγεβρικό πρόβλημα και η μέθοδος αριθμητικής ανάλυσης Newton μπορεί να εφαρμοστεί. Αφού υπολογισθεί η περιοδική κατάσταση ηρεμίας (Periodic Steady State, PSS), ο χρήστης μπορεί να επιλέξει ανάλυση συχνότητας, θορύβου, S-παραμέτρων, σταθερότητας και πόλων-μηδενικών, πολύ γρήγορα σε σύγκριση με την εξαγωγή των αντίστοιχων αποτελεσμάτων από τη χρονική ανάλυση και δίχως υποβάθμιση της ακρίβειας των αποτελεσμάτων. Ακόμα πιο σύνθετη είναι η περίπτωση που το κύκλωμα εμφανίζει περισσότερες από δύο συχνότητες. Τότε, ο προσομοιωτής εφαρμόζει ανάλυση μεγάλου σήματος σε συνδυασμό με PSS, προσδιορίζοντας το σημείο λειτουργίας για κάθε ένα από τα σήματα. Το συνολικό σημείο λειτουργίας ονομάζεται Quasi-Periodic Steady State (QPSS ανάλυση), διότι δεν εμφανίζει την περίοδο από κάποιο από τα σήματα του κυκλώματος, αλλά από την επαλληλία των σημάτων. Είναι φανερό πως με αυτή την ανάλυση ο χρήστης μπορεί να συμπεριλάβει μεγάλο αριθμό αρμονικών, φροντίζοντας για διάφορα φαινόμενα που ενδεχομένως δεν είναι εμφανή. Τέλος, σε πιο απλές περιπτώσεις, π.χ. ένα σύστημα ΑM, μπορεί να εφαρμοστεί και η ανάλυση "περιβλήματος" (envelope analysis), όπου ο προσομοιωτής επιλύει το κύκλωμα λαμβάνοντας υπόψη το σήμα baseband συχνότητας και εφαρμόζει τη λύση υπερθέτοντας το σήμα υψηλής συχνότητας. Έτσι εμφανίζεται μεγάλη επιτάχυνση καθώς το βήμα του επιλυτή ακολουθεί την υψηλή συχνότητα. Στα πλαίσια του PLL υψηλών συχνοτήτων και έχοντας ήδη επαληθεύσει την ορθή λειτουργία και των δύο συστημάτων, είναι απαραίτητη μια ανάλυση θορύβου. Η ανάλυση αυτή παρέχει πληροφορίες τόσο για τη συχνοτική απόκριση του συστήματος στο χείριστο σενάριο, όσο και για την ταυτόχρονη επίδραση όλων των ειδών θορύβου. Τα αποτελέσματα 109 Επαλήθευση και Εξειδικευμένες Αναλύσεις μπορούν να αναπαρασταθούν ως πλάτος σήματος, ως φάσμα ισχύος από τον μετασχηματισμό Fourier (FFT), ως φασματική πυκνότητα φάσης (Phase Spectral Density, PSD) και ως διάγραμμα φασικού θορύβου που δείχνει πόση ισχύς περιέχεται σε 1Hz [dBc/Hz] δεδομένης της απόστασης της συχνότητας του σήματος από τη συχνότητα ενδιαφέροντος. Όσον αφορά την προέλευση του θορύβου, αυτός μπορεί να είναι είτε θερμικός, είτε λευκός, είτε ροζ θόρυβος. Ο θερμικός θόρυβος, γνωστός και ως θόρυβος JohnsonNyquist, είναι παρόν σε κάθε κύκλωμα και προκαλείται από τη θερμική διέγερση των φορέων σε κατάσταση λειτουργίας, ανεξάρτητα όμως από το μέγεθος του ρεύματος που διαρρέει τους αγωγούς και τις συσκευές. Ο θόρυβος αυτής της κατηγορίας είναι εν γένει λευκός και το πλάτος ακολουθεί κατανομή Gauss, ωστόσο σε εξαιρετικά υψηλές συχνότητες (άνω των 80GHz) μεταβάλλεται[28]. Ο λευκός θόρυβος έχει σταθερό πλάτος στο φάσμα της συχνότητας, δηλαδή περιέχει όλες τις συχνότητες με το ίδιο πλάτος, και προστίθεται αντιπροσωπεύοντας διάφορα φαινόμενα αλλά και τυχαιότητα σε περιβαλλοντικές μεταβολές. Τέλος, ο ροζ θόρυβος (Flicker noise) αντιστοιχεί σε ατέλειες κατά την εκτύπωση του κυκλώματος στο foundry, δημιουργία και μεταβολή των ενεργών φορέων σε έναν ημιαγωγό κλπ. Στην ανάλυση θορύβου είναι κρίσιμο ο προσομοιωτής να λύνει το σύστημα φροντίζοντας να αντιλαμβάνεται τις αρμονικές που ενδιαφέρουν. Για αυτό επιλέγεται να υποδειχθεί ρητά το βήμα, ώστε να τηρείται το κριτήριο Nyquist για τις συχνότητες ενδιαφέροντος. Αν λοιπόν, για το N-fractional PLL των 10GHz, ενδιαφέρει μέχρι και η όγδοη αρμονική του σήματος εξόδου, το βήμα του προσομοιωτή τοποθετείται στα: strobePeriod = 1/(8*10GHz*2) = 6.25ps (4.1) Όπως θα φανεί στη συνέχεια, είναι σημαντικό ο αριθμός των αρμονικών να είναι δύναμη του 2. Προσδιορίζοντας το βήμα του επιλυτή, μειώνεται σημαντικά ο χρόνος αλλά και η ακρίβεια προσομοίωσης. Για το λόγο αυτό, το χρονικό διάστημα προσομοίωσης αυξήθηκε στα 10us, ώστε να υπάρχουν αρκετά δείγματα ώστε να εμφανιστεί η συχνότητα λειτουργίας στα διαγράμματα. Αυτό το διάστημα καθορίζει και την ελάχιστη συχνότητα θορύβου που γίνεται εμφανής, η οποία σύμφωνα με το θεώρημα Nyquist είναι 1/(2*10u) = 50kΗz. Επίσης, αυτό που ενδιαφέρει είναι η επίδραση του θορύβου σε συνθήκες κανονικής λειτουργίας. Για αυτό, οι πηγές θορύβου ενεργοποιούνται αφού το PLL κλειδώσει: 110 Κεφάλαιο 4ο Εικόνα 4.8: Transient Noise figure Επόμενη κίνηση είναι η εξαγωγή της εικόνας του θορύβου του συστήματος. Με τη χρήση του μετασχηματισμού Fourier, οι συχνότητες που κυριαρχούν στο σύστημα γίνονται εμφανείς. Στο παρακάτω διάγραμμα παρουσιάζονται, σε πλάτος και decibels, οι συχνότητες για το N-fractional PLL όταν αυτό κλειδώνει στα 10GHz και για το χειρότερο σενάριο θορύβου. Η DC συνιστώσα ταυτίζεται με το μέσο όρο του σήματος εξόδου. Όπως φαίνεται, απέχει από την τιμή VDD/2, διότι το duty cycle είναι μικρότερο του 0.5. Συγκεκριμένα, είναι περίπου 475mV/1.2V = 40%, τιμή αρκετά ικανοποιητική, καθώς είναι επαρκές ώστε να μη χαθεί κάποιος κύκλος από τον prescaler του Ndivider, καταναλώνοντας παράλληλα λιγότερη ισχύ. Παρατηρείται επίσης ότι η πυκνότητα ισχύος συγκεντρώνεται στις αρμονικές που απαρτίζουν την παλμοσειρά, όπως αναμένεται σύμφωνα με το θεώρημα των σειρών Fourier: (4.2) 111 Επαλήθευση και Εξειδικευμένες Αναλύσεις Εικόνα 4.9: Φάσμα αρμονικών στην έξοδο Ακόμα πιο αντιπροσωπευτικό για το τι συμβαίνει στο σύστημα είναι το διάγραμμα PSD, στο οποίο γίνεται εμφανές σε ποιες συχνότητες διαμοιράζεται η ισχύς. Στην πραγματικότητα και αυτή η μέτρηση βασίζεται στο μετασχηματισμό Fourier του σήματος εξόδου, ωστόσο αντί της τιμής του χρησιμοποιείται η αυτοσυσχέτιση (4.3) του σήματος. Παράλληλα, πραγματοποιείται εξομάλυνση των δεδομένων καθώς ο υπολογισμός γίνεται κατά μέσο όρο σε ένα "παράθυρο" δειγμάτων. Όσο μεγαλύτερο είναι το μέγεθός του, τόσο τείνει στην πραγματική λειτουργία. Από την άλλη, ένα μικρό "παράθυρο" ενδέχεται να μην αποτυπώσει αιχμηρές ακμές στο φάσμα ισχύος, αλλά υπολογίζεται ταχύτερα. Για την ακεραιότητα των μετρήσεων είναι σημαντικό τα δεδομένα που θα χρησιμοποιηθούν στο διάγραμμα PSD να είναι δύναμη του 2, μιας και σε αυτά εφαρμόζεται ο DFT (ο οποίος είναι FFT). Πιο πάνω αναφέρθηκε πως και ο αριθμός των αρμονικών που θα εξετασθούν πρέπει να είναι δύναμη του 2. Αυτό πλέον μπορεί να δικαιολογηθεί, αφού με τον τρόπο αυτό παρέχεται προς επεξεργασία αριθμός σημείων τα οποία συμπεριλαμβάνουν ακέραιο αριθμό περιόδων. Αποφεύγεται λοιπόν η περίπτωση που θα χρησιμοποιούνταν υποπερίοδοι, οι οποίες θα επηρέαζαν την εικόνα του φάσματος. Επιπλέον, αφού οι πηγές θορύβου ενεργοποιούνται δυναμικά, το διάστημα υπολογισμού του PSD είναι αυστηρά καθορισμένο: Δείγματα = Μέγιστη δύναμη του 2 κάτω από{χρόνος_θορύβου / strobePeriod} (4.4) Διάστημα_υπολογισμού_PSD = Δείγματα * strobePeriod (4.5) To ανωτέρω σκεπτικό απόκτησης ορθών αποτελεσμάτων παρατίθεται, καθώς δεν είναι αποτυπωμένο στη βιβλιογραφία. Παρατίθενται τα αποτελέσματα για "παράθυρα" εξομάλυνσης με τη μέθοδο Blackman πλάτους 512 και 4096 δειγμάτων. Τέλος, αξίζει να 112 Κεφάλαιο 4ο αναφερθεί πως εφαρμόζεται μια στάθμιση κατά 2/(μήκος_παραθύρου* strobePeriod) ώστε το πλάτος του σήματος να αποτυπώνεται σωστά. Εικόνα 4.10: Φασματική πυκνότητα φάσης (PSD) Αξίζει να αναφερθεί πως η ανάλυση θορύβου του N-fractional PLL διήρκησε 10:27:20, περίπου τρεις φορές λιγότερο από τη χρονική ανάλυση. Αντίστοιχο εγχείρημα για το EHF PLL λοιπόν, θα δέσμευε για περισσότερες από δυο εβδομάδες πολλούς υπολογιστικούς πόρους. Αντίθετα, προτιμήθηκε μια ανάλυση θορύβου αποκλειστικά στο VCO, ο οποίος κυριαρχεί στη συμβολή θορύβου. Παρακάτω παρατίθενται τα αντίστοιχα διαγράμματα για διάφορες τάσεις ελέγχου, δηλαδή συχνότητες λειτουργίας. Εικόνα 4.11: Transient noise στα 100GHz Από τη διάπλαση του θορύβου (noise figure) στο παραπάνω διάγραμμα, γίνεται φανερό ότι αυτός αυξάνει όσο η τάση ελέγχου συντονίζει το VCO σε συχνότητες μακριά από τα 100GHz. Αυτό το φαινόμενο είναι αναμενόμενο, διότι τότε η εφαρμοζόμενη τάση επιβάλλει στα στοιχεία Moscap να λειτουργούν στην περιοχή εξάντλησης. H επιπρόσθετη πηγή τάσης που αναφέρεται στην παράγραφο 3.1.2 έχει τέτοια τιμή ώστε οι Moscaps να βρίσκονται στη μέση της περιοχής λειτουργίας τους στα 100GHz. Στη συνέχεια 113 Επαλήθευση και Εξειδικευμένες Αναλύσεις εμφανίζονται τα αποτελέσματα για τάση ελέγχου ίση με 600mV, ωστόσο γενικεύονται για κάθε τάση ελέγχου. Εικόνα 4.12: Αρμονικές στην έξοδο του ταλαντωτή Εικόνα 4.13: Αντίστοιχο διάγραμμα για διάφορες τάσεις ελέγχου Εικόνα 4.14: PSD για τον ταλαντωτή Colpitts 114 Κεφάλαιο 4ο 4.4 Προσομοίωση συνθηκών και αξιοπιστίας Προτού το κύκλωμα εκτυπωθεί, είναι απαραίτητο να εξαχθούν λεπτομερείς μετρήσεις για τη λειτουργία του σε ακραίες περιβαλλοντικές συνθήκες και με κατασκευαστικές παρεκκλίσεις, αλλά και το προσδόκιμο της διάρκειας ζωής του. Ως γνωστόν, κάθε PDK που παρέχει το εκάστοτε χυτήριο περιέχει αρχεία που μοντελοποιούν τις συμπεριφορές των συσκευών. Οι φόρμουλες που χρησιμοποιούνται για να δημιουργήσουν τα χαρακτηριστικά (π.χ. παρασιτικές χωρητικότητες, αντιστάσεις, κλπ.) του κάθε μοντέλου λαμβάνουν υπόψη παράγοντες όπως η θερμοκρασία και το μέγεθος των συσκευών. Επομένως η προσομοίωση του κυκλώματος σε διάφορες συνθήκες είναι εξαιρετικά ενδιαφέρον ζήτημα. Επίσης, το χυτήριο παρέχει και στοιχεία (είτε ολοκληρωμένα μοντέλα, είτε πίνακες με μετρήσεις) για τη συμπεριφορά των δομικών στοιχείων με την πάροδο του χρόνου και για διαφορετικές συνθήκες λειτουργίας. Σκοπός είναι να ελεγχθεί εάν το σύστημα λειτουργεί εντός των προδιαγραφών ακόμα και σε αυτές τις περιπτώσεις. Οι πληροφορίες για τη συμπεριφορά των συσκευών στις ποικίλες περιβαλλοντικές συνθήκες και για ακραίες κατασκευαστικές ατέλειες εξάγονται έπειτα από μεγάλο αριθμό πειραμάτων σε διάφορα σημεία CVT (Clock frequency, Voltage, Temperature). Στο digital flow, αυτό το στάδιο περιλαμβάνει και το "χαρακτηρισμό" (characterization) των συσκευών, όπου από το αναλογικό σχέδιο μιας πύλης αποκτούνται οι πίνακες λειτουργίας, κατανάλωσης, χρόνων απόκρισης, κλπ. Με αυτό τον τρόπο και τη χρήση LUTs, μπορούν να προσομοιωθούν εκατομμύρια συσκευές σε λογικά χρονικά πλαίσια. Όσον αφορά το analog flow, ως επί το πλείστον ενδιαφέρει η επίδραση της θερμοκρασίας στις παραμέτρους της συσκευής και η διαφορά κατά τρεις τυπικές αποκλίσεις (περικλείοντας το 99.73% των περιπτώσεων) από την τυπική δόση προσμίξεων, άρα και την τυπική συγκέντρωση φορέων (οπών στα PMOS και ηλεκτρονίων στα NMOS). Εικόνα 4.15: Προσομοίωση του N-fractional PLL σε διαφορετικές θερμοκρασίες 115 Επαλήθευση και Εξειδικευμένες Αναλύσεις Εν γένει, η θερμοκρασία είναι ανάλογη της αντίστασης των αγωγών. Κι αυτό διότι, καθώς αυξάνει, προκαλεί παράλληλη αύξηση της κινητικότητας των φορέων οι οποίοι δε μετακινούνται με την ίδια ευκολία και κατευθυντικότητα. Κατ' επέκταση, σε υψηλότερες θερμοκρασίες το ρεύμα μειώνεται, κάτι που επιδεικνύεται στο παραπάνω διάγραμμα. Παρατηρείται καλή λειτουργία του PLL για το συγκεκριμένο εύρος θερμοκρασιών, ωστόσο το σύστημα κλειδώνει ταχύτερα για T=-10o λόγω της μεγαλύτερης ροής ρεύματος. Εικόνα 4.16: Προσομοίωση του EHF PLL σε διαφορετικές θερμοκρασίες Ωστόσο το EHF PLL δεν επιδεικνύει τόσο καλή συμπεριφορά στις υψηλές θερμοκρασίες. Ενώ το N-fractional PLL μπορεί να λειτουργήσει και σε υψηλότερες των 90o θερμοκρασίες, αυτό αρχίζει να αδυνατεί να κλειδώσει από τους 50o και άνω. Η αδυναμία αυτή εντοπίζεται στην ανάγκη υψηλής ακρίβειας των - παρασιτικών και μη - αντιδράσεων των παθητικών στοιχείων στο LC-tank κατά την ταλάντωση, αλλά και στη γενικότερη δυσκολία που εμφανίζεται κατά τον πολλαπλασιασμό της συχνότητας αναφοράς επί 4000 φορές. Όσον αφορά τις κατασκευαστικές αποκλίσεις, υπάρχουν οι εξής περιπτώσεις: • • • • • TT, όπου και τα NMOS και τα PMOS έχουν τις τυπικές τιμές φορέων FF, όπου και τα NMOS και τα PMOS έχουν αυξημένες προσμίξεις, άρα το ρεύμα και συνεπώς η κατανάλωση είναι επίσης αυξημένα SS, όπου και τα NMOS και τα PMOS έχουν μειωμένο αριθμό φορέων, άρα το ρεύμα είναι μειωμένο, όπως και η ταχύτητα απόκρισης FS, όπου τα ΝΜOS έχουν αυξημένο αριθμό προσμίξεων ενώ τα PMOS μειωμένο SF, όπου τα ΝΜΟS έχουν μειωμένες προσμίξεις και τα PMOS αυξημένες Στο σύστημα χρησιμοποιείται CMOS τεχνολογία, όπου το βασικότερο δομικό στοιχείο είναι ο αντιστροφέας(inverter). Δεδομένου ότι στην περίπτωση SF (FS) τα PMOS (ΝΜΟS) 116 Κεφάλαιο 4ο διαρρέονται από μεγαλύτερο ρεύμα, ο αντιστροφέας κυριεύεται από αυτό και λειτουργεί άνισα αλλά γρηγορότερα. Παρόλο που έτσι η απόκριση του κυκλώματος σε περίπτωση που η τάση τροφοδοσίας μειώνεται τίθεται υπό έλεγχο[29], στο συγκεκριμένο σύστημα η χειρότερη περίπτωση (Worst Case Scenario) είναι η SS, όπου η συγκέντρωση προσμίξεων είναι η ελάχιστη και για τα δύο είδη ημιαγωγών. Εικόνα 4.17: Συμπεριφορά N-fractional PLL για διαφορετικές θερμοκρασίες και προσμίξεις με iAmp=50uA Εικόνα 4.18: Συμπεριφορά N-fractional PLL για διαφορετικές θερμοκρασίες και προσμίξεις με iAmp=100uA 117 Επαλήθευση και Εξειδικευμένες Αναλύσεις Εικόνα 4.19: Αντίστοιχο διάγραμμα για το EHF PLL Παρατηρείται ότι τα περιθώρια λειτουργίας και στα δύο PLL (N-fractional και EHF) επηρεάζονται σημαντικά από τις κατασκευαστικές ατέλειες, με το σύστημα να αδυνατεί να έρθει σε ηρεμία στο worst case scenario, το οποίο εντοπίζεται στην περίπτωση που το ρεύμα είναι ελάχιστο, δηλαδή η περίπτωση SS σε συνδυασμό με αυξημένη θερμοκρασία. Ενδεχομένως για μεγαλύτερη διάρκεια προσομοίωσης το PLL να κλειδώνει, ωστόσο ο χρόνος αποκατάστασης θα απέχει σημαντικά από τις προδιαγραφές. Από αυτή τη σκοπιά, ίσως θα ήταν προτιμότερο να χρησιμοποιηθεί μια τεχνολογία που προσφέρει μεγαλύτερη βεβαιότητα για τις συγκεντρώσεις φορέων στις συσκευές. 118 Κεφάλαιο 4ο Όσον αφορά την απόκριση του κυκλώματος μετά την πάροδο κάποιων ετών, το εκάστοτε χυτήριο παρέχει στοιχεία για τη γήρανση των συσκευών που, σε συνδυασμό με τις περιβαλλοντικές συνθήκες, καθορίζουν τα μοντέλα για την προσομοίωση αξιοπιστίας (reliability analysis). Αυτό το στάδιο πειραμάτων έχει ιδιαίτερη βαρύτητα, καθώς όλο και περισσότερα συστήματα απαιτούν μακροχρόνια ορθή λειτουργία και δικλείδες ασφαλείας (DFR systems, π.χ. αεροναυπηγικές και αστροναυτικές εφαρμογές κ.α.). Τα στοιχεία αυτά αποκομίζονται από την τοποθέτηση πολλών wafer πυριτίου σε ειδικούς φούρνους, ώστε να προκύψουν ταχύτατα συσκευές που επιδεικνύουν μελλοντική συμπεριφορά. Σκοπός είναι η αναπαράσταση των φαινομένων Hot Carrier Injection (HCI) και Negative/Positive Bias Temperature Instability (NBTI/PBTI). Οι ημιαγωγοί ως γνωστόν παρουσιάζουν υψηλή ευαισθησία στην πυκνότητα φορέων σε κάθε επίπεδό τους. Με το χρόνο, οι φορείς αυτοί μεταβάλλονται, η δε συγκέντρωση που προκύπτει εν τέλει εξαρτάται και από τη θερμοκρασία λειτουργίας. Η "ένεση θερμού φορέα" (ΗCI) αφορά το φαινόμενο κατά το οποίο οι φορείς (οπές/ηλεκτρόνια) αποκτούν αρκετή κινητική ενέργεια ώστε να αποσπαστούν από την τροχιά της ενεργειακής στοιβάδας τους, μεταβαίνοντας είτε σε στοιβάδα ανώτερης τάξης είτε διαφεύγοντας ολοκληρωτικά από το άτομο. Καθώς η περίσσεια φορέων καταλήγει να απορροφάται από το διηλεκτρικό της πύλης, το φαινόμενο αυτό συμβάλλει στη σταδιακή μείωση των φορέων και συνεπώς του ρεύματος. Ο όρος "Hot" προκύπτει από την ενεργή θερμοκρασία που χρησιμοποιείται κατά τη μοντελοποίηση της πυκνότητας φορέων με τη συνάρτηση Fermi-Dirac και δε σχετίζεται με τη θερμοκρασία του κυκλώματος. Ωστόσο, μεγαλύτερη θερμοκρασία στο υπόστρωμα συνεπάγεται μεγαλύτερη κινητική ενέργεια των φορέων και άρα εκτενέστερη αποδόμηση HCI. Σε αντίθεση με το παραπάνω φαινόμενο, η "θερμοκρασιακή αστάθεια αρνητικής/θετικής πόλωσης" επηρεάζει το ρεύμα των συσκευών έμμεσα, με τη μεταβολή της τάσης κατωφλίου λόγω χημικών διεργασιών που τελούνται στην πύλη. Με τη σταδιακή αύξηση της τάσης αυτής επηρεάζεται η διαγωγιμότητα και το ρεύμα εκροής των συσκευών. Αφού τα PMOS λειτουργούν με VGS<0, η αποδόμηση NBTI αφορά κατά κόρον αυτά, ενώ για τα NMOS ενδιαφέρει αντίστοιχα η PBTI. Το φαινόμενο αυτό αποκτά όλο και περισσότερη βαρύτητα όσο οι κόμβοι κατασκευής γίνονται μικρότεροι. Η επίδραση 10 ετών λειτουργίας για δύο θερμοκρασιακές συνθήκες φαίνεται στο παρακάτω διάγραμμα. Είναι εμφανές πως το ρεύμα, άρα και ο χρόνος κλειδώματος, επηρεάζεται περισσότερο από τη γήρανση των συσκευών παρά από τη θερμοκρασιακή διαφορά μέχρι τους 70ο, όμως για υψηλότερες θερμοκρασίες το σύστημα αποτυγχάνει. Επίσης, συγκρίνοντας τις κυματομορφές μετά από 10 έτη, φαίνεται πως και το περιβάλλον γήρανσης επηρεάζει το ωριμασμένο μοντέλο των συσκευών. 119 Επαλήθευση και Εξειδικευμένες Αναλύσεις Εικόνα 4.20: Ανάλυση αξιοπιστίας του N-fractional PLL 120 Κεφάλαιο 4ο Εικόνα 4.21: Ανάλυση αξιοπιστίας του N-fractional PLL για διάφορες περιπτώσεις 121 Επαλήθευση και Εξειδικευμένες Αναλύσεις Εικόνα 4.22: Ομαδοποίηση κατά περίπτωση για iAmp=50uA Εικόνα 4.23: Ομαδοποίηση κατά περίπτωση για iAmp=100uA Πλέον μπορεί να εξαχθεί με ασφάλεια το συμπέρασμα ότι το ονομαστικό ρεύμα αντλίας αποτελεί την πιο κρίσιμη παράμετρο για την ταχύτητα κλειδώματος του βρόχου. Ως ρεύμα εκροής των NMOS και PMOS στο στάδιο εξόδου της CP, υπόκειται και αυτό στα φαινόμενα γήρανσης των συσκευών και όπως δείχθηκε παραπάνω είναι εξαιρετικά ευαίσθητο στις κατασκευαστικές ατέλειες αφού τα standard cells της τεχνολογίας 122 Κεφάλαιο 4ο λειτουργούν στα άκρα, λιγότερο ευαίσθητο στη θερμοκρασία και παρουσιάζει ικανοποιητική απόδοση στο πέρασμα του χρόνου. Εν γένει, σε κανένα σενάριο δεν παρατηρείται αστοχία του συστήματος με τα μοντέλα γήρανσης, όταν το fresh test και το stress test επιτυγχάνουν. Τέλος, όσον αφορά το EHF PLL, μέχρι στιγμής το RelXpert αλλά και ο ενσωματωμένος προσομοιωτής αξιοπιστίας του Spectre δεν υποστηρίζεται από το XPS, συνεπώς αυτός ο περιορισμός δεν επιτρέπει την ανάλυση αξιοπιστίας. Έτσι, όπως και οι συμβατικές χρονικές αναλύσεις του EHF PLL, προς το παρόν δεν είναι εφικτή η ολοκλήρωση της συγκεκριμένης ανάλυσης. 4.5 Monte Carlo Μια πιο ρεαλιστική προσέγγιση από την περίπτωση SS, όπου σε όλες τις συσκευές εκχωρούνται οι παράμετροι που θα τις καταστήσουν όσο πιο αργές ενδέχεται να προκύψουν από κατασκευαστικές ατέλειες, είναι η ανάλυση Monte Carlo. Η μέθοδος αυτή χρησιμοποιείται κατά κόρον σε ένα ευρύ φάσμα προβλημάτων όπου οι τιμές των μεταβλητών του εκάστοτε προβλήματος λαμβάνουν τυχαίες τιμές με άγνωστες κατανομές. Καθώς ο αριθμός των μεταβλητών αυξάνει, σύμφωνα με το κεντρικό οριακό θεώρημα η κατανομή τείνει προς την κανονική. Πάνω σε αυτό βασίζεται η απόδοση της συγκεκριμένης προσέγγισης, κατά την οποία διεξάγεται μεγάλος αριθμός προσομοιώσεων, με διαφορετικά σύνολα τιμών των μεταβλητών κάθε φορά, και στο τέλος ελέγχεται αν τα αποτελέσματα πληρούν τις προδιαγραφές. Η περίπτωση των κατασκευαστικών διακυμάνσεων στα χυτήρια ημιαγωγών ενδείκνυται για τη συγκεκριμένη ανάλυση. Είναι βέβαια απαραίτητη η ύπαρξη στατιστικών μοντέλων, δηλαδή η γνώση της κατανομής που ακολουθεί η κάθε μεταβλητή βάσει των κατασκευαστικών ατελειών. Για να εξαχθεί ένα ασφαλές συμπέρασμα για την ορθή λειτουργία του κυκλώματος, αρκεί να δοθεί περιθώριο 3*σ από την ονομαστική τιμή της κάθε παραμέτρου. Αυτό καλύπτει το 99.73% των περιπτώσεων σύμφωνα με το κεντρικό οριακό θεώρημα και την κανονική κατανομή. Η Cadence έχει αναπτύξει μια νέα μέθοδο δειγματοληψίας (LowDiscrepancy Sequence, LDS), η οποία χρησιμοποιεί μια αιτιοκρατική ακολουθία για να αποκομίσει ομοιόμορφη κάλυψη όλου του δειγματικού χώρου. Αποκτά έτσι μεγαλύτερη αποτελεσματικότητα από τις δύο άλλες μεθόδους δειγματοληψίας (Random και Latin Hypercube) και τα συμπεράσματα μπορούν να εξαχθούν με σημαντικά μικρότερο αριθμό προσομοιώσεων που αντιστοιχούν σε διαφορετικά σετ παραμέτρων. Είναι προφανές ότι για μεγάλο αριθμό προσομοιώσεων - 32 στη συγκεκριμένη περίπτωση - η εξέταση κάθε βάσης δεδομένων των αποτελεσμάτων ξεχωριστά έχει χαμηλή χρηστικότητα. Αντίθετα, προτείνεται η χρήση εκφράσεων και η αποτίμηση της απόδοσης του συστήματος γίνεται μέσα από τη στατιστική ανάλυση των τιμών που αυτές λαμβάνουν. Στον παρακάτω πίνακα εμφανίζονται οι εκφράσεις αυτές που ελέγχουν την τιμή της συχνότητας αμέσως μετά τον επιθυμητό χρόνο κλειδώματος (2us), ελέγχοντας έτσι τη συχνότητα ηρεμίας αλλά και το χρόνο αποκατάστασης. Επίσης, εμφανίζεται και η αντίστοιχη έκφραση για την τάση ελέγχου. Δίπλα, εμφανίζονται οι στατιστικές τιμές που αυτές οι εκφράσεις λαμβάνουν στο δειγματικό χώρο των 32 προσομοιώσεων. 123 Επαλήθευση και Εξειδικευμένες Αναλύσεις Output Min Max Mean Median Stddev average(clip((freq VT("/EHF") "rising" ?xName "time" ?mode "auto" ?threshold 9.944G 10.16G 10.01G 0.1) 2e-06 3e-06)) 10G 51.92M average(clip(VT("/Vcntl") 2e-06 3e-06)) 749.8m 983.7m 846m 835.6m 53.42m Το σημαντικότερο στοιχείο είναι η τυπική απόκλιση της συχνότητας (51.92 MHz), που δηλώνει ότι όλες σχεδόν οι περιπτώσεις θα έχουν συχνότητα λειτουργίας στο διάστημα [9.85 GHz, 10.15 GHz]. Εξίσου σημαντικό όμως είναι το ότι η ελάχιστη και η μέγιστη τιμή απέχουν ελάχιστα από τα 10GHz, που σημαίνει πως 32/32 δοκιμές λειτουργούν ορθά για ρεαλιστικές κατασκευαστικές ατέλειες. Τα αποτελέσματα αυτά μπορούν να απεικονιστούν και να εξαχθούν οι αντίστοιχες καμπύλες: Εικόνα 4.24: Ιστόγραμμα Monte Carlo για τη συχνότητα εξόδου του N-fractional PLL 124 Κεφάλαιο 4ο Εικόνα 4.25: Ιστόγραμμα Monte Carlo για την τάση ελέγχου του N-fractional PLL Επιπλέον, η αναλογία μεταξύ τάσεως ελέγχου και συχνότητας λειτουργίας φαίνεται από το παρακάτω διάγραμμα ετεροσυσχέτισης: Εικόνα 4.26: Διάγραμμα διασποράς και στατιστικές τιμές Ένα ιδιαίτερα χρήσιμο εργαλείο σε περίπτωση που τα αποτελέσματα δεν είναι τα επιθυμητά και χρειάζεται να γίνουν μεταβολές στο σχέδιο για να περιοριστεί η ευαισθησία 125 Επαλήθευση και Εξειδικευμένες Αναλύσεις του κυκλώματος σε κάποια μεταβλητή είναι η συμβολή αναντιστοιχίας (mismatch contribution). Στα ακόλουθα διαγράμματα γίνεται εμφανές ποια μεταβλητή επηρεάζει σημαντικότερα τη μέση συχνότητα και τη μέση τάση στην κατάσταση ηρεμίας. Εικόνα 4.27: Συμβολή κάθε κατασκευαστικής παραμέτρου στη διασπορά Εικόνα 4.28: Συμβολή κάθε κατασκευαστικής παραμέτρου στη γραμμική παλινδρόμηση 126 Κεφάλαιο 4ο Εικόνα 4.29: Συμβολή κάθε κατασκευαστικής παραμέτρου στην τετραγωνική παλινδρόμηση 127 Επίλογος Κεφάλαιο 5 Επίλογος 5.1 Συμπεράσματα Η σχεδίαση ASIC ως αντικείμενο μελέτης είναι ένα πεδίο που χρήζει μεγάλης εμβάθυνσης, ούτως ώστε να παραχθεί κάποιο ανταγωνιστικό σύστημα που θα διεκδικήσει μερίδιο της αγοράς. Η δημοτικότητα τους και διαρκής ζήτηση για νέα ASIC δικαιολογεί τις εξελιγμένες μεθόδους που έχουν αναπτυχθεί. Προς το παρόν, πρόκειται για μια βιομηχανία σε άνθιση που προσφέρεται για έρευνα, επαγγελματική αποκατάσταση και επενδύσεις. Ωστόσο ακόμα και οι μεγαλύτερες εταιρείες ημιαγωγών δε γνωρίζουν τι θα συμβεί όταν το όριο της τεχνολογίας με μήκος καναλιού 3.5nm επιτευχθεί. Κύριοι στόχοι της διπλωματικής εργασίας ήταν: • • • • • H σχεδιαστική προσέγγιση ενός συστήματος μικτού σήματος Η εφαρμογή των αρχών σχεδίασης με αναλογική επαλήθευση Η σύγκριση αποτελεσμάτων και επιδόσεων σε διαφορετικά επίπεδα αφαίρεσης των κυκλωματικών μοντέλων Η υλοποίηση ενός βρόχου κλειδώματος φάσης εξαιρετικά υψηλών συχνοτήτων Η εξερεύνηση των υπολογιστικών δυνατοτήτων των καινοτόμων εργαλείων EDA Φυσικά, επεδείχθη μόλις ένα μικρό μέρος του AMS design flow. Υπάρχουν ακόμα πολλά στάδια στη διαδικασία προτού μπορέσει κανείς να ισχυριστεί ότι το σύστημα είναι λειτουργικό. Ωστόσο, η front-end σχεδίαση έχει ολοκληρωθεί και τα αποτελέσματα δίνουν αισιοδοξία πως ένα PLL εξαιρετικά υψηλών συχνοτήτων μπορεί να σχεδιαστεί με τα προτεινόμενα κυκλώματα. Ακόμα πιο σημαντικό είναι το συμπέρασμα πως η μεθοδολογία αναλογικής επαλήθευσης αποτελεί ένα ανεκτίμητης βοήθειας εργαλείο κατά την ανάπτυξη οποιουδήποτε συστήματος. Το analog verification σε συνδυασμό με την top-down σχεδίαση επιβεβαιώθηκαν στην πράξη, καθώς αποφεύχθηκε το τρομακτικό κατά πολλούς respin. Παράλληλα, έγινε μια εκτενής καταγραφή των δυνατοτήτων των προσομοιωτών, ενώ αντίστοιχα παρακολουθήθηκαν η ακρίβεια και οι επιδόσεις των διαφόρων μοντελοποιήσεων, από high-level behavioral μέχρι τα εκτενή SPICE μοντέλα των θεμελιακών στοιχείων. Ενδεικτικά αποτελέσματα παρουσιάζονται στον επόμενο πίνακα: Επίπεδο μοντελοποίησης / προσομοιωτής Χρόνος προσομοίωσης Ακρίβεια αποτελεσμάτων wreal / digital wreal&table model / digital VCO@10GHz / AMS VCO@100GHz / AMS Νdivider@10GHz / AMS PD@10GHz / AMS 14s 23s 45min 2h5min 1h2min 29min Μικρή Μεσαία Μεσαία Μεσαία Μικρή Μικρή 128 Κεφάλαιο 5ο LPF@10GHz / AMS CP & LPF@10GHz / AMS Transistor level@10GHz / APS Transistor level@100GHz / APS Transistor level@10GHz / ΧPS Transistor level@10GHz / XPS & Partitioning Transistor level@100GHz / XPS Transistor level@100GHz / XPS & Partitioning Transistor level@100GHz / XPS & Conservative 28min 44min 32h 1000h 4h50min 21min20s 9h51min 8h55min 18h58min Μικρή - Μεσαία Μεσαία Υψηλή Υψηλή Υψηλή Υψηλή Υψηλή Υψηλή Χαμηλή Πάνω στο σχεδιαστικό κομμάτι, οφείλεται να τονιστεί πως τα πηνία που χρησιμοποιούνται είναι μοντελοποιημένα σε επίπεδο σχηματικού, δηλαδή το layout τους δεν έχει υλοποιηθεί. Ως γνωστόν, η εκπόνηση της υλοποίησης εντός του ολοκληρωμένου είναι μια πρόκληση που θα κρίνει σε μεγάλο βαθμό την επιτυχία του κυκλώματος. Επιπλέον, παρόλο που το σύστημα λειτουργεί ικανοποιητικά εντός των προδιαγραφών, ας μη παραβλεφθεί ότι το υποκύκλωμα του 100GHz prescaler στο διαιρέτη συχνότητας δε μπορεί να ανιχνεύσει συχνότητες μεγαλύτερες των 60GHz, για αυτό και χρησιμοποιήθηκε το αντίστοιχο ιδανικό αναλογικό μοντέλο. Επιπλέον, μέχρι σήμερα δεν έχει αποδειχθεί ότι ένας CMOS διαιρέτης συχνότητας είναι υλοποιήσιμος στα 45nm. Επομένως ίσως η χρήση τεχνολογίας SoI να είναι προτιμότερη. Αντίστοιχα, για την αντιμετώπιση της ευαισθησίας του κυκλώματος σε ελλιπείς προσμίξεις, θα πρέπει να χρησιμοποιηθεί κάποια ακριβότερη τεχνολογία με φωτολιθογραφικές μάσκες ακριβείας. Ευτυχώς, τα αναλογικά μοντέλα και η κυκλωματική αναπαράσταση επιτρέπουν εύκολη μετατροπή της τεχνολογίας και η analog verification μεθοδολογία ενδείκνυται για technology-independent σχεδίαση. Κλείνοντας, αξίζει να αναφερθεί πως στον κόσμο του EDA δεν είναι όλα ρόδινα, ψευδαίσθηση που μπορεί να δημιουργείται στον αναγνώστη. Ο μηχανικός πρέπει να έχει γνώσεις τόσο για το κύκλωμα που εξετάζει και να περιμένει την αναμενόμενη συμπεριφορά, όσο και για το ίδιο το εργαλείο και τις μεθόδους επίλυσης. Όπως φάνηκε και στην πράξη (βλ. παράγραφο 4.2), το ενδεχόμενο σφάλματος του προσομοιωτή είναι πραγματικό. Η πολυπλοκότητα προσομοίωσης των εξαιρετικά σύνθετων συστημάτων του σήμερα και του αύριο είναι μια πρόκληση τόσο μεγάλη, που από μόνο του το EDA αποτελεί κλάδο πολλών δισεκατομμυρίων και θέσεων εργασίας. Ενδεικτικό όλων αυτών είναι ότι οι περισσότεροι οργανισμοί ανάπτυξης ολοκληρωμένων κυκλωμάτων απασχολούν μηχανικούς που ειδικεύονται αποκλειστικά στη χρήση προσομοιωτών (CAD Engineers). 5.2 Πεδία έρευνας Ο κόσμος του EDA είναι διαρκώς εξελισσόμενος, ακολουθώντας από πολύ κοντά τις μεταβολές στην τεχνολογία, τις νέες σχεδιαστικές φιλοσοφίες και τις ανάγκες των λίγων κολοσσών που παράγουν την πλειοψηφία των ολοκληρωμένων που βρίσκονται σε κάθε πτυχή της ανθρώπινης καθημερινότητας. Η ανάπτυξη των εργαλείων είναι ουσιαστικά μια εφαρμογή των υπαρχόντων αλγορίθμων και αυτών που μελετώνται επί του παρόντος, σε ένα πακέτο λογισμικού. Μερικά πανεπιστήμια, όπως το Berkeley στην California, 129 Επίλογος ειδικεύονται στην εξερεύνηση νέων αλγορίθμων, μοντέλων, κλπ., όμως ομολογουμένως πρόκειται για ιδιαίτερη έρευνα με υψηλές απαιτήσεις και διαρκή επικοινωνία με τη βιομηχανία, ώστε να σφυγμομετρούνται οι ανάγκες των πελατών-σχεδιαστών. Από την άλλη, και οι HDL γλώσσες υπόκεινται σε διαρκή μεταβολή. Ενώ η Verilog-A και η VerilogAMS (first generation standards) ήταν αυτές που εισήγαγαν τη μοντελοποίηση συμπεριφοράς στο analog flow, το ΙΕΕΕ standard της SystemVerilog είναι αυτό που αλλάζει ιδιαίτερα, η οποία αναμένεται να επιβληθεί έναντι των υπολοίπων στα επόμενα χρόνια. Όσον αφορά τη σχεδίαση του PLL, υπάρχουν ακόμα πολλές εργασίες που πρέπει να εκπονηθούν ώστε να ολοκληρωθεί η υλοποίηση. Για παράδειγμα, η μοντελοποίηση δεν επιτρέπει οποιαδήποτε RF ανάλυση, καθώς δεν ακολουθήθηκε η μεθοδολογία για την εξουδετέρωση του hidden state[30]. Επιπλέον, για να μπορέσει να εκτυπωθεί το ολοκληρωμένο, πρέπει να σχεδιαστεί το layout του κυκλώματος. Αυτό αποτελεί μια επίπονη, ελαφρώς αυτοματοποιημένη διαδικασία που συνήθως επιτελείται από διαφορετική ομάδα σχεδιαστών. Τα στάδια του back-end περιλαμβάνουν το place & route, τον έλεγχο κανόνων σχεδίασης (DRC), την εξαγωγή παρασιτικών αντιστάσεων και χωρητικοτήτων(parasitics extraction), post-layout προσομοιώσεις κλπ. Υπάρχουν ακόμα πολλές δομημένες προσεγγίσεις που μπορούν να γίνουν, όπως αυτή του parasitic aware design, όπου η σχεδίαση του front-end γίνεται λαμβάνοντας υπόψη τις παρασιτικές συσκευές που προκύπτουν στο αντίστοιχο layout, σε κάθε βήμα. Υπάρχει αρκετή βιβλιογραφία όπου τα στάδια του back-end περιγράφονται αναλυτικά[31]. 5.3 Βιβλιογραφία [1] Lin, B. J., "Optical Lithography", SPIE Press, 2009 [2] http://www.businessinsider.com/15-billion-smartphones-in-the-world-22013-2, τελευταία πρόσβαση Ιούλιος 2014 [3] Y. Cheng, C. Hu, "MOSFET Modeling and BSIM3 User Guide", Kluwer Academic Publishers, 1999. [4] W. Liu, C. Hu, "BSIM3v3 MOSFET Model", από το πρώτο κεφάλαιο του "Silicon and Beyond–Advanced Device Models and Circuit Simulators", World Scientific Publishing Co., 2000. [5] Kenneth S. Kundert, Olaf Zinke, "The Designer's Guide to Verilog AMS", Springer Publications, 2004. [6] Simon Haykin, Michael Moher, "Συστήματα Επικοινωνίας", Παπασωτηρίου, 2010 [7] Geza Kolumban, "The Encyclopedia of Electrical and Electronics Engineering", Webster, 1999 [8] Από support.cadence.com, τελευταία πρόσβαση Οκτώβριος 2014: 130 Κεφάλαιο 5ο • • • • • • • • Verilog-AMS Real Valued Modeling Guide Cadence Verilog-AMS Language Reference Verilog Compilation Command-Line Options Guidelines on modeling analog circuits with WREAL SystemVerilog Reference irun User Guide AMS Designer INCISIVE Command-line Flow Use Model Virtuoso AMS Designer Simulator User Guide [9] J. McNames, "Second Order Filters", Portland State University, 2004 [10] http://sim.okawa-denshi.jp/en/CRCRkeisan.htm, τελευταία πρόσβαση Μάιος 2014 [11] Alan Oppenheim, "Discrete Time Signal Processing", Pearson Higher Education Inc., 2010 [12] Stefan Joeres, Hans-Werner Groh, Stefan Heinen, " Event Driven Analog Modeling of RF Frontends", ΙΕΕΕ, 2007 [13] http://www.designers-guide.org/Analysis/hidden-state.pdf, τελευταία πρόσβαση Αύγουστος 2014 [14] Από support.cadence.com, τελευταία πρόσβαση Οκτώβριος 2014: • • • • • • • • Virtuoso Schematic Editor XL User Guide Virtuoso Visualization and Analysis XL User Guide Virtuoso Spectre Circuit Simulator and Accelerated Parallel Simulator User Guide Virtuoso Simulator Circuit Components and Device Models Manual Using analogLib mtline in Spectre Simulations Component Description Format User Guide Analog Library Reference Guide Virtuoso Analog Design Environment XL User Guide [15] Geng Zheng, "Layout-accurate ultra-fast system-level design exploration through Verilog-AMS", PHD Dissertation, 2013. [16] Jri Lee, Yi-An Li, Meng-Hsiung Hung, Shih-Jou Huang, "A Fully-Integrated 77-GHz FMCW Radar Transceiver in 65-nm CMOS Technology ", IEEE JOURNAL OF SOLID-STATE CIRCUITS, 2010 [17] Gui Liu, Roc Berenguer, Yang Xu, "A MM-Wave Configurable VCO Using MCPW-Based Tunable Inductor in 65-nm CMOS", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS, 2011 [18] Gui Liu, Roc Berenguer, Yang Xu, Abe Akhiyat, Keya Kamtikar, "A 117mW 77GHz Receiver in 65nm CMOS with Ladder Structured Tunable VCO", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS, 2010 [19] C. Lee et al, " SiGe HBT Colpitts topology improvements", IEEE CSICS, 2004 131 Επίλογος [20] Chenming Calvin Hu, " Modern Semiconductor Devices for Integrated Circuits", Prentice Hall, 2009 [21] Sung Hyun Yang, Youggap You, Kyoung-Rok Cho, "A New Dynamic D-Flip-Flop Aiming at Glitch and Charge Sharing Free", IEICE TRANS. ELECTRON, 2003 [22] Daeik Kim, Jonghae Kim, Choongyeun Cho, "BUILDING BLOCKS FOR HIGH-SPEED TRANSCEIVERS", ISSCC, 2008 [23] Jean-Olivier Plouchart, Daiek Kim, Jonghae Kim, Victor Karam, Calvin Plett, Choongyeun Cho, Robert Trzcinski, Τ.J. Watson, "A 1.2V 15.6mW 81GHz 2:1 Static CML Frequency Divider with a Band-Pass Load in a 90nm SOI CMOS Technology", IEEE, 2007 [24] Jeong-Kyoum Kim, Jaeha Kim, Sang-Yoon Lee, Suhwan Kim Deog-Kyoon Jeong, "A 26.537.5 GHz Frequency Divider and a 73-GHz-BW CML Buffer in 0.13μm CMOS", IEEE, 2007 [25] G.K. Celler, S. Cristoloveanu, "Frontiers of silicon-on-insulator", Journal of Applied Physics, 2003 [26] Liqin Xue, Zipeng Zhang, "Differential Charge Pump Circuit for High Speed PLL Application", IEEE Symposium on Industrial Electronics and Applications, 2009 [27] Από support.cadence.com, τελευταία πρόσβαση Οκτώβριος 2014: • • • • • • • Analog Expression Language Reference Virtuoso Analog Distributed Processing Option User Guide Virtuoso RelXpert Reliability Simulator User Guide Cadence SKILL Language Reference Virtuoso® Spectre® Circuit Simulator and Accelerated Parallel Simulator RF Analysis User Guide OCEAN Language Reference Virtuoso Analog Design Environment GXL User Guide [28] L.B. Kish, "Stealth communication: Zero-power classical communication, zero-quantum quantum communication and environmental-noise communication", Applied Physics Letters, 2005 [29] "Analysis and Design of Digital Integrated Circuits", MIT dpt. of Electrical Engineering and Computer Science, 2003 [30] Kenneth Kundert, "Hidden State in SpectreRF", Designer's Guide Consulting, Inc., 2003 [31] Από support.cadence.com, τελευταία πρόσβαση Οκτώβριος 2014: • • • Virtuoso Layout Suite L User Guide Virtuoso Parasitic Aware Design User Guide Cadence Space-based Router and Chip Optimizer User Guide 132 Κεφάλαιο 5ο Επιπλέον βιβλιογραφία: • • • • • Bin Wan, " A DESIGN AND ANALYSIS OF HIGH PERFORMANCE VOLTAGE CONTROLLED OSCILLATORS", Msc. Dissertation, 2006 P. Schvan, M.T.Yang, S.P.Voinigescu et al, "CMOS SOCs at 100 GHz: System Architectures, Device Characterization, and IC Design Examples", ISCAS Proceedings, 2007 Michael Kraemer, "A High Efficiency Differential 60 GHz VCO in a 65 nm CMOS Technology for WSN Applications", IEEE Microwave and Wireless Components Letters, 2011 Jae Hoon Jeong, " Efficient Verification/Testing of System-on-Chip Through Fault Grading and Analog Behavioral Modeling", Phd. Thesis, 2013 Banafsheh Rezaeian, "Simulation and Verification Methodology of Mixed Signal Automotive ICs", Msc. Dissertation, 2012 5.4 SKILL Το Virtuoso που χρησιμοποιήθηκε κατά τη διάρκεια της διπλωματικής εργασίας για τη σχεδίαση και προσομοίωση των κυκλωμάτων, είναι ένα πολυσύνθετο λογισμικό που στοχεύει στην εξυπηρέτηση των αναγκών των χρηστών. Καθώς όμως η αγορά του EDA είναι περιορισμένη και το λογισμικό προορίζεται για εξειδικευμένη χρήση, σε συνδυασμό με το ότι οι επιθυμητές λειτουργίες μπορεί να διαφέρουν ακόμα και ανάμεσα σε διαφορετικά projects, η Cadence παρέχει τη δυνατότητα εξατομίκευσης μέσω της γλώσσας SKILL. Πρόκειται για μια LISP γλώσσα υψηλού επιπέδου στην οποία είναι γραμμένο το Virtuoso. Στην πράξη, οι χρήστες μπορούν να επιτελέσουν αμέτρητες λειτουργίες μέσω της SKILL και οι μεγαλύτερες εταιρείες ημιαγωγών προσλαμβάνουν άτομα για τη συγκεκριμένη εξειδίκευση. Ενδεικτικά, είναι εφικτή η εκτέλεση όλων των εντολών της γραφικής διεπαφής χρήστη (GUI), διαμόρφωση του UI, εκτέλεση script ώστε να αυτοματοποιούνται οι ανθρώπινες ενέργειες, pre- και post-processing κ.α. Στα πλαίσια της συγκεκριμένης διπλωματικής αναπτύχθηκαν αρκετά SKILL scripts για την ικανοποίηση των απαιτήσεων, την εποπτεία των αποτελεσμάτων και την επιτάχυνση της σχεδίασης. Παρακάτω παρατίθενται δύο, τα οποία εκδόθηκαν ως άρθρα στην ιστοσελίδα της Cadence. Μετονομασία στιγμιότυπων ώστε να εμφανίζουν το όνομα του κελιού Όταν τοποθετείται ένα οποιοδήποτε εξάρτημα στο σχηματικό, του εκχωρείται ένα μοναδικό όνομα. Η προεπιλογή για το όνομα αυτό είναι το γράμμα "I" (από τη λέξη Instance) και ένας αύξον αριθμός. Ωστόσο, αυτό δυσχεραίνει την κατανόηση του netlist καθώς και όσων μενού χρησιμοποιούν την ονομασία του στιγμιότυπου. Αντ' αυτού, είναι επιθυμητή η ονομασία του σε μια μορφή όνομαΚελιού#δείκτης. • Με τη συνάρτηση CCSsetInstNamePrefix ορίζεται το επιθυμητό format για τα στιγμιότυπα που θα τοποθετηθούν στο μέλλον. 133 Επίλογος procedure(CCSsetInstNamePrefix(cellView "d") let( (prop) ;; when the cellView object is indeed a cellView when(cellView~>objType == "cellView" if(dbFindProp(cellView "instNamePrefix") ;; and when the instNamePrefix property can be found then when(prop = dbFindProp(cellView "instNamePrefix") ;; unless the property is already the same as the cell ;; name, update it to be the cell name unless(prop~>value == cellView~>cellName prop~>value = cellView~>cellName ); unless ); when else dbCreateProp(cellView "instNamePrefix" "string" cellView~>cellName) ;;else );if ); when ); ); procedure CCSsetInstNamePrefix π.χ.: mycellid = dbOpenCellViewByType("test" "mycell" "symbol" "schematicSymbol" "a") CCSsetInstNamePrefix(mycellid) • Στις περισσότερες περιπτώσεις αυτό είναι επιθυμητό να εφαρμοστεί στα κυκλώματα και θεμελιακά στοιχεία μιας ολόκληρης βιβλιοθήκης. Η συναρτηση CCSsetInstNamePrefixLib φροντίζει για αυτό. procedure(CCSsetInstNamePrefixLib(libName "t") let( (cv) ;; process each cell dd object for the library foreach(cell CCSgetSymbolCells(libName) ;; when the symbol cellview can be opened in append mode ;; process the cellview to update the instNamePrefix and ;; then save and close the cellview when(cv = dbOpenCellViewByType(cell~>lib cell~>name "symbol" "schematicSymbol" "a") CCSsetInstNamePrefix(cv) dbSave(cv) dbClose(cv) ); when ); foreach ); let ); procedure CCSsetInstNamePrefixLib π.χ.: CCSsetInstNamePrefixLib("test") • Η μετατροπή των ήδη τοποθετημένων στιγμιότυπων σε κάποιο cellView στο επιθυμητό format γίνεται με τη συνάρτηση CCSRenameInstanceToPrefix. procedure(CCSRenameInstanceToPrefix(lib cell) let((cv index prefix maxIndex str) unless(cv = dbOpenCellViewByType(lib cell "schematic" "schematic" "a") 134 Κεφάλαιο 5ο error("Unable to open schematic of library %s cell %s, make sure it exists\n" lib cell) );;unless foreach(header cv~>instHeaders prefix=header~>master~>instNamePrefix if(prefix==header~>cellName then maxIndex=0 foreach(inst header~>instances if(substring(inst~>name 1 strlen(prefix))==prefix then index=atoi(substring(inst~>name (strlen(prefix)+1))) if(index if(index>maxIndex maxIndex=index) );;if );;if );;foreach foreach(inst header~>instances if(substring(inst~>name 1 strlen(prefix))==prefix then if(atoi(substring(inst~>name (strlen(prefix)+1))) then maxIndex=maxIndex+1 inst~>name=strcat(prefix sprintf(str, "%d", maxIndex)) else printf("NOTICE: Skip renaming instance %s as it appears to be named manually\n" inst~>name) );;if else maxIndex=maxIndex+1 if(!(substring(inst~>name 1 1)=="I" && atoi(substring(inst~>name 2))) printf("NOTICE: Instance %s has been renamed\n" inst~>name) );;if inst~>name=strcat(prefix sprintf(str, "%d", maxIndex)) );;if );;foreach );;if );;foreach schRenumberInstances(cv) );;let ) ;;procedure CCSRenameInstanceToPrefix π.χ.: CCSRenameInstanceToPrefix("myLib" "myCell") • Τις περισσότερες φορές είναι χρήσιμο η διαδικασία τριών βημάτων που μόλις περιγράφηκε να εφαρμοστεί απευθείας. Πρέπει φυσικά να ληφθεί υπόψη ότι σε βιβλιοθήκες PDK ενδέχεται αυτό να μην είναι θεμιτό ή ακόμα και επιτρεπτό. procedure(CCSRenameInstanceCellName(lib cell) let((cv index prefix maxIndex str) unless(cv = dbOpenCellViewByType(lib cell "schematic" "schematic" "a") error("Unable to open schematic of library %s cell %s, make sure it exists\n" lib cell) );;unless foreach(header cv~>instHeaders if(dbFindProp(header~>master "instNamePrefix") then if(header~>master~>instNamePrefix==header~>cellName then prefix=header~>master~>instNamePrefix else prefix=header~>cellName 135 Επίλογος header~>master~>instNamePrefix=header~>cellName );;if else dbCreateProp(header~>master "instNamePrefix" "string" header~>cellName) prefix=header~>cellName header~>master~>instNamePrefix=header~>cellName );;if maxIndex=0 foreach(inst header~>instances if(substring(inst~>name 1 strlen(prefix))==prefix then index=atoi(substring(inst~>name (strlen(prefix)+1))) if(index if(index>maxIndex maxIndex=index) );;if );;if );;foreach foreach(inst header~>instances if(substring(inst~>name 1 strlen(prefix))==prefix then if(atoi(substring(inst~>name (strlen(prefix)+1))) then maxIndex=maxIndex+1 inst~>name=strcat(prefix sprintf(str, "%d", maxIndex)) else printf("NOTICE: Skip renaming instance %s as it appears to be named manually\n" inst~>name) );;if else maxIndex=maxIndex+1 if(!(substring(inst~>name 1 1)=="I" && atoi(substring(inst~>name 2))) printf("NOTICE: Instance %s has been renamed\n" inst~>name) );;if inst~>name=strcat(prefix sprintf(str, "%d", maxIndex)) );;if );;foreach );;foreach schRenumberInstances(cv) );;let ) ;;procedure CCSRenameInstanceCellName π.χ.: CCSRenameInstanceCellName("myLib" "myCell") Εξαγωγή προδιαγραφών σε συνεδρία ADE-XL μη γραφικού περιβάλλοντος Στο περιβάλλον της XL έκδοσης του ADE δίνεται η δυνατότητα ορισμού προδιαγραφών (specifications), οι οποίες χρησιμοποιούνται για την εποπτική εξέταση της προσομοίωσης. Για παράδειγμα, μια προδιαγραφή θα μπορούσε να είναι ότι η τάση υπεροδήγησης δεν επιτρέπεται να ξεπερνά μια δεδομένη τιμή, ή ότι η τάση τροφοδοσίας δεν μεταβάλλεται περισσότερο από την ονομαστική κατά ένα επίσης δεδομένο ποσοστό. Αυτή η λειτουργικότητα βρίσκει μεγάλη εφαρμογή σε τεστ παλινδρόμησης, όπου εκτελείται μεγάλος αριθμός προσομοιώσεων ώστε να επιβεβαιωθεί η ικανοποιητική συμπεριφορά. Ο χρήστης ενημερώνεται με την κατάσταση των αποτελεσμάτων (αν δηλαδή η προδιαγραφή πληρούται ή όχι, ή αν είναι κοντά στο επιθυμητό σημείο). Ωστόσο η ενημέρωση αυτή δεν είναι εφικτή σε ένα batch mode session του ADE-XL, διότι ο αλγόριθμος ελέγχου γίνεται στο γραφικό περιβάλλον και όχι από τον προσομοιωτή. Η συνάρτηση CCSExportOutputsWithSpecs που αναπτύχθηκε αντλεί τα specifications από το session εκτελεί τους απαραίτητους ελέγχους, ενώ αποθηκεύει τα αποτελέσματα σε ένα αρχείο DSV. 136 Κεφάλαιο 5ο procedure(CCSExportOutputsWithSpecs(sdb histName) let((hist ckpt resDir rdb myPort spec str fileName ) (hist = (axlGetHistoryEntry sdb histName)) (ckpt = (axlGetHistoryCheckpoint hist)) (resDir = (axlGetHistoryResults hist)) (rdb = (axlReadResDB resDir)) (fileName = strcat("./" histName ".results")) (myPort = outfile(fileName)) foreach(output funcall((rdb->outputs)) (spec = (axlGetSpecData ckpt (output~>name) (output~>testName) )) case(car(spec) (("gt" "max") cond(((evalstring(nth(1 spec)) < (output->value)) (str = "pass\n") ) (((evalstring(nth(1 spec)) < (1.1 * (output->value))) || (evalstring(nth(1 spec)) ((output->value) / 1.1))) (str = "near\n") ) (t (str = "fail\n") ) ) ) (("lt" "min") cond(((evalstring(nth(1 spec)) > (output->value)) (str = "pass\n") ) (((evalstring(nth(1 spec)) > ((output->value) / 1.1)) || (evalstring(nth(1 spec)) ((output->value) * 1.1))) (str = "near\n") ) (t (str = "fail\n") ) ) ) ("range" cond((((evalstring(nth(1 spec)) < (output->value)) && (evalstring(nth(2 spec)) > (output->value))) (str = "pass\n") ) (((evalstring(nth(1 spec)) < (1.1 * (output->value))) && (evalstring(nth(2 spec)) ((output->value) / 1.1))) (str = "near\n") ) (((evalstring(nth(1 spec)) < ((output->value) / 1.1)) && (evalstring(nth(2 spec)) ((output->value) * 1.1))) (str = "near\n") ) (t (str = "fail\n") ) ) ) < > > > 137 Επίλογος ("tol" if((((output->value) * evalstring(nth(1 spec))) > 0) then cond(((abs((evalstring(nth(1 spec)) (output->value)) ) < ((abs(evalstring(nth(1 spec))) * evalstring(nth(2 spec))) / 100)) (str = "pass\n") ) (t if(((output->value) > 0) then cond(((((output->value) < evalstring(nth(1 spec))) && ((1.1 * (output->value)) > (evalstring(nth(1 spec)) * (1 - (evalstring(nth(2 spec)) / 100))))) (str = "near\n") ) ((((output->value) > evalstring(nth(1 spec))) && (((output->value) / 1.1) < (evalstring(nth(1 spec)) * (1 + (evalstring(nth(2 spec)) / 100))))) (str = "near\n") ) (t (str = "fail\n") ) ) else cond(((((output->value) > evalstring(nth(1 spec))) && ((1.1 * (output->value)) < (evalstring(nth(1 spec)) * (1 - (evalstring(nth(2 spec)) / 100))))) (str = "near\n") ) ((((output->value) < evalstring(nth(1 spec))) && (((output->value) / 1.1) > (evalstring(nth(1 spec)) * (1 + (evalstring(nth(2 spec)) / 100))))) (str = "near\n") ) (t (str = "fail\n") ) ) ) ) ) else if((evalstring(nth(1 spec)) == (output->value)) (str = "pass\n") (str = "fail\n") ) ) ) ) if(spec fprintf(myPort "%-20s %-10s %-10s %-10s %L %s" (output->testName) (output->cornerName) (output->name) (output->type) (output->value) str ) ) ) close(myPort) ) ) Εξαιρετικό ενδιαφέρον παρουσιάζουν και οι "ενεργοποιητές" (triggers) που διαθέτει το Virtuoso, δηλαδή συγκεκριμένα σήματα που υποδεικνύουν ότι μια συγκεκριμένη ενέργεια έχει εκκινήσει ή περατωθεί. Αυτό ακριβώς εκμεταλλεύεται η συνάρτηση CCSExportOutputsPostProc, η οποία αποτελεί ένα περιτύλιγμα της 138 Κεφάλαιο 5ο CCSExportOutputsWithSpecs ώστε να συνδέεται με το trigger runFinished που δηλώνει ολοκλήρωση μιας προσομοίωσης, ώστε να εκτελείται αυτόματα και να εξάγει τα απαραίτητα δεδομένα. procedure(CCSExportOutputsPostProc(sessionName runId entry errCode) let((histName sdb) printf("sessionName=%L runId=%L entry=%L errCode=%L" sessionName runId entry errCode) histName = axlGetHistoryName( axlGetRunData( sessionName runId ) ) sdb=axlGetMainSetupDB(sessionName) CCSExportOutputsWithSpecs(sdb histName) ) ) π.χ.: axlsession = axlCreateSession(getCurrentTime()) ;;create a unique session sdb = axlSetMainSetupDBLCV(axlsession "testlib" "testcell" "adexl" ?mode "r") ;;get the desired setup axlSessionConnect(axlSession "runFinished" 'CCSExportOutputsPostProc) ;;set the procedure to be triggered by a finished run axlRunAllTests( axlsession axlGetCurrentRunMode(sdb)) 5.5 Ακρωνύμια A2D AC ADPLL AMS AM ASIC ASK BE CAD CIC CIW CM CML CP CR CTOS CTS CVT D2A DC DFR DFT Analog to Digital converter Alternative Current All Digital PLL Analog Mixed Signal Amplitute Modulation Application Specific Integrated Circuit Amplitute Shift Keying Back-End Computer Aided Design Custom IC Design Command Interpreter Window Connect Module Current Mode Logic Charge Pump Connect Rule C-to-Silicon Compiler Clock Tree Synthesis Clock frequency, Voltage and Temperature points Digital to Analog converter Direct Current Design for Reliability systems Discrete Fourier Transform 139 Επίλογος DMS DRC DSP DTMF EDA EHF ETS FED FFT FIR FPGA GDSII HB HCI HDL IC ICD IEEE IIP3 ITU LDS LPF LUT LVS N/P BTI N/PMOS OOP PD PDK PLL PPA PSD PSK PSS PVS QPSS RC RF RNM RTL SDF SHF SN SoC SOI SVDC Digital Mixed Signal Design Rule Check Digital Signal Processor Dual Tone Multi Frequency signaling Electronic Design Automation Extremely High Frequencies Encounter Timing System Front-End Design Fast Fourier Transformation Finite Impulse Response Field Programmable Gate Array Graphic Database System 2 Harmonic Balance Hot Carrier Injection Hardware Definition Language Integrated Circuit Digital IC Design Institute of Electrical and Electronics Engineers Third order Intercept Point International Telecommunication Union Low-Discrepancy Sequence Low Pass Filter Look-Up Table Layout Versus Schematic Negative/Positive Bias Temperature Instability N/P channel Metal Oxide Semiconductor Object Oriented Programming Phase Detector Process Development Kit Phase-Locked Loop Power-Performance-Area Phase Spectral Density Phase Shift Keying Periodic Steady State Physical Verification System Quasi-Periodic Steady State RTL Compiler Radio Frequencies Real Number Modeling (συναντάται επίσης ως RVM - Real Value Modeling) Register Transfer Level Standard Delay Format Super High Frequencies Shooting Newton System on Chip Silicon On Insulator SystemVerilog Discrete RNM Committee 140 Κεφάλαιο 5ο TSPC VAMS VCO VSB XOR True Single-Phase Clock Verilog-AMS Voltage Controlled Oscillator Vestigial Side Band eXclusive OR 141
© Copyright 2024 Paperzz