Quartus® II Tcl Beispiel: Öffnen von Projekten

author-image

Von

Fast jedes Quartus II Tcl-Skript öffnet ein Projekt. Es gibt eine Reihe von Ansätzen für das Öffnen von Projekten, und diese Seite enthält Codebeispiele für das Öffnen von Projekten.

Es ist nützlich, Skripts so zu schreiben, dass Projekt- und Revisionsnamen zur Laufzeit an das Skript weitergegeben werden, als Befehlszeilen-Argumentation. Dies macht es einfach, Skripts mit verschiedenen Projekten wiederzuverwenden. Das cmdline Tcl-Paket, das in der Quartus II Software enthalten ist, macht es einfach, Befehlszeilen-Argumentationen an Skripts zu übergeben.

Hier ist ein Beispiel für Code, der ein Projekt mit den von Ihnen als Befehlszeilen-Argument angegebenen Projekt- und Revisionsnamen öffnet.

Paket erfordert cmdline
Set-Optionen {\
    { "project.arg" "" "Project name" } \
    { "revision.arg" "" "Revision name" }
} array set
opts [::cmdline::getoptions quartus(args) $options]

project_open $opts(project) -revision $opts(revision)

Bei einer DOS- oder Shell-Eingabeaufforderung können Sie ein Skript ausführen, das den Code wie hier gezeigt enthält:

quartus_sh -t script.tcl -project top -revision zuerst

Verbesserung des Beispielcodes

Es gibt eine Vielzahl von Möglichkeiten, wie der Beispielcode geändert werden kann, um Überprüfungen und Verbesserungen hinzuzufügen.

Einfache Fehlerüberprüfung

Der project_open Befehl generiert einen Fehler, wenn das angegebene Projekt nicht vorhanden ist. Verwenden Sie den Befehl project_exists, um zu überprüfen, ob er vor dem Öffnen vorhanden ist, wie in diesem Beispiel gezeigt:

Paket erfordert cmdline
Set-Optionen {\
    { "project.arg" "" "Project name" } \
    { "revision.arg" "" "Revision name" }
} array set
opts [::cmdline::getoptions quartus(args) $options]

if { ![ project_exists $opts(project)] } {
    post_message -type error "Project $opts(project) does not exist"
    exit }

project_open $opts(project) -revision $opts(revision)

Handhabung nicht näher spezifizierter Revisionsnamen

Sie können auch den Beispielcode ändern, um Fälle zu verarbeiten, wenn ein Revisionsname nicht als Befehlszeilenargument angegeben wird. Mit einigen der unten stehenden Codebeispiele müssen Sie einen Revisionsnamen nur angeben, wenn in Ihrem Projekt mehr als eine Revision vorhanden ist. Bei anderen kann der Code bestimmte Standardrevisionen automatisch öffnen, selbst wenn in Ihrem Projekt mehr als eine Revision vorhanden ist.

Der Befehl Quartus II Tcl project_open standardwerte, um eine Revision mit dem gleichen Namen wie das angegebene Projekt zu öffnen, wenn mit der Option -revision kein Revisionsname angegeben wird. Dieses Beispiel veranschaulicht die Standardfunktionalität des Befehls project_open.

Paket erfordert cmdline
Set-Optionen {\
    { "project.arg" "" "Project name" } \
    { "revision.arg" "" "Revision name" }
} array set
opts [::cmdline::getoptions quartus(args) $options]

wenn { [string equal "" $opts(revision)] } {
    project_open $opts(project) -revision $opts(project)
} else {
    project_open $opts(project) -revision $opts(revision)
}

Sie können die folgenden Codebeispiele verwenden, um dieses Verhalten auf verschiedene Weisen zu ändern, die Zeit sparen, wenn Sie Skripts ausführen. Diese Beispiele bestimmen, wann kein Revisionsname als Befehlszeilenargument angegeben wird, und verwenden andere Möglichkeiten, um einen Revisionsnamen mit der Option -revision für den project_open Befehl zu bestimmen.

Standard für einen Revisionsnamen

Sie können den folgenden Code verwenden, um ein Projekt mit nur einer Revision zu öffnen, wenn ein Revisionsname nicht als Befehlszeilenargument angegeben wird. Projekte mit einer einzigen Version haben in der Regel dieselben Revisions- und Projektnamen, was jedoch nicht erforderlich ist. Wenn Sie den Befehl project_open ohne eine Option -revision verwenden, wird ein Fehler generiert, wenn der Revisionsname des Projekts nicht mit dem Projektnamen übereinstimmt.

In diesem Beispiel wird der Befehl get_project_revisions verwendet, um eine Liste aller Revisionen im angegebenen Projekt abzurufen. Wenn es nur eine Revision gibt (die Listenlänge beträgt 1), verwendet das Skript den Namen der Revision, um das Projekt zu öffnen. Die Verwendung der Liste der Versionsnamen garantiert, dass das Projekt ordnungsgemäß geöffnet wird, selbst wenn sich der Revisionsname von dem Projektnamen unterscheidet.

Paket erfordert cmdline
Set-Optionen {\
    { "project.arg" "" "Project name" } \
    { "revision.arg" "" "Revision name" }
} array set
opts [::cmdline::getoptions quartus(args) $options]

