Verbessern Sie die teilweise Kompilierungs- oder Neukompilierungszeit von Quartus

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

Benutzt du die kostenlose Version? Ich denke, diese Art von Optimierungen sind nur in den Vollversionen aktiviert.
So ist es. SignalTap erfordert, dass zusätzliche Signale kompiliert werden, und wenn Sie Signalnamen vor der Synthese verwenden, muss das Design neu kompiliert werden, um sicherzustellen, dass sie vorhanden und nicht wegoptimiert sind. Ich weiß, wie Sie sich fühlen - mein aktuelles Design dauert 3 Stunden zum Kompilieren, also ist es sehr wichtig, zuerst alles zu simulieren und signalTap als letzten Ausweg zu verwenden.
Toms Beobachtung ist der Schlüssel. Sie können Post-Fit-Knoten im Signalabgriff auswählen und dann die inkrementelle Kompilierung aktivieren. Die Knotennamen können auf den ersten Blick sehr lang und unverständlich aussehen. Aber man kann sich daran gewöhnen.
Habe vergessen, den Link hinzuzufügen - quartushelp.altera.com/14.0/mergedProjects/program/ela/…

Antworten (2)

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 -compileverwenden 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 -implementdavon als etwa 20 % schneller als -compileangegeben 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.