Kürzere Entwicklungszeit durch geplante Signalzuordnung von FPGAs für optimales Platinenlayout Freie Fahrt für Signale

Die Organisation der Signalzuordnung von FPGAs mit hoher Pinzahl stellt sich als wachsendes Problem heraus, vor allem für Schaltungen mit mehreren FPGAs, wie sie auch in vielen Geräten der Wireless-Technik vorkommen. Mit einem neuen Tool lässt sich die Zuordnung automatisiert optimieren, so dass sich bestmögliche Verdrahtbarkeit ergibt und gleichzeitig alle Designregeln der FPGAs eingehalten werden.

Kürzere Entwicklungszeit durch geplante Signalzuordnung von FPGAs für optimales Platinenlayout

Die Organisation der Signalzuordnung von FPGAs mit hoher Pinzahl stellt sich als wachsendes Problem heraus, vor allem für Schaltungen mit mehreren FPGAs, wie sie auch in vielen Geräten der Wireless-Technik vorkommen. Mit einem neuen Tool lässt sich die Zuordnung automatisiert optimieren, so dass sich bestmögliche Verdrahtbarkeit ergibt und gleichzeitig alle Designregeln der FPGAs eingehalten werden.

Wie die meisten Hardware-Manager bestätigen werden, manifestiert sich das Problem der Signalzuordnung in dreierlei Hinsicht:

  • Zunächst einmal stellt die I/O-Zuordnung der großen Anzahl der Kommunikationskanäle eines typischen FPGAs an den Logikentwickler kognitive Herausforderungen, für die er einen Kompromiss finden muss. Dazu gehören: Harte Randbedingungen durch jeden Kanal, wie Spannung, Signalstärke, Abschluss und Datenverschiebung gegenüber dem Takt, sowie Randbedingungen der FPGA-Signalzuordnung wie I/O-Banking und Regeln für das gleichzeitige Schalten von Ausgängen.
  • Zweitens werden sich viele Verbindungen überkreuzen, so dass es für den Platinenlayouter physikalisch unmöglich sein wird, das Design für den vorgegebenen Bauteilesatz unter Einhaltung der Designregeln DRC (Design Rule Check) zu verdrahten. Als einzige Option können dann nur noch mehr Lagen zur Verdrahtung und mehr Durchkontaktierungen gewählt werden. Allerdings verschlechtert dies die Signalqualität und dürfte die Herstellung erheblich verteuern.
  • Drittens lösen die meisten der heutigen EDA-Tools die genannten Probleme nur für ein einziges derartiges Bauteil und wissen wenig oder gar nichts von anderen Systembauteilen und ihren Verbindungen. Für einen Logikentwickler ist damit klar, dass er seine Anschlussbelegung öfter überarbeiten muss, je nachdem, was bei den Abstimmungsgesprächen mit seinen Kollegen von der Hardware und Systemintegration herausgekommen ist.

Diese zeitraubenden Kraftakte werden noch dadurch verschärft, dass die Komplexität der Systeme weiter steigen wird, zusammen mit der notwendigen Änderungsverwaltung, die einen erheblichen Organisationsaufwand nach sich zieht. Bild 1 zeigt das Beispiel einer derartigen, komplexen Design-Konfiguration. Mit dem Zusatz-Tool Design F/X lassen sich diese drei Kernprobleme leicht in den Griff bekommen:

  • Der Anwender muss sich die Regeln für I/O-Banking nicht dauernd vor Augen halten, denn Design F/X führt einen automatisierten Prozess zur Optimierung der Signalzuordnung durch. Außerdem liefert es Informationen über DRC-Regeln und Anforderungen bezüglich der gewählten I/O-Standards.
  • Design F/X optimiert die Signalzuordnung für ein oder mehrere FPGAs und deren zugehörige Bausteine auf einer Platine auf Systemebene unter strikter Einhaltung der Designregeln. Diese Optimierung führt zu höchster Platinen-Verdrahtbarkeit, was die Anzahl der Iterationsschritte verringert und den Kopf frei hält für Kern-Entwicklungstätigkeiten.

Das Tool und die Implementation in bestehende Entwicklungsabläufe

Design F/X ist einfach zu erlernen und noch einfacher in einen bestehenden Entwicklungsablauf zu integrieren. Dazu stellt Bild 2 einen typischen Design-F/X-Ablauf rechts im Bild dem heute üblichen, zeitraubenden und fehleranfälligen iterativen Prozess links gegenüber.