if { [string equal "" $opts(revision)] } {
    set revisions [get_project_revisions $opts(project)]
    if { 1 == [llength $revisions] } {
        set opts(revision) [$revisions 0]
    } else { post_message
        -type error \
            "More than one revision in project \
            $opts(project)."
        Exit
    }
}

project_open $opts (Projekt) – Revision $opts(Revision)

Standard für die aktuelle Version

Sie können den folgenden Code verwenden, um ein Projekt und die Standardeinstellung für die aktuelle Version zu öffnen, wenn Sie einen Revisionsnamen nicht als Befehlszeilenargument angeben. Die aktuelle Version ist die Revision, mit der Sie zuletzt gearbeitet haben, bevor Sie das Projekt schließen. In einem Projekt mit einer Revision ist diese Revision immer die aktuelle Version. In diesem Beispiel wird der Befehl get_current_revision verwendet, um den aktuellen Revisionsnamen für das angegebene Projekt abzurufen.

Paket erfordert cmdline
Set-Optionen {\
    { "project.arg" "" "Project name" } \
    { "revision.arg" "" "Revision name" }
} array set
opts [::cmdline::getoptions quartus(arg $options]

wenn { [string equal "" $opts(revision)] } {
    set opts(revision) [get_current_revision $opts(project)]
}

project_open $opts(project) -revision $opts(revision)

Namen der Version ausdrucken

In einigen Fällen möchten Sie möglicherweise einen Revisionsnamen benötigen, wenn in einem Projekt mehr als eine Revision vorhanden ist und wenn keines bereitgestellt wird, siehe eine Liste der Revisionsnamen. Sie können zum Ausdrucken aller Revisionen den folgenden Code verwenden, wenn ein Revisionsname nicht als Befehlszeilenargument angegeben ist und im Projekt mehr als eine Revision vorhanden ist. Dieses Beispiel verwendet den Befehl get_project_revisions, um eine Liste aller Revisionen im Projekt abzurufen.

Paket erfordert cmdline
Set-Optionen {\
    { "project.arg" "" "Project name" } \
    { "revision.arg" "" "Revision name" }
} array set
opts [::cmdline::getoptions quartus(args) $options]

if { [string equal "" $opts(revision)] } {
    post_message "Sie haben keinen Revisionsnamen angegeben.
    revisions [get_project_revisions $opts(project)]
    setzen, wenn { 1 == [llength $revisions] } {
        set opts(revision) [$revisions 0]
        post_message "Es gibt eine Revision $opts(). revision)"
    } else { post_message
        "Diese Revisionen sind im Projekt vorhanden:"
        foreach revision $revisions {
            post_message "$revision"
        } exit }

project_open $opts(project) -revision $opts(revision)

Kombinierte Beispiele

Diese Beispiele veranschaulichen, wie Sie einige der oben beschriebenen Verbesserungen kombinieren.

Beispiel 1

Das folgende einfache Beispiel verifiziert, dass das angegebene Projekt vorhanden ist. Wenn kein Revisionsname als Befehlszeilenargument angegeben ist, wird die aktuelle Version geöffnet. Andernfalls wird das Projekt mit dem Revisionsnamen geöffnet, der als Befehlszeilenargument angegeben ist.

Paket erfordert cmdline
Set-Optionen {\
    { "project.arg" "" "Project name" } \
    { "revision.arg" "" "Revision name" }
} array set
opts [::cmdline::getoptions quartus(args) $options]

if {[project_exists $opts (project)]} {
    if {[string equal "" $opts(revision)]} {
        project_open $opts(project) -revision \
            [get_current_revision $opts(project)]
    } else {
        project_open $opts(project) -revision $opts(revision)
    } } else { post_message
    -type Fehler "Project $opts(project) does not exist"
    exit
}

Ab Version 4.1 der Quartus II Software (Version 3.0 des Pakets ::quartus::p roject) unterstützt der project_open Befehl die Option- current_revision. Wenn Sie Version 4.1 oder neuer der Quartus II Software verwenden, können Sie den folgenden Befehl im oben genannten Skript ersetzen

project_open $opts(Projekt) -revision \
            [get_current_revision $opts(Projekt)]

mit diesem Befehl

project_open $opts (Projekt) – current_revision

Beispiel 2

Das nachstehende Beispiel kombiniert eine Reihe der oben dargestellten Verbesserungen. Sie überprüft, ob das angegebene Projekt vorhanden ist, und öffnet es, wenn nur eine Version vorhanden ist. Wenn es mehr als eine Revision gibt, wird eine Liste der Revisionen und Exits angezeigt.

Paket erfordert cmdline
Set-Optionen {\
    { "project.arg" "" "Project name" } \
    { "revision.arg" "" "Revision name" }
} array set
opts [::cmdline::getoptions quartus(args) $options]

if { ![ project_exists $opts(project)] } {
    post_message -type error "Project $opts(project) does not exist"
    exit } if {

[string equal "" $opts(revision)] } {
    post_message "Sie haben keinen Revisionsnamen angegeben.
    revisions [get_project_revisions $opts(project)]
    setzen, wenn { 1 == [llength $revisions] } {
        set opts(revision) [$revisions 0]
        post_message "Es gibt eine Revision $opts(Revision))
    } else { post_message
        "Diese Revisionen sind im Projekt vorhanden:"
        foreach revision $revisions {
            post_message "$revision"
        } exit }

project_open $opts(project) -revision $opts(revision)

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.