2017-07-14 3 views
1

référence à la question ci-dessous demandétaille variable et le nombre de port/port de la baie dans le module qui sont paramètre dépendant dans Verilog systemverilog

How to write a module with variable number of ports in Verilog

Une autre question à ce sujet.

module my_module #(SIZEOF_LENGTH = 3, 
        LENGTH = {8,8,7})(
    input clk, 
    input rst_n, 
    input [LENGTH[0]-1:0] data_1, 
    input [LENGTH[1]-1:0] data_2, 
    input [LENGTH[2]-1:0] data_3 
); 

Je veux fondamentalement quelque chose comme ça. La taille dépend du paramètre passé à partir du haut, tout comme le nombre de ports. Cela peut-il être fait?

Répondre

0

Pas dans Verilog, mais pourrait utiliser un langage de modèle comme Ruby ou Perl.

Alternativement dans SystemVerilog Les ports de tableau peuvent être utilisés: Notez que ceux-ci doivent avoir la même largeur.

module my_module #(
    SIZEOF_LENGTH = 3, 
    LENGTH = 8)(
    input clk, 
    input rst_n, 
    input [LENGTH-1:0] data [0:SIZEOF_LENGTH-1] 
); 
+0

cette notation sténographique fonctionnera aussi bien 'entrée [LONGUEUR-1: 0] données [SIZEOF_LENGTH]' – Serge

+0

Cest la question, je veux une variable longueur de la part de données. Ca devrait être possible puisque c'est un HDL mais le LRM ne supporte pas je suppose. –