ΚΥΚΛΩΜΑΤΑ VLSI Πανεπιστήμιο Ιωαννίνων Σχεδιαστικές Μεθοδολογίες VLSI Κυκλωμάτων Κεφάλαιο 14 ο Τμήμα Μηχανικών Η/Υ και Πληροφορικής Γ. Τσιατούχας ΚΥΚΛΩΜΑΤΑ VLSI Διάρθρωση VLSI Systems and Computer Architecture Lab 1. Σχεδιαστικά επίπεδα αφαίρεσης 2. Σχεδίαση σε επίπεδο τρανζίστορ 3. Σχεδίαση με δομικά κύτταρα 4. Σχεδίαση με διατάξεις 5. Προγραμματιζόμενες μ διατάξεις 6. Σχεδίαση με μακροκύτταρα 7. Συστήματα σε ένα ολοκληρωμένο (SoC) Σχεδιαστικές Μεθοδολογίες 2 1
Σχεδιαστικά Επίπεδα Αφαίρεσης Δομικό (Structural) Processor, Memory Switch (PMS) Register Transfer Level Gates υψηλό επίπεδο αφαίρεσης χαμηλό επίπεδο αφαίρεσης Λειτουργικό (Functional) Algorithms, Programs (behavioral level) Finite State Machines Boolean Equations Differential Equations Transistors Polygons (Masks) Γεωμετρικό (Geometric) Sticks Standard Cells Floor Plan Gajski & Kahn Y Chart Σχεδιαστικές Μεθοδολογίες 3 Επίπεδα Σχεδίασης Πυρήνας Control ALU MPU MPU Interc connect CIO Memory CIO Ολοκληρωμένο SoC GPR IR PC MAR MDR Δομικό Κύτταρο (Πύλη) Bus Drivers Μακροκύτταρο Σχεδιαστικές Μεθοδολογίες 4 2
Σχεδιαστική Μεθοδολογία Προδιαγραφές Περιγραφή Απαιτήσεων Behavioural (HDL) Σχεδίαση Συστήματος Επαλήθευση Σχεδίασης Μοντέλο Συμπεριφοράς RTL (HDL) Σχεδίαση Λογικής Σύνθεση Επαλήθευση Σχεδίασης Προσομοίωση Δομικό Μοντέλο Netlist Σχεδίαση Κυκλώματος Χωροθέτηση/Διασύνδεση Επαλήθευση Σχεδίασης Κύκλωμα Φυσικός Σχεδιασμός Επαλήθευση Σχεδίασης Κατασκευή Σχεδιαστικές Μεθοδολογίες 5 Σχεδιαστικές Επιλογές Υλοποίηση Ψηφιακών Ολοκληρωμένων Κυκλωμάτων Πλήρως Ελεύθερη Σχεδίαση Ημιελεύθερη Σχεδίαση Χρήση Κυττάρων Χρήση Διατάξεων Δομικά Θάλασσα Πυλών Προγραμματιζό Κύτταρα Μακροκύτταρα Διατάξεις Πυλών μενες Διατάξεις Σχεδίαση Ολοκληρωμένων Κυκλωμάτων Ειδικών Εφαρμογών Application Specific Integrated Circuits (ASICs) Σχεδιαστικές Μεθοδολογίες 6 3
Σχεδίαση στο Επίπεδο των Τρανζίστορ Υλοποίηση Ψηφιακών Ολοκληρωμένων Κυκλωμάτων Πλήρως Ελεύθερη Σχεδίαση Ημιελεύθερη Σχεδίαση Χρήση Κυττάρων Χρήση Διατάξεων Δομικά Κύτταρα Μακροκύτταρα Θάλασσα Πυλών Διατάξεις Πυλών Προγραμματιζό μενες Διατάξεις Σχεδιαστικές Μεθοδολογίες 7 Σχεδίαση Κυττάρων Δομικά Κύτταρα NOT NAND metal 1 contact poly p+ n+ nwell Σχεδιαστικές Μεθοδολογίες 8 4
Σχεδίαση με Δομικά Κύτταρα Υλοποίηση Ψηφιακών Ολοκληρωμένων Κυκλωμάτων Πλήρως Ελεύθερη Σχεδίαση Ημιελεύθερη Σχεδίαση Χρήση Κυττάρων Χρήση Διατάξεων Δομικά Κύτταρα Μακροκύτταρα Θάλασσα Πυλών Διατάξεις Πυλών Προγραμματιζό μενες Διατάξεις Σχεδιαστικές Μεθοδολογίες 9 NAND 3 εισόδων Δομικά Κύτταρα Standard Cells Χαρακτηριστικά Λειτουργίας C = χωρητικότητα στην έξοδο Τ = χρόνος ανόδου / καθόδου σήματος εισόδου ST Microelectronics Σχεδιαστικές Μεθοδολογίες 10 5
Σχεδίαση με Δομικά Κύτταρα (Ι) metal 2 via 1 metal 1 contact poly p+ n+ nwell Σχεδιαστικές Μεθοδολογίες 11 Σχεδίαση με Δομικά Κύτταρα (ΙΙ) metal 3 via 2 Σχεδιαστικές Μεθοδολογίες 12 6
Σχεδίαση με Δομικά Κύτταρα (ΙV) Σχεδιαστικές Μεθοδολογίες 13 Πλήρης Εικόνα Ολοκληρωμένου Σχεδιαστικές Μεθοδολογίες 14 7
Σχεδίαση με Διατάξεις Πυλών Υλοποίηση Ψηφιακών Ολοκληρωμένων Κυκλωμάτων Πλήρως Ελεύθερη Σχεδίαση Ημιελεύθερη Σχεδίαση Χρήση Κυττάρων Χρήση Διατάξεων Δομικά Κύτταρα Μακροκύτταρα Θάλασσα Πυλών Διατάξεις Πυλών Προγραμματιζό μενες Διατάξεις Σχεδιαστικές Μεθοδολογίες 15 Διατάξεις Πυλών Θάλασσα Πυλών Ολοκληρωμένο Διάταξης Πυλών Θάλασσας Πυλών Γραμμές Διαθέσιμων Τρανζίστορ Κανάλια Διασυνδέσεων Σχεδιαστικές Μεθοδολογίες 16 8
Κύτταρο Διάταξης με Μονωμένη Πύλη metal 2 via 1 metal 1 contact poly p+ n+ nwell Σχεδιαστικές Μεθοδολογίες 17 Κύτταρο Διάταξης με Μόνωση Οξειδίου Σχεδιαστικές Μεθοδολογίες 18 9
Διασυνδέσεις Κυττάρων Σχεδιαστικές Μεθοδολογίες 19 Ολοκληρωμένο Διάταξης Πυλών Λογική Μνήμη LSI Logic (0.6 mm CMOS) Σχεδιαστικές Μεθοδολογίες 20 10
Σχεδίαση με Προγραμματιζόμενες Διατάξεις Υλοποίηση Ψηφιακών Ολοκληρωμένων Κυκλωμάτων Πλήρως Ελεύθερη Σχεδίαση Ημιελεύθερη Σχεδίαση Χρήση Κυττάρων Χρήση Διατάξεων Δομικά Κύτταρα Μακροκύτταρα Θάλασσα Πυλών Διατάξεις Πυλών Προγραμματιζό μενες Διατάξεις Σχεδιαστικές Μεθοδολογίες 21 Προγραμματιζόμενες Διατάξεις Κατηγοριοποιήσεις Προγραμματιζόμενων Διατάξεων: Με βάση την τεχνική προγραμματισμού Χρήση αντιασφαλειών (antifuses) Μόνιμος προγραμματισμός μ Χρήση μνημών EPROM Χρήση μνημών RAM (και εξωτερικών EPROM) Με βάση τον τύπο της προγραμματιζόμενης λογικής Χρήση διατάξεων λογικής (logic arrays) Χρήση πινάκων αναφοράς (look up tables) Με βάση τον τύπο των προγραμματιζόμενων διασυνδέσεων Χρήση καναλιών διασύνδεσης (channel routing) Χρήση πλεγματικών δικτυωμάτων (mesh networks) Σχεδιαστικές Μεθοδολογίες 22 11
Προγραμματιζόμενες Λογικές Διατάξεις Programmable Logic Arrays (PLAs) Όροι Γινομένου AND Δομή x 0 x 1 x 2 x 0 x 1 x 2 x 1 x 2 OR Δομή Κάθε λογική συνάρτηση μπορεί να εκφραστεί ως άθροισμα γινομένων (AND OR) δηλ. ως άθροισμα ελαχιστόρων. f x x x 0 1 0 0 1 f x x x x x x 1 2 2 2 1 2 x 0 x 1 x 2 Είσοδοι f 0 f 1 Έξοδοι Τα PLAs προγραμματίζονται ως προς τα γινόμενα (ελαχιστόρους) και/ή ως προς τα αθροίσματα που θα παράγουν. Σχεδιαστικές Μεθοδολογίες 23 Προγραμματιζόμενες Λογικές Διατάξεις I 5 I 4 I 3 I 2 I 1 I 0 Προγραμματιζόμενη Προγραμματιζόμενη OR διάταξη I 3 I 2 I 1 I 0 OR διάταξη I 5 I 4 I 3 I 2 I 1 I 0 Μόνιμη OR διάταξη Προγραμματιζόμενη AND διάταξη O 3 O 2 O 1 O 0 Μόνιμη AND διάταξη O 3O 2O 1O 0 Προγραμματιζόμενη AND διάταξη O 3 O 2 O 1 O 0 PLA PROM PAL Προσδιορίζει προγραμματιζόμενη σύνδεση Προσδιορίζει μόνιμη σύνδεση Σχεδιαστικές Μεθοδολογίες 24 12
Υλοποίηση Συναρτήσεων σε PLA 1 X 2 X 1 X 0 f f 0 1 x x 0 0 x x 1 1 x x 2 2 x 2 x 1 x 2 : προγραμματισμένος κόμβος NA NA f 1 f 0 Σχεδιαστικές Μεθοδολογίες 25 Προγραμματιζόμενες Λογικές Συσκευές Programmable Logic Devices (PLDs)... PLA 2 Παράγοντες Γινομένων PLA 1 macrocell ALTERA MAX7000 Σχεδιαστικές Μεθοδολογίες 26 13
Προγραμματιζόμενες Λογικές Συσκευές LAB = Logic Array Block Κανάλι Διασύνδεσης ALTERA MAX7000 Σχεδιαστικές Μεθοδολογίες 27 Οργάνωση LAB Υποκυκλωμάτων Κανάλι Διασύνδεσης ALTERA MAX7000 Σχεδιαστικές Μεθοδολογίες 28 14
Προγραμματιζόμενες Διατάξεις Λογικής Field Programmable Gate Arrays (FPGAs) Τυπικό Δομικό Κύτταρο Λογικής σε FPGA LUT 1 LUT 3 LUT 2 Configurable Logic Block (CLB) Xilinx XC400E Σχεδιαστικές Μεθοδολογίες 29 Λογική με Χρήση Πινάκων Αναφοράς Look Up Table (LUT) Logic Cell Μνήμη Memory MUX Out In1, In2 Out 00 1 01 1 10 1 11 0 In1 In2 NAND Σχεδιαστικές Μεθοδολογίες 30 15
Οργάνωση LUT Υποκυκλωμάτων LUT 1 LUT 2 Xilinx XC400E Σχεδιαστικές Μεθοδολογίες 31 Δικτυώματα Διασύνδεσης Κανάλι Πλέγμα t PIA LAB1 LAB2 LAB PIA t PIA LAB6 Κανάλι Διασύνδεσης (ALTERA MAX 3000 7000) Πλεγματικό Δικτύωμα (ALTERA MAX 9000) Σχεδιαστικές Μεθοδολογίες 32 16
Πλεγματικό Δικτύωμα Μήτρα Διακοπτών Πλέγμα Διασύνδεσης LAB M Αναδιατάκτες σημάτων στο δικτύωμα διασύνδεσης Διακόπτης Σχεδιαστικές Μεθοδολογίες 33 Γενική Χωροθέτηση FPGAs I/O Buffers Program/Test/Diagnostics g Vertical routes I/O Buffers I/O Buffers Rows of logic modules Routing channels I/O Buffers Πληροφορίες: http://www.altera.com http://www.xilinx.com Σχεδιαστικές Μεθοδολογίες 34 17
Ολοκληρωμένο FPGA Xilinx XC400E Σχεδιαστικές Μεθοδολογίες 35 Ετερογενείς Προγραμματιζόμενες Πλατφόρμες FPGA Ενσωματωμένος PowerPc Ενσωματωμένη Μνήμη Αριθμητικά Κυκλώματα Ι/Ο Υψηλής Ταχύτητας Xilinx Virtex II Pro Σχεδιαστικές Μεθοδολογίες 36 18
Σχεδίαση με Μακροκύτταρα Υλοποίηση Ψηφιακών Ολοκληρωμένων Κυκλωμάτων Πλήρως Ελεύθερη Σχεδίαση Ημιελεύθερη Σχεδίαση Χρήση Κυττάρων Χρήση Διατάξεων Δομικά Κύτταρα Μακροκύτταρα Θάλασσα Πυλών Διατάξεις Πυλών Προγραμματιζό μενες Διατάξεις Σχεδιαστικές Μεθοδολογίες 37 Μακροκύτταρα Άκαμπτο (Hard) Μακροκύτταρο Μνήμης HDL περιγραφή Εύκαμπτο (Soft) Μακροκύτταρο Πολλαπλασιαστή Φυσική Υλοποίηση Χρήση Δομικών Κυττάρων Σχεδιαστικές Μεθοδολογίες 38 19
Γλώσσες Περιγραφής Κυκλωμάτων Hardware Description Langusges (HDLs) Οι γλώσσες HDL (VHDL, Verilog) χρησιμοποιούνται για την περιγραφή ηλεκτρονικών συστημάτων. Προσφέρουν τη δυνατότητα: καταγραφής προδιαγραφών τεκμηρίωσης επαλήθευσης με τη χρήση προσομοίωσης τυπικής επαλήθευσης σύνθεσης Σό Στόχος: αξιόπιστη διαδικασία σχεδίασης, με ταυτόχρονη ελαχιστοποίηση του κόστους και του απαιτούμενου χρόνου αποφυγή σχεδιαστικών λαθών entity half_adder is port (in0, in1 : in bit; sum, cout : out bit); end entity half_adder; architecture rtl of half_adder is begin sum <= in0 xor in1; cout <= in0 and in1; end architecture rtl; architecture t str of half_adder is begin... end architecture str; Παράδειγμα περιγραφής σε VHDL Σχεδιαστικές Μεθοδολογίες 39 Συστήματα σε ένα Ολοκληρωμένο Systems on a Chip (SoC) Μακροκύτταρα ή πυρήνες (cores) RAM DSP Flash JTAG core Radio RAM Interr. control RAM Base Band GSM GSM timing RISC core URTS Clock RISC Perif. BBG Audio Data EBI Χρήση εμφωλευμένων κυκλωματικών πυρήνων όπου το κόστος, η απόδοση, η κατανάλωση και η αξιοπιστία έχουν τον πρώτο λόγο. Ανάγκη DSP κυκλωμάτων. Ύπαρξη μεικτών σχεδιασμών. Συνδυασμός προγραμματιζόμενων τεχνικών και τεχνικών σχεδίασης κυκλωμάτων ειδικών εφαρμογών. Το λογισμικό είναι αδιαχώριστος κρίκος. Οι πυρήνες είναι συνήθως μονάδες πνευματικής ιδιοκτησίας (intellectual property IP blocks) Σχεδιαστικές Μεθοδολογίες 40 20
Θέματα Σχεδίασης SoC RAM DSP Flash JTAG core Radio RAM Interr. control RAM Base Band GSM GSM timing RISC core URTS Clock RISC Perif. BBG Audio Data EBI Διαχωρισμός υλικού/λογισμικού. Προδιαγραφές μερών. Σύγχρονη/ασύγχρονη σχεδίαση. Hard/Soft IPs. Χωροθέτηση (floorplaning). Διασύνδεση / αρτηρίες δεδομένων. Διαμοιρασμός ρολογιού και τροφοδοσιών. Τεχνικές ανάδειξης σχεδιαστικών λαθών (debug strategies). t Τεχνικές επαλήθευσης σχεδιασμού (verification). Τεχνικές ελέγχου ορθής λειτουργίας (design for testability). Σχεδιαστικές Μεθοδολογίες 41 Χωροθέτηση Διασύνδεση RAM DSP JTA AG Flash Clock GSM Tm BUS RISC RISC Int. Radio Interr. Contr. BUS Perif. Int. Audio RAM URTS EBI Data Int. Σχεδιαστικές Μεθοδολογίες 42 21
Πακετάρισμα! System in a Package (SiP SiP) ΙΕΕΕ Spectrum 3/11 Single Package SiP Package on Package (PoP) Package in Package (PiP) 3D Chip Stacking Σχεδιαστικές Μεθοδολογίες 43 22