VHDL Impulsbreitenabhängige Anweisung LAST_EVENT

Gast #251071
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.
Gast #251072
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.
Gast #251073
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 !

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren