Przykład Quartus® II Tcl: projekty otwierające

author-image

Według

Prawie każdy skrypt Quartus II Tcl otwiera projekt. Istnieje wiele podejść do otwierania projektów. Ta strona zawiera przykłady kodu do otwierania projektów.

Przydatne jest zapisywanie skryptów w taki sposób, aby nazwy projektów i wersji były przekazywane do skryptu w czasie wykonywania, jako plemię wiersza poleceń. Ułatwia to ponowne wykorzystanie skryptów w różnych projektach. Pakiet cmdline Tcl, dołączony do oprogramowania Quartus® II, ułatwia przekazywanie poleceń z linią poleceń do skryptów.

Oto przykład kodu, który otwiera projekt przy pomocy nazw projektu i wersji, które określasz mianem "zrzeszania się wiersza poleceń".

pakiet wymaga opcji zestawu cmdline
{\
    { "project.arg" "" "" "nazwa projektu" }
    \ { "revision.arg" "" "Nazwa wersji"
} } zestaw
tablicy opts [::cmdline::getoptions quartus(args) $options]

project_open $opts(projekt) -wersja $opts(wersja)

W wierszu polecenia DOS lub powłoki można uruchomić skrypt, który zawiera ten kod, jak pokazano tutaj:

quartus_sh -t script.tcl -najpierw wersja najwyższej wersji projektu

Udoskonalenie przykładowego kodu

Istnieje wiele sposobów na modyfikację przykładowego kodu w celu dodania kontroli i ulepszeń.

Proste sprawdzanie błędów

Polecenie project_open generuje błąd, jeśli określony projekt nie istnieje. Użyj polecenia project_exists, aby sprawdzić, czy istnieje przed otwarciem, jak pokazano w tym przykładzie:

