zum Directory-modus

Flipflops

Technische Nutzung der logischen Funktionen

Was ist programmierbare Logik?

Programmierbare Logik wird definiert als ein elektrischer Schaltkreis mit konfigurierbarer Logik und Flip-Flops, die mit programmierbaren Verbindungen ausgestattet sind. Speicherzellen kontrollieren und definieren die Funktion, die die Logik ausführen kann und wie die verschiedenen Logikfunktionen verbunden sind. Obwohl die verschiedenen Schaltkreise unterschiedliche Architekturen benutzen, basieren doch alle auf dieser fundamentalen Idee. Näheres unter PLA.

Welche Arten von programmierbaren logischen Devices (Bauteilen) (PLD's) sind heute verfügbar? Wie unterscheiden sie sich voneinander?

Es gibt einige programmierbare logische Architekturen. Jede Architektur hat typische Herstellervarianten innnerhalb jeden Typs. Die gebräuchlichsten Typen beinhalten:

  1. Simple Programmable Logic Devices (SPLDs)
  2. Complex Programmable Logic Devices (CPLDs)
  3. Field Programmable Gate Arrays (FPGAs)
  4. Field Programmable InterConnect (FPICs)

1. SPLD - Simple Programmable Logic Device

Diese sind je nach Hersteller unterschiedlich und bekannt als:

  • PAL (Programmable Array Logic, Vantis)
  • GAL (Generic Array Logic, Lattice)
  • PLA (Programmable Logic Array)

SPLD's sind die kleinsten und billigsten Bauteile in der Familie der programmierbaren Logik. Ein SPLD ist typischerweise unterteilt in 4 bis 22 Makrozellen. Jede Makrozelle ist mit den anderen des Bauteils verbunden.

2. CPLD - Complex Programmable Logic Device

Auch bekannt als:

  • EPLD (Erasable Programmable Logic Device), zu Deutsch "löschbare programmierbare logische Bausteine"
  • EEPLD (Elektrisch löschbare programmierbare logische Bausteine)
  • MAX (Multiple Array Matrix, Altera)

CPLD's sind den SPLD's sehr ähnlich, außer dass sie eine signifikant höhere Kapazität haben. Ein typischer CPLD hat etwa den Speicherplatz von 2 bis 64 SPLD's. Ein CPLD enthält typischerweise von 10 bis zu einigen 100 Makrozellen. Eine Gruppe von 8 bis 16 Makrozellen ist typischerweise in einen größeren Funktionsblock zusammengruppiert. Die Makrozellen innerhalb eines Funktionsblocks sind ebenso verbunden.

3. FPGA - Field Programmable Gate Array

  • LCA (Logic Cell Array)
  • pASIC (programmable ASIC)
  • FLEX, APEX (Altera)
  • ACT (Actel)
  • ORCA (Lucent)
  • Virtex (Xilinx)
  • pASIC (QuickLogic)

FPGA's haben von allen logischen Bausteinen den größten Speicherplatz. Ein typisches FPGA enthält von 64 bis zu einigen Zehntausend logischen Blöcken und eine noch größere Anzahl von Flip-Flops. Ein FPGA ist ein programmierbarer Baustein mit einer internen Matrix von logischen Blöcken, die durch eine programmierbare Verbindung zusammen verbunden werden. Es gibt eine große Anzahl an Untertypen innerhalb dieser Familie. Das Geheimnis der Dichte und Performance in diesen Bausteinen liegt in der Logik, die in diesen Blöcken enthalten ist und in der Performance und Effektivität seiner Architektur. Seit der ersten kommerziellen Einführung im Jahr 1985 sind die FPGA's eines der am schnellsten wachsenden Marktsegmente der Halbleiterindustrie. Waren die Bausteine in der Vergangenheit sehr teuer, so reicht die Preisspanne mittlerweile bis auf wenige DM herunter.

FPGA's dienen aber nicht nur zur Realisierung von logischen Verknüpfungen und Schaltwerken. Vielmehr lassen sich inzwischen problemlos Datenverarbeitungs-Algorithmen und auch vollständige Prozessoren in FPGA's realisieren. Mit Hilfe dieser anwendungsspezifischen Prozessoren (ASIP, Application Specific Instruction Set Processor) kann eine wesentliche Beschleunigung der Datenverarbeitung erreicht werden, da alle Parameter des Prozessors wie Befehlssatz, Registersatz oder Datenbusbreiten optimal an das Problem angepasst werden können. Einen weiteren Ansatz stellen die Custom Computig Machines (CCM) dar. Diese nutzen die Ressourcen eines FPGA zur Realisierung von hoch-parallelen Hardware-Strukturen zur beschleunigten Datenverarbeitung. Den Aufbau solch einer Schaltung kann man sich folgendermaßen vorstellen:

Abb.1

Programmierbare FPGA's auf SRAM-Basis sind rekonfigurierbar. Während des Betriebs kann eine neue Konfiguration in das FPGA geladen und damit die Struktur der Hardware verändert werden. Die Hardware ist damit "weich" geworden. Neuere Bausteine bieten sogar die Möglichkeit der dynamischen und teilweisen Rekonfigurierung. Dabei bleiben die Zustände der Datenspeicher in dem FPGA erhalten, so dass nun auch die Operatoren zu den Daten wandern können, statt wie bisher üblich, die Daten zu den Operatoren. So wie ein klassischer von Neumann-Rechner sein Programm lädt, wird zur Bearbeitung einer bestimmten Aufgabe die entsprechende Konfiguration in das FPGA geladen. Eine Hardware lässt sich also für verschiedene Aufgaben nutzen. Der nächste Schritt in die Zukunft wäre die adaptive, sich selbst konfigurierende Hardware.

Abb.2
Aufbau eines Evaluation-Boards mit dem ISPLSI 1016 80LJ von Lattice und Centronics-Schnittstelle
Seite 6 von 8