Programmierbare Logikbausteine

ZIELE

  • Verständnis der Grundlagen und Architektur von Programmierbaren Digitallogikbausteinen (PDL)
  • Verständnis der Abbildung von booleschen Funktionen auf einfache PDL Architekturen
  • Unterscheidung verschiedener Technologien: ROM, PLD, CPLD, FPGA und ASIC

Programmierbare Logikbausteine

  • Programmierbare Digitallogik (PDL) dient der technologischen Umsetzung und Implementierung von Schaltnetzen, die mit booleschen Funktionen beschrieben werden können, und Register-Transfer-Logik.

  • “Programmierbar” ist hier falscher Terminus, da ein Programm eine Ablaufvorschrift darstellt; besser “anwendungsspezifisch konfigurierbar”.

  • Ausgangspunkt für PDL-Bausteine (oder engl. Programmable Logic Devices PLD) ist die Disjunktive Normalform (DNF) zur Beschreibung von kombinatorischer Logik (SOP) mit M Ausgangsvariablen bzw. Signalen und N Eingangsvariablen:

\[Q_i = P_{1,i} + P_{2,i}+ .. + P_{n,i}
\]

wobei Pi,j ein Produktterm ist, bei dem die Ausgangsvariable Qi=1 annimmt.

Programmierbare Logikbausteine

  • Eine disjunktive Normalform besteht aus einer Und-Verknüpfungsebene (-matrix), die die Produktterme Pi,j bildet, und eine Oder-Verknüpfungsebene (-matrix), die die einzelnen Produktterme verbindet.

  • Ein Adressdekoder (1-aus-N Dekoder) besteht aus einer Und-Verknüpfungsmatrix.

    • Geeignet um Produktterme zu bilden, aber alle Produktterme ergeben Ausgangswert = 1!
    • Daher wird Produktterm-selektive Oder-Matrix benötigt.

Charakteristisch für alle PDL Architekturen und Technologien ist eine logische UND-ODER Matrixstruktur

Programmierbare Logikbausteine

figpdl1


Abb. 1. (Links) Technologische Umsetzung der Disjunktiven Normalform (Rechts) 1-aus-4-Dekoder

Programmierbare Logikbausteine: ROM und RAM

  • Ein ROM (Read-Only-Memory) oder RAM (Random Access Memory)-Baustein beinhaltet einen Adressdekoder (Und-Matrix) und eine selektive Oder-Matrix (Multiplexer), die durch die Speicherzellen gebildet wird.

figpdl2[www.toves.org]


Abb. 2. Allgemeine ROM/RAM Architektur

Programmierbare Logikbausteine: ROM und RAM

Abbildung BF auf ROM/RAM Baustein

  • Eine beliebige Boolesche Funktion f(x1,x2,..xn): 2n 2m kann mit einem ROM/RAM Speicher implementiert werden (n Eingangsvariablen).

  • Die Funktionsvariablen werden den (kodierten) Adresseingängen zugeordnet und es gilt: ai = xi

  • Die Zeilen der Funktionstabelle eines kombinatorischen Digitallogiksystems entsprechen den Zellen des Speicherbausteins.

  • Konfiguration: Die jeweilige Ergebnisspalte der Funktionstabelle wird in den Speicher übertragen.

  • Die Speicherzellen werden durch die Eingangsvariablen der BF addressiert und das Ergebnis ausgewählt

  • Es werden 2n Speicherzellen der Datenwortbreite m Bit benötigt

Programmierbare Logikbausteine: ROM und RAM

figpdl3


Abb. 3. Übertragung der Ausgangsspalte einer Booleschen Funktion auf die Speicherspalte eines RAM/ROM Bausteins

Programmierbare Logikbausteine: ROM und RAM

Vorteile bei der Verwendung von ROM/RAM-Logikbausteinen als PDL:

  1. Jede beliebige n × m Funktion läasst sich in einem Speicherbaustein mit 2n Speicherstellen abbilden
  2. Die BF muss (und braucht) nicht vereinfacht werden

Nachteile bei der Verwendung von ROM/RAM-Logikbausteinen als PDL:

  1. Geringe Ausnutzung von Gatterressourcen,
  2. Logikminimierung kann daher entfallen, der Adressdekoder=Und-Matrix ist überbestimmt,
  3. Nur kombinatorische Logik implementierbar; sequenzielle Systeme können wegen fehlender frei verfügbarer Register/FLIP-FLOPs nicht realisiert werden.

Programmierbare Logikbausteine: ROM und RAM

