FPGA lässt sich gut simulieren und besteht die Timing-Prüfung, versagt aber auf der Leiterplatte

Damit haben Sie Ihr FPGA-Design fertiggestellt. Sie haben es mit einem umfangreichen Prüfstand simuliert, der von einem anderen Ingenieur erstellt wurde, und es funktioniert, nachdem es kompiliert, platziert und geroutet wurde, sogar mit Geschwindigkeit. Keine Fehler oder Warnungen von den FPGA-Tools. Sie gehen ins Labor und denken, OH JUNGE, ich werde das FPGA programmieren und dieser Arbeit zusehen, aber das tut es nicht. Keine Daten kommen durch, keine Signalbewegung. Nichts. Sie überprüfen die Stromversorgung auf der Platine und es ist mehr als genug vorhanden, selbst für den FPGA-Startzyklus. Sie überprüfen das Routing auf der Platine auf kritische Signale, und sie sehen gut aus. Was machst du als nächstes???

Es ist wahrscheinlich ein einfacher Fehler, wie Sie Ihre Bitdatei in das FPGA bekommen. Welches FPGA speziell und welche Tools verwenden Sie zum Laden/Debuggen?
Unit-Tests (sollte noch vorher gemacht werden)? Versuchen Sie, die Funktionalität zu reduzieren, bis etwas zu funktionieren beginnt? Oder versuchen Sie sogar, ein sehr einfaches Testdesign zu programmieren, nur um Signale und den Chip selbst zu überprüfen.
Können Sie ein anderes Bitfile laden und ausführen?
Hast du deine Taktquelle überprüft? Läuft es auf dem Board? Vielleicht machen Sie ein wirklich einfaches Design, das nur 1/2 der Uhr auf einem Pin ausgibt. Sehen Sie, ob das funktioniert. Überprüfen Sie Ihr Handbuch, um zu sehen, welche Pins Sie auf Feedback zum Laden überprüfen können. Altera hat eine Konf durchgeführt und einen Fehler-Pin, um Sie wissen zu lassen, was mit Xilinx passiert ist.
Ein guter, den ich gesehen habe (hust getan), ist ein globaler Reset von der falschen (invertierten) Logikebene. Design lädt, tut aber nichts ... sehr frustrierend. Einfach zu beheben, aber zuerst müssen Sie es finden .
Ich hatte einmal ein Problem mit kalten Lötkugeln bei einem FPGA in einem BGA-Gehäuse, das Lötprofil war während der Montage falsch. Welches Gerät? Bietet es Feedback, um zu demonstrieren, dass es programmiert ist? Schließlich hängte ich einen 40-Gauge-Draht an einen Klebeband-Webstuhl mit einem anderen, an dem das FPGA baumelte, und bewies, dass es programmiert werden konnte. Pinbelegung (insbesondere Power-Pins). Wird dieses Gerät zum ersten Mal von Ihrem Unternehmen verwendet? (Und das Drücken des BGA mit einem fleischigen Daumen brachte es zum Laufen).

Antworten (1)

Als Antwort auf Ihre Frage "Was machen Sie als Nächstes?" Hier sind einige zufällige Dinge, die Sie berücksichtigen und messen sollten:

Lässt es sich gut programmieren? Verwenden Sie ein JTAG-Kabel zum Anschließen? Identifiziert es sich korrekt mit dem JTAG-Kabel und der Programmiersoftware? Oder verwenden Sie ein EEPROM/FLASH, um die Konfiguration beim Start zu laden? Programmieren Sie die Bitdatei mit den Tools des FPGA-Anbieters oder mit anderen Tools in das EEPROM/FLASH? Wird das EEPROM/FLASH korrekt programmiert? Signalisiert das FPGA nach dem Booten / nach dem Laden der Konfiguration (Xilinx) DONE? Verbraucht es eine angemessene Menge Strom? Ändert sich der Strom beim Laden der Konfiguration?

Bei allen digitalen Schaltungen dreht sich alles um drei Grundlagen: Power, Clock und Reset. Versuchen Sie, diese nacheinander zu bestätigen. Versuchen Sie, eine Konfiguration zu generieren und zu laden, die sehr grundlegende Dinge tut, wie z. B. einen Ausgang hoch und einen anderen niedrig zu ziehen. Wenn Sie einige Tasten/LEDs an Bord haben, versuchen Sie, ein Tastensignal direkt auf ein LED-Signal zu leiten. Alles, was keine Uhr benötigt. Fügen Sie dann einigen Ausgängen einen Binärzähler von der Taktquelle hinzu. Messen Sie, ob Sie einige Ausgänge erhalten, die mit der Uhr nach oben / unten schalten.