Teil 1: Digitale Logik

Teil 1: Digitale Logik Inhalt: • Boolesche Algebra • kombinatorische Logik • sequentielle Logik • kurzer Exkurs technologische Grundlagen • programmie...
242 downloads 1 Views 480KB Size
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