Comment passer de la matrice de structure entre les deux verilog modules
Je suis en train de passer d'une structure de tableau comme reg [0:31]instructionmem[0:31] entre les deux modules.
J'ai codé comme suit :
Module N ° 1:
module module1(instructionmem);
output reg [0:31]instructionmem[0:31];
------------------
----lines of code---
---------------
endmodule
Module N ° 2:
module module2(instructionmem);
input [0:31]instructionmem[0:31];
--------------------------------
-----line of code---------------
-------------------------------
endmodule
Testbench:
module test_bench();
wire [0:31]instructionmem[0:31];
module1 m1(instructionmem);
module2 m2(instructionmem);
endmodule
J'obtiens des erreurs pour cette mise en œuvre. Alors, comment pouvons-nous envoyer de telles structures de matrices ?
avez-vous essayé de définir comme
ya j'ai essayé, mais cela ne fonctionne pas non plus.
Je crois que c'est uniquement pris en charge en SystemVerilog, avez-vous activé SystemVerilog mode parfois à l'aide de .sv extension de fichier, soit en cours d'exécution avec un -sv drapeau
output/input reg/wire [31:0]instructionmem[0:31];
, c'est à dire en changeant l'ordre de la largeur de la définition.ya j'ai essayé, mais cela ne fonctionne pas non plus.
Je crois que c'est uniquement pris en charge en SystemVerilog, avez-vous activé SystemVerilog mode parfois à l'aide de .sv extension de fichier, soit en cours d'exécution avec un -sv drapeau
OriginalL'auteur Nilesh Agrawal | 2013-05-04
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas possible en Verilog. (Voir sec. 12.3.3, de la Syntaxe 12-4 de la Verilog 2005 document standard, la norme IEEE Std. 1364-2005.)
Au lieu de cela, vous devriez "aplatir" le tableau et de le passer comme un simple vecteur, par exemple:
OriginalL'auteur CliffordVienna