Hardware Programmierbare Logik Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Hardware Programmierbare Logik 1/23 2010-10-08
Übersicht Inhalt: Grundlagen Schaltnetze Schaltwerke Typen CPLDs Blockstruktur Arrays Logik-Allokatoren Makrozellen Output-Switch-Matrix I/O-Zellen Input-Switch-Matrix Verwendeter Baustein Hardware Programmierbare Logik 2/23 2010-10-08
Grundlagen Definition (Re-)Programmierbarer Baustein, in den Hardware-Beschreibungen auf Logik- bzw. Schaltkreisebene, die eine vom Baustein vorgegebene Struktur aufweisen, programmiert werden können. Gegensatz: ASIC Application Specific Integrated Circuit. Hardware Programmierbare Logik 3/23 2010-10-08
Ursprüngliches Problem Wie realisiert man ein digitales Schaltnetz? Lösungsmöglichkeiten Aufbau aus Relais, Röhren, Transistoren, Aufbau aus Gatterbausteinen (74er etc.), Verwenden eines (((E)E)P)ROMs, Bauen eines ASICs. Jeweils verschiedene Vor- und Nachteile (Geschwindigkeit, Preis, Flexibilität,... ). Hardware Programmierbare Logik 4/23 2010-10-08
Ursprüngliches Problem (2) Idee Alle booleschen Schaltfunktionen lassen sich als Summe von Produkttermen darstellen, Schaffe einen Baustein, der diese Struktur abbildet, programmierbare Verbindungen aufweist. Hardware Programmierbare Logik 5/23 2010-10-08
Grundstruktur Hardware Programmierbare Logik 6/23 2010-10-08
Übergang zu Schaltwerken Erinnerung: Mealy-Automat (allgemeinste Variante des Zustandsautomaten) Hardware Programmierbare Logik 7/23 2010-10-08
Übergang zu Schaltwerken (2) Zusammenhang mit Schaltnetzen Verknüpfungslogiken sind Schaltnetze, zusätzlich Erforderlich: Speicherelemente (Register, Flip-Flops), Rückkopplungen, programmierbare Outputs. Hardware Programmierbare Logik 8/23 2010-10-08
Übergang zu Schaltwerken (3) Hardware Programmierbare Logik 9/23 2010-10-08
Übergang zu Schaltwerken (4) Medwedev-Automat Geschickte Kodierung des Zustands, dadurch: Ausgangsvektor ist Teil des Zustandsvektors, lässt sich besonders gut auf obige Struktur abbilden. Hardware Programmierbare Logik 10/23 2010-10-08
Typen programmierbarer Logik PAL (Programmable Array Logic): programmierbare AND-Matrix, feste OR-Matrix, keine Flip-Flops, PLA (Programmable Logic Array): programmierbare AND und OR-Matrix, keine Flip-Flops, CPLD (Complex Programmable Logic Device): programmierbare AND/OR-Matrix, programmierbare Rückkopplung, Ein- und Ausgabeblöcke, N.B.: Andere Struktur! FPGA (Field Programmable Gate Array): feinmaschig vernetzte Logikblöcke mit je einem nachgeschalteten Flip-Flop. Hardware Programmierbare Logik 11/23 2010-10-08
CPLDs Allgemeines Relativ flexibel, genau vorhersagbare, kurze Signallaufzeiten, sofort einsatzbereit (im Ggs. zu FPGA kein SRAM zu laden), hochgradig homogener/symmetrischer Aufbau: mehrere PAL-Blöcke an zentraler Switch-Matrix, jeder Block gleich aufgebaut. Hardware Programmierbare Logik 12/23 2010-10-08
CPLDs (2) Es folgt ein kurzer Überblick über die wesentlichen Elemente eines größeren CPLDs. N.B. Es handelt sich nicht genau um den in unserer HW verbauten. Hardware Programmierbare Logik 13/23 2010-10-08
CPLDs Blockstruktur Hardware Programmierbare Logik 14/23 2010-10-08
CPLDs Blockstruktur (2) Hardware Programmierbare Logik 15/23 2010-10-08
CPLDs Arrays Hardware Programmierbare Logik 16/23 2010-10-08
CPLDs Arrays (2) Hardware Programmierbare Logik 17/23 2010-10-08
CPLDs Logik-Allokatoren Hardware Programmierbare Logik 18/23 2010-10-08
CPLDs Makrozellen Hardware Programmierbare Logik 19/23 2010-10-08
CPLDs Output-Switch-Matrix Hardware Programmierbare Logik 20/23 2010-10-08
CPLDs I/O-Zellen Hardware Programmierbare Logik 21/23 2010-10-08
CPLDs Input-Switch-Matrix Hardware Programmierbare Logik 22/23 2010-10-08
Verwendeter Baustein Lattice ispxpld 5768MX Makrozellen 768, I/O-Pins 193/317, tpd 5.0 ns, Frequenz 250 MHz. Weitere Eigenschaften: max. 384 kbit RAM, max. 144 kbit Assoziativspeicher, 2 PLLs, diverse IO-Möglichkeiten,... Hardware Programmierbare Logik 23/23 2010-10-08