In meiner Firma haben wir zuvor einige benutzerdefinierte FPGA-Karten entworfen und seit kurzem kommerzielle Standard-FPGA-Karten ("COTS") mit benutzerdefinierten FMC-Tochterplatinen verwendet.
Prototyp Stadium
Wenn Sie sich noch in der frühen Phase der Projektdefinition befinden, planen Sie den Kauf von mindestens einer COTS-FPGA-Karte für das Prototyping. Sie können einen Ihrer Sensoren an die E / A-Header anschließen und einen schnellen Proof-of-Concept durchführen. Auf diese Weise erhalten Sie eine Vorstellung davon, wie das Projekt bei einer Skalierung auf viele Sensoren funktionieren könnte, und können abschätzen, wie viele Sie mit einem bestimmten FPGA unterstützen können.
Wenn das FPGA zu klein oder zu langsam ist oder die Tools für den Job nicht geeignet sind, können Sie zu diesem Zeitpunkt problemlos ein anderes COTS-FPGA austauschen. (Nun, nicht einfach, aber zumindest überschaubar ...)
Wenn die Firmware zu diesem Zeitpunkt nicht funktioniert, liegt dies eindeutig an einem Firmware-Problem und nicht an einem benutzerdefinierten PCB-Designfehler. Bei benutzerdefinierter Firmware und benutzerdefinierter Leiterplatte ist es manchmal schwierig zu erkennen, welche Seite für ein Problem verantwortlich ist.
Benutzerdefinierte FPGA-Karte im Vergleich zu handelsüblicher FPGA-Karte
Das Entwerfen einer benutzerdefinierten FPGA-Karte ist sinnvoll, wenn das Projekt einen kurzen Lebenszyklus und ein hohes Volumen aufweist oder einen kleineren Formfaktor erfordert, als dies mit COTS-FPGA-Karten und PMOD- oder FMC-Zusatzkarten möglich ist.
Wenn der Projektlebenszyklus die Produktlebensdauer eines DDR-Speicherchips (einige Jahre) überschreitet, ist das Entwerfen einer benutzerdefinierten FMC-Tochterplatine möglicherweise die bessere Alternative.
Die Kosten sind ein Faktor bei dieser Entscheidung. Die meisten COTS-FPGA-Karten sind eher universell einsetzbar und auf maximale Flexibilität ausgelegt. Wenn Sie ein hochvolumiges, kostensensitives Produkt herstellen, lohnt es sich wahrscheinlich, ein individuelles Design zu erstellen. Bei geringer Lautstärke ist es jedoch wahrscheinlich besser, sich auf die Erstellung einer Tochterkarte zu konzentrieren.
Unabhängig davon, für welchen Ansatz Sie sich entscheiden, gibt es bestimmte Schnittstellen, die eine klare Masterdokumentation erfordern: an der Schnittstelle zwischen den FPGA-E / A-Pins auf oberster Ebene und dem Rest der Karte und an der Anschlussschnittstelle zwischen den Karten. Dies sind Orte, an denen Pin-Positionen, interne Netznamen und externe Netznamen manchmal nicht übereinstimmen und ausgetauscht werden. Eine Tabelle ist eine ausreichende Dokumentation; Stellen Sie sicher, dass diese Schnittstellentabelle versioniert und unter Quellcodeverwaltung ist. Drucken Sie vor dem Senden von PCB-Dateien an die Fertigung eine Kopie dieser Schnittstellentabelle, eine Kopie des Schaltplans und eine Kopie des FPGA-Pin / Pad-Berichts aus. Ziehen Sie einen Textmarker über die Papiere, um zu überprüfen, ob jedes Signal dort angeschlossen ist, wo es sollte.
Für Steckverbinder habe ich gelernt, wie schwierig es ist, eine mechanische "Systemzeichnung" bereitzustellen, die sowohl Platinen als auch passende Steckverbinder in einer einzigen, dimensionierten Zeichnung zusammen zeigt. Ich wurde zuerst von einem VME-Steckverbindersystem verbrannt, bei dem Pin "A1" an einem Steckverbinder nicht Pin "A1" am anderen Steckverbinder zugeordnet war. Ich habe auch Designer vergessen sehen, dass ein Paar rechtwinkliger Steckverbinder zu einer spiegelbildlichen Verbindung führt (90 Grad + 90 Grad = 180 Grad). Dies war ein Problem, als ich für das Motherboard verantwortlich war und mehrere andere Projektmanager für verschiedene Tochterboards verantwortlich waren.
Benutzerdefinierte FPGA-Board-Tipps
Beginnen Sie mit dem "Referenzdesign" des FPGA-Herstellers und lassen Sie dann alle Teile weg, die für Ihre Anwendung nicht erforderlich sind. Entfernen Sie keine Bypass-Kondensatoren aus dem FPGA und versuchen Sie nicht, weniger PCB-Schichten zu verwenden. Achten Sie auf den Ebenenstapel (häufig neben der Bohrzeichnung). Bei Komponenten mit feiner Teilung wird normalerweise 0,5 Unzen Kupfer anstelle der Standarddicke von 1 Unze Kupferfolie verwendet.
Das BGA-Paket ist ein Problem. Die Ausbeute ist niemals so gut wie bei TQFP- oder TQFN-Paketen, und eine Überarbeitung eines BGA ist nahezu unmöglich. Selbst die Überprüfung auf Montageprobleme erfordert einen Röntgenbildgeber. Stellen Sie sicher, dass Sie einen Auftragsfertigungsdienstleister verwenden, dem Sie vertrauen.
Netzteile sind bei der Arbeit mit FPGA-Karten immer schwierig. Der tatsächliche Strombedarf des FPGA hängt sehr stark vom Konfigurationsbitstrom ab. Xilinx bietet ein "Power Estimator" -Tool, das jedoch nur gültig ist, wenn die Firmware vollständig ist. Bei einer Firmware-Änderung in letzter Minute besteht das Risiko, dass der Strombedarf höher ist als erwartet. Planen Sie, eine gewisse Versorgungsmarge zu belassen. Wenn die anfängliche Leistungsschätzung besagt, dass Sie 560 mA benötigen, verwenden Sie einen 1000-mA-Regler. Der zusätzliche verfügbare Ausgangsstrom schadet nicht, aber ein unzureichender Ausgangsstrom führt zu einem fehlerhaften Systemverhalten.
Wenn nicht festgeschriebene FPGA-Pins vorhanden sind, bringen Sie so viele wie möglich in einen Header. Wenn ein Problem auftritt, werden diese nicht festgeschriebenen Pins zu einer wertvollen Diagnoseressource für die Prüfung von Signalen im FPGA.