Ich verwende Altera Quartus und den SignalTap-Logikanalysator auf einem Max 10-FPGA. Das Kompilieren dauert Dutzende von Minuten, und jedes Mal, wenn ich ein Signal zu SignalTap hinzufügen möchte, muss ich erneut kompilieren. Die Schaltfläche zum schnellen Neukompilieren ist immer ausgegraut, ich weiß nicht einmal, was sie tut, ich hatte nie die Möglichkeit. Oftmals ändere ich nicht nur mein Design, sondern SignalTap, aber Quartus möchte alles neu kompilieren, was wie Zeitverschwendung erscheint. Gibt es eine Möglichkeit, die Kompilierzeit zu beschleunigen (oder Änderungen, die nur für SignalTap gelten)? Verwenden von Quartus 15.1
Einige nützliche Flags, um die Quartus-Synthese schneller zu machen, wenn Sie nicht daran interessiert sind, Ihre Ergebnisse vollständig zu optimieren, und nur eine pessimistische Schätzung erhalten oder Vergleiche anstellen möchten.
set_global_assignment -name PHYSICAL_SYNTHESIS_EFFORT FAST
Gibt den Aufwand in Bezug auf die Kompilierzeit an, den die physikalische Synthese verwenden sollte. Fast verbraucht weniger Kompilierzeit, kann aber den Leistungsgewinn reduzieren, den die physikalische Synthese erreichen kann.
set_global_assignment -name FITTER_EFFORT FAST_FIT
Fast Fit verringert den Optimierungsaufwand, um die Kompilierungszeit zu verkürzen, was die Designleistung beeinträchtigen kann.
Und statt execute_flow -compile
verwenden Sie:
execute_flow -implement
Option zum Ausführen der Kompilierung bis zur Routenphase und zum Überspringen aller zeitintensiven Algorithmen danach.
In einem Treffen mit Intel/Altera-Ingenieuren wurde die Verwendung -implement
davon als etwa 20 % schneller als -compile
angegeben und bei der Iteration von Timing-Closing-Ergebnissen empfohlen.
Du könntest auch Folgendes versuchen:
set_global_assignment -name SYNTHESIS_EFFORT FAST
Hinweis: Dies hat die folgende Einschränkung, obwohl ich in einigen Designs tendenziell insgesamt schnellere Läufe sehe.
Bei der Einstellung Fast werden einige Schritte ausgelassen, um die Synthese schneller durchzuführen; Es können jedoch Leistungs- und Ressourcenkosten anfallen. Altera empfiehlt, diese Option nur dann auf Schnell einzustellen, wenn eine frühe Timing-Schätzung ausgeführt wird. Das Ausführen einer "schnellen" Synthese erzeugt eine Netzliste, die für den Fitter etwas schwieriger zu routen ist, wodurch der Anpassungsprozess insgesamt langsamer wird, was alle Leistungssteigerungen zunichte macht, die als Ergebnis der "schnellen" Synthese erzielt werden.
Bearbeiten (21. Juli 2020):
Die folgenden Einstellungen werden Ihr Timing bestrafen, aber sie können auch bei der Kompilierzeit erheblich helfen, insbesondere bei neueren Stratix 10/Agilex-Designs:
set_global_assignment -name OPTIMIZATION_MODE "AGGRESSIVE COMPILE TIME"
set_global_assignment -name ALLOW_REGISTER_RETIMING "OFF"
set_global_assignment -name HYPER_RETIMER_FAST_FORWARD "OFF"
Und Sie können die Timing-Analyse auch wie folgt deaktivieren:
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS "OFF"
Bearbeiten 2 (9. März 2022):
Diese Einstellung ist sogar noch schneller als AGGRESSIVE COMPILE TIME
:
set_blocal_assignment -name OPTIMIZATION_MODE "FAST FUNCTIONAL TEST"
Dieser Modus erzeugt eine .sof-Bitstream-Datei, die Sie für integrierte Funktionstests mit minimaler Kompilierzeit verwenden können. Dieser Modus reduziert die Kompilierzeit weiter über den Aggressive Compile Time-Modus hinaus, indem Timing-Optimierungen nur auf diejenigen für Hold-Anforderungen beschränkt werden.
Der beste/billigste Weg, die Kompilierzeit zu verbessern, besteht darin, einen Prozessor mit mehr Kernen zu kaufen. Da selbst die kostenlose Version von Quartus in bestimmten Phasen der Hardware-Kompilierung Multiprozessor-Kompilierungsfähigkeiten hat. Ein neuer Prozessor wird ein paar hundert Dollar kosten, wo der Kauf der Vollversion mit der teilweisen Kompilierung Tausende kostet.
Machen Sie es wie die Java-Programmierer heutzutage und verlangen Sie mehr Hardware, anstatt die Software zu verbessern.
Eugen Sch.
Tom Tischler
scherech
scherech