Teil 1: Digitale Logik Inhalt: • Boolesche Algebra • kombinatorische Logik • sequentielle Logik • kurzer Exkurs technologische Grundlagen • programmierbare logische Bausteine
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 1
Tri-State Ausgangslogik • Ausgang eines Tri-State Puffers kann die Zustände 0, 1 oder X („floating“ bzw. „unconnected“) annehmen
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 2
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:
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 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 UGS > US)
•
kann einzeln programmiert werden (durch Überspannung UDS ~20 V für 5ms)
•
nur komplett löschbar (durch UV-Licht, ~ 20 Minuten)
EEPROM („Electrically Erasable Programmable ROM“) •
Floating-Gate MOS-FET in E2CMOS Technologie
•
jedes Bit einzeln löschbar (durch Überspannung UGS ~20 V für 5ms)
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 4
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 2m Worten à n Bit kann jede beliebige boolesche Funktion f : {0,1}m → {0,1}n ohne Minimierung implementieren Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 5
Kombinatorische Logik mit PROM (Forts.) • Beispiel: 2x2 Bit Multiplizierer
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 6
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 ODERMatrix verknüpft
• kann jede (minimierte) Summe von Produkten realisieren, wenn Zahl der Produktterme je ODER ausreicht Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 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 Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 8
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 E2CMOS-Technologie
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 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) Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 10
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
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 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
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 12
Beispiel: Zustandsmaschine mit PAL 16R6
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 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 Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 14
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 Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 15
Beispiel: CPLD Altera MAX7000
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 16
Beispiel: CPLD Altera MAX7000 (Forts.) Aufbau einer Logik-Makrozelle:
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 17
Beispiel: CPLD Altera MAX7000 (Forts.) Aufbau eines IOBs:
Realisierung der PIA:
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 18
Beispiel: CPLD Altera MAX7000 (Forts.) Bausteine der Altera MAX7000 Familie:
Ähnliche CPLDs von anderen Herstellern, z.B.: Lattice pLSI, Cypress Flash370, Xylinx XC9500 Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 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
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 20
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
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 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
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 22
Beispiel: FPGA Xilinx Spartan (Forts.) Aufbau der Routing-Kanäle: •
PSM („Programmable Switch Matrix“) zur Verbindung von Leistungssegmenten
•
horizontal und vertikal verfügbare Leitungen: „Single“ (zum nächsten PSM) „Double“ (zum übernächsten PSM) „Long“ (für globale Signale)
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Funktionalität eines PSM-Elementes:
Kapitel 1: programmierbare logische Bausteine 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)
Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 24
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 Technische Informatik I, SS 2001 A. Strey, Universität Ulm
Kapitel 1: programmierbare logische Bausteine 25