Przykład Quartus® II Tcl: automatyczne wykonywanie skryptu

author-image

Według

Począwszy od wersji 4.0 oprogramowania Quartus® II, możesz skonfigurować skrypty do automatycznego działania w różnych punktach podczas kompilacji. Ta funkcja umożliwia automatyczne uruchamianie skryptów, które wykonują niestandardowe raportowanie, dokonują konkretnych przypisanych zadań i wykonują wiele innych zadań.

Istnieją trzy globalne przypisania, które kontrolują automatyczne wykonywanie skryptów. Są one wymienione tutaj, wraz z tym, kiedy powodują uruchomienie skryptu.

•	PRE_FLOW_SCRIPT_FILE - before a flow starts
•	POST_MODULE_SCRIPT_FILE - after a module finishes
•	POST_FLOW_SCRIPT_FILE - after a flow finishes

Cesje POST_FLOW_SCRIPT_FILE i POST_MODULE_SCRIPT_FILE są obsługiwane od wersji 4.0, a przypisanie PRE_FLOW_SCRIPT_FILE jest obsługiwane począwszy od wersji 4.1.

Moduł to plik wykonywalny Quartus® II, który wykonuje jeden krok w przepływie. Na przykład dwa moduły to analiza i synteza (quartus_map) oraz analiza timingów (quartus_tan).

Przepływ to seria modułów, które oprogramowanie Quartus® II wykonuje przy pomocy wstępnie zdefiniowanych opcji. Na przykład kompilowanie projektu to przepływ, który zazwyczaj składa się z następujących kroków (wykonywanych przez wskazany moduł):

  1. Analiza i synteza (quartus_map)
  2. Instalator (quartus_fit)
  3. Montaż (quartus_asm)
  4. Analizator timingów (quartus_tan)

Inne przepływy są opisane w pomocy dla polecenia execute_flow Tcl. Ponadto większość poleceń w menu Start (przetwarzanie) w Quartus® II GUI odpowiada przepływom.

Przydzielanie zadań

Aby przypisać do automatycznego uruchamiania skryptu, dokonaj przypisania przy pomocy następującego formularza:

set_global_assignment -name <assignment name> <executable>:<script name>

Nazwa cesji jest jedną z następujących:

•	PRE_FLOW_SCRIPT_FILE
•	POST_MODULE_SCRIPT_FILE
•	POST_FLOW_SCRIPT_FILE

Plik wykonywalny to nazwa pliku wykonywalnego wiersza poleceń Quartus® II zawierającego tłumacza Tcl.

•	quartus_cdb
•	quartus_sh
•	quartus_sim
•	quartus_stp
•	quartus_tan

Nazwa skryptu to nazwa Twojego skryptu Tcl.

Wykonanie skryptu

Oprogramowanie Quartus® II wykonuje skrypty, jak pokazano tutaj:

<executable> -t <script name> <flow or module name> <project name> <revision name>

Pierwszym argumentem przekazanym w zmiennej quartus(args) jest nazwa wykonywanego przepływu lub modułu, w zależności od przypisania, którego używasz. Drugi argument to nazwa projektu, a trzeci argument to nazwa wersji.

Podczas korzystania z przypisania POST_MODULE_SCRIPT_FILE określony skrypt jest automatycznie uruchamiany po każdym pliku wykonywalnym w przepływie. Można zastosować porównanie ciągów z nazwą modułu (pierwszy argument przekazany do skryptu) w celu wyodrębnienia przetwarzania skryptów do niektórych modułów.

Przykład wykonania

W tym przykładzie pokazuje, jak automatyczne wykonywanie skryptu działa w pełnym przepływie, przy założeniu, że masz projekt o nazwie top z bieżącą wersją o nazwie rev_1, a następujące przypisania znajduje się w pliku ustawień II (QSF) w programie Quartus® II Settings File:

set_global_assignment -name PRE_FLOW_SCRIPT_FILE quartus_sh:first.tcl
set_global_assignment -name POST_MODULE_SCRIPT_FILE quartus_sh:next.tcl
set_global_assignment -name POST_FLOW_SCRIPT_FILE quartus_sh:last.tcl

Podczas kompilowania projektu przypisanie PRE_FLOW_SCRIPT_FILE powoduje wykonanie następującego polecenia przed rozpoczęciem kompilacji:

quartus_sh -t first.tcl compile top rev_1

Następnie oprogramowanie Quartus® II rozpoczyna kompilację od analizy i syntezy, wykonywanej przez plik wykonywalny quartus_map. Po zakończeniu analizy i syntezy przypisanie POST_MODULE_SCRIPT_FILE powoduje wykonanie następującego polecenia:

quartus_sh -t next.tcl quartus_map top rev_1

Następnie oprogramowanie Quartus® II kontynuować kompilację z instalatorem, wykonywane przez plik wykonywalny quartus_fit. Po zakończeniu instalatora przypisanie POST_MODULE_SCRIPT_FILE powoduje wykonanie następującego polecenia:

quartus_sh -t next.tcl quartus_fit top rev_1

Odpowiednie polecenia są wykonywane po pozostałych etapach kompilacji. Na koniec, po zakończeniu kompilacji, przypisanie POST_FLOW_SCRIPT_FILE powoduje wykonanie następującego polecenia:

quartus_sh -t last.tcl compile top rev_1

Kontrolowanie przetwarzania

Przypisanie POST_MODULE_SCRIPT_FILE powoduje wykonanie skryptu za każdym modułem. Ponieważ jest to ten sam skrypt wykonany po każdym module, może być konieczne uwzględnienie niektórych instrukcji warunkowych, które ograniczają przetwarzanie w twoim skryptie do niektórych modułów.

Na przykład jeśli posiadasz skrypt, który chcesz uruchomić dopiero po przeprowadzeniu analizy timingów, powinieneś dołączyć test warunkowy, taki jak ten w poniższym przykładzie. Sprawdza nazwę przepływu lub modułu przekazywany jako pierwszy argument do skryptu i wykonuje kod, gdy moduł jest quartus_tan.

set module [lindex $quartus(args) 0]

if [string match "quartus_tan" $module] {

    # Include commands here that are run
    # after timing analysis
    post_message "Running after timing analysis"
}

Wyświetlanie wiadomości

Ze względu na sposób, w jaki oprogramowanie Quartus II automatycznie uruchamia skrypty, musisz użyć polecenia post_message do wyświetlania wiadomości, zamiast polecenia put. Wymóg ten ma zastosowanie tylko do skryptów, które są uruchamiane przez trzy przypisane zadania wymienione w górnej części tej strony.

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.