2009-03-31 8 views
3

Derzeit teste ich einige RTL, ich benutze ncverilog, und es ist sehr ... sehr langsam. Ich habe gehört, dass, wenn wir eine Art von FPGA-Boards verwenden, die Dinge schneller sein werden. Ist es echt?FPGA-basierte RTL-Auswertung

+0

Was halten Sie sehr, sehr langsam? Minuten oder Stunden. –

+1

@Brian: Wenn es zu einem einzigen Testlauf kommt, liegt der Zeitunterschied in der Größenordnung von einer Minute. Aber, wenn wir einen umfassenden Test laufen lassen, ist der Unterschied in der Reihenfolge der Tage ~ (ich meine es, Tage ~~) – Alphaneo

Antwort

3

Sie sprechen über zwei verschiedene Dinge.

NCVerilog ist ein Simulationstool, während eine FPGA-Karte echte Hardware ist. Also, es wird Unterschiede geben. Echte Hardware wird im Allgemeinen schneller sein, aber mit einem Simulator können Sie alle Arten von Debugging-Spaß haben. Der Versuch, ein bestimmtes Signal zu untersuchen, ist nur eine Frage des Hinzufügens einer Zeile zu der Testbench. Außerdem können Sie Änderungen am simulierten Modell vornehmen, ohne das FPGA-Board neu entwerfen zu müssen.

Wenn Sie die Simulation auf einer ausreichend leistungsstarken Maschine ausführen, können Sie sich manchmal der realen Leistung annähern (vorausgesetzt, das FPGA ist langsam).

Alles in allem sollten Sie beides tun. Verwenden Sie einen Simulator für Ihre grundlegende Entwicklung und Auswertung. Bewegen Sie sich auf Ihre FPGA-Hardware, sobald Ihr Design ausreichend definiert ist.

+0

Gute Antwort (einfach für einen Neuling wie mich zu verstehen). Vielen Dank! – Alphaneo

2

Welche Art von RTL testen Sie? Wenn Sie FPGA-Boards verwenden, können Sie Ihren Code kompilieren, vorausgesetzt, Sie haben das richtige Werkzeug für den richtigen FPGA. Da FPGA reprogrammierbar sind, können Sie natürlich Ihren Code an der Platine testen und das Ziel (FPGA) Ihren Code (RTL) ausführen lassen

Aber es ist keine Simulation mehr, es ist ein Test, mit einem gegebenen Hardware, bei einer gegebenen Taktgeschwindigkeit. Und Sie erhalten kein schönes Ergebnis auf dem Bildschirm, müssen Sie physikalische Sonde und Zielfernrohr verwenden. Außerdem können Sie nicht sehen, wie der interne Code funktioniert.

Verilog oder VHDL-Simulation ist eine Art wie Ausführen von Code mit einem Debugger. FPGA-Tests ähneln mehr dem Debuggen mit printf. Der große Unterschied besteht darin, dass Ihre CPU bei der Simulation das Verhalten all jener Logikgatter simulieren muss, die sich aus Ihrem Code ergeben. Auf dem FPGA gibt es keine Simulation, Sie "nur" den Code, so dass es viel schneller ist, aber Sie haben weniger Informationen.

Sie sollten die Simulation für sehr kleine Komponenten verwenden und dann Ihr gesamtes Programm auf einem FPGA testen.

3

Wir hatten die gleichen Probleme mit der Simulationsgeschwindigkeit auch. Wir bleiben jedoch bei Simulationen für den Großteil unserer Verifikation. Jede Simulation prüft eine bestimmte Funktion und ist viel schneller als Simulationen auf Systemebene. Wir haben sie auch selbst überprüft und eignen sich für Regressionstests (Unit-Tests).

Für lange Systemtests an realen Signalen, die zu lange Zeit benötigen, um sie zu simulieren, verschieben wir diese, wenn wir können, zum FPGA. Wir müssen alle diese Testfälle nach dem Codewechsel erneut manuell überprüfen, so dass es auf seine Art langsam sein kann.

Manchmal ist FPGAing ein Design einfach nicht machbar. Manchmal sind vollständige Designs zu groß, um in ein FPGA zu passen, oder die Taktrate ist zu hoch. Aber denken Sie daran, dass Sie nicht unbedingt Ihr gesamtes Design FPGA haben müssen, es kann genug sein, um den wichtigen Block zu erhalten, an dem Sie interessiert sind, und dies vollständig zu überprüfen.

3

Sie können die Aktivität von Signalen in einem laufenden FPGA-Design verfolgen, indem Sie "Embedded Logic Analyzer" -Softwaretools wie Altera SignalTap oder Xilinx ChipScope verwenden. Vor dem Synthetisieren/Mappen Ihrer RTL auf dem Gerät würden Sie diese Werkzeuge verwenden, um weiche Sonden an die Signale anzuhängen, die Sie sehen möchten. Sie können Trigger setzen, damit die Werte eines Signals nur unter bestimmten Bedingungen protokolliert werden. Dann generieren Sie die Bitdatei und programmieren das Gerät mit JTAG. Der Logikanalysator kommuniziert mit Ihrem PC über JTAG und protokolliert die Aktivität Ihrer Probes, die Sie dann analysieren können.

Es ist ein wenig kompliziert einzurichten, da diese Tools nicht besonders einfach zu bedienen sind, aber Sie werden viel schneller Ergebnisse als mit RTL-Simulation erhalten.

1

Sie fragen sich wahrscheinlich über Hardwaresimulationsbeschleuniger. Hier ist einer von ihnen: GateRocket

+1

GateRocket ging letztes Jahr aus dem Geschäft. – FarhadA