AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

iverilog - En ligne dans le Cloud

Exécutez iverilog dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande iverilog qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


iverilog - Compilateur Icarus Verilog

SYNOPSIS


iverilog [-ESVv] [-Bpath] [-ccmdfile|-fcmdfile] [-Dmacro[=defn]] [-pflag=value] [-dname]
[-g1995|-g2001|-g2005|-g ] [-Iincludedir] [-mmodule] [-Mfile] [-Nfile]
[-ooutputfilename] [-stopmodule] [-ttype] [-Tmin/typ/max] [-Wclass] [-ypath] fichier source

DESCRIPTION


iverilog est un compilateur qui traduit le code source de Verilog en programmes exécutables pour
simulation, ou d'autres formats de netlist pour un traitement ultérieur. Le support actuellement
les cibles sont vvp pour la simulation, et fpga pour la synthèse. D'autres types de cibles sont ajoutés comme
des générateurs de code sont implémentés.

OPTIONS


iverilog accepte les options suivantes :

-Bbase La iverilog le programme utilise des programmes externes et des fichiers de configuration pour prétraiter
et compiler la source Verilog. Normalement, le chemin utilisé pour localiser ces outils est
intégré dans le iverilog programme. Cependant, le -B commutateur permet à l'utilisateur de sélectionner
un ensemble différent de programmes. Le chemin indiqué est utilisé pour localiser ivlpp, ivl, coder
générateurs et les modules VPI.

-cfilet -ffilet
Ces indicateurs spécifient un fichier d'entrée qui contient une liste de fichiers source Verilog.
Ceci est similaire à commander filet des autres simulateurs Verilog, en ce qu'il s'agit d'un
fichier qui contient les noms de fichiers au lieu de les prendre sur la ligne de commande. Voir
Command Fichiers ci-dessous.

-Dmacro Définit la macro macro avec la chaîne '1' comme définition. Ce formulaire est normalement
uniquement utilisé pour déclencher des conditions ifdef dans la source Verilog.

-Dmacro=définition
Définit la macro macro as défn.

-dprénom Activer une classe de messages de débogage du compilateur. Les -d l'interrupteur peut être utilisé comme
autant de fois que nécessaire pour activer tous les messages souhaités. Les noms pris en charge sont
scopes, eval_tree, élaboré et synth2 ; tous les autres noms sont ignorés.

-E Prétraitez la source Verilog, mais ne la compilez pas. Le fichier de sortie est le
Entrée Verilog, mais avec des inclusions de fichiers et des références de macro étendues et supprimées.
Ceci est utile, par exemple, pour prétraiter la source Verilog pour une utilisation par d'autres
compilateurs.

-g1995|-g2001|-g2001-noconfig|-g2005
Sélectionnez la langue Verilog génération à prendre en charge dans le compilateur. Cela sélectionne
jusqu'à XNUMX fois IEEE1364-1995, IEEE1364-2001ou IEEE1364-2005. Normalement, Icarus Verilog
par défaut à la dernière génération connue de la langue. Ce drapeau est le plus utile
restreindre le langage à un ensemble supporté par des outils de générations spécifiques, par
compatibilité avec d'autres outils.

-gverilog-ams|-gno-verilog-ams
Activer ou désactiver (par défaut) la prise en charge de Verilog-AMS. Très peu de Verilog-AMS
une fonctionnalité spécifique est actuellement prise en charge.

-gspécifier|-gno-spécifier
Activer ou désactiver (par défaut) spécifier la prise en charge des blocs. Lorsqu'il est activé, spécifiez le bloc
le code est élaboré. Lorsqu'il est désactivé, spécifiez que les blocs sont analysés mais ignorés. Spécifier
les blocs ne sont généralement pas nécessaires pour la simulation RTL et peuvent en fait nuire
performances de la simulation. Cependant, la désactivation des blocs de spécification réduit la précision
de simulations à temps plein.

-gstd-include|-gno-std-include
Activer (par défaut) ou désactiver la recherche d'une installation standard include
répertoire après tous les autres répertoires d'inclusion explicites. Cette norme comprend
est un endroit pratique pour installer les fichiers d'en-tête standard qu'un Verilog
programme peut inclure.

