Forum: FPGA, VHDL & Co. VHDL Impulsbreitenabhängige Anweisung LAST_EVENT


von Dirk Lorenz (Gast)


Lesenswert?

Hallo,

ich möchte eine Impulsbreitenabhängige Anweisung realisieren. Habe mir
das so vorgestellt:

IF signal_A'LAST_EVENT >= 10ns THEN signal_B <= '1';

Funktioniert allerdings nicht. Kann mir jemand weiterhelfen??
Danke im Vorraus.

von FPGA-User (Gast)


Lesenswert?

soweit ich weiss gibt LAST_EVENT die Zeit an zwischen
der letzten Änderung des Signals und der akt. Simulationszeit.

Eine Impulsbreite lässt sich nur durch zusätzliche Bedingungen
messen, die Abfrage wie lange die letzte Änderung des Signals
zurückliegt ist da nicht sicher ausreichend.

Vielleicht kannst Du mit 'EVENT, 'STABLE o.ä. Deine Bedingung
besser prüfen - beschreib mal das Problem genauer.

von Dirk Lorenz (Gast)


Lesenswert?

Mit dieser Anweisung will ich mögliche Spikes vermeiden. So soll die
Schaltung nur Impulse registrieren, die länger als z.B. 10ns andauern.

Müsste eigentlich mit LAST_EVENT funktionieren: Wenn das letzte
Ereignis mehr als 10ns zurücklegt, sollte das SignalB auf "1" gesetzt
werden. Ist das Eingangssignal allerdings nur ein Spike (z.B. 1ns) wird
das SignalB gar nicht erst gesetzt.
Das Problem ist nun, dass bei dieser Anweisung das SignalB selbst bei
Impulsbreiten von 100ns nicht gesetzt wird.

von FPGA-User (Gast)


Lesenswert?

if sig='1' and sig'STABLE(10 ns) then
   ...
würde z.B. prüfen, ob das Signal sig in den letzten
10 ns konstant auf '1' war.
Hilft das ?

Das geht natürlich alles nur in der Simulation, ich hoffe nicht,
dass Du das synthetisieren wolltest !

von Dirk Lorenz (Gast)


Lesenswert?

In der Theorie müsste das ja auch funktionieren, aber selbst die
Simulation lässt den Impuls "durch".

von Zennehoy (Gast)


Lesenswert?

Die meisten dieser Befehle sind sowieso nicht synthetisierbar...
Normalerweise eliminiert man Spikes durch einen Register.
Zen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.