記事 ID: 000081059 コンテンツタイプ: エラーメッセージ 最終改訂日: 2021/08/28

警告 (10240): Verilog HDL Always Construct warning at <design.v> 「i」変数の推論ラッチは、常に構造を介して 1 つ以上のパスで以前の値を保持します</design.v>

環境

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

    Quartus® II ソフトウェアのバージョン 7.0 以前では、次の例のように変数を使用して Verilog HDL のループを制御すると、この警告メッセージが生成される場合があります。

    if ( !rst_n )
          begin
            for ( i = 0; i < depth; i = i 1)
              mem[i] = {width{1'b0}} ;
          end

    この問題は、Quartus® II ソフトウェア・バージョン 7.1 から修正されています。

    上記の例では、Quartus® II ソフトウェアのバージョン 7.0 以前では、最終デザインではシグナルではない一時ループ変数に対して警告を発行しています。この例では、ループ処理に変数「i」が使用され、Verilog コードのループが始まる前に初期化されますが、残りのコードでは使用されません。ソフトウェアはこの一時変数のラッチを合成します。最終デザインのネットリストでは、ラッチはロジックを駆動しないため、取り外されます。ただし、ファンアウトのない信号を取り外す前に、ソフトウェアは推論されたラッチ警告を発行します。

    常に構造の外側にある変数を参照しない限り、Quartus® II ソフトウェアの合成ではラッチが取り外され、警告は無視できます。

     

    関連製品

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

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

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