2009-09-04 6 views
10

Können wir ein Array von Instanzen für ein benutzerdefiniertes Modul haben?Können wir eine Reihe von benutzerdefinierten Modulen haben?

Zum Beispiel: wir können input [15:0] a; haben - das schafft einen Bus. Können wir dasselbe für benutzerdefinierte Module tun, d. H. DFF [15:0] d;, wobei DFF ein benutzerdefiniertes Modul ist? Hier möchte ich 16 Instanzen des DFF-Moduls erstellen.

Antwort

8

ist es nicht möglich, diese direkt zu tun (Update: jetzt nach Antwort des mark4o Ich weiß, dass es einen Weg gibt), aber was kann man tun, ist mit der generate Anweisung, um mehrere Instanzen des benutzerdefinierten Moduls und Haken zu erstellen sie bis zu deinen Signalen. Sollte wie folgt aussehen:

wire DFF_i[15:0]; 
wire DFF_o[15:0]; 

generate 
    genvar i; 
    for (i=0; i<15; i=i+1) begin : dff 
    custom i_custom(
     .clk(clk) 
     ,.input(DFF_i[i]) 
     ,.output(DFF_o[i]) 
    ); 
    end 
endgenerate 

Ansonsten gibt es wahrscheinlich einige Möglichkeit während der Synthese die richtige kundenspezifische Module zu verwenden, aber ich bin kein Experte dort.

Cheers, Daniel

20

Verilog-Arrays von Instanzen wurden in Verilog-1995 (IEEE 1364-1995) gegeben. Sie können mit Gates, benutzerdefinierten Primitiven und Modulen verwendet werden. Generatoren, die leistungsfähiger, aber auch komplexer sind, wurden in Verilog-2001 hinzugefügt. Hier

ist ein Beispiel Array von Modulinstanzen:

DFF d[15:0] (clk, DFF_i, DFF_o); 

Für jeden Port-Anschluss, wenn die Größe entspricht der des formalen Parameter dann für jede Instanz verbunden ist. Andernfalls ist jede Instanz mit einem Teileauswahl- (oder Bitauswahl-) Ausdruck verbunden.

+0

Hallo Mark4o, cool das wusste ich nicht! Habe wieder etwas Neues gelernt :) Prost, Daniel – danielpoe

+0

Sind diese Module parallel oder nacheinander instanziiert? – eldos

+0

@eldos: Wenn die Größe einer Portverbindung mit der des formalen Parameters übereinstimmt, wird sie parallel zu jeder Instanz verbunden. Mit einem Vektor können Sie die Instanzen seriell verbinden. – mark4o

Verwandte Themen