Exemple de Quartus® II Tcl : Ouvrir des projets

author-image

Par

Presque chaque script Tcl Quartus II ouvre un projet. Il existe un certain nombre d’approches pour l’ouverture des projets, et cette page comprend des exemples de code pour l’ouverture des projets.

Il est utile d’écrire des scripts afin que les noms de projet et de révision soient transmis au script au moment de l’exécution, comme arguments de ligne de commande. Cela permet de réutiliser facilement des scripts avec des projets différents. Le package cmdline Tcl, inclus avec le logiciel Quartus II, permet de passer facilement des arguments de ligne de commande aux scripts.

Voici un exemple de code qui ouvre un projet avec le projet et les noms de révision que vous spécifiez comme arguments de ligne de commande.

package nécessite des options de jeu de cmdline
{\
    { « project.arg » « » « Nom de projet » } \ { « revision.arg » » « » « Nom de révision » } } ensemble de
batteries opts [::cmdline:::getoptions quartus(args) $options]

project_open $opts(project) -révision $opts(révision)

Dans une invite DOS ou shell, vous pouvez exécuter un script qui contient ce code comme illustré ici :

quartus_sh -t script.tcl -project top-revision en premier

Améliorer l’exemple de code

Il existe différentes façons de modifier le code pour ajouter des contrôles et des améliorations.

Simple vérification d’erreur

La commande project_open génère une erreur si le projet spécifié n’existe pas. Utilisez la commande project_exists pour vérifier qu’elle existe avant de l’ouvrir, comme le montre cet exemple :

package nécessite des options de jeu de cmdline
{\
    { « project.arg » « » « Nom de projet » } \ { «
    revision.arg » » « » « Nom de révision »
} } ensemble de
batteries optes [::cmdline::getoptions quartus(args) $options]

si { ![ project_exists $opts(projet)] } {
    erreur de type post_message « Project $opts(project) n’existe pas »
    }

project_open $opts(project) -révision $opts(révision)

Traiter les noms de révision non spécifiés

Vous pouvez également modifier l’exemple de code pour traiter les cas où le nom de révision n’est pas spécifié comme argument de ligne de commande. Avec certains des exemples de code ci-dessous, vous devez spécifier un nom de révision uniquement s’il y a plusieurs révisions dans votre projet. Avec d’autres, le code peut ouvrir automatiquement certaines révisions par défaut même s’il y a plusieurs révisions dans votre projet.

La commande Quartus II Tcl project_open par défaut à ouvrir une révision avec le même nom que le projet spécifié si aucun nom de révision n’est spécifié avec l’option -revision. Cet exemple illustre la fonctionnalité par défaut de la commande project_open.

