次の形式で for ループを作成する方法はありますか。
for i in 0 to some_var loop
// blah,blah
end loop;
そうでない場合、同じループを作成する別の方法はありますか? Whileループでは変数を制限として使用できますが、私のプロジェクトでは合成できません。
前もって感謝します、
ボジャン・マトフスキ
次の形式で for ループを作成する方法はありますか。
for i in 0 to some_var loop
// blah,blah
end loop;
そうでない場合、同じループを作成する別の方法はありますか? Whileループでは変数を制限として使用できますが、私のプロジェクトでは合成できません。
前もって感謝します、
ボジャン・マトフスキ
この変数は、テストベンチ アプリケーションでは問題なく機能します。
合成では、静的範囲と終了条件を使用して同じ効果を得ることができます。範囲を必要な最大値に設定します。
for i in 0 to MAX_VALUE loop
exit when i = some_var ;
// blah,blah
end loop;
合成ツールがこれで詰まる場合は、バグ レポートを提出してください。1076.6-1999 と 1076.6-2004 (VHDL RTL Synthesis Standards) の両方が、静的範囲の「for」ループで終了条件がサポートされていることを示しています。ループ ラベル (1076.6-1999) の使用に関して、サポートされていないことを示す問題が見つかる場合があります。
バグ (またはサポートの欠如) を見つけて報告しない場合、ベンダーはそれを気にしない機能と見なし、ツールの変更に投資しません。
静的範囲を持つループ パラメータのみが合成可能です。
some_varに離散範囲がある場合、FSM (有限状態マシン) を実装できます。次に、状態ごとに特定のループを記述します。