Der traditionelle Entwicklungsablauf ist aus verschiedenen Gründen langwierig und fehleranfällig:

  • Zunächst einmal gibt es mehrere manuelle Startpunkte, wie HDL-Beschreibungen, Signalzuordnungstabellen, Schaltungssymbole, Schaltpläne, Gehäusezeichnungen und Informationen über Randbedingungen.
  • Dann gibt es kein Tool für die Validierung der Daten vom Gehäuse zu Komponenten zur Netzliste. So sagen beispielsweise weder Schaltplan noch Netzliste etwas über das Gehäuse aus, was aber für eine Validierung notwendig ist.
  • Der Prozess der Back-Annotation ist oft unvollständig, da erforderliche FPGA-Updates und Attribute nicht automatisch an die Platinen-Tools weitergereicht werden, wo sie aber für effiziente Leiterbahnführung und Planung benötigt werden.
  • Grundsätzlich sind diese Iterationen bis zur passenden FPGA-Anschlussbelegung erforderlich, die mühsam in intensiven Gesprächen der FPGA-Designer mit den Platinenlayoutern erarbeitet werden müssen.

Die Anwendung von Design F/X löst diese Probleme durch End-to-End-Unterstützung mit verifizierten Dateneingängen und einer Anschlussbelegung des FPGA, die einerseits die Designregeln einhält und auf Sys-temebene für eine beste Verdrahtbarkeit optimiert ist. Dazu muss der gewohnte Entwicklungsablauf nicht unterbrochen werden, da Design F/X mehrere Vektorpunkte zur Verfügung stellt, an denen eine Analyse des Designs ansetzen kann. Außerdem verfügt Design F/X über die in Bild 3 zusammengestellten I/O-Möglichkei-ten.

Für ein optimiertes Design in einer einzigen Iteration sind nur zwei aufeinanderfolgende Schritte notwendig:

  1. Erzeugung oder Import der Anschlusszuordnung und Platinen-Konnektivität;
  2. Die Analyse und die Optimierung des konfigurierbaren Bausteins für bestmögliche Verdrahtbarkeit unter Berücksichtigung der Designregeln für FPGAs von Xilinx.

Design F/X unterstützt die Bauteile von Xilinx und deren Entwurfsregeln. In der neuen Version vom Juni 2004 bietet das Programm unter anderem folgende Features:

  • DRC des I/O-Banking: Spannung, I/O-Standards und Abschluss auf dem Chip werden auf Intra-Bank-Kompatibilität geprüft.
  • Bei Bedarf automatische Reservierung der Anschlüsse für Vref, VRP und VRN, basierend auf dem jeweils gewählten I/O-Standard.
  • Automatische Erkennung und Behandlung von Leitungspaaren für Gegentaktübertragung mit Differenzempfängern, einschließlich der paarweisen Verlagerung während der Optimierung, vorausgesetzt, dass dies zulässig ist.

Im ersten Schritt erfolgt die Auswahl eines Xilinx-Chips (Bild 4). Nach der Entscheidung für ein Package kann eine .PAD- oder .CSV-Datei von Xilinx importiert werden; alternativ ist auch ein Start ohne Dateiimport möglich. In jedem Fall lässt sich die Signalzuordnungstabelle nach Bild 5 für zwei Aufgaben nutzen:

  1. Zuordnung von Signalen zu Anschlüssen und Bündelung zu Signalgruppen und Bussen.
  2. Anwendung von I/O-Standards und Kennzeichnung bestimmter Anschlüsse als unveränderlich, die dann nicht in die Optimierung einbezogen werden.

Jedesmal, wenn für ein Signal der E/A-Standard, der Ort oder der Typ (Richtung) geändert werden, reagiert Design F/X mit einem DRC auf Übereinstimmung mit Xilinx-spezifischen Regeln.

So ist die Bildschirmaufnahme nach Bild 6 entstanden, nachdem der I/O-Standard von zwei Bussen innerhalb der gleichen Bank geändert wurde. Das Ergebnisbild ist interaktiv und zeigt, welche Anschlüsse einen DRC-Fehler hervorrufen. Ein besonderes Merkmal der Benutzerfreundlichkeit ist die Art, wie eine Anzahl zusammenhängender Fehler in einer Zeile zusammengestellt ist.

Nach erfolgter Signalzuordnung führt Design F/X einen letzten DRC durch. Wird dieser Test bestanden, ist das Bauteil für eine Analyse und Optimierung auf einer „virtuellen Platine“ am Bildschirm freigegeben. Im Handumdrehen lässt sich auch eine *.UCF-Datei für die schnelle Prüfung der Platzierung und Verdrahtung in der ISE-Entwicklungsumgebung von Xilinx erstellen.