3回点滅する(1秒ごとに点灯する必要があります)、点灯するまでの間隔を1秒にするプロセスが必要です。LEDの点滅のためのVHDLのプロセス
最も簡単な方法は、次のようになります。それをコンパイルして
process(CLK)
begin
....
led <= '0';
led <= '1' after 1 sec,
'0' after 1 sec,
'1' after 1 sec,
'0' after 1 sec,
'1' after 1 sec,
'0' after 1 sec;
....
end process;
は誤りがない...しかし、クロックは、自身の動作周波数を持っている(例えば1nsの)。 Modelsimでこのコードを実行すると、次のエラーが発生します。
run
# Cannot continue because of fatal error.
# HDL call sequence:
# Stopped at C:/User...rm.vhd 50 Process line__41
#
この行は、正確にPROCESS(CLK)行にあります。
私はこの問題がCLKがより大きな周波数を持っているので、次のプロセスが前の処理が完了する前に開始するようになっていると思います。
もし私が書いたことが正しいのであれば、解決策は要求された期間を持つために時計で遊ぶことができますが、より迅速でより軽い解決策を探したいと思います。
おはようございます。これはシミュレーション、またはハードウェアへの合成用ですか? –
これはハードウェアに合成するためのもので、私の例では "after"を使うことはできません。 – pittuzzo