Τεχνολογίες ολοκληρωμένων κυκλωμάτων ASICs-FPGAs Γιώργος Δημητρακόπουλος Δημοκρίτειο Πανεπιστήμιο Θράκης Άνοιξη 2013 Συστήματα VLSI 1
Ολοκληρωμένα κυκλωμάτα και συστήματα Ψηφιακά ολοκληρωμένα κυκλώματα 2
Τα ολοκληρωμένα κυκλώματα από «μέσα» Ψηφιακά ολοκληρωμένα κυκλώματα 3
Τα επίπεδα αφαίρεσης κάθε συστήματος Algorithms-Applications Operating System Συστήματα VLSI 8o εξάμηνο Instruction Set Architecture Microarchitecture Register-transfer-level Logic design Circuits Devices-Technology Αρχιτεκτονική ΗΥ Ολοκληρωμένα κυκλώματα 7o εξάμηνο Οι μηχανικοί ΗΥ προσπαθούν να συγκεράσουν τις απαιτήσεις των εφαρμογών και τους περιορισμούς που εισάγει η τεχνολογία Οι εφαρμογές ορίζουν τις αρχιτεκτονικές Η τεχνολογία μας λέει ποια αρχιτεκτονική υλοποιείται αποδοτικότερα Η σχεδίαση αντιμετωπίζεται σε επίπεδα (συνήθως από πάνω προς τα κάτω) ώστε να γνωρίζουμε κάθε στιγμή τη σίγουρα δουλεύει και τι οχι Οταν το ολοκληρωμένο κύκλωμα κατασκευαστεί δεν πρέπει να έχει λάθη Ψηφιακά ολοκληρωμένα κυκλώματα 4
Τα εργαλεία της σχεδίασης Algorithms-Applications Operating System Instruction Set Architecture Microarchitecture Register-transfer-level Logic design Circuits Devices-Technology Κάθε ψηφιακό κύκλωμα σχεδιάζεται με 4 βασικά δομικά στοιχεία Λογικές πύλες για τους υπολογισμούς (λογικές πράξεις) Flip-flops για την αποθήκευση της κατάστασης των υπολογισμών Μνήμες για την αποθήκευση μεγάλου όγκου δεδομένων με δομημένο τρόπο Καλώδια για να συνδέσουμε τα παραπάνω στοιχεία Ολα αυτά υλοποιούνται εντός του ολοκληρωμένου κυκλωμάτος χρησιμποιώντας τρανζίστορ και καλώδια Ψηφιακά ολοκληρωμένα κυκλώματα 5
Μικροφωτογραφίες από τρανζίστορ και καλώδια Καλώδια σε επίπεδα Τρανζίστορ Τα τρανζίστορ βρίσκονται στον «πάτο» του ολοκληρωμένου Πολλά επίπεδα καλωδίωσης (μέταλλα) συνδέουν τα τρανζίστορ μεταξύ τους Οι επαφές (contact/via) συνδέουν τρανζίστορ και καλώδια που ανήκουν σε διαφορετικά επίπεδα Ψηφιακά ολοκληρωμένα κυκλώματα 6
Βασικά βήματα κατασκευής ενός ολοκληρωμένου κυκλώματος Ψηφιακά ολοκληρωμένα κυκλώματα 7
Ψηφιακά συστήματα Γκάμα συστημάτων με υψηλές απαιτήσεις σε ολοκληρωμένα κυκλώματα υψηλών επιδόσεων και χαμηλής κατανάλωσης ισχύος Ψηφιακά ολοκληρωμένα κυκλώματα 8
Πως υλοποιούνται τελικά οι σχεδιασμοί μας; Κάθε ολοκληρωμένο κύκλωμα προσπαθεί να υλοποίησει έναν αλγόριθμο Μπορεί να πρόκειται και για ένα σύνθετο σύστημα Ποια είναι τα βήματα που ακολουθούμε στην πράξη και πως βοηθά το μάθημα; Η ροή σχεδίασης συνήθως τηρείται ευλαβεικά αλλιώς η πολυπλοκότητα θα καταστρέψει το τελικό αποτέλεσμα Ψηφιακά ολοκληρωμένα κυκλώματα 9
Μικρο-αρχιτεκτονική Σχεδίαση μικρο-αρχιτεκτονικής Επιλογή των βασικών μπλοκ του συστήματος Ιεραρχία και επικοινωνία μεταξύ των μονάδων Χοντρική εκτίμηση εμβαδού, επιδόσεων Περιγραφή μοντέλου λειτουργίας Γλώσσες περιγραφής υλικού Προσωμοίωση (simulation) του σχεδιασμού Ψηφιακά ολοκληρωμένα κυκλώματα 10
Περιγραφή μικρο-αρχιτεκτονικής με γλώσσες περιγραφής υλικού Ψηφιακά ολοκληρωμένα κυκλώματα 11
Μικροαρχιτεκτονική μέσω σύνθεσης υψηλού επιπέδου H μικροαρχιτεκτονική είτε επιλέγεται από το σχεδιαστή είτε προκύπτει μέσω σύνθεσης υψηλού επιπέδου (high-level synthesis) από αλγοριθμικές περιγραφές σε C++ (C to RTL flows) Ψηφιακά ολοκληρωμένα κυκλώματα 12
Προσωμοίωση Ψηφιακά ολοκληρωμένα κυκλώματα 13
Λογική σύνθεση Μετατροπή του μοντέλου σε γλώσσα περιγραφής υλικού σε κύκλωμα λογικών πυλών και flip-flops Βελτιστοποίηση των επιδόσεων Ψηφιακά ολοκληρωμένα κυκλώματα 14
Φυσική δομή ολοκληρωμένου κυκλώματος Ψηφιακά ολοκληρωμένα κυκλώματα 15
Χωροθέτηση και διασύνδεση του κυκλώματος Τα κυκλώματα λογικής (πύλες και flip-flops) μετασχηματίζονται σε φυσικό σχέδιο (layout) Φυσικό σχέδιο: Η γεωμετρία κάθε μάσκας κατασκευής του ολοκληρωμένου κυκλώματος Αυτοματοποιημένη τοποθέτηση στο χώρο και διασύνδεση με τα καλώδια Η ανθρώπινη παρέμβαση βοηθά στον κατάλληλο περιορισμό των αυτόματων εργαλείων Πλήρως ελεύθερη σχεδίαση από τον άνθρωπο (τρανζίστορ προς τρανζίστορ) γίνεται μόνο για εξαιρετικές επιδόσεις, στις μνήμες και στα αναλογικά κυκλώματα Ψηφιακά ολοκληρωμένα κυκλώματα 16
Η ροή σχεδίασης Σε αυτό το μάθημα Ψηφιακά ολοκληρωμένα κυκλώματα 17
Σχηματικό κυκλώματος Τα κυκλώματα σχεδιάζονται σε επίπεδα Τρανζίστορ, πύλες, μπλοκ Χρησιμοποιείται ιεραρχία Μπλοκς μέσα σε μπλοκς Επαναχρησιμοποίηση κοινών υπο-κυκλωμάτων Ψηφιακά ολοκληρωμένα κυκλώματα 18
Φυσικό σχέδιο Δισδιάστατη αναπαράσταση ενός 3D κόσμου Τοποθέτηση των τρανζίστορ του σχηματικού Σύνδεση όλων των υπο-κυκλωμάτων Ιεραρχία στο φυσικού σχεδίου που ακολουθεί την ιεραρχία του σχηματικού Ψηφιακά ολοκληρωμένα κυκλώματα 19
Field Programmable Gate Arrays (FPGAs) Συστήματα VLSI 20
Using ROM as Combinational Logic B A B C F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 C A C A B C 8 x 1 ROM (LUT) F F Page 21
Mapping Larger Functions To ROMs A B C D F 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 B C D B C D LUT (CD) LUT (B+C) LUT A f1 + Af2 Very similar to how we decomposed functions to implement with MUX blocks f1 f2 A F Page 22
ROM vs. LUT A ROM can be used as a lookup table (LUT) An FPGA contains many, many such LUTs Possibly hundreds of thousands A 3LUT has 3 inputs and 1 output A 4LUT has 4 inputs and 1 output 4LUTs are the most common Page 23
Mapping a Gate Network to LUTs Page 24
Mapping a Gate Network to 3LUTs 3LUT #2 3LUT #1 3LUT #3 Page 25
Mapping Same Network to 4LUTs 4LUT #2 4LUT #1 Page 26
Mapping Equations to LUTs How many 4LUTs do the following functions require? F = a F = abcd F = a b c d + a bcd + a b c d + a b cd F = a + b + c + d F = (a +b + c + d)(a + b + c + d ) Each equation requires a single 4LUT! Number of LUTs isn t a function of equation complexity, but a function of number of unique inputs Page 27
I/O Buffers I/O Buffers FPGAs What Are They? Programmable Logic Elements (LEs) I/O Buffers Programmable wiring areas I/O Buffers communicate between FPGA and the outside world I/O Buffers An FPGA is a Programmable Logic Device (PLD) It can be programmed to perform any function desired. Page 28
Programmable Logic Elements (LEs) Typically contain a LUT, wires, and storage ina inb inc 4LUT D Q 0 1 out ind 16 clk Page 29
Programmable Logic Elements (LEs) Typically contain a LUT, wires, and storage ina inb inc 4LUT D Q 0 1 out ind 16 clk This mux provides a registered or unregistered function of the 4 input variables Page 30
Programmable Logic Elements (LEs) Typically contain a LUT, wires, and storage ina inb inc 4LUT D Q 0 1 out ind 16 clk Black dots indicate programming bits (configuration bits) Page 31
Programmable Logic Elements (LEs) Typically contain a LUT, wires, and storage ina inb inc 4LUT D Q 0 1 out ind 16 clk On power up, configuration bits are loaded into FPGA This customizes its operation (LUT function, MUX selection) Page 32
Programmable Logic Elements (LEs) Typically contain a LUT, wires, and storage ina inb inc 4LUT D Q 0 1 out ind 16 clk Typically, configuration bits are not changed during circuit operation (but, some FPGA s are dynamically reconfigurable) Page 33
Another LE Structure Provides two outputs One combinational, one registered ina inb inc ind 4LUT 0 1 D Q outreg ine 16 clk 0 outcomb 1 Page 34
One Configuration ina inb inc ind 4LUT 0 1 D Q outr = reg(inb(inc+ind)) ine 16 =1 clk fn=inb(inc+ind) 0 1 Page 35
Another Configuration ina inb inc ind 4LUT 0 1 D Q outr = reg(ina) ine 16 =0 clk fn=inc 0 outc = inc 1 =1 Page 36
Yet Another Configuration ina inb inc ind 4LUT 0 1 D Q outr = reg(inc ) ine 16 =1 clk fn=inc 0 outc = inc 1 =1 Page 37
An LE With Carry/Cascade Logic Cout ina inb inc 4LUT Carry/ Cascade D Q 0 1 out ind 16 clk Cin Can do two functions at once (Sum and Cout) Carry/cascade logic optimized for add/subtract and wide AND,OR, Cin and Cout have dedicated connections to neighboring LEs fast carry chains fast arithmetic Page 38
Row wires An FPGA Architecture (Island Style) Logic Elements Column Wires Each LE is configured to do a function Wire intersections are programmed to either connect or not Page 39
Programmable Interconnect Junction Column wire =1 ON Connected Row wire =0 OFF Unconnected Page 40
Example Problem Generate the N, Z, P status flags for a 6-bit microprocessor D0-D5 Z D5 N Z N P Page 41
Example Problem Generate the N, Z, P status flags for a 6-bit microprocessor D0-D5 Z D5 N Z N P Will require 2 4LUTs Can be done with wiring only or with 1 4LUT Will require 1 4LUT Page 42
N 1 2 3 4 5 D0 D1 6 7 8 9 10 D2 P 11 12 13 14 15 D3 D4 D5 Z LUT #1: F1 = D0 D1 D2 D3 LUT #7: F2 = F1 D4 D5 Z output LUT #8: F3 = D5 N output LUT #9: F4 = Z N P output Page 43
N 1 2 3 4 5 D0 D1 6 7 8 9 10 D2 P 11 12 13 14 15 D3 D4 D5 Z LUT #1: F1 = D0 D1 D2 D3 LUT #7: F2 = F1 D4 D5 Z output LUT #8: F3 = D5 N output LUT #9: F4 = Z N P output Page 44
N 1 2 3 4 5 D0 D1 6 7 8 9 10 D2 P 11 12 13 14 15 D3 D4 D5 Z LUT #1: F1 = D0 D1 D2 D3 LUT #7: F2 = F1 D4 D5 Z output LUT #8: F3 = D5 N output LUT #9: F4 = Z N P output Page 45
N 1 2 3 4 5 D0 D1 6 7 8 9 10 D2 P 11 12 13 14 15 D3 D4 D5 Z LUT #1: F1 = D0 D1 D2 D3 LUT #7: F2 = F1 D4 D5 Z output LUT #8: F3 = D5 N output LUT #9: F4 = Z N P output Page 46
N 1 2 3 4 5 D0 D1 6 7 8 9 10 D2 P 11 12 13 14 15 D3 D4 D5 Z LUT #1: F1 = D0 D1 D2 D3 LUT #7: F2 = F1 D4 D5 Z output LUT #8: F3 = D5 N output LUT #9: F4 = Z N P output Page 47
Configuring an FPGA Most FPGAs have a configuration input pin Configuration bits are shifted into FPGA using this pin, one bit per cycle Configuration bits in FPGA linked into a long shift register (SIPO) Examples on following slides are conceptual Commercial devices slightly different Page 48
Structure of a 3LUT b0 Configuration Storage Bits (Flip Flops) b1 b2 b3 b4 b5 b6 b7 3 LUT Inputs LUT Output It s just an 8:1 MUX LUT inputs select which config bit is sent to LUT output Programming LUT function setting configuration bits Page 49
How are the Configuration Bit Flip Flops Loaded? A serial-in/parallel-out (SIPO) shift register 0 1 D Q B6 These are the configuration bits which the LUT selects from CONFIG CCLK 0 D Q B7 1 CONFIG CCLK Page 50
Configuring the Programmable Interconnect Column wire Also arranged in a SIPO shift register Configuration bit Row wire b Page 51
Συστήματα VLSI 52