Question

Je le module suivant:

module add_8bit ( output wire co,
              output wire [7:0] r,

              input wire ci,
              input wire [7:0] x,
              input wire [7:0] y );

Je suis en train de l'utiliser via le code suivant:

 wire rbit [7:0];
 wire onebit [7:0];
 wire twocomp [7:0];

 wire tco, tci;

 add_8bit t9 ( tco, twocomp, tci, rbit, onebit );

Il ne compilera pas à cause de la dernière ligne, pourquoi?

Merci.

Était-ce utile?

La solution

Vous avez les déclarations de fil arrière vers l'avant dans le deuxième extrait de code. Devrait être:

wire [7:0] rbit;
wire [7:0] onebit;
wire [7:0] twocomp;

Autres conseils

Dans votre définition de module, vous avez déclaré trois 8 bits ports wire:

 output wire [7:0] r,
 input  wire [7:0] x,
 input  wire [7:0] y

Cependant, dans votre module d'appel, vous avez déclaré trois 1 bit de large par wire profonde 8 bits tableaux (reportez-vous à la norme IEEE Verilog, 1364-2005, section 4.9 « Tableaux) :

 wire rbit    [7:0];
 wire onebit  [7:0];
 wire twocomp [7:0];

Lorsque vous vous connectez ces réseaux de fil à l'instance du module, discordances de type de port de connexion se produisent, ce qui entraîne des erreurs de compilation.

Pour corriger la situation, vous devez vous assurer que le type des signaux utilisés pour se connecter à l'instance correspondent au type de port du module. Comme Marty a souligné, très probablement, vous voulez changer votre module d'appel de déclarations wire à:

wire [7:0] rbit;
wire [7:0] onebit;
wire [7:0] twocomp;

L'autre possibilité est de changer vos ports de module pour faire correspondre les fils du module d'appel, mais je doute sincèrement que ce que vous voulez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top