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

220model.vhd ファイルをコンパイルするときに Modelsim で -EXPLICIT オプションを使用する必要があるのはなぜですか?

環境

BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細 -EXPLICIT オプションを使用しない場合、コンパイル時に次のエラーが表示されます。 220model.vhd Modelsim* ファイル:

  • # ERROR: <path>/220model.vhd(741): サブプログラム「>」が恍惚です。パッケージの「std_logic_1164」と「std_logic_signed」に適切な定義が存在します。
  • # ERROR: <パス>/220model.vhd(741): (「-explicit」オプションを使用して以前のエラーチェックを無効にします)
  • # ERROR: <path>/220model.vhd(748): サブプログラム "=" は恍惚です。パッケージの「std_logic_1164」と「std_logic_signed」に適切な定義が存在します。
  • # ERROR: <パス>/220model.vhd(748): (「-explicit」オプションを使用して以前のエラーチェックを無効にします)
  • # エラー: <パス>/220model.vhd(793): VHDL コンパイラー終了

LPM_COMPAREコンポーネント (署名付き、署名付き) は、>、std_logic_1164 とパッケージも含 std_logic_unsigned std_logic_signed まれます。これらの演算子はオーバーロードされています。つまり、これらの演算子の定義は、両方のパッケージで、暗黙のうち std_logic_1164 に明示的に使用 std_logic_unsigned され、 signed .

std_logic_unsignedまたは signed パッケージを含むことで std_logic_1164 、設計者は暗黙の定義ではなく、パッケージ内で明示的な定義を使用することを意図しています。

220model.vhdファイルには多くのそのような演算子が含まれていて、異なるコンポーネント用の署名付きパッケージとパッケージが含まれています。Modelsim* でこのファイルをコンパイルする場合、シミュレーターで明示的な定義を推論するために明示的なオプションを指定する必要があります。

ModelSim > vcom 220model.vhd -explicit

ModelSim.iniファイルを編集し、変数 EXPLICIT = 1 に設定すると、このオプションはすべてのコンパイルのデフォルトオプションに設定されます。

関連製品

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

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

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