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
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
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
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
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
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
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
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
Beispiel: CPLD Altera MAX7000 (Forts.) Aufbau einer Logik-Makrozelle: 17
Beispiel: CPLD Altera MAX7000 (Forts.) Aufbau eines IOBs: Realisierung der PIA: 18
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
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
Beispiel: FPGA Xilinx Spartan (Forts.) Aufbau der Routing-Kanäle: Funktionalität eines PSM-Elementes: 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) 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
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