2013-01-02 2 views
0

Existe-t-il un équivalent Verilog de l'instruction suivante dans VHDL? J'ai quelques ports génériques qui nécessitent des valeurs tempsEquivalent Verilog de la constante de type de temps

constant TIME_C : time := 10 ms; 

J'ai essayé cela comme une supposition, mais la syntaxe a échoué.

localparam TIME_C = 10 ms; 

« ms » ne semble pas être un mot clé réservé dans Verilog, mais l'éditeur de mon IDE met en évidence en bleu, donc je pense peut-être il y a un moyen ...

Répondre

1

Vous pouvez faire ceci:

`timescale 1ms/1ms 

module foo(); 
    localparam TIME_C = 10; 
    ... 
endmodule 

En Verilog, il est important de comprendre que les variables ou les constantes représentant les temps sont simplement des valeurs numériques sans contexte. L'échelle de temps du module en cours est ce qui détermine comment la valeur est interprétée. Dans l'exemple de code ci-dessus, #TIME_C va créer un délai de 10ms car TIME_C est égal à 10 et l'échelle de temps est 1ms.

Si vous devez fournir une valeur de temps à un port d'un module, assurez-vous de connaître l'échelle de temps du module (si spécifié). Pour info, SystemVerilog a ajouté quelques fonctionnalités liées à la spécification des heures et des temps.