Aufgrund eines Problems in der Intel® Quartus® Prime Pro Edition Software v21.1 und früher können Sie feststellen, dass das Syntheseergebnis falsch ist, wenn der instanziierte variable Name einer Struktur mit einem seiner Mitglieder identisch ist.
Beispielsweise wird in der unten stehenden Strukturdefinition, wenn das Design in.dataverwendet, wie in.data.data,das Element der Struktur, hergestellt. Dies bedeutet, dass die Bitbreite 256 Bits beträgt, wenn es 258 Bits sein sollte, d. h. 1 Bit Sop, 1 Bit EOP und 256 Bits Daten.
Schnittstellentest #(Parameter WIDTH=256) ();
typedef struct packed {
Logik sop;
Logik eop;
Logik [WIDTH-1:0] Daten;
} data_t;
data_t Daten;
Endinterface
......
Test #(. WIDTH(256)) in();
assign dout = in.data;
......
Um dieses Problem zu umgehen, verwenden Sie für die Struktur nicht den gleichen Namen, wie bei Mitgliedern.
Dieses Problem wurde ab der Intel® Quartus® Prime Pro Edition Software v21.2 behoben.