package nécessitant des options de jeu de cmdline
{\
    { « project.arg » « » « Nom de projet » } \ { «
    revision.arg » « » « nom de révision »
} } ensemble de
batteries opts [::cmdline::getoptions quartus(args $options]

si { [chaîne égale « » $opts(révision)] } {
    project_open $opts(project) -révision $opts(project)
}
    {project_open $opts(project) -révision $opts(révision)
}

Vous pouvez utiliser les exemples de code suivants pour modifier ce comportement de différentes manières qui économisent du temps lorsque vous exécutez des scripts. Ces exemples déterminent quand aucun nom de révision n’est spécifié comme argument de ligne de commande et utilisent d’autres moyens pour déterminer un nom de révision à utiliser avec l’option de révision de la commande project_open.

Nom par défaut d’une révision

Vous pouvez utiliser le code suivant pour ouvrir un projet avec une seule révision lorsqu’un nom de révision n’est pas spécifié comme argument de ligne de commande. Les projets ayant une révision unique possèdent généralement la même révision et le nom des projets, mais cela n’est pas nécessaire. L’utilisation de la commande project_open sans option de révision génère une erreur lorsque le nom de révision du projet ne correspond pas au nom du projet.

Cet exemple utilise la commande get_project_revisions pour récupérer une liste de toutes les révisions du projet spécifié. S’il n’y a qu’une seule révision (la longueur de la liste est de 1), le script utilise ce nom de révision pour ouvrir le projet. L’utilisation de la liste des noms de révision garantit que le projet s’ouvre correctement, même si le nom de révision est différent du nom du projet.

package nécessitant des options de jeu de cmdline
{\
    { « project.arg » « » « Nom de projet » } \ { «
    revision.arg » « » « nom de révision »
} } ensemble de
batteries optes [::cmdline:::getoptions quartus(args) $options]

si {[chaîne égale « » $opts() révision)] }
    {set revisions [get_project_revisions $opts(project)]
    if { 1 == [llength $revisions] }
        {set opts(revision) [firmwareex $revisions 0]
    }
        {post_message-type d’erreur \
            « Plusieurs révisions dans le projet \
            $opts(projet) ».
        exit
}

project_open $opts(projet) -révision $opts(révision)

Par défaut à la révision actuelle

Vous pouvez utiliser le code suivant pour ouvrir un projet et par défaut à la révision actuelle, si vous ne spécifiez pas le nom de révision comme argument de ligne de commande. La révision actuelle correspond à la révision avec laquelle vous avez travaillé la dernière fois avant de clore le projet. Dans un projet ayant une révision, cette révision est toujours la révision actuelle. Cet exemple utilise la commande get_current_revision pour récupérer le nom de révision actuel du projet spécifié.

options de jeu de packages nécessitent des
options {\ { « project.arg » » « Nom de projet
    » } \ { « revision.arg » « » « Nom de révision » } } ensemble de
batteries opts [::cmdline::getoptions quartus() $options]

si {[chaîne égale « » $opts(révision)] } {
    set opts(revision) [get_current_revision $opts(project)]
}

project_open $opts(project) -révision $opts(révision)

Imprimer les noms de révision

Dans certains cas, vous pouvez nécessiter un nom de révision s’il y a plusieurs révisions dans un projet, et si aucune n’est fournie, voir la liste des noms de révision. Vous pouvez utiliser le code suivant pour imprimer toutes les révisions lorsqu’un nom de révision n’est pas spécifié comme argument de ligne de commande, et qu’il y a plusieurs révisions dans le projet. Cet exemple utilise la commande get_project_revisions pour récupérer la liste de toutes les révisions du projet.

package nécessite des options de jeu de cmdline
{\
    { « project.arg » « » « Nom de projet » } \ { « revision.arg » » « » « Nom de révision » } } ensemble de
batteries optes [::cmdline::getoptions quartus(args) $options]

si {[chaîne égale « » $opts(révision)] } { post_message « Vous
    n’avez pas spécifié de nom
    de révision. définir les révisions [get_project_revisions $opts(project)]
    si {1 == [llength $revisions] }
        {set opts(revision) [firmwareex $revisions 0]
        post_message « Il y a une révision $opts (() }
        {post_message « Ces révisions existent dans le projet : »
        révision foreach $revisions { post_message « $revision » } exit } }

project_open $opts(project) -révision $opts(révision)

Exemples combinés

Ces exemples illustrent comment combiner certaines des améliorations décrites ci-dessus.

Exemple 1

L’exemple simple suivant vérifie l’existence du projet spécifié. S’il n’y a pas de nom de révision spécifié comme argument de ligne de commande, il ouvre la révision actuelle. Sinon, il ouvre le projet avec le nom de révision spécifié comme argument de ligne de commande.

package nécessitant des options de jeu de cmdline
{\
    { « project.arg » « » « Nom de projet » } \ { «
    revision.arg » « » « nom de révision » }
} ensemble de
batteries opte [::cmdline::getoptions quartus(args) $options]

si {[project_exists $opts (projet)}} {
    {[chaîne égale « » $opts(révision)} {
        project_open $opts(project) -révision
            \ [get_current_revision $opts(project)] }
        {project_open $opts(project) -révision $opts(révision)
    } }
    {post_message -type erreur « Project $opts(project) n’existe pas »
    }.

À partir de la version 4.1 du logiciel Quartus II (version 3.0 du package ::quartus::p roject), la commande project_open prend en charge l’optioncurrent_revision. Si vous utilisez la version 4.1 ou une version ultérieure du logiciel Quartus II, vous pouvez remplacer la commande suivante dans le script ci-dessus

project_open $opts (projet) -révision \
            [get_current_revision $opts(projet)]

avec cette commande

project_open $opts(projet) -current_revision

Exemple 2

L’exemple suivant combine un certain nombre d’améliorations illustrées ci-dessus. Il vérifie l’existence du projet spécifié et l’ouvre s’il n’y a qu’une seule révision. S’il y a plusieurs révisions, cela ajoute une liste des révisions et des sorties.

package nécessitant des options de jeu de cmdline
{\
    { « project.arg » « » « Nom du projet » } \ { «
    revision.arg » » « » « Nom de révision »
} } ensemble de
batteries optes [::cmdline::getoptions quartus(args) $options]

si {![ ![ project_exists $opts(projet)] } {
    erreur de type post_message « Project $opts(project) n’existe pas » exit } si

{[chaîne égale « » $opts(révision)] } {
    post_message « Vous n’avez pas spécifié de nom
    de révision. définir les révisions [get_project_revisions $opts(project)]
    si {1 == [llength $revisions] }
        {set opts(revision) [firmwareex $revisions 0]
        post_message « Il y a une révision $opts (() }
        {post_message « Ces révisions existent dans le projet : »
        révision foreach $revisions { post_message « $revision » } exit } }

project_open $opts(project) -révision $opts(révision)

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.