Teil 1: Digitale Logik Inhalt: Boolesche Algebra kombinatorische Logik sequentielle Logik kurzer Exkurs technologische Grundlagen programmierbare logische Bausteine 1 Tri-State Ausgangslogik Ausgang eines Tri-State Puffers kann die Zustände 0, 1 oder X ( floating bzw. unconnected ) annehmen 2 1
ROM und PROM Festwertspeicher (ROM = Read-Only Memory ) enthalten bei Herstellung verdrahtete und nicht änderbare Information Inhalt eines PROM ( Programmable Read-Only Memory ) kann einmalig vom Anwender programmiert werden Aufbau eines 8 4 Bit ROMs bzw. PROMs: 3 EPROM und EEPROM EPROM ( Erasable Programmable Read-Only Memory ) basierend auf Floating-Gate MOS-FET Floating-Gate kann Ladung speichern (sperrt mit Ladung auch bei U GS > U S) kann einzeln programmiert werden (durch Überspannung U DS ~20 V für 5ms) nur komplett löschbar (durch UV-Licht, ~ 20 Minuten) EEPROM ( Electrically Erasable Programmable ROM ) Floating-Gate MOS-FET in E 2 CMOS Technologie jedes Bit einzeln löschbar (durch Überspannung U GS ~20 V für 5ms) 4 2
Kombinatorische Logik mit PROM Schematische Darstellung eines PROM (hier mit 16 Worten à 4 Bit): Adreßdekoder entspricht einer festen UND-Matrix Koppelelemente entsprechen einer programmierbaren ODER-Matrix realisiert Wahrheitstabelle in Hardware ein PROM mit 2 m Worten à n Bit kann jede beliebige boolesche Funktion f : {0,1} m {0,1} n ohne Minimierung implementieren 5 Kombinatorische Logik mit PROM (Forts.) Beispiel: 2x2 Bit Multiplizierer 6 3
Kombinatorische Logik mit PAL PAL = Programmable Array Logic Schematische Darstellung eines PAL-Bausteins (hier ein PAL 4H4 mit 4 Eingängen, 4 Ausgängen und 4 Produkttermen je Ausgang) Aufbau: frei programmierbare UND-Matrix Produktterme werden mit fester ODER- Matrix verknüpft kann jede (minimierte) Summe von Produkten realisieren, wenn Zahl der Produktterme je ODER ausreicht 7 Kombinatorische Logik mit PLA PLA = Programmable Logic Array bereits 1970 eingeführt (Philips) Schematische Darstellung eines PLA-Bausteins (hier ein PLA mit 4 Eingängen, 4 Ausgängen und 16 Produkttermen): Aufbau: frei programmierbare UND-Matrix frei programmierbare ODER-Matrix kann jede boolesche Funktion realisieren, wenn Gesamtzahl der Produktterme im PLA ausreicht 8 4
PAL- und GAL-Bausteine PAL ( Programmable Array Logic ) eingetragenes Warenzeichen der Fa. AMD bzw. Lattice ursprünglich in TTL, heute auch in CMOS ursprünglich nur einmal und irreversibel programmierbar, heute z.t. auch wiederprogrammierbar GAL ( Generic Array Logic ) entwickelt von der Fa. Lattice ausschließlich in CMOS wiederprogrammierbar durch E 2 CMOS-Technologie 9 PAL- und GAL-Bausteine (Forts.) weitgehend einheitliche Nomenklatur: PAL/GAL xx Typ yy, mit xx: Zahl der Eingänge der UND-Matrix yy: Zahl der Ausgänge Typ: (Auswahl) H = high output (ODER am Ausgang) L = low output (NOR am Ausgang) X = xor (ODER-Ausgänge mit XOR verknüpfbar) R = registered (mit D Flip-Flops, für Zustandsmaschinen) AR = registered, asynchronous (für asynchrone Schaltungen) V = various (flexible Logik-Makrozelle) XV = xor, various (flexible Logik-Makrozelle mit XOR) 10 5
PAL- und GAL Bausteine (Forts.) Beispiel 1: PAL16R6 6 Ausgänge mit D Flip-Flops, zentral getaktet 2 Ausgänge ohne Register UND-Matrix mit 16 Eingängen (10 extern, 6 rückgekoppelt) 8 Produktterme je ODER-Gatter 8 Ausgänge in Tri-State Logik, davon 6 zentral über Signal OE gesteuert und 2 über Produktterm 11 PAL- und GAL Bausteine (Forts.) Beispiel 2: PAL22V10 10 Logik-Makrozellen (OLMC) mit D Flip-Flop und Summe von max. 16 Produkttermen an D zentraler Takt 10 Tri-State Ausgänge, über Produktterm in OLMC gesteuert max. 22 Eingänge zentraler asynchroner Reset AR, synchroner Preset SP 12 6
Beispiel: Zustandsmaschine mit PAL 16R6 13 Klassifikation von PLDs 3 Klassen von programmierbaren logischen Bausteinen SPLD ( Simple Programmable Logic Device ROM/PROM, PAL/GAL, PLA CPLD ( Complex Programmable Logic Device ): Kombination mehrerer SPLDs auf einem Chip, auch als EPLD ( Enhanced PLD ), Super PAL oder Mega PAL bezeichnet FPGA ( Field Programmable Gate Array ): Baustein mit einer sehr hohen Anzahl von programmierbaren Logik-Makrozellen, die beliebig untereinander verbunden werden können 14 7
CPLDs Komponenten eines CPLD: LAB ( Logic Array Block ) entspricht einem PAL-Baustein, besteht aus programmierbarer UND-Matrix sowie flexiblen Logik-Makrozellen IOB ( I/O Block ) ermöglicht die freie programmierbare Nutzung jedes Pins zur Ein- oder Ausgabe PIA ( Programmable Interconnect Array ) gestattet eine freie Verschaltung der LAB Ein- und Ausgänge sowie der IOBs Realisierung i.a. mit EEPROMs 15 Beispiel: CPLD Altera MAX7000 16 8
Beispiel: CPLD Altera MAX7000 (Forts.) Aufbau einer Logik-Makrozelle: 17 Beispiel: CPLD Altera MAX7000 (Forts.) Aufbau eines IOBs: Realisierung der PIA: 18 9
Beispiel: CPLD Altera MAX7000 (Forts.) Bausteine der Altera MAX7000 Familie: Ähnliche CPLDs von anderen Herstellern, z.b.: Lattice plsi, Cypress Flash370, Xylinx XC9500 19 FPGAs Aufbau eines FPGA: zweidimensionales Feld aus CLBs ( Complex Logic Block ) und IOBs ( I/O Block ) horizontale und vertikale Routing Kanäle mit Leitungssegmenten verschiedener Länge programmierbaren Schaltern zur Verbindung von CLBs und IOBs 20 10
Beispiel: FPGA Xilinx Spartan Aufbau eines CLB ( Complex Logic Block ): zwei 16 1 Bit LUT ( Lookup Table ) stellen beliebige boolesche Funkt. f (A,B,C,D) dar ein 8 1 Bit LUT zwei D-Flip-Flops mit gemeinsamen Signalen Clk, EC ( Enable Clock ), SR ( Set/Reset ) sechs Multiplexer zur Eingangswahl 21 Beispiel: FPGA Xilinx Spartan (Forts.) Aufbau eines IOB ( I/O Block ): je ein D-Flip-Flop für Ausgang und Eingang, zentrale Signale Clk und EC, pegel- oder flankengesteuert Flip-Flops überbrückbar Tri-State Puffer mit programmierbarer Flankensteilheit programmierbare E/A-Signalpegel 22 11
Beispiel: FPGA Xilinx Spartan (Forts.) Aufbau der Routing-Kanäle: Funktionalität eines PSM-Elementes: PSM ( Programmable Switch Matrix Verbindung von Leistungssegmenten horizontal und vertikal verfügbare Leitungen: (zum nächsten PSM) (zum übernächsten PSM) Long Signale) 23 Beispiel: FPGA Xilinx Spartan (Forts.) Bausteine der Xilinx Spartan FPGA Famile: Weitere FPGA Bausteine: Xilinx Spartan II (max. 200.000 Gatter, 28 42 = 1176 CLBs) Xilinx Virtex (max. 1.124.024 Gatter, 64 96 = 27648 CLBs) Altera FLEX (max. 50.000 Gatter, 2280 CLBs) Altera APEX II (max. 4.000.000 Gatter, 89280 CLBs) 24 12
Computergestützter Entwurf eines PLD Ausgangspunkt ist eine funktionelle Beschreibung in einer Hardware-Beschreibungssprache (wie z.b. ABEL, VHDL,... ) weitere Schritte: viele CPLDs und FPGAs können auch direkt im Zielsystem programmiert werden 25 13