インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション v21.1 以前のバージョンで問題が発生したため、インスタンス化された構造体の変数名がメンバーの 1 つと同じ場合、合成結果が正しくないと表示される場合があります。
例えば、以下の構造定義では、デザインが in.data を使用すると、構造の要素である in.data.dataとして合成されます。つまり、ビット幅は 258 ビット (1 ビット sop、1 ビット eop、256 ビットのデータ) にする必要がある場合に 256 ビットであることを意味します。
インターフェイス・テスト #(パラメーター WIDTH=256) ();
typedef struct packed {
ロジック sop;
ロジック eop;
ロジック [WIDTH-1:0] データ。
} data_t;
データのdata_t。
エンドインターフェイス
......
test #(.WIDTH(256)) in();
dout = in.data を割り当てます。
......
この問題を回避するには、メンバーである場合と同じ名前を構造体に使用しないでください。
この問題は、インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション v21.2 以降修正されています。