ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 6 η : Συνδυαστικά Κυκλώματα σε FPGA (Μέρος 2 ο ) Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής diceslab.cied.teiwest.gr E-mail: pkitsos@teimes.gr Αντίρριο 2017 1
ΠΕΡΙΕΧΟΜΕΝΑ Διαδικασία σχεδιασμού κυκλωμάτων Γλώσσες περιγραφής υλικού Η καθυστέρηση στα συνδυαστικά κυκλώματα Κατανάλωση ισχύος Αριθμητικά κυκλώματα Αθροιστές Πολλαπλασιαστές ALU Χωροθέτηση και διασύνδεση 2
Αριθμητικά κυκλώματα 3
ΣΥΝΔΥΑΣΤΙΚΟΙ ΟΛΙΣΘΗΤΕΣ Είναι πολύ χρήσιμοι στις αριθμητικές πράξεις Οι ολισθητές που σχεδιάζονται με Latch FFs ολισθαίνουν ένα bit ανά κύκλο ρολογιού Οι ολισθητές με δυνατότητα ολίσθησης πολλών θέσεων απαιτούν επιπλέον λογική 4
ΒΑΡΕΛΟΕΙΔΗΣ (BARREL) ΟΛΙΣΘΗΤΗΣ Εκτελεί ολίσθηση των n-bit σε έναν παλμό ρολογιού Έχει είσοδο δεδομένων 2n-bit, σήμα ελέγχου των n-bit και παράγει μια έξοδο των n-bit n bits data 1 output n bits n bits data 2 5
ΑΘΡΟΙΣΤΕΣ Υπολογίζει το άθροισμα και το κρατούμενο σύμφωνα με τις εξισώσεις s i = a i XOR b i XOR c i c i+1 = a i b i + a i c i + b i c i Ο ημιαθροιστής δε λαμβάνει υπόψη του το κρατούμενο εισόδου Αθροιστής μετάδοσης κρατουμένου (Ripplecarry adder): Ο n-bit αθροιστής που κατασκευάζεται από n πλήρης αθροιστές Η καθυστέρηση του ορίζεται από το μονοπάτι υπολογισμού και μετάδοσης κρατουμένου 6
ΣΕΙΡΙΑΚΟΣ ΑΘΡΟΙΣΤΗΣ (1/2) Χρησιμοποιείται σε εφαρμογές ψηφιακής σχεδίασης όπου απαιτούνται μεγάλες συχνότητες λειτουργίας Ο συνολικός χρόνος εκτέλεσης της πρόσθεσης είναι μεγάλος Format δεδομένων (LSB first): 0 1 1 0 LSB 7
ΣΕΙΡΙΑΚΟΣ ΑΘΡΟΙΣΤΗΣ (2/2) Το σήμα LSB μηδενίζει το κρατούμενο εισόδου 8
ALUs Η Arithmetic Logic Unit εκτελεί συνδυασμό αριθμητικών και λογικών πράξεων σύμφωνα με το σήμα ελέγχου opcode. Εκτελεί ένα σύνολο «εντολών» του ενός bit ή πολύ μεγαλύτερου μήκους Οι ALUs χρησιμοποιούν αθροιστές Άρα το μονοπάτι υπολογισμού του κρατουμένου καθορίζει τη συνολική καθυστέρηση 9
ALU ΜΕ ΠΟΛΥΠΛΕΚΤΗ Υπολογίζει τις συναρτήσεις και ο πολυπλέκτης επιλέγει την επιθυμητή σύμφωνα με το σήμα ελέγχου opcode AND OR NOT SUM opcode 10
ΠΟΛΛΑΠΛΑΣΙΑΣΤΕΣ 0 1 1 0 πολλαπλασιαστέος x 1 0 0 1 πολλαπλασιαστής 0 1 1 0 + 0 0 0 0 0 0 1 1 0 + 0 0 0 0 0 0 0 1 1 0 + 0 1 1 0 0 1 1 0 1 1 0 partial product 11
ΣΕΙΡΙΑΚΟΣ ΠΑΡΑΛΛΗΛΟΣ ΠΟΛΛΑΠΛΑΣΙΑΣΤΗΣ (1/2) Χρησιμοποιείται σε σειριακές αριθμητικές πράξεις Ο πολλαπλασιαστέος πρέπει να είναι αποθηκευμένος σε έναν καταχωρητή Ο πολλαπλασιαστής ολισθαίνεται bit-bybit με πρώτο το LSB 12
ΣΕΙΡΙΑΚΟΣ ΠΑΡΑΛΛΗΛΟΣ ΠΟΛΛΑΠΛΑΣΙΑΣΤΗΣ (2/2) 13
Λογική Σύνθεση 14
ΛΟΓΙΚΗ ΣΥΝΘΕΣΗ Η λογική σύνθεση χρησιμοποιεί αλγορίθμους βελτιστοποίησης και μετασχηματίζει τις λογικές εκφράσεις σε μια ιδιαίτερη μορφή για την υλοποίηση Η βελτιστοποίηση μπορεί να είναι είτε ως προς την επιφάνεια κάλυψης (εμβαδόν) του κυκλώματος, είτε ως προς τη απόδοση λειτουργίας ή ως προς τη κατανάλωση ενέργειας 15
ΑΠΕΥΘΕΙΑΣ ΜΕΤΑΦΡΑΣΗ ΤΗΣ HDL (SΥΝΤΑΧ-DIRECTED TRANSLATION) Μεταφράζει τη γλώσσα περιγραφής υλικού σε λογικές εκφράσεις ab + ac If ( ) then else Σε γενικές γραμμές απαιτείται βελτιστοποίηση 16
MACROS Προκαθορισμένη λογική Εξαρτάται από τα χαρακτηριστικά της γλώσσας + operator xxx() 17
ΦΑΣΕΙΣ ΛΟΓΙΚΗΣ ΣΥΝΘΕΣΗΣ Η λογική σύνθεση (ή λογική βελτιστοποίηση) δημιουργεί ένα δίκτυο πυλών που πραγματοποιεί τις πράξεις μέσω των Boolean πυλών Είναι ενδιαφέρον διαδικασία γιατί ενώ υπάρχουν πολλές συνδεσμολογίες που ικανοποιούν μια πράξη, ελάχιστες από αυτές είναι «μικρές» και «γρήγορες» Ανεξάρτητη από τη τεχνολογία (Technology-independent) βελτιστοποίηση που αναπαριστά (περιγράφει) τη λογική Εξαρτώμενη από τη τεχνολογία (Technology-dependent) βελτιστοποίηση που χρησιμοποιεί τις διαθέσιμες πύλες για την υλοποίηση της λογικής Η μεταφορά από την ανεξάρτητη από τη τεχνολογία φάση στην εξαρτώμενη από τη τεχνολογία φάση ονομάζεται library binding 18
ΑΝΕΞΑΡΤΗΤΗ ΑΠΟ ΤΗ ΤΕΧΝΟΛΟΓΙΑ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Εργάζεται με ισοδύναμα μοντέλα των Boolean εκφράσεων Υπολογίζει το μέγεθος του κυκλώματος με βάση τις εισόδους Κάνει χρήση διαμελισμού, επαναδιασύνδεσης, ελαχιστοποίησης κλπ για τη βελτιστοποίηση του κώδικα Χρησιμοποιεί απλά μοντέλα καθυστέρησης 19
ΕΞΑΡΤΩΜΕΝΗ ΑΠΟ ΤΗ ΤΕΧΝΟΛΟΓΙΑ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Κάνει αντιστοίχηση των Boolean εκφράσεων στα στοιχεία μιας βιβλιοθήκης Η αντιστοίχηση μπορεί να γίνεται με σκοπό το βέλτιστο εμβαδόν ή τη βέλτιστη απόδοση του κυκλώματος Χρησιμοποιεί πιο ρεαλιστικά μοντέλα καθυστέρησης 20
BOOLEAN ΔΙΚΤΥΟ Το Boolean δίκτυο είναι ο κυριότερος τρόπος απεικόνισης των λογικών συναρτήσεων στη ανεξάρτητη από τη τεχνολογία βελτιστοποίηση Κάθε κόμβος αναπαριστά ένα άθροισμα γινομένων (ή ένα γινόμενο αθροισμάτων) Προβάλει πολύ-επίπεδη λογική σχεδίασης αλλά οι συναρτήσεις σε αυτό το δίκτυο δεν αντιστοιχούν σε λογικές πύλες 21
BOOLEAN ΔΙΚΤΥΟ: ΠΑΡΑΔΕΙΓΜΑ primary outputs out1 = k2 + x2 out2 = k3 + x1 k2 = x1 x2 x4 + k1 k3 = k1 x4 primary inputs k1 = x2 + x3 x1 x2 x3 x4 22
ΑΝΕΞΑΡΤΗΤΗ ΑΠΟ ΤΗ ΤΕΧΝΟΛΟΓΙΑ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Υλοποιεί τη συνάρτηση 23
ΣΥΝΘΕΣΗ ΣΕ ΕΝΑ FPGA 24
FPGAs vs. ΕΞΑΤΟΜΙΚΕΥΜΕΝΟΣ ΣΧΕΔΙΑΣΜΟΣ Η μετρική του κόστους κυκλώματος στις στατικές πύλες είναι ο αριθμός των στοιχείων Η εξίσωση ax + bx έχει τέσσερα στοιχεία και απαιτεί οκτώ transistors Η μετρική του κόστους κυκλώματος σε ένα FPGAs είναι τα λογικά στοιχεία (logic elements) Όλες οι συναρτήσεις που υλοποιούνται σε ένα LE έχουν το ίδιο κόστος 25
ΛΟΓΙΚΗ ΣΥΝΘΕΣΗ ΜΕ LUT Βρίσκει τη μεγαλύτερη λογική που «χωράει» σε ένα LUT r = q + s q = g + h s = d d = a + b 26
Χωροθέτηση και Δρομολόγηση 27
ΦΥΣΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ Δύο είναι τα στάδια για το φυσικό σχεδιασμό Χωροθέτηση (placement) των δομών (υποκυκλωμάτων) στο ολοκληρωμένο Δρομολόγηση (routing) των καλωδίων μεταξύ των δομών Η χωροθέτηση και η δρομολόγηση αλληλεπιδρούν. Αλλά ο διαχωρισμός τους, σε δύο φάσεις του φυσικού σχεδιασμού βοηθάει στη κατανόηση και την επίλυση προβλημάτων 28
ΜΕΤΡΙΚΕΣ ΧΩΡΟΘΕΤΗΣΗΣ Μετρικές ποιότητας φυσικού σχεδιασμού Μέγεθος κυκλώματος (εμβαδόν) Καθυστέρηση Το μέγεθος και η καθυστέρηση καθορίζονται μερικώς από τη καλωδίωση Πως είναι δυνατόν να αποφασιστεί μια χωροθέτηση χωρίς να γίνει καλωδίωση? Με υπολογισμό του μήκους του καλωδίου εξαρχής 29
ΜΗΚΟΣ ΚΑΛΩΔΙΟΥ ΣΑΝ ΜΕΤΡΙΚΗ ΠΟΙΟΤΗΤΑΣ bad placement good placement 30
ΜΕΤΡΗΣΗ ΤΟΥ ΜΗΚΟΥΣ ΚΑΛΩΔΙΟΥ Γίνεται εκτίμηση του μήκους από την απόσταση μεταξύ των στοιχείων που συνδέει. Πιθανοί τρόποι Ευκλείδεια απόσταση (sqrt(x 2 + y 2 )); Απόσταση (x + y) Οι κόμβοι πρέπει να διασπαστούν για καλύτερη εκτίμηση Manhattan Euclidean 31
ΔΟΜΕΣ ΔΕΝΤΡΩΝ Steiner point 32
ΧΩΡΟΘΕΤΗΣΗ ΜΕ ΔΙΑΜΕΛΙΣΜΟ Εφαρμόζεται με επιτυχία σε σχέδια με στοιχεία (υποκυκλώματα) με παρόμοιο μέγεθος Χρησιμοποιεί το κριτήριο min-cut 33
ΕΠΑΝΑΛΑΜΒΑΝΟΜΕΝΟΣ ΔΙΑΜΕΛΙΣΜΟΣ 34
ΔΙΑΜΕΛΙΣΜΟΣ ΜΕ ΤΟ ΚΡΙΤΗΡΙΟ MIN- CUT (1/2) A 1 net B 3 nets C D partition 1 partition 2 35
ΔΙΑΜΕΛΙΣΜΟΣ ΜΕ ΤΟ ΚΡΙΤΗΡΙΟ MIN- CUT (2/2) Ανταλλαγή των κόμβων A και B Ο B δέχεται ένα καλώδιο Ο A δέχεται τρία καλώδια Αύξηση των καλωδίων μεταξύ των δύο μερών κατά τρία καλώδια Εν κατακλείδι, ίσως να μην είναι η καλύτερη επιλογή (η εναλλαγή των Α και Β) αλλά πρέπει να συγκριθεί με άλλα ζευγάρια 36
KERNIGHAN-LIN ΑΛΓΟΡΙΘΜΟΣ ΔΙΑΜΕΛΙΣΜΟΥ (1/2) Είναι επαναλαμβανόμενος και προσπαθεί να αφαιρέσει από τα τμήματα κόμβους Έστω ένας κόμβος e στο τμήμα 1 που είναι πιθανόν να μεταφερθεί στο τμήμα 2 Μπορούμε να μετρήσουμε κάποια στοιχεία για να πάρουμε αποφάσεις Έστω Ie είναι ο αριθμός των καλωδίων που ενώνονται στον e και ανήκουν στο τμήμα 1 Έστω Ee είναι ο αριθμός των καλωδίων που ενώνονται στον e και ανήκουν στο τμήμα 2 Εάν ο κόμβος e μετακινηθεί από το τμήμα 1 στο τμήμα 2 Τα καλώδια Ee δεν θα διασταυρώνονται μεταξύ των δύο τμημάτων, ενώ τα καλώδια Ie διασταυρώνονται 37
KERNIGHAN-LIN ΑΛΓΟΡΙΘΜΟΣ ΔΙΑΜΕΛΙΣΜΟΥ (2/2) Έστω De=Ee-Ie και f είναι ένας κόμβος παρόμοιος με τον e To κέρδος από την ανταλλαγή των e και f είναι ίσο με g=de+df-cef O cef είναι ένας παράγοντας συσχέτισης για την αποφυγή διπλομέτρησης των καλωδίων Άρα ο αλγόριθμος ανταλλάσει κόμβους (όχι ζευγάρια) μεταξύ των τμημάτων με σκοπό να μειώσει τα καλώδια που διασταυρώνονται 38
ΔΡΟΜΟΛΟΓΗΣΗ Στη δρομολόγηση επιλέγονται τα καλώδια μεταξύ των λογικών στοιχείων και των I/Os H δρομολόγηση γίνεται σε δύο φάσεις (στάδια) Καθολική ή σφαιρική (global) δρομολόγηση κατά την οποία επιλέγονται μόνο τα κανάλια που θα χρησιμοποιηθούν και όχι τα καλώδια ανά κανάλι Διεξοδική (detailed) δρομολόγηση κατά την οποία επιλέγονται αναλυτικά τα καλώδια που θα χρησιμοποιηθούν 39
ΜΕΤΡΙΚΕΣ ΔΡΟΜΟΛΟΓΗΣΗΣ Μετρικές κόστους δρομολόγησης Μήκος καλωδίων Καθυστέρηση Το μήκος των καλωδίων καθορίζει το ποσοστό κάλυψης (χρήσης) των πόρων δρομολόγησης Δεν επιθυμείται η χρήση περισσότερων καλωδίων από τα αναμενόμενα γιατί μπορεί να χρειαστούν για μελλοντική χρήση Η καθυστέρηση μετριέται από το κρίσιμο μονοπάτι 40
ΚΑΘΟΛΙΚΗ ΔΡΟΜΟΛΟΓΗΣΗ Επιλογή μιας σειράς καναλιών Ο γράφος ενός καναλιού βοηθάει στη καθολική δρομολόγηση 41
ΓΡΑΦΟΣ ΚΑΝΑΛΙΟΥ switch box channel switch box channel switch box channel LE channel LE channel switch box channel switch box channel switch box channel LE channel LE channel switch box channel switch box channel switch box 42
MAZE ΔΡΟΜΟΛΟΓΗΣΗ Βρίσκει μικρότερα μονοπάτια για ένα μοναδικό καλώδιο (εάν υπάρχει ένα τέτοιο μονοπάτι) Δύο φάσεις Ονοματίζει τους κόμβους με βάση την απόσταση και τη διασπορά από την «πηγή» Βρίσκει ένα μονοπάτι το οποίο μειώνει συνεχώς την απόσταση του από τη πηγή 43
LEE ΔΡΟΜΟΛΟΓΗΤΗΣ 44
ΔΡΟΜΟΛΟΓΗΣΗ FPGA Πρέπει να βρεθεί ένα μονοπάτι μεταξύ ενός δικτύου διασυνδέσεων Η σφαιρική δρομολόγηση επιλέγει τα κανάλια Η τοπική δρομολόγηση επιλέγει τα προγραμματιζόμενα σημεία διασύνδεσης 45
Απορίες???? 46