[Verilog problème fonction]?

D

davyzhu

Guest
Salut à tous,

Je veux utiliser la fonction d'écrire de petites logique combinatoire.
Mais j'ai trouvé il semble que je ne peux pas declear fil en fonction, pourquoi?
Toute suggestion sera appréciée!

Le func_test avoir des erreur de compilation, pourquoi?
--------------- Func_test //--------
func_test module (
in_1,
in_2,
in_3,
à,
);

entrée [05:00] in_1;
entrée [05:00] in_2;
entrée [05:00] in_3;

sortie [05:00] à;

attribuer out = plus_out (in_1, in_2, in_3);

fonction [05:00] plus_out;
entrée [05:00] in_1;
entrée [05:00] in_2;
entrée [05:00] in_3;
fils [05:00] Plus;
commencer
plus = in_1 in_2;
plus_out = plus in_3;
fin
endfunction

endmodule

Cordialement,
Davy
Dernière édition par davyzhu le 04 Juil 2005 11:44, édité 1 fois au total

 
Salut,
Dans la définition de fonction, vous devez utiliser le même nom pour l'enregistrer o p / le nom de la fonction elle-même.Vous avez déclaré que plus_out nom de la fonction et affectés o / p pour "out".Changer cette situation et voir si cela fonctionne.

Vous avez également utilisé affecter l'intérieur d'une définition de fonction.Pensez-vous que cela est exact?

Cordialement,

 
Voici le code corrigé cette étude et voir si vous pouvez obtenir le
réponses que vous cherchez!
Code:func_test module (

in_1,

in_2,

in_3,

à,

);entrée [05:00] in_1;

entrée [05:00] in_2;

entrée [05:00] in_3;sortie [05:00] à;fonction [05:00] plus_out;

entrée [05:00] in_1;

entrée [05:00] in_2;

entrée [05:00] in_3;

reg 05:00] plus [;

commencer

plus = in_1 in_2;

plus_out = plus in_3;

fin

endfunctionattribuer out = plus_out (in_1, in_2, in_3);endmodule / func_test /

 
Salut,

J'ai changé de fil à reg en fonction et tout se passa!Merci!
Mais je suis perplexe à ce sujet.Car dans mon esprit, reg est toujours utilisé en «toujours» en tant que bloc logique séquentielle!
Et en fonction il ya seulement logique combinatoire, pourquoi?

Toute suggestion sera appréciée!

Cordialement,
Davy

 
Salut,
Les fonctions sont définit comme un bloc de procédure.En outre, les fonctions peuvent être appelées à partir du comportement bloc seulement, alors ce que cela signifie.Les fonctions sont comme n'importe quel bloc de comportement.S'il vous plaît se référer à ce lien.Il mentionne clairement que le fil ne peut pas être défini dans une définition de fonction.
http://www.see.ed.ac.uk/ ~ gerard/Teach/Verilog/me5cds/me95cab0.html

Funtions sont utiles pour modéliser la logique combinatoire.C'est vrai, mais cela ne signifie pas que la définition d'une variable comme reg ne sera pas le modèle logique combinatoire.

Cordialement,

 

Welcome to EDABoard.com

Sponsor

Back
Top