Aufgabe

  1. Erstelle die Boolesche Funktion als Funktionstabelle eines 2-Bit Addierers.

    • Eingänge: x1,x2,y1,y2
    • Ausgänge: z1,z2,c
  2. Implementiere die BF in einem ROM Baustein als PDL in ReTro und teste die Schaltung exemplarisch

Programmierbare Logikarrays (PLA)

  • Die UND-Matrix ist bei RAM/ROM-Bausteinen nicht programmierbar bzw. konfigurierbar. Daher schlechte Ausnutzung von Gatter- bzw. Transistorressourcen, was zu:

    1. nicht größerer Chip-Fläche
    2. und erhöhter Leistungsaufnahme führt.
  • Spezielle Logikarrays mit programmierbarer UND- sowie ODER-Matrix stellen eine Verbesserung dar.

    • Durch eine zusätzliche konfigurierbare UND-Matrix kann die Matrixgröße reduziert werden, da durch Logikoptimierung bei fast allen Problemen ein Reduktion der Produktterme zu erwarten ist.
  • Unter Ausnutzung der Logikminimierung erreicht man einen deutlich besseren Wirkungsgrad:

\[\eta = 1 - \frac{P}{2^N}
\]

mit N als Anzahl der Eingangsvariablen, P Anzahl der Produktterme und folgend M als Anzahl der Ausgangsvariablen.

Programmierbare Logikarrays (PLA)

figpla1


Abb. 4. Reduzierte konfigurierbare UND- und ODER-Matrix als PLA.
  • Ein PLA implementiert daher eine zweistufige Funktion in SOP-Form, nicht notwendiger und sinnvollerweise in vollständiger Normalform.

  • Je weniger Produktterme durch Minimierung die SOP Funktion bilden, desto kleiner kann P gewählt werden

Programmierbare Logikarrays (PLA)

  • P wird aber bereits bei der Herstellung eines PLA-Bausteins seitens des Herstellers festgelegt, so dass sich nicht alle Funktionen in einem PLA bestimmter Größe realisieren lassen

  • P wird immer als Kompromiss zwischen Chipfläche/Komplexität und Funktionalität gewählt.

  • Die UND-ODER-Matrix lässt sich auf eine reine ODER(NOR)-Matrix transformieren, was in technologischer Zweckmäßigkeit begründet sein kann:

\[\begin{gathered}
Y = \neg A \bullet \neg B +  \neg C \bullet \neg D \hfill \\
Y = \neg (A+B) \bullet \neg (C+D) \\ 
\end{gathered} 
\]

Variante Programmierbare Arraylogik (PAL)

  • Die zweifache Matrixstruktur UND-ODER wird bei diesen Bausteinen vereinfacht, indem die ODER-Matrix fest verdrahtet wird und nicht programmierbar ist.
  • Die ODER-Matrix bildet eine feste Verknüpfung der Produktterme. Die Matrix ist unterbestimmt.

Komplexe PLD (CPLD)

  • Bei hoher Anzahl von booleschen Funktionen und hoher Anzahl von Eingangs- und Ausgangsvariablen sind monolithische PLA- oder PAL-Lösungen nicht effizient einsetzbar.
  • Lösung besteht in der Partitionierung eines gesamten PLD-Bausteins in eine Vielzahl von kleineren PLD-Blöcken (mit konfigurierbarer UND-ODER-Matrix).

figcpld1


Abb. 5. CPLD mit kleineren PLD-Blöcken und Verbindungsstrukturen:

Komplexe PLD (CPLD)

  • Ein PLD-Block kann aus einer Mischung verschiedener Architekturen bestehen, die insbesondere Register in Form von D-FLIP-FLOPs enthalten, um Register-Transfer-Logik umsetzten zu können.

  • Der Aufbau und Granularität des PLD-Blocks und deren Anzahl bestimmt die Möglichkeiten, ein gegebenes Logiksystem zu einer Problemstellung in einem CPLD implementieren zu können.

  • Da meist der PLD-Blockaufbau einfach (fein granuliert) gehalten ist, werden diese Blöcke auch als Makrozellen bezeichnet.

  • Es muss konfigurierbare Verbindungsleitungen zwischen den Makrozellen und zwischen Makrozellen und Ein-/Ausgabeschnittstellen geben. Feine Granularität erfordert eine umfangreiche Verbindungsmatrix im CPLD!

  • Je komplexer ein CPLD aufgebaut und je umfangreicher das zu implementierende Problem ist, desto kritischer wird die Qualität der Verbindungsmatrix und die Granularität der Makrozelle. Häufig sind noch Gatterressourcen vorhanden, können aber nicht mehr verbunden werden.

Komplexe PLD (CPLD)

