Folien (2015) Kapitel 1
Transcription
Folien (2015) Kapitel 1
1 PLD - Eine moderne Realisierungsvariante für digitale Schaltungen PLD = Programmable Logic Device (Sammelbezeichnung für alle programmierbaren Logikschaltkreise) 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen 1. PLD - Eine moderne Realisierungsvariante für digitale Schaltungen 1.1. Vom PAL zum FPGA – Ein kurzer geschichtlicher Abriß 1.2. Architekturprinzipien von PLD 1.3. Systematische Einteilung aktueller Realisierungsvarianten 1.4. Der PLD-Entwurfsprozeß im Überblick 1.5. Aufbau und Eigenschaften ausgewählter FPGA im Überblick 2 3 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen 1985 ASIC Herstellerprogrammiert Anwenderprogrammiert Produkttermbasierend Vollkunden-IC Standardzelle Gate Array PAL, PLA, GAL, EPLD ASIC Application Specific Integrated Circuit (Anwendungsspezifischer Schaltkreis) FPGA LCA (XILINX) ACTx (ACTEL) ... ASIC Auf Silizium Installiertes Chaos (nach LURA) FPGA Field Programmable Gate Array 4 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Vom PAL zum FPGA o (L rra A ell C gic A A LC FPG NX tes I L XI ers L PA L A G y) L E T AC GA P F 1985 ni a P iL e kb a D M A , ce i t t d un . o C & L GA L CP D . Co (n x L SP D u a L PA f em n i e ) p i Ch 5 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Statistik 1993 ASIC-Weltmarkt Rest 93% FPGA-Weltmarkt USA 70% FPGA 7% Japan/ Südostasien 10% Wachstumsrate FPGA 37% Europa 20% Quelle: VDI-Nachrichten, April 1994 6 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Statistik 1993 FPGA-Weltmarkt AT&T TI 10% Rest 10% Actel 20% Xilinx 60% Quelle: VDI-Nachrichten, April 1994 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Statistik 1998 Programmable Logic (FPGA, CPLD, PLD), Top Ten Suppliers Revenue Results and Market Share SOURCE: EE Times, 4-OCT-1999. 1998 Ranking 7 8 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Statistik 2005/06 Revenue Results and Market Share Rest Lattice 11% 6% ALTERA 33% XILINX 50% Quelle: Electronic Business, 6/1/2006 http://www.reed-electronics.com/eb-mag/article/CA6339519 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Umfrage 2006 Quelle: Electronic Engineering Times May 29, 2006 www.eetimes.com 9 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen 1. PLD - Eine moderne Realisierungsvariante für digitale Schaltungen 1.1. Vom PAL zum FPGA – Ein kurzer geschichtlicher Abriß 1.2. Architekturprinzipien von PLD 1.3. Systematische Einteilung aktueller Realisierungsvarianten 1.4. Der PLD-Entwurfsprozeß im Überblick 1.5. Aufbau und Eigenschaften ausgewählter FPGA im Überblick 10 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Prinzipielle Bausteinstrukturen 11 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Konfigurierbare Verbindungselemente In einem Schaltkreis, dessen Funktion erst auf dem Schreibtisch des Anwenders festgelegt werden soll, müssen zu diesen Zeitpunkt schaltbare elektrische Verbindungen vorhanden sein. Forderungen elektrisch idealer Schalter unendlich klein von außen ohne Aufwand unendlich oft schaltbar mit Standardprozeß realisierbar Realisierungen Fuse Antifuse SRAM EPROM EEPROM Flash 12 13 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Fuse I Sicherung intakt (Lieferzustand) Sicherung durchgebrannt UProg 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Fuse II Technologie Fuse (Sicherung) Struktur ganz „normale“ Sicherung, direkte bidirektionale Verbindung Flächenbedarf sehr groß Verbindungs-R sehr klein Verbindungs-C sehr klein Extra Prozeßschritte 0 Programmierung im Programmiergerät dazu benötigte Zusatzhardware Programmiergerät mit passender Fassung Flüchtig nein Reprogrammierbar / -konfigurierbar nein Testbarkeit Rohling nicht testbar, Testvektorgenerierung und Verifikation im Programmiergerät erforderlich Verifikation nach Konfigurierung Verifikation nur über programmierte Funktion möglich Debugging nach Konfigurierung nicht möglich Bemerkungen Achtung! Programmierung von nicht verifizierbaren Strukturen möglich!!!!! 15 17 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Antifuse I PLICE (Patent ACTEL) ViaLink (Patent QuickLogic) Flächenbedarf 3,2..0,25µm Übergangswiderstand 500..30Ω Zeitkonstante 500..50ps (incl. Gattereingang) 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Antifuse II Serie SX/SXA Fa. ACTEL 18 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Antifuse III Technologie Antifuse Struktur Gegenteil zur Fuse, direkte bidirektionale Verbindung Flächenbedarf extrem klein für die eigentliche Antifuse, Zusatzplatzbedarf für Programmiernetzwerk Verbindungs-R sehr klein Verbindungs-C sehr klein Extra Prozeßschritte 3 Programmierung im Programmiergerät dazu benötigte Zusatzhardware Programmiergerät mit passender Fassung Flüchtig nein Reprogrammierbar / -konfigurierbar nein Testbarkeit Rohling 100% testbar Verifikation nach Konfigurierung Verifikation über Programmiernetzwerk Debugging nach Konfigurierung Debugging über Programmiernetzwerk Bemerkungen Leider keine reprogrammierbaren Entwicklungsversionen verfügbar! 19 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen SRAM I zwei Inverter (4T) plus Pass-Transistor Unterschied zur „gewöhnlichen“ SRAM-Zelle: Konfigurationszelle wird nur während der Konfigurierung seriell beschrieben oder gelesen! Geschwindigkeit untergeordnet! Informationsnutzung direkt an der Zelle! Erhöhte Anforderungen an Datenkonsistenz! 21 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen SRAM II Technologie SRAM (Ähnlich gewöhnlicher Speicherzelle) Struktur Elektronisches Relais, zusätzlich zur Zelle wird ein Schaltelement benötigt (PaßTransistor bei bidirektionaler Verbindung, MUX bei unidirektionaler Verbindung) Flächenbedarf sehr groß Verbindungs-R mittel Verbindungs-C mittel Extra Prozeßschritte 0 Programmierung ISP (Ext. Festwertspeicher) dazu benötigte Zusatzhardware Ext. Festwertspeicher, dazu Programmiergerät mit passender Fassung Flüchtig ja Reprogrammierbar / -konfigurierbar ja Testbarkeit Rohling 100% testbar Verifikation nach Konfigurierung Verifikation über Programmiernetzwerk Debugging nach Konfigurierung Debugging über Programmiernetzwerk und Debug-Konfigurationen Bemerkungen div. Programmiervarianten 22 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen EPROM Technologie EPROM (Ähnlich gewöhnlicher Speicherzelle, mit Fenster oder OTP) Struktur Elektronisches Relais, direkte unidirektionale Verbindung, bei bidirektionalen Verbindungen wird zusätzlich zur Zelle ein Schaltelement benötigt (PaßTransistor) Flächenbedarf mittel Verbindungs-R mittel Verbindungs-C mittel Extra Prozeßschritte 3 Programmierung im Programmiergerät dazu benötigte Zusatzhardware Programmiergerät mit passender Fassung, Löschgerät Flüchtig nein Reprogrammierbar / -konfigurierbar ja bei Fenster, nein bei OTP Testbarkeit Rohling 100% testbar Verifikation nach Konfigurierung Verifikation über Programmiernetzwerk Debugging nach Konfigurierung nicht möglich (ggf. Debug-Konfigurationen) Bemerkungen 24 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen EEPROM Technologie EEPROM (Ähnlich gewöhnlicher Speicherzelle) Struktur Elektronisches Relais, direkte unidirektionale Verbindung, bei bidirektionalen Verbindungen wird zusätzlich zur Zelle ein Schaltelement benötigt (PaßTransistor) Flächenbedarf groß Verbindungs-R mittel Verbindungs-C mittel Extra Prozeßschritte >5 Programmierung meist ISP dazu benötigte Zusatzhardware Programmierkabel für PC Flüchtig nein Reprogrammierbar / -konfigurierbar ja Testbarkeit Rohling 100% testbar Verifikation nach Konfigurierung Verifikation über Programmiernetzwerk Debugging nach Konfigurierung nicht möglich (ggf. Debug-Konfigurationen) Bemerkungen 26 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Flash Technologie Flash (Ähnlich gewöhnlicher Speicherzelle) Struktur Elektronisches Relais, direkte unidirektionale Verbindung, bei bidirektionalen Verbindungen wird zusätzlich zur Zelle ein Schaltelement benötigt (PaßTransistor) Flächenbedarf mittel Verbindungs-R mittel Verbindungs-C mittel Extra Prozeßschritte ? >0! Programmierung meist ISP dazu benötigte Zusatzhardware Programmierkabel für PC Flüchtig nein Reprogrammierbar / -konfigurierbar ja Testbarkeit Rohling 100% testbar Verifikation nach Konfigurierung Verifikation über Programmiernetzwerk Debugging nach Konfigurierung nicht möglich (ggf. Debug-Konfigurationen) Bemerkungen 28 30 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Zusammenfassung Technologie Fuse (Sicherung) Antifuse SRAM EPROM EEPROM Flash Flächenbedarf sehr groß extrem klein sehr groß mittel groß mittel Verbindungs-R sehr klein sehr klein mittel mittel mittel mittel Verbindungs-C sehr klein sehr klein mittel mittel mittel mittel Programmierung Programmiergerät im Programmiergerät ISP Programmiergerät meist ISP meist ISP Flüchtig nein nein ja nein nein nein Reprogrammierbar nein nein ja ja (nein) ja ja Testbarkeit Rohling nicht testbar 100% testbar 100% testbar 100% testbar 100% testbar 100% testbar Debugging nach Konfigurierung nicht möglich Programmiernetzwerk Programmiernetzwerk und DebugKonfigurationen ggf. DebugKonfigurationen ggf. DebugKonfigurationen ggf. DebugKonfigurationen Extra Prozeßschritte 0 ca. 3 0 ca. 3 >5 >5 ??? 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Logikstrukturen Ein-/ Ausgabe Module Kombinatorische Schaltungen Sequentielle Schaltungen Taktversorgung Systemtaktraten und Einfußgrößen 32 33 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Anforderungen an Ein-/ Ausgabe-Module Eingangspfad Ausgangspfad Pegelanpassung an Außenwelt (Technologie / Versorgungsspannung / genormte Schnittstellen) Überspannungsschutz / Latch-Up-Schutz zuschaltbarer Pull-Up / Pull-Down zuschaltbares Flip-Flop und/oder Latch Leitungsanpassung, Verzögerungsglieder, DDR PLD IN zuschaltbares Flip-Flop und/oder Latch Ausgangstreiber mit Tristate-Option Slew-Rate-Option Überspannungsschutz / Latch-Up-Schutz Pegelanpassung an Außenwelt (Technologie / Versorgungsspannung / genormte Schnittstellen) Leitungsanpassung, DDR PLD OUT 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 1 (GAL16V8) 34 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 1 (GAL16V8) 35 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 1 (GAL16V8) 36 37 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 2 (ACTEL) OE GOUT G DOUT D Y Y Y D G GIN Simple I/O Module Latched I/O Module 39 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 2 (ACTEL) OE BYPASS IOCLK S A DOUT D DOE E E P Y B C IOPCL SEL Y Y A B C IOCLK Q D E P C IOPCL Registered I/O Module DTE 41 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 3 (XILINX 3000) Vcc PROGRAM-CONTROLLED MEMORY CELLS OUT INVERT 3- STATE (OUTPUT ENABLE) OUT OUTPUT SELECT 3-STATE INVERT SLEW RATE PASSIVE PULL UP T O D Q FLIP FLOP OUTPUT BUFFER I/O PAD R DIRECT IN REGISTERED IN I Q Q D FLIP FLOP or LATCH TTL or CMOS INPUT THRESHOLD R OK IK (GLOBAL RESET) CK1 CK2 PROGRAM CONTROLLED MULTIPLEXER Figure 4: Input/Output Block. = PROGRAMMABLE INTERCONNECTION POINT or PIP X3029 43 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 4 (XILINX SPARTAN II) Standards Supported by I/O (Typical Values) I/O Standard Input Reference Voltage (VREF) Output Source Voltage (VCCO) Board Termination Voltage (VTT) LVTTL (2-24 mA) N/A 3.3 N/A LVCMOS2 N/A 2.5 N/A PCI (3V/5V, 33 MHz/66 MHz) N/A 3.3 N/A GTL 0.8 N/A 1.2 GTL+ 1.0 N/A 1.5 HSTL Class I 0.75 1.5 0.75 HSTL Class III 0.9 1.5 1.5 HSTL Class IV 0.9 1.5 1.5 SSTL3 Class I and II 1.5 3.3 1.5 SSTL2 Class I and II 1.25 2.5 1.25 CTT 1.5 3.3 1.5 AGP-2X 1.32 3.3 N/A 0 Spartan-II 2.5V FPGA Family: Functional Description R DS001-2 (v2.1) March 5, 2001 0 0 Preliminary Product Specification Compatible Output Standards VCCO 3.3V Compatible Standards PCI, LVTTL, SSTL3 I, SSTL3 II, CTT, AGP, GTL, GTL+ 2.5V SSTL2 I, SSTL2 II, LVCMOS2, GTL, GTL+ 1.5V HSTL I, HSTL III, HSTL IV, GTL, GTL+ 45 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 4 (XILINX SPARTAN II) T SR D VCCO Q Package Pin TFF CLK CK TCE EC VCC OE SR Programmable Bias & ESD Network I/O Package Pin SR O D Q Programmable Output Buffer OFF CK OCE Internal Reference EC Programmable Delay IQ SR I D Q IFF I/O, VREF Programmable Input Buffer Package Pin CK ICE EC To Next I/O To Other External VREF Inputs of Bank Spartan-II Input/Output Block (IOB) DS001_02_090600 47 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 4 (XILINX SPARTAN II) Bank 1 GCLK3 Bank 2 Bank 7 Bank 0 GCLK2 GCLK1 Bank 5 Bank 3 Bank 6 Spar tan-II Device GCLK0 Bank 4 DS001_03_060100 Spartan-II I/O Banks Independent Banks Available Package VQ100 PQ208 CS144 TQ144 FG256 FG456 Independent Banks 1 4 8 49 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 5 (XILINX VIRTEX II) Supported Single-Ended I/O Standards Output VCCO Input VCCO Input VREF Board Termination Voltage (VTT) LVTTL 3.3 3.3 N/A N/A LVCMOS33 3.3 3.3 N/A N/A LVCMOS25 2.5 2.5 N/A N/A LVCMOS18 1.8 1.8 N/A N/A LVCMOS15 1.5 1.5 N/A N/A PCI33_3 3.3 3.3 N/A N/A PCI66_3 3.3 3.3 N/A N/A PCI-X 3.3 3.3 N/A N/A GTL Note 1 Note 1 0.8 1.2 GTLP Note 1 Note 1 1.0 1.5 HSTL_I 1.5 N/A 0.75 0.75 HSTL_II 1.5 N/A 0.75 0.75 HSTL_III 1.5 N/A 0.9 1.5 HSTL_IV 1.5 N/A 0.9 1.5 SSTL2_I 2.5 N/A 1.25 1.25 SSTL2_II 2.5 N/A 1.25 1.25 SSTL3_I 3.3 N/A 1.5 1.5 SSTL3_II 3.3 N/A 1.5 1.5 AGP-2X/AGP 3.3 N/A 1.32 N/A 0 Virtex-II 1.5V Field-Programmable Gate Arrays R DS031-2 (v1.5) April 2, 2001 0 0 Advance Product Specification Compatible Output Standards VCCO Compatible Standards 3.3 V PCI, LVTTL, SSTL3 (I & II), AGP-2X, LVDS_33, LVDSEXT_33, LVCMOS33, LVDCI_33, LVDCI_DV2_33, SSTL3_DCI (I & II), BLVDS, LVPECL, GTL, GTLP 2.5 V 1.8 V 1.5 V 1.2V SSTL2 (I & II), LVCMOS25, GTL, GTLP, LVDS_25, LVDSEXT_25, LVDCI_25, LVDCI_DV2_25, SSTL2_DCI (I & II), LDT, ULVDS, BLVDS LVCMOS18, GTL, GTLP, LVDCI_18, LVDCI_DV2_18 HSTL (I, II, III, & IV), LVCMOS15, GTL, GTLP, LVDCI_15, LVDCI_DV2_15, GTLP_DCI, HSTL_DCI (I,II, III & IV) GTL_DCI I/O Standard Notes: 1. VCCO of GTL or GTLP should not be lower than the termination voltage or the voltage seen at the I/O pad. 51 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 5 (XILINX VIRTEX II) Supported DCI I/O Standards I/O Standard Supported Differential Signal I/O Standards I/O Standard LVPECL_33 Output VCCO Input VCCO Input VREF Output VOD 3.3 N/A N/A VCCO –1.025 to VCCO –1.64 LDT_25 2.5 N/A N/A 0.430 - 0.670 LVDS_33 3.3 N/A N/A 0.250 - 0.400 LVDS_25 2.5 N/A N/A 0.250 - 0.400 LVDSEXT_33 3.3 N/A N/A 0.330 - 0.700 LVDSEXT_25 2.5 N/A N/A 0.330 - 0.700 BLVDS_25 2.5 N/A N/A 0.250 - 0.450 ULVDS_25 2.5 N/A N/A 0.430 - 0.670 Output VCCO Input VCCO Input VREF Termination Type LVDCI_33 (1) 3.3 3.3 N/A Series LVDCI_DV2_33 (1) 3.3 3.3 N/A Series LVDCI_25 (1) 2.5 2.5 N/A Series LVDCI_DV2_25 (1) 2.5 2.5 N/A Series LVDCI_18 (1) 1.8 1.8 N/A Series LVDCI_DV2_18 (1) 1.8 1.8 N/A Series LVDCI_15 (1) 1.5 1.5 N/A Series LVDCI_DV2_15 (1) 1.5 1.5 N/A Series GTL_DCI 1.2 1.2 0.8 Single GTLP_DCI 1.5 1.5 1.0 Single HSTL_I_DCI 1.5 1.5 0.75 Split HSTL_II_DCI 1.5 1.5 0.75 Split HSTL_III_DCI 1.5 1.5 0.9 Single HSTL_IV_DCI 1.5 1.5 0.9 Single SSTL2_I_DCI (2) 2.5 2.5 1.25 Split SSTL2_II_DCI (2) 2.5 2.5 1.25 Split SSTL3_I_DCI (2) 3.3 3.3 1.5 Split SSTL3_II_DCI (2) 3.3 3.3 1.5 Split Notes: 1. LVDCI_XX and LVDCI_DV2_XX are LVCMOS controlled impedance buffers, matching the reference resistors or half of the reference resistors. 2. These are SSTL compatible. 53 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 5 (XILINX VIRTEX II) IOB IOB PAD4 Input DDR mux Reg Differential Pair IOB PAD3 OCK1 Reg ICK1 Switch Matrix Reg IOB PAD2 OCK2 3-State Differential Pair Reg ICK2 IOB PAD1 DDR mux DS031_30_101600 Reg OCK1 Virtex-II Input/Output Tile PAD DCM Reg OCK2 180 0 FDDR FDDR D1 DS031_29_100900 D1 Q1 CLOCK Virtex-II IOB Block Q1 CLK1 CLK1 DDR MUX D2 Q DDR MUX Q D2 Q2 CLK2 Output Q2 CLK2 (50/50 duty cycle clock) DS031_26_100900 Double Data Rate Registers 55 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 5 (XILINX VIRTEX II) (O/T) 1 FF LATCH (O/T) CE (O/T) CLK1 D1 Q1 Attribute INIT1 INIT0 SRHIGH SRLOW CE CK1 SR REV SR Shared by all registers REV FF1 DDR MUX FF2 (OQ or TQ) FF LATCH D2 (O/T) CLK2 Q2 CE CK2 SR REV Attribute INIT1 INIT0 SRHIGH SRLOW (O/T) 2 Reset Type SYNC ASYNC DS031_25_110300 Register / Latch Configuration in an IOB Block 57 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 5 (XILINX VIRTEX II) VCCO Clamp Diode OBUF VCCO Program Current Weak Keeper 10-60K PAD VCCO 10-60K VCCAUX = 3.3V VCCINT = 1.5V Program Delay IBUF DS031_23_011601 LVTTL, LVCMOS or PCI SelectI/O Standards 59 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 5 (XILINX VIRTEX II) 1 Bank DCI DCI IOB DCI Z DCI Z VCCO Virtex-II DCI RREF (1%) VRN VCCO = 3.3 V, 2.5 V, 1.8 V or 1.5 V Internal Series Termination VRP RREF (1%) GND DS031_50_101200 DCI in a Virtex-II Bank DS031_51_110600 61 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Kombinatorische und sequentielle Schaltungen Zt X f t+1 Y f X Z S g Y ? SPLD (PAL, GAL, ...) FPGA Sea-of-Gates Gate-Array Standardzelle Voll-kundenspezifischerSchaltkreis 63 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Realisierungsprinzipien kombinatorischer Schaltungen Realisierung mit Logikgattern (direkte Umsetzung) Produkttermbasierende Realisierung SPLD/CPLD X Realisierung mit Funktionstabellen Multiplexer Matrixspeicher FPGA Y n n sehr unterschiedlich Produkttermanzahl sehr unterschiedlich X Y n n = 4..5 beliebige Funktionen realisierbar 65 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Realisierungsprinzipien sequenzieller Schaltungen In PLD werden ausschließlich synchrone Automaten verwendet! Automat! Zt t+1 X f Z S g Y Zustandsübergang getaktet Speicher = getaktetes Zähl-Flipflop (meist D-FF) Sequentielle Standardschaltungen (Zähler, Schieberegister...) lassen sich mit der gleichen Struktur beschreiben Zur Verbesserung des Zeitverhaltens sind aber weitergehende Strukturoptimierungen möglich und ggf. auch erforderlich! Takt f, g = kombinatorische Logik s = Speicher Warum keine asynchronen Automaten? Realisierung mit kombinatorischen Schaltungsblöcken und Zähl-Flipflops Typische Universalstruktur f X S n-1 Takt Y 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 1 (GAL16V8) 67 68 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 2 (ACTEL Simple) 0 GND 0 0 1 1 1 0 Y 0 A B C 1 Y 0 1 A B C Simple Logic Module 1 70 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 2 (ACTEL SX) D0 D1 D00 D01 Y Y D10 D2 D11 S1 D3 Sa S0 Sb Up to 8-input function DB Combinatorial Logic Module A0 B0 A1 B1 GND A B C D E 0 0 0 0 A Y 1 0 1 0 B C D E Example of a Logic Function Implemented with the Combinatorial Logic Module Y OUT 72 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 2 (ACTEL SX) S0 Routed Data Input S1 PSETB Direct Connect Input D Q HCLK CLRB CLKA, CLKB, Internal Logic CKS CKP Y 74 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 3 (XILINX 3000) DI DATA IN 0 MUX F D Q 1 DIN G QX RD QX X A F F B LOGIC VARIABLES C D COMBINATORIAL FUNCTION E CLB OUTPUTS G G QY Y QY F DIN G 0 MUX D Q 1 EC ENABLE CLOCK RD 1 (ENABLE) K CLOCK DIRECT RESET RD 0 (INHIBIT) (GLOBAL RESET) X3032 Figure 5: Configurable Logic Block. 76 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 4 (XILINX SPARTAN III) COUT YB Y G4 I4 G2 Look-Up I3 Table O I2 G1 I1 G3 S D Carry and Control Logic YQ Q CK EC R F5IN BY SR XB X F4 I4 F2 Look-Up I3 Table O I2 F1 I1 F3 S D Carry and Control Logic XQ Q CK EC R BX CIN CLK CE DS001_04_091400 Spartan-II CLB Slice (two identical slices in each CLB) 2x pro CLB! LUT als 16x1 RAM oder ROM (Funktionsgenerator) verwendbar 2LUT als 16x1 DPRAM verwendbar D-FF oder Latch umschaltbar div. MUX um LUTs zusammenzuschalten (max. 19E) carry path 3-state drivers 78 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 5 (XILINX VIRTEX II) COUT Configurable Logic Blocks (CLBs) TBUF X0Y1 TBUF X0Y0 CLB resources include four slices and two 3-state buffers. Each slice is equivalent and contains: Two function generators (F & G) Two storage elements Arithmetic logic gates Large multiplexers Wide function capability Fast carry look-ahead chain Horizontal cascade chain (OR gate) The function generators F & G are configurable as 4-input look-up tables (LUTs), as 16-bit shift registers, or as 16-bit distributed SelectRAM memory. In addition, the two storage elements are either edge-triggered D-type flip-flops or level-sensitive latches. Each CLB has internal fast interconnect and connects to a switch matrix to access general routing resources. Slice X1Y1 Slice X1Y0 COUT Switch Matrix SHIFT CIN Slice X0Y1 Slice X0Y0 Fast Connects to neighbors CIN DS031_32_101600 Virtex-II CLB Element ORCY RAM16 MUXFx SRL16 LUT G CY Register RAM16 MUXF5 SRL16 LUT F CY Register Arithmetic Logic DS031_31_100900 Virtex-II Slice Configuration 80 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel 5 (XILINX VIRTEX II) COUT SHIFTIN ORCY SOPIN SOPOUT 0 Dual-Port Shift-Reg G4 G3 G2 G1 WG4 WG3 WG2 WG1 A4 LUT A3 RAM A2 ROM A1 D WG4 G WG3 WG2 MC15 WG1 WS DI YBMUX I YB MUXCY O I GYMUX Y DY XORG FF LATCH ALTDIG MULTAND 1 0 DYMUX G2 PROD G1 CYOG BY CE CLK D Q Q Y CE CK SR REV BY SLICEWE[2:0] WSG WE[2:0] WE CLK WSF SR SHIFTOUT DIG MUXCY I O CE CLK Shared between x & y Registers SR CIN Virtex-II Slice (Top Half) DS031_01_110600 82 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Systemtaktraten und Einflussgrößen Vorsicht bei Taktangaben!!! 300 System Clock (MHz) 250 Toggle-Rate ??? Systemtakt ??? 200 150 100 Für welches System ??? Verzögerungszeiten... „Speed-Grade“ XC3100A-3 50 XC3000A--6 0 CLB Levels: 4 CLBs Gate Levels: (4-16) 3 CLBs (3-12) 2 CLBs (2-8) 1 CLB (1-4) Toggle Rate -3 / -4 ... ... X7065 Figure 33: Clock Rate as a Function of Logic Complexity (Number of Combinational Levels between Flip-Flops) Beste Lösung wenn keinen Erfahrungen vorliegen: Geschwindigkeiten der Referenzimplementationen ansehen! 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Gehäuse Frühzeitig in die Planung einbeziehen Die DIL-Zeiten sind vorbei... Von 2-Pin bis 1517-Pin ist alles möglich! Einflußfaktoren Gehäuse: verfügbare Pins / IOs (PLDs: Kompatibilitätsgehäuse...) Platzbedarf PCB-Technologie (Anzahl Layer, Kontaktierung Gehäuse, Prüfmechanismen) Kontaktierung im Programmiergerät (falls erforderlich) 83 84 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel FF1517 Flip-Chip Fine-Pitch BGA Package Specifications (1.00mm pitch) R 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Beispiel FF1517 Flip-Chip Fine-Pitch BGA Package Specifications 85 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen 1. PLD - Eine moderne Realisierungsvariante für digitale Schaltungen 1.1. Vom PAL zum FPGA – Ein kurzer geschichtlicher Abriß 1.2. Architekturprinzipien von PLD 1.3. Systematische Einteilung aktueller Realisierungsvarianten 1.4. Der PLD-Entwurfsprozeß im Überblick 1.5. Aufbau und Eigenschaften ausgewählter FPGA im Überblick 86 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Prinzipielle Bausteinstrukturen 87 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Vorteile und Nachteile der Strukturen SPLD Übersichtlich, bei entsprechende Technologie extrem geringe und vorhersagbare Verzögerungszeiten CPLD Wie beim SPLD aufgrund der regelmäßigen Struktur geringe und vorhersagbare Verzögerungszeiten Bei größeren CPLD oft Routingprobleme bei vorgegebenem Pinning (Switch Matrix nicht flexibel genug) Dies begrenzt auch die erzielbare absolute Komplexität!!! Insgesamt für schnelle kombinatorische Logik und kleine schnelle Moore-Automaten besser geeignet als für komplexe sequentielle Schaltungen FPGA Aufgrund der universellen Struktur sehr universell einsetzbar und (fast) beliebig skalierbar Problem: Laufzeiten sind sind nicht vorhersehbar, da sie vom Routing abhängen Problem: Laufzeiten können sehr groß werden Insgesamt für komplexe sequentielle Schaltungen besser geeignet als für sehr schnelle kombinatorische Logik 88 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Weitere Eigenschaften Programmierung / Konfigurierung Nicht von der Struktur, sondern der Verbindungstechnologie abhängig Es gibt aber nicht jede Kombination! Wenn ich beispielsweise SRAM will, muß ich FPGA nehmen! Körnung beim FPGA Feine Körnung: Extrem viele primitive Logikblöcke! Besonders synthesefreundlich Anzahl der programmierbaren Verbindungen pro Logikäquivalent hoch Ausnutzung gleichmäßig gut Grobe Körnung: Sehr komplexe Logikblöcke! Anzahl der programmierbaren Verbindungen pro Logikäquivalent geringer Ausnutzung von der implementierten Struktur abhängig Grundlegende Einstellung: Das Flächenverhältnis Logikblock zu Verbindungszellen muß stimmen, damit das Verhältnis Logikfunktionen pro mm² Silizium gut wird!!! 89 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen 1. PLD - Eine moderne Realisierungsvariante für digitale Schaltungen 1.1. Vom PAL zum FPGA – Ein kurzer geschichtlicher Abriß 1.2. Architekturprinzipien von PLD 1.3. Systematische Einteilung aktueller Realisierungsvarianten 1.4. Der PLD-Entwurfsprozeß im Überblick 1.5. Aufbau und Eigenschaften ausgewählter FPGA im Überblick 90 91 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Design Flow Ziel-ASIC-Bibliothek Ziel-ASIC-Bibliothek Schaltplaneditor Logiksynthese Boolsche Gleichungen Funktionstabellen VHDL und Teilmengen Zustandsmaschinen Andere Design Entry Design Implementation Design Test Konvertierung in das Netzlistenformat des Ziel-ASICs Logicreduction Fitting Placement Routing Simulation Konvertierung für Programmierung bzw. Konfigurierung Timing Simulation Ziel-ASIC 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen 1. PLD - Eine moderne Realisierungsvariante für digitale Schaltungen 1.1. Vom PAL zum FPGA – Ein kurzer geschichtlicher Abriß 1.2. Architekturprinzipien von PLD 1.3. Systematische Einteilung aktueller Realisierungsvarianten 1.4. Der PLD-Entwurfsprozeß im Überblick 1.5. Aufbau und Eigenschaften ausgewählter FPGA im Überblick 92 1. PLD – Eine moderne Realisierungsvariante für digitale Schaltungen Separate Folien! 93