ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 6 η : Συνδυαστικά Κυκλώματα σε FPGA (Μέρος 1 ο ) Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής diceslab.cied.teiwest.gr E-mail: pkitsos@teimes.gr 1
ΠΕΡΙΕΧΟΜΕΝΑ Διαδικασία σχεδιασμού κυκλωμάτων Γλώσσες περιγραφής υλικού Η καθυστέρηση στα συνδυαστικά κυκλώματα Κατανάλωση ισχύος Αριθμητικά κυκλώματα Αθροιστές Πολλαπλασιαστές ALU Χωροθέτηση και διασύνδεση 2
ΕΙΣΑΓΩΓΗ Θα δούμε πως σχεδιάζονται συνδυαστικά λογικά κυκλώματα σε τεχνολογίες FPGA Τα βασικά χαρακτηριστικά των κυκλωμάτων εξαρτώνται από τις απαιτήσεις του συστήματος και της εφαρμογής Σε ταχύτητα Σε διαστάσεις Σε κατανάλωση ενέργειας Για το σχεδιασμό αποδοτικών και χαμηλής κατανάλωσης ενέργειας κυκλώματα απαιτείται κατανόηση Της λογικής σχεδίασης Των FPGA Και των εργαλείων που χρησιμοποιούνται 3
Διαδικασία σχεδιασμού κυκλωμάτων 4
ΣΥΝΔΥΑΣΤΙΚΑ ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ Συνδυαστικά λογικά κυκλώματα: Είναι μαθηματικές εκφράσεις οι οποίες διέπονται από τις ιδιότητες της άλγεβρας Boole. Π.χ. a+bc=d Λογική Πύλη: Υπολογίζει μια συγκεκριμένη λογική συνάρτηση Boole. Π.χ. (a+b) Λειτουργικότητα Άλλες απαιτήσεις Ως προς το χώρο (μέγεθος) Κατανάλωση ενέργειας Primary inputs Combinational logic Primary outputs Επιδόσεις 5
NON-FUNCTIONAL ΑΠΑΙΤΗΣΕΙΣ Είναι απαιτήσεις οι οποίες δεν εξαρτώνται άμεσα από τις λογικές συναρτήσεις που εκτελούνται. Τέτοιες είναι: Επιδόσεις Η μέγιστη καθυστέρηση καθορίζει τη συχνότητα λειτουργίας του ρολογιού Μέγεθος κυκλώματος Καθορίζει το κόστος κατασκευής του FPGA Κατανάλωση ενέργειας Καθορίζει τη διάρκεια «ζωής» της μπαταρίας, και τον τρόπο απαγωγής της θερμότητας 6
ΧΑΡΤΟΓΡΑΦΗΣΗ ΣΕ ΕΝΑ FPGA Βασικά κριτήρια επιλογής FPGA Χωρητικότητα Αριθμό ακροδεκτών / τύπος «συσκευασίας» Μέγιστη ταχύτητα (speed grade) Παράδειγμα: Έστω η οικογένεια Xilinx Spartan-IIE Περιέχει αρκετά ολοκληρωμένα με διαφορετικό αριθμό CLBs και ακροδεκτών (XC2S50E, XC2S100E, κλπ) Δύο speed grade (-6 για τυπικές αποδόσεις και -7 για υψηλές αποδόσεις) Διαφορετικοί τύποι συσκευασίας (TQ144 με λεπτό προστατευτικό πλαστικό, το PQ208 με χοντρό πλαστικό) Διαφορετικό εύρος θερμοκρασίας (κωδικός C για εμπορικές εφαρμογές και κωδικός I για βιομηχανικές εφαρμογές, I>C) 7
Γλώσσες περιγραφής υλικού 8
ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ΥΛΙΚΟΥ Structural περιγραφή Ο τρόπος διασύνδεσης των στοιχείων Functional περιγραφή Το σύνολο των Boolean εκφράσεων Simulation περιγραφή Ένα πρόγραμμα για την εξομοίωση (σενάριο λειτουργίας) Δύο γλώσσες Verilog VHDL x A NAND 9
ΛΟΓΙΚΗ ΣΥΝΘΕΣΗ Η συγγραφή του προγράμματος (των λογικών συναρτήσεων) που περιγράφουν ένα σύστημα είναι το πρώτο στάδιο της ψηφιακής σχεδίασης Για να γίνει η σύνθεση πρέπει να «μεταφραστεί» σε μια μορφή τέτοια ώστε να είναι δυνατή η υλοποίηση του συστήματος Πρέπει να χρησιμοποιηθούν οι λογικές πύλες που είναι διαθέσιμες (έχουν συγκεκριμένα χαρακτηριστικά-είσοδοι, ταχύτητα κλπ) Πρέπει να ικανοποιούνται οι απαιτήσεις ως προς την απόδοση, τον χώρο κάλυψης και την κατανάλωση ενέργειας Δεν πρέπει να αλλοιωθούν οι βασικές είσοδοι/έξοδοι του συστήματος 10
MACROS Δίνουν τη δυνατότητα στο σχεδιαστή με απλές εντολές να σχεδιάσουν περίπλοκα υποσυστήματα A+B άθροιση (με βελτιστοποίηση ως προς το χώρο δημιουργεί μικρό αθροιστή, με βελτιστοποίηση ως προς την απόδοση δημιουργεί γρήγορο αθροιστή) Καταχωρητές (FFs). Ανάλογα το προγραμματισμό δημιουργεί διαφορετικό τύπο FF 11
ΦΥΣΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ Εφόσον έχει γίνει η λογική σύνθεση του συστήματος για το συγκεκριμένο FPGA πρέπει να γίνει Χωροθέτηση Των λογικών υποσυστημάτων στο FPGA Δρομολόγηση Επιλογή των μονοπατιών καλωδίωσης και των καλωδίων γενικότερα Δημιουργία διαμόρφωσης Δημιουργία των bits που απαιτούνται για τη διαμόρφωση του FPGA 12
ΓΛΩΣΣΕΣ ΠΕΡΙΓΡΑΦΗΣ ΥΛΙΚΟΥ Οι γλώσσες περιγραφής υλικού (Hardware Description Languages-HDL) είναι το σημαντικότερο εργαλείο για τη περιγραφή ψηφιακών συστημάτων Οι γλώσσες αυτές είναι πιο σημαντικές όταν μεταβαίνουμε σε υψηλότερα επίπεδα αφαίρεσης (αρχιτεκτονικής και πύλης) Είναι πιο εύκολη η χρήση τους σε σχέση με τη σχηματική αναπαράσταση του συστήματος 13
ΟΙ ΒΑΣΙΚΟΤΕΡΕΣ HDLs Δύο είναι οι βασικότερες HDLs (οι οποίες δημιουργήθηκαν για την εξομοίωση ψηφιακών συστημάτων) VHDL Verilog Παρόμοιες δυνατότητες με τις γλώσσες προγραμματισμού υψηλού επιπέδου αλλά έχουν διαφορετική φιλοσοφία EDIF είναι η βασική netlist μορφή τους Περιγράφει τη συνδεσμολογία των στοιχείων που χρησιμοποιούνται για το «χτίσιμο» του συστήματος 14
ΕΞΟΜΟΙΩΣΗ vs. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Το πρόγραμμα σε μια γλώσσα υψηλού επιπέδου (C, C++) εκτελείται σειριακά (γραμμή προς γραμμή) Η εξομοίωση εμπεριέχει τον παράγοντα χρόνο Πρέπει να είναι γνωστό πότε τα σήματα αλλάζουν τιμή Η εξομοίωση εκτελείται παράλληλα Οι μεταβολές στις εξόδους των λογικών συναρτήσεων μπορεί να συμβαίνουν ταυτόχρονα 15
ΕΙΔΗ ΕΞΟΜΟΙΩΣΗΣ Τόσο η VHDL όσο και η Verilog χρησιμοποιούν το συνδυασμό των Eventdriven και Compile code εξομοιωτών Event-driven εξομοίωση Διαδίδει τα γεγονότα κατά την εξομοίωση Η εξομοίωση ξεκινά όταν μεταβληθούν οι τιμές στις εισόδους ενός συστήματος Compiled code εξομοίωση Δημιουργεί πρόγραμμα που περιγράφει τη λειτουργία ενός ψηφιακού συστήματος Λείπουν οι λειτουργικές λεπτομέρειες του συστήματος 16
EVENT-DRIVEN ΕΞΟΜΟΙΩΣΗ Ένα γεγονός (event) είναι η μεταβολή της τιμής σε ένα net (στοιχείο) Ένα γεγονός καταγράφει τη χρονική στιγμή όπου ένα στοιχείο μεταβάλει την έξοδό του net1 t=35 ns net time Ένα γεγονός έχει δύο παραμέτρους Τιμή net1=0 @ 35 ns event Χρόνος 17
ΕΝΑ ΓΕΓΟΝΟΣ ΣΕ ΜΙΑ ΛΟΓΙΚΗ ΠΥΛΗ Τα γεγονότα διαδίδονται όταν τα στοιχεία μεταβάλλουν την έξοδό τους Εάν μια μεταβολή στην είσοδο δεν συνεπάγεται μεταβολή στην έξοδο τότε δεν υπάρχει διάδοση γεγονότος 0 1 0 1 1 no 0 event event 18
ΧΡΟΝΙΚΑ ΣΥΜΒΑΝΤΑ (TIMEWHEEL) Το timewheel είναι μια δομή δεδομένων στον εξομοιωτή που αναπαριστά την σειρά όλων των γεγονότων Τα γεγονότα αναπαριστώνται στο timewheel σύμφωνα με τη χρονική στιγμή που συμβαίνουν Τα γεγονότα εξάγονται από την κορυφή του timewheel 19
ΛΕΙΤΟΥΡΓΕΙΑ ΤΟΥ TIMEWHEEL 1 0 1 a c 1 0 c=0 @ 2 ns b=1 @ 1 ns time b a=1 @ 0 ns netlist timewheel 20
ΑΞΙΟΛΟΓΗΣΗ ΓΕΓΟΝΟΤΩΝ Η σειρά αξιολόγησης των γεγονότων είναι πολύ σημαντική Αν ο εξομοιωτής αξιολογεί με τη σωστή σειρά τα γεγονότα σημαίνει ότι περιγράφει επακριβώς το hardware Άρα η λανθασμένη αξιολόγηση οδηγεί σε λανθασμένα αποτελέσματα 21
ΠΑΡΑΔΕΙΓΜΑ ΣΩΣΤΗΣ ΑΞΙΟΛΟΓΗΣΗΣ ΓΕΓΟΝΟΤΩΝ 0 a c 1 e=0 @ 4 ns 0 1 b 1 e 0 d=1 @ 2 ns time 0 1 d b=1 @ 1 ns netlist timewheel 22
COMPILED ΕΞΟΜΟΙΩΣΗ Για να γίνει η εξομοίωση ενός block hardware δημιουργείται ένα block κώδικα (σε γλώσσα υψηλού επιπέδου) Ο κώδικας δε λαμβάνει υπόψη του τη χρονική συμπεριφορά στο εσωτερικό του block hardware Υπολογίζει τις εξόδους λαμβάνοντας υπόψη μόνο τις εισόδους Το εσωτερικό δεν λαμβάνεται υπόψη Ούτε κάποιο timewheel λαμβάνεται υπόψη 23
MODELING ΚΩΔΙΚΑ HDL O structural προγραμματισμός HDL κώδικα περιγράφει επακριβώς την συνδεσμολογία μεταξύ των στοιχείων που περιέχονται σε ένα σύστημα Ο behavioral προγραμματισμός HDL περιγράφει τη λειτουργική (συναρτησιακή) σχέση μεταξύ των εισόδων και των εξόδων του συστήματος 24
Καθυστέρηση στα συνδυαστικά κυκλώματα 25
ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΧΡΟΝΙΚΗΣ ΚΑΘΥΣΤΕΡΗΣΗΣ Το ενδιαφέρον μας δεν εστιάζεται στη καθυστέρηση μιας λογικής πύλης αλλά για τη καθυστέρηση του εσωτερικού ενός συστήματος που περιέχει αρκετή λογική Η μέτρηση της καθυστέρησης γίνεται από τις κύριες εισόδους έως τις κύριες εξόδους Εξαρτώμενη από τα δεδομένα Μερικές τιμές εισόδων δίνουν διαφορετικές τιμές καθυστέρησης σε σχέση με άλλες εισόδους 26
ΠΗΓΕΣ ΧΡΟΝΙΚΗΣ ΚΑΘΥΣΤΕΡΗΣΗΣ Καθυστέρηση πύλης (Gate delay) Εσωτερική δομή Στο φορτίο που οδηγεί Καθυστέρηση καλωδίου Στο φορτίο Στο μήκος 27
ΜΟΝΤΕΛΟ ΚΑΘΥΣΤΕΡΗΣΗΣ Καθυστέρηση πύλης t g. Καθυστέρηση καλωδίου t w. t g t w LE LE 28
ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΑΘΥΣΤΕΡΗΣΗΣ ASIC σχεδιασμός---βελτιστοποίηση της καθυστέρησης πύλης Μέγεθος transistor FPGA σχεδιασμός---βελτιστοποίηση της καθυστέρησης καλωδίου Επιλογή μικρότερων καλωδίων Επιλογή κατηγορίας καλωδίου Αύξηση του μεγέθους των οδηγών (buffers) 29
FANOUT Fanout: O αριθμός των πυλών που οδηγεί η έξοδος μιας πύλης στη προηγούμενη βαθμίδα Το Fanout προσθέτει χωρητικότητα στο σύστημα Αυτή η χωρητικότητα οφείλεται είτε στα transistors των πυλών είτε από τα καλώδια που διασύνδεουν τις πύλες sink source sink sink 30
ΧΩΡΗΤΙΚΟΤΗΤΑ Η προσθήκη πυλών προσθέτει χωρητικότητα 31
ΤΡΟΠΟΙ ΟΔΗΓΗΣΗΣ ΜΕΓΑΛΩΝ FANOUT Αύξηση του μεγέθους των transistors Αυτό αυξάνει το ρεύμα στη πύλη οδηγητή Προσθήκη ενδιάμεσων byffers. Αυτό ίσως να απαιτεί επανασχεδιασμό της λογικής 32
BUFFERS 33
ΧΩΡΗΤΙΚΟΤΗΤΑ ΚΑΛΩΔΙΩΝ Χρήση καλωδίων με μικρότερη χωρητικότητα (φυσικά χαρακτηριστικά καλωδίων) Επανασχεδιασμός φυσικού σχεδίου έτσι ώστε να μικρύνουν τα μήκη των καλωδίων 34
ΚΑΘΥΣΤΕΡΗΣΗ ΜΟΝΟΠΑΤΙΟΥ Η καθυστέρηση της συνδυαστικής λογικής μετριέται πάνω στα μονοπάτια της λογικής Υπολογίζεται από τις κύριες εισόδους έως την έξοδο με τη μεγαλύτερη καθυστέρηση 35
ΜΟΝΤΕΛΟ ΚΑΘΥΣΤΕΡΗΣΗΣ (1/2) network graph model 36
ΜΟΝΤΕΛΟ ΚΑΘΥΣΤΕΡΗΣΗΣ (2/2) Οι κόμβοι (στο γράφο) αναπαριστούν πύλες ή κύρια είσοδο ή κύρια έξοδο Όταν μια πύλη οδηγεί κάποια άλλη προστίθεται μια διακεκομμένη γραμμή από το κόμβο της πύλης οδηγού στο κόμβο της πύλης που οδηγείται Η τιμή σε κάθε διακεκομμένη γραμμή παριστάνει τη καθυστέρηση που απαιτείται για τη διάδοση του σήματος από τον οδηγό στην είσοδο της οδηγούμενης πύλης Αυτό το μοντέλο χρησιμοποιείται για τον υπολογισμό της καθυστέρησης από την είσοδο της πύλης, δια μέσο της πύλης και του καλωδίου μέχρι την είσοδο της επόμενης πύλης 37
ΚΡΙΣΙΜΟ ΜΟΝΟΠΑΤΙ Κρίσιμο μονοπάτι (Critical path) = Το μονοπάτι με τη μεγαλύτερη χρονική καθυστέρηση 38
ΚΡΙΣΙΜΟ ΜΟΝΟΠΑΤΙ ΣΕ ΕΝΑΝ ΓΡΑΦΟ 39
«ΜΕΙΩΣΗ» ΤΟΥ ΚΡΙΣΙΜΟΥ ΜΟΝΟΠΑΤΙΟΥ Για να μειωθεί η καθυστέρηση ενός κυκλώματος πρέπει να μειωθεί η καθυστέρηση του κρίσιμου μονοπατιού Μπορεί να υπάρχουν περισσότερα από ένα κρίσιμα μονοπάτια (με την ίδια καθυστέρηση) Και πρέπει να γίνει βελτιστοποίηση σε όλα για να υπάρξει μείωση της συνολικής καθυστέρησης 40
ΧΩΡΟΘΕΤΗΣΗ ΚΑΙ ΚΑΘΥΣΤΕΡΗΣΗ Η χωροθέτηση (placement) καθορίζει τη δρομολόγηση (ένωση των καλωδίων) Η δρομολόγηση (routing) καθορίζει το μήκος των καλωδίων Το μήκος των καλωδίων καθορίζει το συνολικό φορτίο του Άρα η χωροθέτηση παίζει σημαντικό παράγοντα στη συνολική καθυστέρηση του κυκλώματος 41
ΧΩΡΟΘΕΤΗΣΗ ΚΑΙ ΦΟΡΤΙΟ ΚΑΛΩΔΙΟΥ g1 g3 dvr g2 g4 unbalanced load g1 g3 dvr g2 g4 more balanced 42
ΒΕΛΤΙΣΤΟΠΟΙΟΝΤΑΣ ΤΗ ΜΕΓΙΣΤΗ ΚΑΘΥΣΤΕΡΗΣΗ Προσδιορισμός του μεγαλύτερου μονοπατιού (κρίσιμο) Η βελτιστοποίηση της καθυστέρησης στο κρίσιμο μονοπάτι γίνεται με βελτιστοποίηση Της καθυστέρησης της πύλης οδηγού Τις καθυστερήσεις των καλωδίων Επανασχεδιασμό της λογικής 43
ΧΡΟΝΙΚΟΙ ΠΕΡΙΟΡΙΣΜΟΙ Στους αλγόριθμους χωροθέτησης και δρομολόγησης μπορούμε να θέτουμε χρονικούς περιορισμούς (timing constraints) για την επίτευξη των στόχων τους Είναι δυνατή η εφαρμογή χρονικών περιορισμών είτε στο συνολικό κύκλωμα είτε σε κάποιο ζευγάρι (μονοπάτι) εισόδου-εξόδου Αν απαιτείται να κάνουν βελτιστοποίηση σε ένα μονοπάτι κάτω από συνθήκες μικρής καθυστέρησης το κάνουν σε βάρος άλλου μονοπατιού με μεγαλύτερο περιορισμό Δεν επανασχεδιάζουν τη λογική σε βέλτιστο βαθμό Ο φυσικός σχεδιασμός με «κατεύθυνση» τη βελτιστοποίηση της καθυστέρησης δεν επιλύει πάντα τα προβλήματά μας 44
ΠΑΡΑΔΕΙΓΜΑ: ΑΥΤΟΜΑΤΗ ΧΩΡΟΘΕΤΗΣΗ ΑΘΡΟΙΣΤΗ N-bit αθροιστής + + + + 45
ΚΑΚΗ ΧΩΡΟΘΕΤΗΣΗ ΚΑΙ ΔΡΟΜΟΛΟΓΗΣΗ placement routing 46
ΚΑΛΥΤΕΡΗ ΧΩΡΟΘΕΤΗΣΗ ΚΑΙ ΔΡΟΜΟΛΟΓΗΣΗ Καθυστέρηση ίση με 12 nsec placement routing 47
ΕΠΑΝΑΣΧΕΔΙΑΣΜΟΣ ΛΟΓΙΚΗΣ deep logic shallow logic 48
Βελτιστοποίηση κατανάλωσης ενέργειας 49
ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΑΤΑΝΑΛΩΣΗΣ ΕΝΕΡΓΕΙΑΣ Η κατανάλωση ενέργειας είναι κρίσιμος παράγοντας σε εφαρμογές που λειτουργούν με μπαταρία Οι μεταβολές των καταστάσεων σε ένα κόμβο αυξάνουν τη κατανάλωση ενέργειας Ο σχεδιασμός ενός συνδυαστικού κυκλώματος επιτρέπει τη μείωση της κατανάλωσης ενέργειας αν Μειώνεται η συνολική χωρητικότητα Εξαλείφει τις ψεύτικες μεταβολές σήματος (glitches) 50
ΠΑΡΑΔΕΙΓΜΑ GLITCHING Συνδυαστικό κύκλωμα Τελική κατάσταση: Η έξοδος της NAND (πρώτη είσοδος της NOR) έχει τιμή 1. Η δεύτερη είσοδος της NOR είναι 0. Άρα η έξοδος της NOR είναι 0 Ενδιάμεση κατάσταση: Η έξοδος της NAND στο 0 λόγω της καθυστέρησης της πύλης διατηρεί τη τιμή αυτή παράλληλα με τη δεύτερη είσοδο της NOR με τιμή 1. Άρα η έξοδος της NOR είναι 1 Αρχική κατάσταση: Οι είσοδοι την NAND είναι 1 και η έξοδος της NAND είναι 0. Οι είσοδοι της NOR είναι 0 (η πάνω) και 1 (η κάτω). Άρα η έξοδος της NOR είναι 0 51
ΑΛΛΟ ΠΑΡΑΔΕΙΓΜΑ (1/2) Λάθος Σωστό 52
ΑΛΛΟ ΠΑΡΑΔΕΙΓΜΑ (2/2) Η αλυσίδα των αθροιστών έχει σήματα τα οποία φτάνουν στην αντίστοιχη είσοδο αθροιστή σε διαφορετικές χρονικές στιγμές Η ψεύτικη μεταβολή (glitch) μεταδίδεται από την αρχή έως το τέλος της αλυσίδας των αθροιστών Στη δομή δέντρου δημιουργούνται glitches παράλληλα έτσι ώστε να ελαττώνεται η συνολική δραστηριότητα των ψεύτικων μεταβολών 53
Ο ΕΚΤΙΜΗΤΗΣ ΙΣΧΥΟΣ Ο εκτιμητής ισχύος προσεγγίζει τη κατανάλωση ισχύος ενός ψηφιακού κυκλώματος από Το δίκτυο των πυλών (κύκλωμα) Ο αριθμός των μεταβάσεων (0 1) και (1 0) Το χωρητικό φορτίο του κυκλώματος Χρησιμοποιούν στατιστικά μοντέλα 54
ΦΥΣΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ ΓΙΑ ΧΑΜΗΛΗ ΚΑΤΑΝΑΛΩΣΗ Χωροθέτηση και δρομολόγηση με σκοπό τη μείωση της χωρητικότητας από τους κόμβους με μεγάλη δραστηριότητα σε ψεύτικες μεταβολές 55
Απορίες???? 56