Σκιαγράφηση της διάλεξης Σχεδίαση Ψηφιακών Κυκλωμάτων Η φυσική σχεδίαση των FPGA Νικόλαος Καββαδίας nkavv@uop.gr 12 Ιανουαρίου 2011 Εισαγωγή στις επαναδιαμορφώσιμες αρχιτεκτονικές Τοπολογίες διασύνδεσης Χαρακτηριστικά των επαναδιαμορφώσιμων αρχιτεκτονικών Προγραμματιζόμενοι διακόπτες Προγραμματιζόμενες διασυνδέσεις Xilinx Παρουσίαση μιας ερευνητικής αρχιτεκτονικής FPGA: AMDREL Βασικά γνωρίσματα των επαναδιαμορφώσιμων αρχιτεκτονικών (reconfigurable architectures) Σύγχρονες σχεδιαστικές απαιτήσεις για τα FPGA Μια επαναδιαμορφώσιμη αρχιτεκτονική προσφέρει: Μεγαλύτερη ευελιξία συγκρινόμενη με τις ASIC υλοποιήσεις Υψηλότερες επιδόσεις από τις αντίστοιχες CPU ή DSP συσκευές Τα FPGA αποτελούν την κυριότερη κατηγορία επαναδιαμορφώσιμων αρχιτεκτονικών Μια αρχιτεκτονική FPGA χαρακτηρίζεται ως: Διαμορφώσιμη: τροποποιούμενη κατά το χρόνο σχεδίασης Επαναδιαμορφώσιμη: τροποποιούμενη έπειτα από την υλοποίηση της ψηφιακής σχεδίασης Δυναμικά επαναδιαμορφώσιμη: μπορεί να τροποποιηθεί κατά το χρόνο εκτέλεσης/λειτουργίας της ψηφιακής σχεδίασης Οι σύγχρονες επαναδιαμορφώσιμες συσκευές πρέπει: να εμφανίζουν μεγαλύτερες συχνότητες λειτουργίας να καταναλώνουν λιγότερη ισχύ/ενέργεια να καταλαμβάνουν μικρότερη επιφάνεια πυριτίου Απαίτηση για ανάπτυξη ετερογενών αρχιτεκτονικών Η ανομοιομορφία προσφέρει πλήθος σχεδιαστικών κερδών Αποτέλεσμα είναι η ανάπτυξη platform-based επαναδιαμορφώσιμων αρχιτεκτονικών (π.χ. Virtex-4) Τα FPGA αποτελούνται από: Λογικά μπλοκ I/O μπλοκ Προγραμματιζόμενη διασύνδεση
Εναλλακτικές τοπολογίες για FPGA Τοπολογία τύπου νησίδας Τύπου νησίδας (island-based) Τύπου ϑάλασσας από πύλες (sea-of-gates) Ιεραρχική τοπολογία Μιας διάστασης (coarse-grain reconfigurable: GARP, Chimaera) Τύπου πλέγματος (grid-based) Μερικώς διασταυρούμενη Τοπολογία ϑάλασσας από πύλες Ιεραρχική τοπολογία
Μιας διάστασης Τύπου πλέγματος Μερικώς διασταυρούμενη Δομή ενός τυπικού FPGA
Άποψη ενός FPGA στο κυκλωματικό επίπεδο Παράγοντες που καθορίζουν την καθυστέρηση ενός FPGA Παράγοντες που επηρεάζουν την κατανάλωση ενέργειας ενός FPGA Προγραμματιζόμενοι διακόπτες: Γενικά στοιχεία Οταν προγραμματιστούν καθορίζουν τον τρόπο λειτουργίας του κυκλώματος Αρχικά χρησιμοποιήθηκαν οι ασφάλειες (fuses) Στα CPLDs χρησιμοποιούνται τα τρανζίστορ επιπλέουσας πύλης (floating gate transistors: FGMOS) που χρησιμοποιούνται και στις μνήμες EPROM και EEPROM Στα FPGAs χρησιμοποιούνται κύτταρα SRAM (SRAM cells) και αντιασφάλειες (antifuses) Συστήματα προγραμματισμού Εργαστηριακός εξοπλισμός χαμηλού κόστους Εχουν ειδικές υποδοχές (sockets) στις οποίες τοποθετείται το chip Επικοινωνούν με workstations στα οποία εκτελείται το κατάλληλο λογισμικό προγραμματισμού In System Programming: Προγραμματισμός μίας συσκευής μετά την τοποθέτηση της στο τυπωμένο κύκλωμα (PCB)
Προγραμματιζόμενοι διακόπτες: Τύπου EPROM, EEPROM Παράδειγμα προγραμματισμού διακοπτών τύπου EPROM Ανάλογα με τον προγραμματισμό τους βρίσκονται σε δύο καταστάσεις Ελέγχονται από το δυναμικό της πύλης τους Είναι μονίμως αποκομμένα, ανεξάρτητα από το δυναμικό της πύλης Αν όλα τα τρανζίστορ είναι απρογραμμάτιστα τότε υλοποιείται η λογική συνάρτηση F = (A + B + C) Αν το τρανζίστορ A είναι προγραμματισμένο τότε υλοποιείται η συνάρτηση F = (B + C), ενώ αγνοείται η είσοδος A Κύτταρα SRAM Αντιασφάλειες (antifuses) (1) Οι συσκευές FPGA χρησιμοποιούν κύτταρα SRAM και αντιασφάλειες για υλοποίηση λογικής (logic) και διασυνδέσεων (interconnect) Οι αντιασφάλειες είναι κυκλώματα τα οποία απρογραμμάτιστα έχουν πολύ υψηλή αντίσταση (ανοικτά κυκλώματα) ενώ όταν προγραμματιστούν αποκτούν πολύ χαμηλή αντίσταση Υλοποίηση λογικής Θέτουν σε αγωγή τρανζίστορ τα οποία βραχυκυκλώνουν δύο γραμμές Υλοποίηση διασύνδεσης Γραμμές επιλογής πολυπλεκτών: Μόνιμη διασύνδεση μίας από τις εισόδους του πολυπλέκτη στην έξοδό του Εναλλακτική υλοποίηση με τρισταθείς απομονωτές (tristate buffers) Η αντίσταση που ϑα έχει η κάθε αντιασφάλεια μετά τον προγραμματισμό της είναι πολύ σημαντική για τη λειτουργία του κυκλώματος
Αντιασφάλειες (antifuses) (2) Προγραμματιζόμενες διασυνδέσεις Xilinx (1) Για τον προγραμματισμό, τροφοδοτούμε με ρεύμα (περίπου 5 ma) Το υψηλό αυτό ρεύμα προκαλεί μεγάλη κατανάλωση ισχύος στη μικρή επιφάνεια της αντιασφάλειας Λιώνει ένα λεπτό μονωτικό υλικό, οπότε δημιουργείται κανάλι αγωγής Μία προγραμματιζόμενη συσκευή μπορεί να έχει αρκετές αντιασφάλειες (10 5 με 10 6 ) Συνήθως μόνο το 2% από αυτές χρειάζεται να προγραμματιστεί για να προκύψει το τελικό κύκλωμα Οι αντιασφάλειες παρουσιάζουν αρκετά προβλήματα αξιοπιστίας καθώς οι ιδιότητες τους αλλάζουν με την πάροδο του χρόνου. Οι διασυνδέσεις πραγματοποιούνται από μεταλλικά τμήματα με προγραμματιζόμενα διακοπτικά στοιχεία (switching points) και μήτρες διακοπτικών στοιχείων (switching matrices) Τα λογικά τμήματα ονομάζονται CLBs (Configurable Logic Blocks) και τοποθετούνται σε διάταξη πίνακα Η διασύνδεση των CLBs σχετίζεται με κάθε γραμμή και στήλη του πίνακα των διακοπτικών στοιχείων Η διασύνδεση των block εισόδου/εξόδου (IOB) διαμορφώνει ένα δακτυλίδι γύρω από τον πίνακα των CLBs Υπάρχει γενική διασύνδεση (Global Routing) η οποία αποτελείται από εξειδικευμένα δίκτυα (για ρολόι και σήματα με μεγάλο fanout) Προγραμματιζόμενες διασυνδέσεις Xilinx (2) Προγραμματιζόμενες διασυνδέσεις Xilinx (3) Πέντε τύποι διασύνδεσης ξεχωρίζουν από το σχετικό μήκος των τμημάτων τους: γραμμές μονές, διπλές, τετραπλές, οκταπλές και μακριές Υπάρχουν άμεσες διασυνδέσεις που επιτρέπουν γρήγορη ροή δεδομένων μεταξύ γειτονικών CLBs και μεταξύ IOBs και CLBs Οι οριζόντιες και κάθετες μονές και διπλές γραμμές τέμνονται σε ένα σημείο που ονομάζεται προγραμματιζόμενη μήτρα διακοπτών (PSM: Programmable Switch Matrix) Κάθε μήτρα διακοπτών αποτελείται από προγραμματιζόμενα τρανζίστορ περάσματος που καθορίζουν τις διασυνδέσεις μεταξύ των γραμμών
Παράδειγμα αρχιτεκτονικής και φυσικής σχεδίασης FPGA: Η αρχιτεκτονική AMDREL Η δομή του AMDREL FPGA και του CLB του Αρχιτεκτονική FPGA για χρήση σε εφαρμογές γενικού σκοπού Αποτέλεσμα ευρωπαϊκού ερευνητικού προγράμματος (FP6-IST) με συμμετοχή ελληνικών πανεπιστημιακών ομάδων (AUTH, DUTH) Υλοποίηση σε τεχνολογία STM 0.18µm Κλιμακωτή (scalable) αρχιτεκτονική Ορθογώνια διευθέτηση των λογικών μπλοκ Εξειδικευμένος σχεδιασμός (customized design): Τεχνικές σχεδίασης χαμηλής ισχύος στο BLE (Basic Logic Element) Διερεύνηση (power, delay, area) της σχεδίασης του CLB Νέα αρχιτεκτονική για τον τύπο και τις διαστάσεις του switch box Το AMDREL FPGA CLB Κυκλωματικός σχεδιασμός του LUT Το CLB αποτελείται από έναν αριθμό BLEs που διασυνδέονται σε τοπική δικτύωση Οι παράμετροι του CLB είναι: ο αριθμός των εισόδου του LUT (K), ο αριθμός των BLE ανά CLB (N), και ο αριθμός των εισόδων του CLB (I) LUT inputs: K = 4 Cluster size: Για την ελαχιστοποίηση της κατανάλωσης ισχύος, η βέλτιστη επιλογή είναι 5 BLEs CLB inputs: Υπολογίζεται σύμφωνα με τη σχέση I = ( K ) (N + 1) προκειμένου την υψηλή χρησιμοποίηση 2 των διαθέσιμων BLEs (98%)
Χαρακτηριστικά του BLE Η αρχιτεκτονική διασύνδεσης Το LUT 4 εισόδων υλοποιείται με τη βοήθεια δομής πολύπλεξης Η κύρια διαφορά από έναν τυπικό πολυπλέκτη είναι ότι τα σήματα ελέγχου αποτελούν εισόδους του LUT και οι είσοδοι στον πολυπλέκτη αποθηκεύονται σε κελιά μνήμης (S0-S15) Το flip-flop είναι τύπου Double Edge-Triggered Flip-Flop (DETFF) καθώς η διπλή ακμοπυροδότηση διατηρεί τον ίδιο ρυθμό δεδομένων στη μισή συχνότητα Στα πλαίσια της διερεύνησης για τις καλύτερες επιδόσεις εξετάστηκαν 5 υλοποιήσεις flip-flop της βιβλιογραφίας Επιλέχθηκε υλοποίηση με χρήση NMOS αντί για πύλες μετάδοσης λόγω της χαμηλότερης κατανάλωσης ισχύος Είναι τύπου νησίδας (island-based) και βασίζεται σε αποθήκευση RAM Παρόμοιου τύπου διασύνδεση χρησιμοποιείται στις συσκευές των εταιριών Xilinx και Lucent Technologies Τα λογικά κελιά περικλείονται από κάθετες και οριζόντιες μεταλλικές γραμμές διασύνδεσης οι οποίες τα συνδέουν με τα προγραμματιζόμενα κυτία διασύνδεσης (routing switch) Τα κυτία διασύνδεσης αποτελούνται είτε από τρανζίστορ περάσματος είτε από τρισταθείς απομονωτές (ένας για κάθε κατεύθυνση) Η διασύνδεση του ρολογιού είναι τύπου δένδρου (H-tree) και χρησιμοποιεί σηματοδοσία χαμηλής διακύμανσης (low-swing signaling) από τα αντίστοιχα κυκλώματα πομπού και δέκτη Η αρχιτεκτονική διαμόρφωσης του AMDREL FPGA (1) Η αρχιτεκτονική διαμόρφωσης του AMDREL FPGA (2) Αποτελείται από τα εξής στοιχεία: Κελί μνήμης για την αποθήκευση των ψηφίων προγραμματισμού Στοιχείο τοπικής αποθήκευσης για κάθε πλακίδιο (tile: αποτελείται από ένα CLB μαζί με τα κυτία συνδέσεων εισόδων και εξόδων του) Switch box μαζί με τη μνήμη για τον προγραμματισμό του Αποκωδικοποιητής για τον έλεγχο της διαδικασίας διαμόρφωσης όλου του FPGA Κελί μνήμης: 6Τ με τρανζίστορ ελαχίστων διαστάσεων Στοιχεία για μία συστοιχία 8 8 Μέγεθος bitstream: 4.2Kb 16-bit data bus, 12-bit address bus 1.4 ns delay για την εγγραφή μίας σειράς των 16 κελιών μνήμης 2100 κύκλοι ρολογιού για τη διαμόρφωση όλου του FPGA Ανεξάρτητη διαμόρφωση για το κάθε πλακίδιο
Φυσικά χαρακτηριστικά του AMDREL FPGA Η φυσική σχεδίαση του AMDREL FPGA (tile layout) Χαρακτηριστικά του πρωτότυπου που υλοποιήθηκε σε τεχνολογία STM 0.18µm 8 8 μέγεθος συστοιχίας (320 LUTs, 320 FFs, 96 I/Os) 1.8V τάση τροφοδοσίας 4.86 5.28 mm 2 επιφάνεια ολοκληρωμένου 2.49 µsec χρόνος διαμόρφωσης 6 μεταλλικές στρώσεις 1 Βραχείες συνδέσεις, τάση τροφοδοσίας 2 Συνδέσεις βραχείες, τοπικές και μεταξύ cluster, δίαυλοι, γείωση 3 Τοπικές (intra-cluster), κύριες διασυνδέσεις 4 Σήμα ρολογιού, διαμόρφωση 5 Διαμόρφωση 6 Διαμόρφωση