Puis-je créer un fichier verilog pour simuler et synthétiser?

LaiJiong

Puis-je créer un fichier verilog pour simuler et synthétiser?


Récemment, je lisais un livre d’étude Verilog. J’ai finalement réalisé qu’un fichier Verilog n’était peut-être pas synthétisable, car certaines instructions Verilog sont uniquement destinées à la simulation. Mais je suis trop paresseux pour créer un fichier pour créer un module et un autre pour le simuler. Puis-je mélanger les deux dans le même fichier, et si oui, comment?

dext0rb

J’aime cette question parce que moi aussi je suis trop paresseux pour faire deux fichiers. Comment se fait-il que les concepteurs de la langue n’aient pas prévu cela?

LaiJiong

Oh chérie, je serai triste d’entendre ce fait. Néanmoins, est-ce un bon hobit de mettre ces fichiers à part? @dextorb

dext0rb

Oui, je pense que la meilleure pratique consiste à créer des fichiers de synthèse et de simulation pour vos modules.

Matthew Mellott

Voulez-vous dire que vous ne voulez pas mettre votre banc d’essai dans un fichier séparé? Vous pouvez toujours avoir deux modules dans un fichier et éviter qu’un ne soit pris en compte pour la synthèse avec les pragmas (ou le commenter …). Quel outil utilisez-vous? Beaucoup peuvent générer des squelettes de bancs d’essai pour vous, ce qui vous enlève beaucoup de travail.

Réponses


 Stanri

La plupart des outils de synthèse prennent en charge les pragmas. Par exemple, dans le code suivant, la porte et ne sera pas prise en compte pour la synthèse.

 //  synthesis translate_off and2 ( a ,  b ,  c [ 4 ]); 
 //  synthesis translate_on 

De plus, des macros prédéfinies peuvent également être utilisées:

 ` ifdef synthesis parameter PARAM =   4 ; 
 ` endif 

Les deux ci-dessus sont spécifiques à l’outil, vous devrez donc voir quelles macros prédéfinies votre outil prend en charge, ou vous pouvez définir une macro vous-même et l’utiliser.

Si vous souhaitez quelque chose de plus robuste et pas aussi spécifique à un outil, vous pouvez utiliser une instruction de génération conditionnelle qui divise bien la simulation et la synthèse:

 generate 
 if   ( SYNTHESIS ==   1 ) ff_for_synthesis_here else ff_for_simulation_here end   generate 

 

#et, #pour, créer, fichier, Puis-je, simuler, Synthétiser, un, Verilog

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *