Quartus® II Tcl Beispiel: Globale Zuweisungen ohne Standard

author-image

Von

Es kann nützlich sein, globale Zuweisungen in Ihrem Design zu überprüfen, um zu sehen, ob sich Ihre Zuweisungen von der Standardeinstellung unterscheiden. Wenn beispielsweise die Leistung Ihres Designs nicht den Erwartungen entspricht, können Sie sehen, ob Sie eine Einstellung versehentlich von ihrem Standardwert geändert haben.

Dieses Beispiel erstellt ein benutzerdefiniertes Berichtfenster, das die nicht standardmäßigen globalen Zuweisungseinstellungen Ihres Projekts auflistet. Die Befehle zum Erstellen benutzerdefinierter Berichtfenster sind ab Version 4.1 der Quartus II Software verfügbar (Version 2.0 des ::quartus::report-Pakets). Dieses Beispiel verwendet das cmdline Tcl-Paket, um Befehlszeilen-Argumentation zu verarbeiten.

load_package
Berichtpaket 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)

load_report panel_name
"Non-Default Global Settings"
festgelegt panel_id [get_report_panel_id $panel_name]

# sie müssen das Bedienfeld löschen, falls vorhanden, bevor Sie es erstellen.
wenn { -1 != $panel_id } {
    delete_report_panel -id $panel_id
} panel_id

[create_report_panel -table $panel_name]

# Spaltenüberschriften für den neuen Berichtbereich add_row_to_table
-id $panel_id \
    { "Assignment" "Default Value" "Design Value" }

foreach_in_collection asgn [get_all_quartus_defaults] {
    
    foreach { section_id name default_value } $asgn { break }
    gesetzt current_value [get_global_assignment -name $name]

    # Wenn die Werte anders sind, fügen Sie der Tabelle eine Zeile hinzu.
    wenn { ! [string equal -nocase $current_value $default_value] } {
        add_row_to_table -id $panel_id \
            [list $name $default_value $current_value] } save_report_database
project_close

In einer System-Eingabeaufforderung können Sie ein Skript ausführen, das den Hier gezeigten Code enthält:

quartus_sh -t script.tcl -project my nun myrevision

Verbesserung des Beispielcodes

Eine Möglichkeit, den Code zu verbessern, besteht darin, dass er automatisch am Ende jeder Kompilierung ausgeführt wird. Fügen Sie dazu Ihrem Projekt eine neue Zuweisung hinzu und ändern Sie die Art und Weise, wie die Befehlszeile verarbeitet wird.

Der Name der Zuweisung ist POST_FLOW_SCRIPT_FILE. Weitere Informationen zu dieser Zuweisung finden Sie in den Beispielen für die automatische Skriptausführung. Unter der Annahme, dass das Skript script.tcl heißt, fügen Sie der Quartus II Settings File (.qsf) die folgende Zuweisung hinzu:

set_global_assignment -name POST_FLOW_SCRIPT_FILE quartus_sh:script.tcl

Aufgrund der Art und Weise, wie das Skript mit der POST_FLOW_SCRIPT_FILE zuweisung ausgeführt wird, müssen Sie die Befehle oben im Skript ändern, die das Projekt öffnen. Das Skript wird mit drei vordefinierten Positionalnamen ausgeführt: den Namen des Flusses, des Projekts und der Revision. Die Verwendung des cmdline Pakets ist in diesem Fall unnötig.

Ändern Sie die Oberseite des Skripts wie folgt:

load_package Bericht

foreach { flow_name Project Revision } $quartus(args) { break }

project_open $project -revision $revision

Das Skript wird automatisch am Ende jeder Kompilierung ausgeführt, unabhängig davon, ob Sie die Kompilierung in der Quartus II GUI, in einer System-Eingabeaufforderung oder in einem Skript starten.

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.