Artikel-ID: 000091832 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 23.08.2023

Warum synthetisiert die Software eine sehr große Anzahl von Logikpegeln für eine for-Schleife in meinem Design, wenn eine if-Anweisung in der Schleife verschachtelt ist?

Umgebung

  • Intel® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Beschreibung

    Wenn Ihr Design eine for-Schleife wie diese enthält:

    ganze Zahl i;

    for( i = ... ; ... ; ... ) beginnen

    a = Ausdruck von i ;

    wenn( ...... Bedingte Anweisung zu einem ) Begin

    Anweisung;

    ......

    Ende

    Ende

    Die Intel® Quartus® Prime Pro Edition Software kann eine sehr große Anzahl von Logikpegeln in dieser for-Schleife synthetisieren.

    Lösung

    Wenn eine for-Schleife diese Bedingungen enthält, kann sie nicht für die Logiktiefe optimiert werden:

    • Ein Zuweisungsausdruck, der von der Schleifensteuervariablen abhängt
    • Eine in der Schleife verschachtelte if-Anweisung, die das Zuweisungsergebnis als Auswahlbedingung verwendet

    Die Zuweisungsanweisung, die von der Schleifensteuervariablen abhängt, sollte aus dem for-Schleifenblock verschoben werden, um eine weitere Optimierung zu ermöglichen. Außerhalb der Schleife kann die Zuweisungsanweisung in parallele Zuweisungen zu jedem Bit eines Vektors umgewandelt werden. Dann kann das Zuordnungsergebnis jedes Zyklus durch die Schleifensteuervariable in diesem neu erstellten Vektor indiziert werden.

    Der Code kann wie folgt geändert werden:

    Vektor[ N ] = ... ;

    ......

    Vektor[ 2 ] = ... ;

    Vektor[ 1 ] = ... ;

    ganze Zahl i ;

    for( i = ... ; ... ; ... ) beginnen

    wenn( ...... Bedingte Aussage über Vektor[i] ) beginnen

    Anweisung;

    ......

    Ende

    Ende

    Die Optimierung eignet sich für Fälle, in denen die Anzahl der Zyklen festgelegt und nicht sehr groß ist. Die Optimierung kann die Verwendung von ALUTs erhöhen und gleichzeitig die Anzahl der Logikebenen verringern.

    Eine zukünftige Version der Intel® Quartus® Prime Pro Edition Software ist geplant, um den ursprünglichen Code automatisch zu optimieren.

    Zugehörige Produkte

    Dieser Artikel bezieht sich auf 1 Produkte

    Intel® programmierbare Geräte

    Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.