Σχεδίαση µε CAD tools Χρ. Καβουσιανός Επίκουρος Καθηγητής
Εισαγωγή Σχεδίασης Σύγχρονες Απαιτήσεις Σχεδίασης Χρήση Αυτόµατων Εργαλείων (EDA) Εισαγωγή Σχεδίασης (design entry): Περιγραφή συστήµατος στην µορφή που αναγνωρίζει ένα εργαλείο Σχεδίαση Έλεγχο Τεκµηρίωση Κατασκευή Σχηµατικό Κύκλωµα Περιγραφή Κυκλώµατος σε χαµηλό επίπεδο Χρήση συµβόλων για πύλες Βολική για τον σχεδιαστή. Μετατροπή σε αρχείο για Η/Υ Χρήση κειµένου αντί για σύµβολα πυλών Βολική για κανονικές και επαναλαµβανόµενες δοµές. HDLs Ο σχεδιαστής περιγράφει & ο Η/Υ σχεδιάζει. Η περιγραφή γίνεται σε υψηλό και αφαιρετικό επίπεδο Αποδοτική σχεδίαση περίπλοκων συστηµάτων Σχεδίαση Κυκλωµάτων µε CAD 2
Μεθοδολογία Σχεδίασης Απαιτήσεις και Περιορισμοί Διερεύνηση Αρχιτεκτονικής και Διαμέριση A B Απαιτήσεις και Περιορισμοί Λογισμικού Απαιτήσεις και Περιορισμοί Υλικού Σύνθεση Επαλήθευση μετά τη σύνθεση Σχεδίαση Μονάδων S/W Σχεδίαση Μονάδων H/W Εντάξει; Όχι Επαλήθευση Μονάδων S/W Επαλήθευση Μονάδων H/W Ναι Φυσική Υλοποίηση Όχι Εντάξει; Ναι Εντάξει; Ναι Όχι Φυσική Επαλήθευση Ολοκλήρωση S/W Ολοκλήρωση H/W Integration H/W Εντάξει; Όχι Επαλήθευση Ολοκλήρωσης S/W Επαλήθευση Ολοκλήρωσης H/W Ναι Κατασκευή Όχι Εντάξει; Εντάξει; Ναι Ναι Όχι Δοκιμή A B Σχεδίαση Κυκλωµάτων µε CAD 3
ιαµέριση - Partitioning Εφαρµογή στρατηγικής ιαίρει και Βασίλευε για επίλυση προβληµάτων. Λογική ιαµέριση ιαµέριση Υλικού/Λογισµικού Προδιαγραφές Υψηλού Επιπέδου UML: Unified Modeling Language Σχεδίαση Κυκλωµάτων µε CAD 4
Σχεδίαση µε Σχηµατικό Είναι παλιά µέθοδος αλλά χρησιµοποιείται και σήµερα για σχεδίαση τυπωµένων καρτών. Η σχεδίαση γίνεται σε σελίδες ή φύλλα (schematic sheets). Σε κάθε σελίδα τοποθετούνται αντικείµενα, όπως λογικές πύλες και διασυνδέονται στα πλαίσια ενός κυκλώµατος. οµικά µ στοιχεία σχηµατικού: πύλες, θύρες ρς εισόδου/εξόδου και γραµµές διασύνδεσης. Τα ηλεκτρονικά στοιχεία τοποθετούνται πάνω σε πλέγµα σχεδίασης (Grid). Ένα κύκλωµα αποτελείται από περισσότερες της µίας σχηµατικές σελίδες. εν είναι καλή µέθοδος για πολύπλοκα κυκλώµατα (χρησιµοποιείται µόνο για PCBs) Σχεδίαση Κυκλωµάτων µε CAD 5
Σύµβολο θύρας εισόδου Όνοµα θύρας εισόδου Γραµµή µε Fanout 2 Σχεδίαση µε Σχηµατικό Σύµβολο πύλης ΚΑΙ Reference Designator Γραµµή ιασύνδεσης Σύµβολο θύρας εξόδου Επαφή Αριθµοί pins του component Όνοµα κυττάρου Σχεδίαση Κυκλωµάτων µε CAD 6
Σχεδίαση µε Σχηµατικό Τα αντικείµενα που τοποθετούνται σε ένα σχηµατικό επιλέγονται από µία βιβλιοθήκη κυττάρων (Design Library). Μία βιβλιοθήκη περιέχει πρωταρχικές πύλες (primitive gates). Τα κύτταρα (cells) περιέχουν πληροφορίες για διάφορα επίπεδα σχεδίασης: εικονίδιο, περιγραφή συµπεριφοράς,µέγεθος, δοµή, κατανάλωση κλπ. Πρόβληµα χρήσης εργαλείων: έλλειψη κοινής ονοµατολογίας, ακόµη και σε βασικά κύτταρα (cells). Μειονέκτηµα: δεν µπορεί να µεταφερθεί ένας σχεδιασµός από ένα εργαλείο µίας συγκεκριµένης εταιρίας σε ένα εργαλείο µίας άλλης εταιρίας. Σχεδίαση Κυκλωµάτων µε CAD 7
Ιεραρχική Σχεδίαση Για την µείωση του µεγέθους και της πολυπλοκότητας των σχηµατικών χρησιµοποιείται η τεχνική της ιεραρχίας: Οσχεδιασµός δεν εκτείνεται µόνο σε επιφάνεια, αλλά και σε επίπεδα, ώστε να µειώνεται η πολυπλοκότητα περιγραφής του. ηµιουργούµε κάποια σχηµατικά και τα αντιστοιχούµε σε ιεραρχικά blocks τα οποία αποκρύπτουν την δοµή των σχηµατικών. Τα ιεραρχικά blocks παρέχουν µόνο την απαραίτητη πληροφορία για την διασύνδεση τους, δηλαδή ονόµατα και τύπο εισόδων και εξόδων. Τα ιεραρχικά blocks µπορούν να χρησιµοποιηθούν για να σχηµατίσουν ιεραρχικά blocks υψηλότερου επιπέδου. Το κύκλωµα µετατρέπεται σε απλές λογικές πύλες, εφαρµόζοντας την διαδικασία επιπεδοποίησης της σχεδίασης (flattening). Σχεδίαση Κυκλωµάτων µε CAD 8
Ιεραρχική Σχεδίαση A 0 n 1 S A 1 A 2 Σχηµατικό C Ιεραρχικό block A 0 A 1 A 2 S C C in Σχηµατικό 4 bit αθροιστή Β 0 D 0 Β 1 D 1 Β 2 D 2 Β 3 D 3 FA 0 FA 1 FA 2 FA 3 A 0 A 1 A 2 S C A 0 A 1 A 2 S C A 0 A 1 A 2 S C A 0 A 1 A 2 S C C out S 0 S 1 S 2 S 3 Α 0 Α 1 Α 2 Α 3 Α 4 Α 5 Α 6 Α 7 Β 0 Β 1 Β 2 Β 3 Β 4 Β 5 Β 6 Β 7 Β 0 Β 1 Β 2 Β 3 D 0 D 1 D 2 D 3 Β 0 Β 1 Β 2 Β 3 D 0 D 1 D 2 D 3 Β 0 Β 1 Β 2 Β 3 D 0 D 1 D 2 D 3 C in C out S 0 S 1 S 2 S 3 Ιεραρχικό block Αθροιστή 4 Bits C in C out C in C out S 0 S 1 S 2 S 3 S 0 S 1 S 2 S 3 E 0 E 1 E 2 E 3 E 4 E 5 E 6 E 7 Σχηµατικό 8 bit αθροιστή Σχεδίαση Κυκλωµάτων µε CAD 9
Κανόνες Σχεδίασης Σχηµατικό Κάθε κύτταρο µπορεί να τοποθετηθεί σε πολλαπλά αντίγραφα στο ίδιο σχηµατικό. Κάθε αντίγραφο ονοµάζεται οντότητα (instance) και αποκτά µοναδικό όνοµα. Στην ιεραρχική περιγραφή ενός κυκλώµατος, τα ονόµατα δίνονται µε την δενδρική δ µορφή ή (σαν ονόµατα αρχείων σε µία ί δοµή δίσκου). ) Κάθε κύτταρο αναπαρίσταται από ένα σύµβολο (εικονίδιο). Για τα ιεραρχικά blocks δηµιουργούµε σύµβολα (συνήθως παραλληλόγραµµα) µεθύρες εισόδου/εξόδου για την διασύνδεση τους. Β 0 Β 1 Β 2 Β 3 D 0 D 1 D 2 D 3 C in C out S 0 S 1 S 2 S 3 Σχεδίαση Κυκλωµάτων µε CAD 10
Σχηµατικό Γραµµές ιασύνδεσης Εσωτερικές γραµµές: διασυνδέουν αντικείµενα ενός σχηµατικού. Εξωτερικές γραµµές: διασυνδέουν το σχηµατικό µε το περιβάλλον του (θύρες εισόδου/εξόδου). Τα ονόµατα γραµµών ακολουθούν την ιεραρχική ονοµατολογία. Οι γραµµές ξεκινούν και καταλήγουν στους ακροδέκτες (pins). Πολλά οµοειδή σήµατα, σχηµατίζουν διαύλους (buses). Χρησιµοποιούνται στα κυκλώµατα επεξεργασίας δεδοµένων (DataPaths). Σήµατα µηοµοειδή, οµαδοποιούνται σε bundles. Off-page connectors: διασυνδέουν πύλες που βρίσκονται σε διαφορετικές σελίδες. Σχεδίαση Κυκλωµάτων µε CAD 11
Σχηµατικό ύο γραµµές που τέµνονται σε ένα σηµείο ΕΝ είναι απαραίτητα διασυνδεδεµένες µεταξύ τους a a Επαφή (junction) b b Συνήθως το εργαλείο διευκρινίζει µε διάφορους τρόπους την ύπαρξη διασυνδέσεων, όπως µε την χρήση τελείας στο σηµείο τοµής. Σχεδίαση Κυκλωµάτων µε CAD 12
Σχηµατικό Components ή Κύτταρα (cells); Το component διαφέρει από το απλό κύτταρο καθώς αντιπροσωπεύει ένα ολοκληρωµένο, το οποίο µπορεί να αποτελείται από πολλαπλά όµοια κύτταρα. Ο σχεδιαστής εισάγει απλά κύτταρα. Το εργαλείο λί οµαδοποιήσει τα κύτταρα σε components (chips),µε στόχο την ελαχιστοποίηση των απαραίτητων διασυνδέσεων. Με βάση την οµαδοποίηση γίνεται και ανάθεση των αριθµών των pins (ακροδεκτών) του ολοκληρωµένου στις γραµµές του κυκλώµατος. Σχεδίαση Κυκλωµάτων µε CAD 13
Α B C D E F G H Σχηµατικό n 1 n 6 n 2 n 7 n 3 n 4 n 5 6 R 1 R 2 1A 1 1 Vcc 1A 1 1 Vcc 1B 2 2 4B 1B 2 2 4B Out 1Y 3 3 4A n 2 1Y 3 3 4A 2A 4 4 4Y 2A 4 4 4Y n 4 2B 5 5 3B 2B 5 5 3B n 1 2Y 6 6 3A 2Y 6 6 3A Gnd 7 7 3Y n 3 Gnd 7 7 3Y n 5 AB EFGHCD Out Connector Τα ονόµατα των components (R 1, R 2 ) ονοµάζονται "Reference Designators" και καθορίζονται αυτόµατα από το εργαλείο σχεδίασης Σχεδίαση Κυκλωµάτων µε CAD 14 n 7
Σχηµατικό Αφού ολοκληρωθεί η εισαγωγή της σχεδίασης, πρέπει να γίνει έλεγχος για πιθανά λάθη σχεδίασης από τον "Schematic screener". Τελικό βήµα: τοποθέτηση και διασύνδεση των στοιχείων στο PCB. Μετά την τοποθέτηση και διασύνδεση γίνονται γνωστές οι ακριβείς διασυνδέσεις (ακριβείς χωρητικότητες και καθυστερήσεις γραµµών). Το netlist ενός σχηµατικού χρησιµοποιείται για την περιγραφή του κυκλώµατος µε ASCII αρχείο. Χρησιµοποιείται για την επικοινωνία µεταξύ διαφορετικών εργαλείων (πχ. EDIF). Σχεδίαση Κυκλωµάτων µε CAD 15
Γλώσσες Σχεδίασης σε Χαµηλό Επίπεδο Περιγράφουν ένα κύκλωµα (σε επίπεδο δοµής) µε κείµενο. Η σχεδίαση µε χρήση σχηµατικού εµφανίζει προβλήµατα (π.χ. δυσκολίες αλλαγών σε υπάρχοντα σχηµατικά). Υπάρχουν σχεδιάσεις µε επαναλαµβανόµενα κύτταρα (µηχανές καταστάσεων, µνήµες κλπ). Η χρήση γλωσσών χαµηλού επιπέδου µπορεί να διευκολύνει σηµαντικά την περιγραφή επαναλαµβανόµενων σχηµάτων. ABEL CUPL Palasm Σχεδίαση Κυκλωµάτων µε CAD 16
Γλώσσες Περιγραφής HDL Η σχεδίαση µε χρήση γλωσσών περιγραφής είναι πλέον ο κυρίαρχος τρόπος περιγραφής συστηµάτων. Σχεδίαση απλή και γρήγορη: Ο σχεδιαστής περιγράφει βασικά χαρακτηριστικά και περιορισµούς Το εργαλείο καθορίζει λεπτοµέρειες υλοποίησης Οχρόνος σχεδίασης µειώνεται σηµαντικά Προβλέψιµη σχεδίαση: Η διαδικασία δ σύνθεσης ύθ εγγυάται ότι δεν θα γίνουν σχεδιαστικά λάθη. Η σχεδίαση τεκµηριώνεται εύκολα: Η περιγραφή είναι ένας καλός τρόπος τεκµηρίωσης Οι γλώσσες περιγραφής, περιγράφουν την συµπεριφορά του κυκλώµατος, ενώ οι γλώσσες σχεδίασης σε χαµηλό επίπεδο περιγράφουν την δοµή του. VHDL Verilog Σχεδίαση Κυκλωµάτων µε CAD 17
Σύνθεση Η σύνθεση λαµβάνει µία περιγραφή και δίνει µία λίστα (netlist) από κύτταρα βιβλιοθήκης, µετις διασυνδέσεις τους Εξοµοίωση Μοντέλο Συµπεριφοράς Σύνθεση οµικό Μοντέλο (netlist) Οι γλώσσες περιγραφής δηµιουργήθηκαν µόνο για λόγους τεκµηρίωσης και εξοµοίωσης ενός κυκλώµατος. Αργότερα εµφανίστηκε η ανάγκη για σύνθεση. Όλες οι γλωσσικές δοµές δεν µπορούν να είναι και συνθέσιµες. Κάθε περιγραφή είναι εξοµοιώσιµη αλλά λίγες µόνο συνθέσιµες. Σχεδίαση Κυκλωµάτων µε CAD 18
Σύνθεση Ένα από τα µεγάλα πλεονεκτήµατα της σύνθεσης είναι η δυνατότητα βελτιστοποίησης του τελικού κυκλώµατος. Γενικά λογικά Ανάλυση Επεξεργασία Βελτιστοποίηση κύτταρα Αντιστοίχιση σε τεχνολογία netlist Ελαχιστοποίηση της επιφάνειας. Βελτιστοποίηση κυκλώµατος: Μεγιστοποίηση της ταχύτητας. Ικανοποίηση περιορισµών λειτουργίας (ισχύς). Η αντιστοίχιση σε τεχνολογία (technology mapping library binding) οδηγεί σε παραπέρα βελτιστοποίηση του κυκλώµατος. Σχεδίαση Κυκλωµάτων µε CAD 19
Παράδειγµα Σύνθεσης library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity FA is port ( a,b,c :in std_logic; sum, cout: out std_logic); end FA; architecture Behavior of FA is signal int_sum: std_logic(1 downto 0); begin int_sum<=a+b+c; sum<=int_sum(0); cout<=int_sum(1); end architecture Behavior; Σχεδίαση Κυκλωµάτων µε CAD 20
Παράδειγµα Σύνθεσης 00 01 11 10 1 a bc C out = ab+bc+ac C out = a bc+ab c+abc +abc 0 Παραγοντοποίηση Αντικατάσταση Απαλοιφή Ελαχιστοποίηση 1 1 1 1 00 01 11 10 bc a Sum= a xor b xor c Sum= a b c+abc +ab c +abc 1 1 1 1 0 (1) 1 (2) Sum A B Library Binding C (3) Cout ΑΟ221(x,y,z,w,p)=xy+zw+p C out =ab+bc+ac=ab+bc+z µε z=ac οπότε C out =AOI221(a,b,b,c,z) (4) Σχεδίαση Κυκλωµάτων µε CAD 21
Εξοµοίωση Η εξοµοίωση είναι το βασικότερο εργαλείο επιβεβαίωσης της ορθότητας σχεδίασης ενός κυκλώµατος. Εξοµοίωση συµπεριφοράς (behavioral simulation). Εξοµοίωση λειτουργίας (functional simulation-unit delay). Είδη εξοµοίωσης: Στατική χρονική ανάλυση (static timing analysis), χωρίς διανύσµατα εισόδου. Εξοµοίωση σε επίπεδο πύλης (gate level simulation). Εξοµοίωση διακοπτών (switch level simulation). Εξοµοίωση transistor (transistor level simulation). Η πιο ακριβής εξοµοίωση γίνεται µετά την σχεδίαση του layout (Post- Layout Simulation) Σχεδίαση Κυκλωµάτων µε CAD 22
a b c a b c Sum Cout Εξοµοίωση 1.5 1.5 1 1 1 1 Sum Cout Πλήρης Αθροιστής Εξοµοίωση συµπεριφοράς a b c Sum Cout Τιµές 0, 1 U, X a Z b 1.5 c 3 3 3 3 Sum 2 2 2 Cout Εξοµοίωση πυλών Εξοµοίωση transistor Σχεδίαση Κυκλωµάτων µε CAD 23
Στατική Χρονική Ανάλυση O στατικός αναλυτής βρίσκει το/τα κρίσιµα µονοπάτια στο κύκλωµα: εν απαιτεί από τον σχεδιαστή να παρέχει τα διανύσµατα εξοµοίωσης. Η επεξεργασία του κυκλώµατος γίνεται στατικά (σαν ένας γράφος). εν δίνει τις συνθήκες ενεργοποίησης του κρίσιµου µονοπατιού (διάνυσµα εισόδου και εσωτερικών καταστάσεων). Ένα κρίσιµο µονοπάτι µπορεί να είναι λανθάνων. Υποτίµηση της συχνότητας του ρολογιού (Το κρίσιµο µονοπάτι είναι κάποιο µικρότερο) Σχεδίαση Κυκλωµάτων µε CAD 24
Στατική Χρονική Ανάλυση A D SET Q CLR Q B D SET Q CLR Q Κρίσιµο µονοπάτι Η στατική χρονική ανάλυση πρέπει να λαµβάνει υπόψη και τις καθυστερήσεις γραµµών που οφείλονται σε χωρητικότητες, Θα πρέπει να εκτελείται µετά και από την τοποθέτηση και διασύνδεση των κυττάρων στο ολοκληρωµένο Σχεδίαση Κυκλωµάτων µε CAD 25
Εξοµοίωση γεγονότων Η εξοµοίωση γεγονότων είναι το πιο κοινό είδος εξοµοίωσης (event driven simulation) : Είναι διαδεδοµένη γιατί θεωρείται αρκετά γρήγορη. Γεγονός (event): η αλλαγή τιµής σε κάποιον οποιονδήποτε κόµβο του κυκλώµατος. Η αλλαγή της τιµής σε κάποιον κόµβο, οδηγεί στην πιθανή αλλαγή τιµών σε άλλους κόµβους (οδηγούµενους). δ ύ Κάθε γεγονός δηµιουργεί µία αλληλουχία γεγονότων. Κάθε κόµβος έχει καθυστέρηση Τα γεγονότα δεν συµβαίνουν ταυτόχρονα µε το γεγονός που τα προκάλεσε, αλλά σε κάποιο µελλοντικό χρόνο. Σχεδίαση Κυκλωµάτων µε CAD 26
Εξοµοίωση γεγονότων Κάθε γεγονός προγραµµατίζει κάποια γεγονότα και καθορίζει και τον χρόνο που θα συµβούν. Όλα τα γεγονότα που προγραµµατίζονται µπαίνουν σε µία λίστα γεγονότων (ουρά γεγονότων). Ο εξοµοιωτής εκτελεί ένα γεγονός και προχωράει στο επόµενο. Κάθε γεγονός που εκτελείται, αφαιρείται από την λίστα. Ο χρόνος που µεσολαβεί ανάµεσα σε δύο γεγονότα αγνοείται καθώς δεν ενδιαφέρει τον εξοµοιωτή. Καθυστέρηση pin σε pin: από pin εισόδου σε pin εξόδου. Μοντελοποίηση καθυστέρησης λογικού κυττάρου Καθυστέρηση σε pin: καθυστέρηση σήµατος που καταλήγει σε κάποιο pin ενός κυττάρου. Καθυστέρηση διασύνδεσης: Η καθυστέρηση των γραµµών διασύνδεσης δύο κυττάρων. Σχεδίαση Κυκλωµάτων µε CAD 27
Α Β Γ 2 ns Φ Εξοµοίωση γεγονότων Α 4 Β 2 3ns Ζ Γ 1 3 Φ 2 ns 5 Ζ 3 ns 3 ns 3 ns t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 Σχεδίαση Κυκλωµάτων µε CAD 28
Εξοµοίωση διακοπτών και transistor Είναι τα πιο ακριβή είδη εξοµοιώσεων, καθώς αντιµετωπίζουν το κύκλωµα σαν δίκτυο των βασικών δοµικών του στοιχείων (transistor). Εξοµοίωση διακοπτών: θεωρούµε το transistor ως ψηφιακό στοιχείο, το οποίο µπορεί να είναι on ή off, Εξοµοίωση transistor: θεωρείται µη γραµµικό αναλογικό στοιχείο. Απαιτούν µεγάλο χρόνο εκτέλεσης, ειδικά η εξοµοίωση transistor. Εξοµοιωτής transistor: SPICE υνατότητα εξοµοίωσης σε διάφορα επίπεδα (Levels). Κάθε επίπεδο µε διαφορετική ακρίβεια. Κάθε επίπεδο µε διαφορετική µοντελοποίηση transistor. Σχεδίαση Κυκλωµάτων µε CAD 29