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

インテル® Quartus® II ソフトウェアが SystemVerilog で署名付きパック配列変数を正しく合成できないのはなぜですか?

環境

    インテル® Quartus® II サブスクリプション・エディション
BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細

Quartus® II ソフトウェアの問題により、SystemVerilog の署名付きパック配列変数が正しく合成されない場合があります。この問題は、インデックス範囲が明示的に指定されていない場合に、1 次元配列変数を符号付きパック配列変数に割り当てる際に発生する可能性があります。

例えば、Quartus® II ソフトウェアで次のコードが正しく合成されていない可能性があります。

logic clk;
logic signed [3:0][31:0] packed_array_variable;
logic signed [31:0] array_variable;

always_ff @ (posedge clk)
    packed_array_variable[0] <= array_variable;
解決方法

この問題を回避するには、パック配列変数に 1 次元配列変数を割り当てる際にインデックス範囲を明示的に定義します。

たとえば、上記のコードでは、最後の行を次に変更します。

    packed_array_variable[0][31:0] <= array_variable;

関連製品

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

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

1

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。