F. Programmierbare Logik F.1. Einordnung Bisher: - wenige Schaltkreise pro Chip, - feste Verdrahtung. „Höhere Informatik“ Nun: - Systemprogrammierung Generischer Schaltkreis, Löschen & programmieren, Umfangreiche Funktionalität, Einstellbare Logikfunktionen, Einstellbare Verdrahtung, I J K Architektur H G Rechnerarithmetik: - Zahlendarstellung, Operatoren, .. Digitaltechnik Digitale Schaltungen: - mit/ohne Zustand, Zähler, ALU, logische Arrays, Optimierung C Digitale Logik: - Gatter, digitale Signale, Signalausbreitung ... Elektronik: - Strom & Spannung, Transistoren, Schaltkreisintegration E-1 F E Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm D F.2. Tri-State-Ausgabelogik F.2.1 Elektronische Bussysteme BUS: Gruppe von parallelen Leitungen zum Datenaustausch.. Bus im Rechenwerk => - Bidirektional, - z.B. 32 Bit Daten, - von & zum Register. ALU Register Register Register Register Bus Busysteme in einem Standard-PC: - versch. Geschwindigkeit & Breite, - Daten- & Adresse, - Arbitrierung. CPU FSB RAM RAM N-Bridge Device Device PCI - Bus IDE IDE S-Bridge Device Device ISA - Bus E-2 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.2.2 Ausgabepegel elektronischer Digitalschaltungen Bisher 2 Zustände: - Zustand „Logisch 0“: geringe Spannung, geringer Stromfluss - Zustand „Logisch 1“: hohe Spannung, hoher Stromfluss, - oder umgekehrt. Problem: zwei Ausgänge auf derselben Leitung - elektrischer Kurzschluss je nach Ausgabewert - bzw. Spannungen im verbotenen Bereich, - undefinierter logischer Zustand. => Zusätzlicher Zustand: - Ausgang soll sich gelegentlich elektrisch neutral verhalten, - Passt sich dem bestehenden Zustand auf dem Bus an, - Ähnlich „do not care“. E-3 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm Lösung: Tri-State-Puffer: E „Enable“ Signal, Y „evtl. hochohmiger Ausgang“, - oft mit invertiertem Enabler E, - Ausgabepegel „floatet“, falls enable, Open-Kollektor Schaltung als Alternative: - „Wired-OR, Wired-AND, E-4 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.2.3 Zugang zum Bus nur über Tri-State-Puffer Enable: - Das Schaltwerk legt seinen Ausgang auf den Bus, - Hoffentlich ist nur ein Sender am Bus „enabled“. Ein bestimmter Datenpfad kann gezielt ausgewählt werden: - Mehrere Empfänger möglich. E-5 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.3. SPLD - Simple Programmable Logic Devices Einfache programmierbare Logikbausteine: - Im wesentlichen keine Rechenfähigkeit, - Typischerweise Festwertspeicher. ROM - Read Only Memory: - Werte/Bitmuster bei Herstellung festgelegt, - Z.B. durch eine letzte Metallisierung. Dioden als Koppelelement: - Koppeln das Lesesignal auf die Ausgangsleitung. ? ? ! E-6 ! Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm PROM – Programmable Read Only Memory - einmalig durch Anwender programmierbar, - z.B. durchschmelzen von Sicherungen. E-7 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.3.1 Beispiel: 8 x 4 Bit PROM Funktionsweise - Adressleitungen selektieren Speicherzelle, - Inhalt an Ausgabeleitung abgreifbar: Koppelelement E-8 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.4. EPROM/EEPROM/Flash Erasable Programmable Read Only Memory (EPROM): - elektrisch programmierbar (durch Überspannungen). - durch UV-Bestrahlung löschbar, Electrically Erasable PROM (EEPROM, E2PROM): - Etwa zur Speicherung des BIOS eines PCs, - elektrisch programmierbar, - elektrisch löschbar. Flash-Speicher: - Etwa zur Speicherung von Photos in digitalen Kameras, - ähnlich EEPROM aber geringere Größe, - blockweise programmier- und löschbar. E-9 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.5. PROM als Schaltnetz Schematische Darstellung eines PROM - Programmierbare ODER-Matrix mit Koppelelementen, - Adressdekoder als feste UND-Matrix, - Minterme über Adressleitungen, PROM kann Schaltfunktionen implementieren: - E-10 pro Wertekombination der Eingänge wird ein Ergebnis direkt programmiert. 2m Worte à n Bit realisieren n Schaltfunktionen mit je m Eingängen, Wahrheitstabelle in Hardware abgebildet, keine Minimisierung üblich. Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.5.1 Beispiel: 2x2-Multiplizierer Werte in PROM „brennen“: - Adresse fest vordecodiert, - Wahrheitstabelle (C10.1): Mult 0x0=0 0x1=0 0x2=0 0x3=0 1x0=0 1x1=1 1x2=2 1x3=3 2x0=0 2x1=2 2x2=4 2x3=6 3x0=0 3x1=3 3x2=6 3x3=9 E-11 a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 y3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 y2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 y1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 y0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.6. PAL - Programmable Array Logic Charakteristiken: - feste ODER-Matrix, - frei programmierbare UND-Matrix, - feste Anzahl UND-Gatter pro ODER-Gatter (hier 4). PAL kann jede minimisierte Schaltfunktion realisieren, falls Anzahl Produktterme pro Schaltfunktion klein genug: - Hier 4 Produktterme pro SF. E-12 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.6.1 Begriff PAL Eingetragenes Warenzeichen der Fa. AMD bzw. Lattice Technik - ursprünglich in TTL- später auch CMOS-Technik, - ursprünglich einmalig programmierbar, - heute auch löschbare Varianten. Varianten (siehe auch GAL) - E-13 Rückkopplung der Ausgänge als interne Eingänge, normaler oder invertierter Ausgang, getaktet / ungetaktete Flip-Flops, Flip-Flops an den Ausgängen, Tri-State-Ausgänge. Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.7. GAL - Generic Array Logic Funktionsweise wie PAL, jedoch flexiblere Ausgabelogik, anschliessend an PAL-Array (nicht gezeigt). Beispiel: Output Logic Macro Cell (OLMC): E-14 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm E-15 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm E-16 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm E-17 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm E-18 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm Rückkoppelung des Ausganges Ausschließlich CMOS Technik Markenzeichen der Fa. Lattice Reprogrammierbar durch E2CMOS-Technologie (ähnlich EEPROM) E-19 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.8. PLA - Programmable Logic Array (PLA) ODER-Matrix ebenso wie UNDMatrix frei programmierbar. Realisiert beliebige Schaltfunktionen, falls Anzahl der Produktterme ausreichend. E-20 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.9. CPLD - Complex Programmable Logic Device Alternativbezeichnungen (Markennamen): - EPLD, EEPLD, PEEL, MAX, SuperPAL, MegaPAL ... Zusammenfassung der Funktionalität bis zu etwa 100 GAL-Bausteine Makrozellen: - für Ausgabelogik (I/O-Blocks) - für Berechnung der Schaltfunktionen - „Borgen“ zusätzlicher UND-Glieder für Produktterme aus anderen Makrozellen. Verschaltung der internen GALs/Makrozellen: - mit einer programmierbaren Zuordnungsmatrix, - vollständige oder unvollständige Verschaltung. Programmierung wie EPROM, EEPROM oder Flash-ROM: - Anders als FPGA keine Startup- bzw. Ladeverzögerung. E-21 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.9.1 Blockschaltbild für Makrozellenorganisation: Verschiedene Makrozellen bilden einen Logik-Block: - GAL-Zellen, ALU-Zellen, Registerzellen, ... - Configurationspeicher ... GAL E-22 Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.10. FPGA - Field Programmable Gate Array Alternativbezeichnungen (Markenzeichen): - LCA, pASIC, FLEX, APEX, ORCA, SPGA ... Aufbau - bis zu mehreren 10.000 Makrozellen für Schaltfunktionen und Flip-Flops, - programmierbare Kommunikationsinfrastruktur zwischen den Zellen, - große oder kleine Logikzellen. Programmierung: - E-23 wie EPROM, EEPROM oder Flash-ROM, Programmierung mit flüchtigem Speicher (RAM), Hochfahren des FPGA durch externen Speicher (z.B. PROM), Umprogrammierung im laufenden Betrieb möglich. Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm F.10.1 E-24 FPGA Blockschaltbild Technische Informatik 1, Sommer 2006, P. Schulthess & F. Hauck, ©VS Informatik, Ulm