Architektur CPLD

  1. Konfiguerierbare Logikblöcke (PLD)
  2. Konfigurierbare Verbindungungsmatrix (Kreuzmatrixschalter)
  3. Konfiguerierbare Ein- und Ausgabeblöcke (IO)

figcpld2[Hector Allford, slideplayer]

Komplexe PLD (CPLD)

  • Zwei Technologien haben sich bei CPLD-Bausteinen für die Konfiguration durchgesetzt:
    1. EEPROM- und Flash Zellen, die sowohl die Konfiguration der Makrozellen als auch der Verbindungsmatrix dauerhaft speichern, aber mehrmalig rekonfiguriert werden können; und
    2. Fuse-/Antifuse-Verbindungen, die nur eine einmalige Konfigurierung nach dem Herstellungsprozess zulassen.

figpldtech1[Lattice Sem.]


Abb. 6. Verschiedene Konfigurationtechnologien im Vergleich und ihre Eigenschaften

Komplexe PLD (CPLD)

IO Blöcke

  • Die I/O-Blöcke verbinden die einzelnen Makrozellen mit der technischen Außenwelt. Dabei werden von diesen programmierbaren I/O-Blöcken verschiedene Logikstandards unterstützt:
  • TTL bzw. Low Voltage TTL (LVTTL)
  • LV CMOS
  • LVDS als Beispiel eines differentiellen Signalübertragungsstandards mit zwei Leitungen (nicht direkt unterstützt vom XC9500)
  • PCI (3,3V und 5V)
  • und viele andere.
  • Die verschiedenen Signalstandards unterscheiden sich in den Spannungsintervallen, die dem Low- und High-Pegel zugeordnet sind. Weiterhin muss die Signalrichtung wählbar sein:
  • Eingang (IN)
  • Ausgang (OUT)
  • Bidirektional (INOUT) mit Tri-state Ausgangsstufe.
  • Ausgang mit Puffer (BUFFER, auch mit D-FLIP-FLOP)

Komplexe PLD (CPLD)

Zusammenfassung

