2015-12-12 1 views
0

Je voulais ajouter un fichier d'en-tête à mon projet Verilog. Cela devrait être une chose très facile à faire. Cependant, il s'avère que ce n'est pas trivial. C'est mon fichier d'en-tête. Disons que le nom du fichier est parameters.vhAjout de fichiers d'en-tête dans Verilog

`ifndef _parameters_vh_ 
`define _parameters_vh_ 
parameter Tm = 2; 
parameter Tn = 2; 
`endif 

Puis-je l'inclure au module supérieur

`include "parameters.vh" 

Mais il ne peut pas obtenir synthétisé. Message d'erreur:

Erreur Verilog HDL sur parameters.vh (3): la déclaration des objets globaux est une fonctionnalité SystemVerilog. Je me demande si quelqu'un peut m'aider ici.

Répondre

1

Dans Quartus-II, vous pouvez activer les fonctions SystemVerilog via le menu Affectations -> Paramètres -> Entrée Verilog HDL.

Sinon, vous devez déplacer l'inclusion du fichier de paramètres dans une définition de module comme ici:

module top (x,y); 
`include "parameters.vh" 
    input x; 
    output y; 
    assign y = x; 
endmodule // top 
+1

Bien que cela soit légal dans SystemVerilog, il n'est jamais judicieux de mettre des définitions globales en dehors d'un module. Il vaut mieux les mettre dans un paquet et importer le paquet. –

0

ce n'est pas une question SystemVerilog, il suffit de penser ce que le processeur avant fait quand il trouve votre ligne include . vous ne pouvez pas avoir de paramètres en dehors des modules, cela n'a pas de sens.