-grelative-inclure|-gno-relatif-include
Activer ou désactiver (par défaut) l'ajout du répertoire des fichiers locaux au début de
le chemin de recherche du fichier d'inclusion. Cela permet d'inclure des fichiers par rapport au
le fichier actuel et non les fichiers les plus courants ne se trouvent que dans le répertoire de travail ou
dans le chemin de recherche du fichier d'inclusion spécifié.

-gxtypes|-gno-xtypes
Activez (par défaut) ou désactivez la prise en charge des types étendus. Activation des types étendus
permet de nouveaux types pris en charge par Icarus Verilog en tant qu'extensions au-delà de la
Verilog de base. Il peut être nécessaire de désactiver les types étendus si vous compilez du code
qui entre en conflit avec les quelques nouveaux mots-clés utilisés pour implémenter le système de types.

-erreur-gio-range|-erreur-gno-io-range
Les normes exigent qu'un port vectorisé ait des plages correspondantes pour son port
déclaration ainsi que toute déclaration net/registre. C'était une pratique courante dans le
passé pour spécifier uniquement la plage pour la déclaration net/register et certains outils
permet encore cela. Par défaut, toute incompatibilité est signalée comme une erreur. À l'aide de
-erreur-gno-io-range produira un avertissement au lieu d'une erreur fatale pour le cas
d'un réseau/registre vectorisé et d'une déclaration de port scalaire.

-gstrict-ca-eval|-gno-strict-ca-eval
La norme exige que si une entrée dans une expression d'affectation continue
change de valeur, l'expression entière est réévaluée. Par défaut, des parties du
les expressions qui ne dépendent pas de la ou des valeurs d'entrée modifiées ne sont pas réévaluées.
Si une expression contient un appel à une fonction qui ne dépend pas uniquement de son
valeurs d'entrée ou qui a des effets secondaires, le comportement résultant sera différent de
celle exigée par la norme. À l'aide de -gstrict-ca-eval forcera la norme
comportement conforme (avec une certaine perte de performance).

-Iinclusir
Ajouter un répertoire inclusir à la liste des répertoires recherchés pour Verilog inclure
des dossiers. le -I switch peut être utilisé plusieurs fois pour spécifier plusieurs répertoires à
recherche, les répertoires sont recherchés dans l'ordre dans lequel ils apparaissent sur la ligne de commande.

-Mchemin Écrivez dans le fichier spécifié par chemin une liste de fichiers qui contribuent au
compilation de la conception. Cela inclut les fichiers qui sont inclus par include
les directives et les fichiers qui sont automatiquement chargés par le support de la bibliothèque. Le résultat
est un nom de fichier par ligne, sans espace de début ou de fin.

-mmodule
Ajoutez ce module à la liste des modules VPI à charger par la simulation. De nombreux
les modules peuvent être spécifiés, et tous seront chargés, dans l'ordre spécifié. Les
module système est implicite et toujours inclus. Si un fichier System Function Table
( .sft) existe pour le module, il sera chargé automatiquement.

-Nchemin Ceci est utilisé pour déboguer le compilateur proprement dit. Videz la forme finale de la netlist du
conception dans le fichier spécifié. Sinon, cela n'affecte pas le fonctionnement du
compilateur. Le vidage se produit après que la conception est élaborée et optimisée.

-o nom de fichier
Placer la sortie dans le fichier nom de fichier. Si aucun nom de fichier de sortie n'est spécifié, iverilog
utilise le nom par défaut a.out.

-pindicateur=valeur
Attribuez une valeur à un indicateur spécifique à la cible. Les -p l'interrupteur peut être utilisé aussi souvent que
nécessaire de spécifier tous les drapeaux souhaités. Les drapeaux utilisés dépendent de la
cible qui est sélectionnée et sont décrits dans la documentation spécifique à la cible. Drapeaux
qui ne sont pas utilisés sont ignorés.

-S Synthétiser. Normalement, si la cible peut accepter des descriptions comportementales, le
le compilateur laissera les processus sous forme comportementale. Les -S l'interrupteur provoque le
compilateur pour effectuer la synthèse même si cela n'est pas nécessaire pour la cible. Si la
le type de cible est un format de netlist, le -S commutateur est inutile et n'a aucun effet.

-s module supérieur
Spécifiez le module de niveau supérieur à élaborer. Icarus Verilog choisira par défaut
modules qui ne sont instanciés dans aucun autre module, mais parfois ce n'est pas
suffisant, ou instancie trop de modules. Si l'utilisateur spécifie un ou plusieurs
modules racine avec -s flags, alors ils seront utilisés comme modules racine à la place.

