2009-09-08 14 views
1

J'essaie de prédire à moindre coût et avec précision toutes les dépendances système-verilog pour un flux de build. Il est correct de sur-prédire les dépendances et de trouver quelques fichiers verilog qui ne sont pas des dépendances sv, mais je ne veux pas manquer de dépendances.trouver toutes les dépendances dans une compilation verilog

Est-ce que je dois réellement analyser le Verilog afin de déterminer toutes ses dépendances? Il y a des macros de préprocesseur inclues, mais celles-ci ne semblent pas charger tout le code actuellement compilé. Il existe une variable d'environnement SYSTEM_VERILOG_PATH. Ai-je besoin d'analyser chaque fichier verilog du système dans cette variable SYSTEM_VERILOG_PATH afin de déterminer quels modules sont définis dans quels fichiers?

Répondre

1

Un bon moyen (s'il s'agit d'un code synthétisable) est d'utiliser votre liste de fichiers de l'outil de synthèse (par exemple .qsf pour Altera). Cela a tendance à être complet, mais si ce n'est pas le cas, vous pouvez regarder dans le journal de construction les fichiers manquants trouvés.

+0

Excellente idée - Je vais regarder dans nos scripts de synthèse. –

0

Je sais que Questa a une option de ligne de commande où il va générer un makefile pour vous avec toutes les dépendances après avoir compilé votre conception. Je ne suis pas sûr si les autres simulateurs ont cela.

Une autre option consiste à parcourir et vider votre bibliothèque compilée dans votre simulateur. Vous n'obtiendrez probablement pas les noms de fichiers réels à partir desquels les modules sont compilés, mais il sera beaucoup plus facile d'analyser tous vos fichiers verilog pour les noms de modules qui apparaissent dans la bibliothèque compilée.

1

d'un environnement facilement compilé il est possible de vider les fichiers source (par exemple Cadence

-- To list source files used by the snapshot 'worklib.top:snap' 
% ncls -source -snapshot worklib.top:snap 

)
mais si vous commencez à partir de zéro, je crains qu'il n'y ait pas de solution facile. Je voudrais aller pour le pragmatique: avoir un fichier de configuration avec tous les répertoires qui contiennent des fichiers .sv et ensuite compiler tout en elle. Si votre projet a une structure de fichiers appropriée, vous pouvez également moduler cela en fournissant des fichiers de configuration pour chaque bloc majeur.

Espérons que ça aide.