2016-03-21 3 views
1

Hier ist ein einfacher Code zum Definieren zweidimensionaler Drähte in Verilog.2-dimensionale Drahtmatrix in Verilog definieren

module test(a, b, c); 

    input [63:0] a; 
    input [63:0] b; 
    output [63:0] c [63:0]; 

endmodule 

Wenn ich den Code kompiliere, erhalte ich diesen Fehler.

Illegal reference to net array "c". 
+0

Sie sollten bei http://stackoverflow.com/questions/3011510/how einen Blick deklarieren-und-nutzen-1d-und-2d-byte-arrays-in-verilog – Krouitch

Antwort

3

Ich glaube nicht, dass diese Frage https://stackoverflow.com/questions/3011510/... mit diesem spezifischen Problem hilft.

Sie erhalten diesen Fehler, weil es in Verilog unzulässig ist (vor 2009, als es in SystemVerilog zusammengeführt wurde), Ports zu haben, die zwei (oder mehr) dimensionale Arrays sind; Für Arrays an Ports sind nur einfache, eindimensionale Vektoren erlaubt.

Sie können zwei (oder mehr) dimensionale Arrays von Netzen oder Variablen haben, da diese Frage https://stackoverflow.com/questions/3011510/... erklärt.

Es ist erwähnenswert, dass es keine solche Beschränkung im System-Verilog ist (oder:. Mehrdimensionale Arrays sind erlaubt

+0

Ok, das wusste ich nicht, mein schlechtes. Thx – Krouitch

+4

Könnte es wert sein hinzuzufügen, dass SystemVerilog dies jedoch erlaubt. – Morgan