記事 ID: 000087716 コンテンツタイプ: トラブルシューティング 最終改訂日: 2021/10/26

Verilog HDL struct シグナルの合成結果が不正なのはなぜですか?

環境

    インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション
BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細

インテル® 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 以降修正されています。

関連製品

本記事の適用対象: 1 製品

インテル® プログラマブル・デバイス

1

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。このコンテンツはお客様の便宜と一般的な情報のみを目的として提供されており、情報の正確さと完全性を保証するものではありません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。