Eigenschaften von CPLDs:

  1. CPLDs bestehen aus einer Matrixs von PAL-Blöcken, die aus kombinatorischer Logik gebildet werden, die SOP-Ausdrücke mit vielen Eingangsvariablen implementieren, ergänzt durch Register. Die Registerdichte ist aber niedrig.

  2. CPLDs sind daher gut geeignet für Applikationen mit geringer und mittlerer Gatter-, Funktions- und Registerdichte.

  3. CPLDs haben ein gut vorhersagbares zeitliches Verhalten (LKP, begründet in einem verhältnismäßig einfachen und regulären Aufbau und dem Kreutmatrixschalter (Netzwerktopologie mit konstanter Ausdehnung 1/2).

  4. Die Verbindungsmatrix besitzt eine Kreuzstruktur mit eingeschränkten Trassierungsmöglichkeiten.

Xilinx XC9500 CPLD

Architektur

figcpld4


Abb. 7. XC9572 Architecture: Function block outputs (indicated by the bold line) drive the I/O blocks directly. [Xilinx]

Xilinx XC9500 CPLD

Architektur Funktionsblock

figcpld5


Abb. 8. XC9500 Function Block [Xilinx]

Xilinx XC9500 CPLD

Architektur Makrozelle

figcpld6


Abb. 9. XC9500 Macrocell Within Function Block [Xilinx]

Feldgatterarrays (FPGA)

  • FPGAs stellen eine Weiterentwicklung der CPLD-Technologie dar. Die Architektur ist komplexer und stärker registerbasiert.
  • FPGAs sind in Funktionseinheiten unterteilt, die untereinander mit einem flexiblen kanalbasierten Verbindungssystem verbunden sind.

figfpga1


Abb. 10. Aufbau eines FPGA mit Funktionseinheiten FU, Verbindungskanälen IC, und IO Blöcken.

Feldgatterarrays (FPGA)

  • Die FPGA-Funktionalität wird durch spezielle Komponenten ergänzt:

    • Frei verfügbare RAM Blöcke (nicht zur Implementierung logischer Funktionen geeignet)
    • vorgefertigte arithmetische und logische Funktionseinheiten:
      • Schieberegister
      • Addierer
      • Multiplizierer
    • umfangreiche I/O-Ressourcen, die eine Vielzahl von I/O-Standards wie TTL, LVTTL,CMOS, LVDS u.v.m. unterstützen,
    • bis hin zu partiellen CPU-Kernen (Beispiel Xilinx-Virtex mit bis zu vier PowerPC CPU- Kernen auf dem FPGA-Chip).
  • FPGAs sind für mittlere und hohe Gatter-, Register- und Funktionsdichten und Rapid-Prototyping geeignet.

Feldgatterarrays (FPGA)

  • Unterschiede zu CPLDs:
    • Die Performance (Laufzeiten, max. Taktfrequenz) ist abhängig von der Verbindungstrassierung. Das zeitliche Verhalten ist nur schwer vorhersagbar, außer durch Post-Simulation.
    • Die kombinatorischen Funktionen werden nicht mit vorgefertigten PAL-ähnlichen UND-ODER-Matrizen, sondern mit ”Look-Up” Tabellen, d.h. mit SRAM, seltener EEPROM-Blöcken aufgebaut.
    • Nachteil der SRAM basierten FPGAs gegenüber EEPROM/Flash:
      • Die Konfigurationsdaten (sowohl für die Verschaltung der Verbindungsmatrix als auch der Look-Up Tabellen) müssen bei jeder Inbetriebnahme erneut aus einem extern nichtflüchtigen Speicher (EEPROM) geladen werden. Hier sind FPGAs mit EEPROM-Zellen in der Verbindungsmatrix und den Look-Up Tabellen im Vorteil.

Feldgatterarrays (FPGA)

figfpga2


Abb. 11. Funktionseinheit eines FPGAs: Kleine SRAM-Blöcke zur Implementierung beliebiger logischer Funktionen.

Metriken

Gatteräquivalent

  • Um FPGAs und Implementierung von Digitalsystemen in FPGAs vergleichen zu können, wird der Begriff des Äquivalentgatters verwendet.

  • Ein Äquivalentgatter ist i.A. ein einfaches NAND-Gatter mit zwei Eingängen. Man kann nun einen Hardware-Entwurf in Äquivalentgatter ”umrechnen”, da sich alle logischen Funktionen auf reine NAND-Gatter transformieren lassen - dies gilt auch für FLIP-FLOPs in Näherung.

  • Aktuelle FPGAs stellen ein Gatteräquivalent von ca. 100k-1M (10M) zur Verfügung. Da aber frei verfügbare Logikfunktionen in einem FPGA nicht direkt als FLIP-FLOPs verwendet werden können, ist die Anzahl frei verfügbarer FLIP-FLOPs getrennt von den möglichen Logikressourcen zu betrachten, anders als bei ASICs.

  • Bei ASICs ist der Äquivalentwert ein Maß für die Chip-Fläche.

Metriken

  • Diese Werte sind aber nicht direkt auf die Äquivalentgatterangabe von FPGAs übertragbar, da im Gegensatz zu ASICs die Trassierung der limitierende Faktor sein kann.

  • Die Trassierung der Verbindungsleitungen zwischen den Funktionsblöcken und den Ein- und Ausgängen wird zentraler Bestandteil der Logiksynthese mit widersprechenden

Forderungen:

  1. Möglichst viele Verbindungen geringer Flächenbedarf;
  2. Flexible Konfigurierbarkeit kleine Signallaufzeiten.

Metriken

figpldtech2


Abb. 12. Historische Entwicklung der PLD Technologien und die äquivalente Gatterzahl [Gillian White, slideplayer]

Metriken

  • Um einen Eindruck zu vermitteln, mit welchen Logikgatterbedarf man bei bestimmter Funktionalität zu rechnen hat, ist in folgender Tabelle die Gatterzahl von ASICs aus der Sun Microsystems SPARC-Station 1 gezeigt ( 1985).

figsparceq

Xilinx FPGA

  • Fein granulierte Funktionsblöcke CLB, RAM Blöcke und IO Blöcke
  • Konfigurierbarer und universell einsetzbarer Funktionsblock

Architektur

figfpga3


Abb. 13. Basic Spartan-II Family FPGA Block Diagram [Xilinx]

Xilinx FPGA

IO und Funktionsblockarchitektur

  • Konfigurierbarer und universell einsetzbarer I/O-Block
  • Konfigurierbarer und universell einsetzbarer Funktionsblock

figfpga4


Abb. 14. (Links) Spartan-II CLB Slice (two identical slices in each CLB) (Rechts) Spartan-II FPGA Input/Output Block (IOB) [Xilinx]

Application Specific Integrated Circuit: ASIC

  • CPLDs und FPGAs werden nach ihrer Herstellung anwendungsspezifisch konfiguriert.

  • CPLDs und FPGAs besitzen eine vom Hersteller vorgegebene Grundstruktur und sind bezüglich maximaler Gatter-, Register- und Trassierungs/Verbindungskapazitäten begrenzt.

  • Bei ASICs geht der Systementwurf, der mit einem digitalen Schaltkreis realisiert werden soll, in den Herstellungsprozess des ICs ein, d.h. es werden am Ende der Logiksynthese die Logikgatter in Transistorzellen und schließlich auf physikalische Layoutebene abgebildet.

  • Für den Fertigungsprozess werden ähnlich der Leiterplattenherstellung Fertigungsmasken benötigt, die

    • den Ort und den Aufbau der einzelnen CMOS-Transistoren bestimmen (mehrschichtiger Aufbau),
    • die die Verbindungsleitungen auf den entsprechenden Metall-Layern festlegen und Durchkontaktierungen zwischen einzelnen Layern beschreiben.

Application Specific Integrated Circuit: ASIC

  • Der anwendungsspezifische Systementwurf bestimmt daher maßgeblich den Fertigungsprozess (eventuell auch die Fertigungstechnologie selbst), und muss für jedes neue Digitallogiksystem erneut entwickelt werden.

  • Man unterscheidet:

Full Custom ASICs
Transistor- und Verbindungsebenen sind frei vom Anwender konfigurierbar und spezifizierbar, setzt aber Wissen der Transistor- und Herstellungstechnologie voraus. Hoher Zeitaufwand und hohes Risiko von Fehlern kennzeichnet diese Entwicklungsmethode.

Motivation für diesen Entwicklungsprozess:

  1. Möglichst geringe Chip-Fläche und geringer Energieverbrauch,
  2. höchstmögliche Verarbeitungsgeschwindigkeit,
  3. hohe Stückzahlen rechtfertigen hohe Entwicklungskosten,
  4. Hardware-Entwürfe, die an die Grenzen des technologisch Machbaren gehen.

Application Specific Integrated Circuit: ASIC

Standardzellen-ASICs
Für Grundelemente wie Logikgattern, Register, FLIP-FLOPs, aber auch komplexe Komponenten wie Addierern, Multiplizierer, RAM usw. werden aus einer sog. Standardzellenbibliothek vorgefertigte Transistorblöcke angeboten, die nur noch strukturell und schließlich technologisch miteinander verbunden werden müssen. Auch für die Trassierung existieren vorkonfigurierte Transistorblöcke und Strukturen. Bei dieser Entwurfsmethode werden keine tiefen Kenntnisse über Transistor- und Herstellungstechnologie vorausgesetzt, da diese als Expertenwissen in der Standardzellenbibliothek vorhanden ist.
  • Layouts von ASICs sind trotz der Gestaltungsfreiheit wie CPLDs und FPGAs strukturiert, z.B. können Verbindungstrukturen eine Zeilen- oder Spaltenstruktur aufweisen.

  • Man unterscheidet bei der Trassierung von Trassierungskanälen, die zwischen Funktionseinheiten gelegt werden, und solchen, die auch über Funktionseinheiten gelegt werden (Multilayer).

Application Specific Integrated Circuit: ASIC

Architekturen

figasictech1


Abb. 15. A: Zeilen-oder Spaltenstruktur, B: Blockstruktur, C: Sea-Of-Gates

Application Specific Integrated Circuit: ASIC

Sea-of-Gate-Technologie

Die Sea-of-Gates-Technologie ist ein Sonderfall im Standardzellen-ASIC Bereich: hier werden die zur Implementierung erforderlichen Transistoren (immer ein n- und ein p-Kanal Transistor gepaart) in einer regulären Matrix angeordnet.

  • Diese Transistormatrix wird dann ohne Verbindungen, d.h. unabhängig von einem Anwendungsentwurf, gefertigt. Diese vorverarbeiteten Chip-Wafer müssen dann nach der initialen Fertigung trassiert werden, d.h. in einem späteren Technologieprozeß werden Metall-Layer und Verbindungsleitungen dem Wafer hinzugefügt.
    • Vorteil: die Basisstruktur kann unabhängig von einem Hardware-Design entwickelt und produziert werden, zu entsprechend niedrigeren Kosten als bei reinen ASIC-Entwürfen.
    • Die Nachbearbeitung kann in entsprechenden Mikrosystem-Laboren vor Ort entsprechend dem anwendungsspezifischen Hardware-Entwurf erfolgen, und stellt keinen nennenswerten Kostenfaktor bei kleinen Stückzahlen dar.

Application Specific Integrated Circuit: ASIC

  • Ein Rapid-Prototyping ist mit dieser vorgefertigten Methode möglich, was sonst nur FPGAs vorbehalten ist.

figasictech2


Abb. 16. Beispiel eines NAND Gatters in Sea-of-Gate Technologie [Ashton Cockroft, slideplayer]

Application Specific Integrated Circuit: ASIC

Herstellung von Mikrochips mit Siliziumtechnologie

[Intel]