-Tmin|type|max
Utilisez ce commutateur pour sélectionner les temps min, typ ou max à partir des expressions min:typ:max.
Normalement, le compilateur utilisera simplement la valeur typ de ces expressions
(imprimant un avertissement pour les dix premiers qu'il trouve) mais ce commutateur indiquera au
compilateur explicitement quelle valeur utiliser. Cela supprimera l'avertissement que le
le compilateur fait un choix.

-tl'objectif
Utilisez ce commutateur pour spécifier le format de sortie cible. Voir le CIBLES section ci-dessous
pour une liste de formats de sortie valides.

-v Activez les messages détaillés. Cela imprimera les lignes de commande qui sont exécutées pour
effectuer la compilation proprement dite, ainsi que les informations de version des différents
composants, ainsi que la version du produit dans son ensemble. Tu remarqueras
que les lignes de commande incluent une référence à un fichier temporaire de clé qui passe
informations au compilateur proprement dit. Pour éviter que ce fichier ne soit supprimé au
à la fin du processus, fournissez un nom de fichier de votre choix dans la variable d'environnement
IVERILOG_ICONFIG.

-V Imprimez la version du compilateur et quittez.

-Wclasse Activez différentes classes d'avertissements. Voir le ATTENTION TYPES section ci-dessous pour
descriptions des différents groupes d'avertissement. Si plusieurs -W des interrupteurs sont utilisés,
l'ensemble d'avertissement est l'union de toutes les classes demandées.

-ylibdir
Ajoutez le répertoire au chemin de recherche du module de bibliothèque. Lorsque le compilateur trouve un
module non défini, il recherche dans ces répertoires les fichiers portant le bon nom.

-Ysuffixe
Ajouter un suffixe à la liste des suffixes de noms de fichiers acceptés utilisés lors de la recherche d'un
bibliothèque pour les cellules. La liste par défaut à l'entrée unique .v.

MODULE BIBLIOTHÈQUES


Le compilateur Icarus Verilog prend en charge les bibliothèques de modules en tant que répertoires contenant Verilog
fichiers source. Lors de l'élaboration, le compilateur constate l'instanciation de
types de modules. Si l'utilisateur spécifie des répertoires de recherche de bibliothèque, le compilateur recherchera
le répertoire des fichiers avec le nom du type de module manquant. S'il trouve un tel fichier,
il le charge en tant que fichier source Verilog, ils essaient à nouveau d'élaborer le module.

Les fichiers de module de bibliothèque ne doivent contenir qu'un seul module, mais ce n'est pas une exigence.
Les modules de bibliothèque peuvent référencer d'autres modules dans la bibliothèque ou dans la conception principale.

CIBLES


Le compilateur Icarus Verilog prend en charge une variété de cibles, à des fins différentes, et le
-t commutateur est utilisé pour sélectionner la cible souhaitée.

nul La cible nulle ne génère aucun code. Il est utile pour vérifier le
syntaxe de la source Verilog.

vvp C'est la valeur par défaut. La cible vvp génère du code pour l'environnement d'exécution vvp. Le résultat
est un programme complet qui simule la conception mais doit être exécuté par le vvp
commander.

fpga Il s'agit d'une cible de synthèse qui prend en charge une variété de périphériques fpga, principalement par EDIF
formater la sortie. Le générateur de code fpga Icarus Verilog peut générer des
des conceptions ou des macros EDIF qui peuvent à leur tour être importées dans des conceptions plus grandes par d'autres
outils. Les fpga cible implique la synthèse -S drapeau.

vhdl Cette cible produit une traduction VHDL de la netlist Verilog. La sortie est un
fichier unique contenant les entités VHDL correspondant aux modules dans le Verilog
code source. Notez que seul un sous-ensemble du langage Verilog est pris en charge. Voir
le wiki pour plus d'informations.

ATTENTION TYPES


Ce sont les types d'avertissements qui peuvent être sélectionnés par le -W changer. Tout l'avertissement
types (autres que TOUTE) peut également être préfixé par no- pour désactiver cet avertissement. C'est
plus utile après un -Mur argument pour supprimer les types d'avertissement isolés.

TOUTE Cela active les paramètres implicites, portbind, select-range, timescale et
catégories d'avertissement de sensibilité-réseau entier.

implicitement
Cela active les avertissements pour la création de déclarations implicites. Par exemple, si un
le fil scalaire X est utilisé mais non déclaré dans la source Verilog, cela imprimera un
avertissement à sa première utilisation.

liaison de port
Cela active les avertissements pour les ports des instanciations de module qui ne sont pas connectés
mais devrait probablement l'être. Les ports d'entrée suspendus, par exemple, généreront un
Attention.

sélection-plage
Cela active les avertissements pour les sélections constantes hors limites. Cela comprend une partie ou
sélections complètement hors limites ainsi qu'une sélection contenant un 'bx ou 'bz dans le
indice.

calendrier
Cela active les avertissements en cas d'utilisation incohérente de la directive timescale. Il détecte
si certains modules n'ont pas d'échelle de temps, ou si les modules héritent d'une autre échelle de temps
déposer. Les deux signifient probablement que les échelles de temps sont incohérentes et que le calendrier de simulation
peut être déroutant et dépendre de l'ordre de compilation.

afflux Cela active les avertissements pour les instructions Always qui peuvent avoir des boucles infinies à l'exécution
(a des chemins avec aucun ou aucun retard). Cette classe d'avertissements n'est pas incluse dans -Mur
et n'a donc pas de no- une variante. Un message d'erreur fatale sera toujours
imprimé lorsque le compilateur peut déterminer qu'il y aura certainement une infinité
boucle (tous les chemins n'ont aucun ou aucun délai).

Lorsque vous pensez qu'une instruction always produit une boucle infinie d'exécution, utilisez ceci
flag pour trouver les instructions always dont la logique doit être vérifiée. Il est
s'attend à ce que la plupart des avertissements soient des faux positifs, puisque le code traite
la valeur de toutes les variables et signaux comme indéterminée.

sensibilité-vecteur-entier
Cela active les avertissements lorsqu'une partie est sélectionnée dans une instruction "toujours @*"
entraîne l'ajout du vecteur entier à la liste de sensibilité implicite.
Bien que ce comportement soit prescrit par la norme IEEE, ce n'est pas ce qui pourrait
être attendu et peut avoir des implications sur les performances si le vecteur est grand.

sensibilité-tableau-entier
Cela active les avertissements lorsqu'un mot est sélectionné dans une instruction "toujours @*"
entraîne l'ajout de l'ensemble du tableau à la liste de sensibilité implicite. Même si
ce comportement est prescrit par la norme IEEE, ce n'est pas ce qui pourrait être
attendu et peut avoir des implications sur les performances si la baie est grande.

SYSTÈME FONCTION TABLE DES DOSSIERS


Si le nom du fichier source en tant que .sft suffixe, alors il est considéré comme une table de fonctions système
déposer. Un fichier de table de fonction système est utilisé pour décrire au compilateur les types de retour
pour les fonctions du système. Ceci est nécessaire car le compilateur a besoin de ces informations pour
des expressions élaborées qui contiennent ces fonctions système, mais ne peuvent pas exécuter le sizetf
fonctions car il n'a pas de temps d'exécution.

Le format du tableau est ASCII, une fonction par ligne. Les lignes vides sont ignorées et
les lignes commençant par le '#' sont des lignes de commentaires. Chaque ligne de non-commentaire commence
avec le nom de la fonction, puis le type de vpi (c'est-à-dire vpiSysFuncReal). Les types suivants sont
prise en charge:

vpiSysFuncReal
La fonction renvoie une valeur en temps réel/réel.

vpiSysFuncInt
La fonction renvoie un entier.

vpiSysFuncSize
La fonction renvoie un vecteur avec la largeur donnée, et est signée ou non signée
selon le drapeau.

COMMAND DES DOSSIERS


Le fichier de commandes permet à l'utilisateur de placer les noms de fichiers source et certaines lignes de commande
bascule dans un fichier texte au lieu d'une longue ligne de commande. Les fichiers de commandes peuvent inclure C
ou des commentaires de style C++, ainsi que des commentaires #, si le # commence la ligne.

filet prénom
Un simple nom de fichier ou chemin de fichier est considéré comme le nom d'un fichier source Verilog.
Le chemin commence par le premier caractère autre qu'un espace blanc. Les variables sont
substitué dans les noms de fichiers.

-c fichier cmd -f fichier cmd
A -c or -f jeton préfixe un fichier de commandes, exactement comme il le fait sur la commande
ligne. Le fichier cmd peut se trouver sur la même ligne ou sur la prochaine ligne sans commentaire.

-y libdir
A -y jeton préfixe un répertoire de bibliothèque dans le fichier de commandes, exactement comme il le fait
sur la ligne de commande. Le paramètre à la -y le drapeau peut être sur la même ligne ou le
prochaine ligne de non-commentaire.

Variables dans le libdir sont substitués.

+indiquer+inclusir
La +indiquer+ le jeton dans les fichiers de commandes donne des répertoires pour rechercher des fichiers d'inclusion
de la même manière que -I les drapeaux fonctionnent sur la ligne de commande. La différence est
que plusieurs +inclusir les répertoires sont des paramètres valides pour un seul +indiquer+
jeton, bien que vous puissiez également avoir plusieurs +indiquer+ lignes.

Variables dans le inclusir sont substitués.

+libext+poste
La +libext jeton dans les fichiers de commandes cinq extensions de fichiers à essayer lors de la recherche d'un
fichier de bibliothèque. Ceci est utile en conjonction avec -y drapeaux pour lister les suffixes à essayer
dans chaque répertoire avant de passer au répertoire suivant de la bibliothèque.

+réplib+dir
C'est une autre façon de spécifier les répertoires de la bibliothèque. Voir l'indicateur -y.

+libdir-nocase+dir
C'est comme le +réplib instruction, mais les noms de fichiers à l'intérieur des répertoires déclarés
ici sont insensibles à la casse. Le nom de module manquant dans une recherche n'a pas besoin de correspondre au
casse du nom de fichier, tant que les lettres sont correctes. Par exemple, "foo" correspond
"Foo.v" mais pas "bar.v".

+définir+Nom=Plus-value
La +définir+ jeton est le même que le -D option sur la ligne de commande. La valeur
une partie du jeton est facultative.

+échelle de temps+Plus-value
La +échelle de temps+ jeton est utilisé pour définir l'échelle de temps par défaut pour la simulation.
Il s'agit des unités de temps et de la précision avant toute directive d'échelle de temps ou après une
`directive de réinitialisation. La valeur par défaut est 1s/1s.

+ toupper-nom de fichier
Ce jeton entraîne la traduction des noms de fichiers après celui-ci dans le fichier de commandes en
majuscule. Cela aide dans les situations où un répertoire est passé par un DOS
machine, et dans le processus les noms de fichiers deviennent mutilés.

+ nom-de-fichier inférieur
Ceci est similaire à + toupper-nom de fichier hack décrit ci-dessus.

+largeur-entier+Plus-value
Cela permet au programmeur de sélectionner la largeur des variables entières dans le
Source Verilog. La valeur par défaut est 32, la valeur peut être n'importe quelle valeur entière souhaitée.

VARIABLES IN COMMAND DES DOSSIERS


Dans certains cas, iverilog prend en charge les variables dans les fichiers de commandes. Ce sont des chaînes de
forme "$(varname)" ou "${varname}", où varname est le nom de la variable d'environnement
lire. La chaîne entière est remplacée par le contenu de cette variable. Les variables sont
substitué uniquement dans des contextes qui les prennent en charge explicitement, y compris le fichier et le répertoire
cordes.

Les valeurs des variables proviennent de l'environnement du système d'exploitation et non du préprocesseur
définit ailleurs dans le fichier ou la ligne de commande.

PRÉDÉFINI MACRO


Les macros suivantes sont prédéfinies par le compilateur :

__ICARE__ = 1
Ceci est toujours défini lors de la compilation avec Icarus Verilog.

__VAMS_ENABLE__ = 1
Ceci est défini si Verilog-AMS est activé.

EXEMPLES


Ces exemples supposent que vous avez un fichier source Verilog appelé hello.v dans le
annuaire

Pour compiler hello.v dans un fichier exécutable appelé a.out :

iverilog bonjour.v

Pour compiler hello.v dans un fichier exécutable appelé hello :

iverilog -o bonjour bonjour.v

Pour compiler et exécuter explicitement à l'aide de l'environnement d'exécution vvp :

iverilog -ohello.vvp -tvvp bonjour.v

Utilisez iverilog en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad