Ich möchte einen Prozess haben, die eine LED dreimal blinken lassen (jedes Mal sollte das Licht für eine Sekunde eingeschaltet sein) und das Intervall zwischen dem Einschalten sollte 1 Sekunde betragen.VHDL-Prozess für blinkende LED
Der schnellste und einfachste Weg, sollte folgende sein:
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;
Durch das Kompilieren gibt es keine Fehler ... aber die Uhr hat seine eigene Arbeitsfrequenz (zum Beispiel 1 ns). Durch Tring diesen Code mit Modelsim wird es den folgenden Fehler geben:
run
# Cannot continue because of fatal error.
# HDL call sequence:
# Stopped at C:/User...rm.vhd 50 Process line__41
#
Die Reihe ist genau auf den Prozess (CLK) Reihe.
Ich denke, das Problem ist, weil der CLK größere Frequenz hat, so auf diese Weise ein nächster Prozess beginnt vor dem vorherigen fertig (es macht etwas wirklich fies ...).
Wenn das, was ich geschrieben habe, korrekt ist, kann eine Lösung mit der Uhr spielen, um den gewünschten Zeitraum zu haben, aber ich würde gerne eine schnellere und leichtere Lösung finden.
Oh Schatz. Ist das nur für die Simulation oder Synthese in Hardware? –
Es wird für die Synthese in Hardware und so kann ich nicht das "nach" wie in meinem Beispiel verwenden. – pittuzzo