インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション・バージョン 20.4 以前のバージョンで問題が発生したため、中間値を定数に設定した VHDL のフクスルー関数呼び出しまたは関数で宣言された変数の初期値に対して、合成段階でこの致命的なエラーメッセージが表示される場合があります。
コード例:
ファンクション・function_2
(
定数RECURSION_DEPTH: 自然)
返品は自然です
constant 々val :natural := -- 定数または初期化された変数、同じ結果
function_1(
RECURSION_DEPTH => RECURSION_DEPTH);
開始
エンドfunction_2。
この問題を回避するには、値を定数に割り当てる代わりに、関数本体で割り当てを行って変数に割り当てます。
変数への値の割り当ては、関数の本体で実行する必要があります。後者は定数を設定するのと同じクラッシュを生じるので、関数の宣言的部分の初期値の割り当てとして実行しないでください。
例:
ファンクション・function_2
(
定数RECURSION_DEPTH: 自然)
返品は自然です
変数
開始
function_1
RECURSION_DEPTH => RECURSION_DEPTH);
エンドfunction_2。
この問題は、インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション・バージョン 21.3 以降で修正されています。