pakiet wymaga opcji zestawu cmdline
{\
    { "project.arg" "" "" "nazwa projektu" }
    \ { "revision.arg" "" "Nazwa wersji"
} zestaw
tablicy opts [::cmdline::getoptions quartus(args) $options],

jeśli { ![ project_exists $opts(projekt)] } {
    post_message — błąd typu "Project $opts(project) nie istnieje" wyjście }

project_open $opts(projekt) - wersja $opts(wersja)

Obsługa nieusuwanych nazw wersji

Możesz również zmodyfikować przykładowy kod, aby obsłużyć przypadki, w których nazwa wersji nie jest podana jako argument wiersza poleceń. Niektóre z poniższych przykładów kodu umożliwiają określenie nazwy wersji tylko wtedy, gdy w Twoim projekcie znajduje się więcej niż jedna wersja. W przypadku innych osób kod może automatycznie otworzyć niektóre domyślne wersje, nawet jeśli w Twoim projekcie jest więcej niż jedna wersja.

Polecenie Quartus II Tcl project_open domyślnie otwiera wersję o tej samej nazwie co określony projekt, jeśli nie określono nazwy wersji za pomocą opcji -revision. W tym przykładzie zilustrowano domyślną funkcjonalność polecenia project_open.

pakiet wymaga opcji zestawu cmdline
{\
    { "project.arg" "" "" "Nazwa projektu" }
    \ { "revision.arg" "" "Nazwa wersji" } } zestaw
tablicy opts [::cmdline::getoptions quartus(a

$options], jeśli { [string equal "" $opts(revision)] } {
    project_open $opts(project) -revision $opts(project)
} else {
    project_open $opts(project) -revision $opts(wersja)
}

Poniższe przykłady kodu umożliwiają modyfikację tego zachowania na różne sposoby, co pozwala zaoszczędzić czas podczas uruchamiania skryptów. Przykłady te określają, kiedy nazwa wersji nie jest podana jako argument wiersza poleceń i wykorzystują inne sposoby określenia nazwy wersji do wykorzystania z opcją -revision dla polecenia project_open.

Domyślnie nazwa wersji

Poniższego kodu można użyć, aby otworzyć projekt jedynie z jedną wersją, gdy nazwa wersji nie jest podana jako argument wiersza poleceń. Projekty z jedną poprawką zwykle mają tę samą wersję i nazwy projektów, ale nie jest to wymagane. Użycie polecenia project_open bez opcji -revision generuje błąd, gdy nazwa wersji projektu nie odpowiada nazwie projektu.

W tym przykładzie użyto polecenia get_project_revisions, aby pobrać listę wszystkich wersji w określonym projekcie. Jeśli istnieje tylko jedna wersja (długość listy to 1), skrypt użyje tej nazwy wersji do otwarcia projektu. Wykorzystanie listy nazw wersji gwarantuje, że projekt otworzy się prawidłowo, nawet jeśli nazwa wersji różni się od nazwy projektu.

pakiet wymaga opcji zestawu cmdline
{\
    { "project.arg" "" "" "nazwa projektu" }
    \ { "revision.arg" "" "Nazwa wersji"
} } zestaw
tablicy opts [::cmdline::getoptions quartus(args)

$options], jeśli { [ciąg równa "" $opts (wersja)] } {
    zestawy wersji [get_project_revisions $opts(project)]
    jeśli { 1 == [llength $revisions] } {
        set opts(revision) [lindex $revisions 0]
    } else { post_message
        -type error \
            "Więcej niż jedna wersja projektu \
            $opts(projekt)."
        wyjście
    }
}

project_open $opts(projekt) — wersja $opts(wersja)

Domyślnie do bieżącej wersji

Jeśli nie podasz nazwy wersji jako argumentu wiersza poleceń, możesz użyć następującego kodu, by otworzyć projekt, a domyślnie na bieżącą wersję. Obecna wersja to wersja, z którą pracowałeś(-aś) ostatnia przed zamknięciem projektu. W projekcie z jedną poprawką ta wersja jest zawsze aktualną wersją. W tym przykładzie użyto polecenia get_current_revision, aby pobrać bieżącą nazwę wersji dla określonego projektu.

pakiet wymaga opcji zestawu cmdline
{\
    { "project.arg" "" "" "Nazwa projektu" }
    \ { "revision.arg" "" "Nazwa wersji"
} } zestaw
tablicy opts [::cmdline::getoptions quartus(args)

$options], jeśli { [string equal "" $opts(wersja)] } {
    set opts(revision) [get_current_revision $opts(project)]
}

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

Nazwy wersji drukowanych

W niektórych przypadkach możesz wymagać nazwy wersji, jeśli w projekcie znajduje się więcej niż jedna wersja, a jeśli żadna nie jest podana, zobacz listę nazw wersji. Poniższy kod umożliwia drukowanie wszystkich wersji, gdy nazwa wersji nie jest podana jako argument wiersza poleceń, a w projekcie znajduje się więcej niż jedna wersja. W tym przykładzie użyto polecenia get_project_revisions, aby pobrać listę wszystkich wersji projektu.

pakiet wymaga opcji zestawu cmdline
{\
    { "project.arg" "" "" "nazwa projektu" }
    \ { "revision.arg" "" "Nazwa wersji"
} zestaw
tablicy opts [::cmdline::getoptions quartus(args)

$options], jeśli { [string equal "$opts(wersja)] } {
    post_message "Nie podano nazwy wersji.
    zestaw wersji [get_project_revisions $opts(projekt)],
    jeśli { 1 == [llength $revisions] } {
        set opts(wersja) [lindex $revisions 0]
        post_message "Istnieje jedna wersja $opts(wersja)"
    } inaczej { post_message
        "Te wersje istnieją w
        projekcie:" wersja foreach $revisions {
            post_message "$revision"
        } wyjście }

project_open $opts(projekt) - wersja $opts(wersja)

Przykłady łączone

Przykłady te pokazują, jak połączyć niektóre z opisanych powyżej udoskonaleń.

Przykład 1

Poniższy prosty przykład sprawdza, czy dany projekt istnieje. Jeśli nie ma nazwy wersji określonej jako argument wiersza poleceń, otworzy ona bieżącą wersję. W przeciwnym razie otworzy projekt o nazwie wersji określonej jako argument wiersza poleceń.

pakiet wymaga opcji zestawu cmdline
{\
    { "project.arg" "" "" "Nazwa projektu" }
    \ { "revision.arg" "" "Nazwa wersji"
} zestaw
tablicy opts [::cmdline::getoptions quartus(args)

$options], jeśli {[project_exists $opts project_open $opts(project)]} {
    jeśli {[string equal "" $opts(wersja)]} {
        project_open $opts(project) -revision \
            [get_current_revision $opts(project)]
    } jeszcze {
        project_open $opts(project) -revision $opts(wersja)
    } jeszcze { post_message
    -typ błąd "Project $opts(project) nie istnieje"
    wyjście
}

Począwszy od wersji 4.1 oprogramowania Quartus® II (wersja 3.0 pakietu::quartus::p roject), polecenie project_open obsługuje opcję -current_revision. Jeśli używasz wersji 4.1 lub nowszej oprogramowania Quartus® II, możesz zastąpić następujące polecenie w powyższym skrypcie.

project_open $opts(projekt) — wersja \
            [get_current_revision $opts(projekt)]

za pomocą tego polecenia

project_open $opts(projekt) — current_revision

Przykład 2

Poniższy przykład zawiera szereg udoskonaleń przedstawionych powyżej. Sprawdza on, czy określony projekt istnieje i otwiera go, jeśli istnieje tylko jedna wersja. Jeśli jest więcej niż jedna wersja, wydrukuje listę wersji i wyjść.

pakiet wymaga opcji zestawu cmdline
{\
    { "project.arg" "" "" "Nazwa projektu" }
    \ { "revision.arg" "" "Nazwa wersji"
} } zestaw
tablicy opts [::cmdline::getoptions quartus(args) $options],

jeśli { ![ project_exists $opts(projekt)] } {
    post_message —błąd typu "Project $opts(project) nie istnieje"
    exit } jeśli {

[string equal "$opts(wersja)] } {
    post_message "Nie podano nazwy wersji.
    zestaw wersji [get_project_revisions $opts(projekt)],
    jeśli { 1 == [llength $revisions] } {
        set opts(wersja) [lindex $revisions 0]
        post_message "Istnieje jedna wersja $opts(wersja)"
    } inaczej { post_message
        "Te wersje istnieją w
        projekcie:" wersja foreach $revisions {
            post_message "$revision"
        } wyjście }

project_open $opts(projekt) - wersja $opts(wersja)

Materiały zawarte na tej stronie są tłumaczeniem z języka angielskiego, wykonanym częściowo przez człowieka, a częściowo automatycznie. Materiały te są udostępnione dla Twojej wygody i należy je traktować jedynie jako ogólne źródło informacji. Nie ma jednak gwarancji, że są one kompletne bądź poprawne. Jeśli istnieje jakakolwiek rozbieżność między wersją angielską tej strony a jej tłumaczeniem, wersja angielska jest wersją obowiązującą i ma rozstrzygające znaczenie. Wyświetl anglojęzyczną wersję tej strony.