45 votes

Utilisation d'un fil ou d'un REG avec entrée ou sortie dans Verilog

Lorsque vous déclarez quelque chose comme entrée ou sortie, comment savez-vous si vous devez également le déclarer comme un reg ou un wire ?

42voto

Jan Decaluwe Points 1546

reg et wire spécifient comment l'objet sera affecté et ne sont donc significatifs que pour les sorties.

Si vous prévoyez d'attribuer votre sortie en code séquentiel, par exemple dans un bloc always, déclarez-le comme un reg (qui est vraiment un nom erroné pour « variable » dans Verilog). Sinon, il devrait s'agir d'un wire, ce qui est également la valeur par défaut.

25voto

Ben Jackson Points 28358

Un output reg foo est juste un raccourci pour output foo_wire; reg foo; assign foo_wire = foo. C'est pratique quand vous prévoyez d'enregistrer cette sortie de toute façon. Je ne pense pas que input reg soit significatif pour module (peut-être task). input wire et output wire sont les mêmes que input et output : c'est juste plus explicite.

3voto

john_conner Points 142

essentiellement reg est utilisé pour stocker des valeurs.Par exemple, si vous voulez un compteur(qui comptera et aura donc une certaine valeur pour chaque compte),nous utiliserons un reg. D'autre part,si nous avons juste un signal simple avec 2 valeurs 0 et 1,nous allons le déclarer comme wire.Wire ne peut pas contenir les valeurs.So assigner des valeurs à wire conduit à des problèmes....

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X