Zeitmessung in VHDL - synthetisierbar

Moderator (Firma: Titel) Persönliche Seite #4197595
Lesenswert?

123 schrieb:
> ich will die Zeit zwischen 2 fallenden Taktflanken messen. Wie geht
> sowas in VHDL, sodass es auch Synthetisierbar ist?
Zeiten kann man in VHDL nur mit Zählern messen. Du wirst also einen 
weiteren Takt brauchen, der deutlich schneller ist als der zu messende 
Takt.

> ich will die Zeit zwischen 2 fallenden Taktflanken messen.
Woher kommt das Signal? Welche Frequenz hat das Signal?
Gast #4197601
Lesenswert?

Eigentlich meinte ich sowas ja ;)
Wenn ich also z.B. einen ein Signal messen will, das von Taktflanke zu 
Taktflange 3µs hat, dann messe ich mit der mindestens doppelten Frequenz 
den Counterwert, wenn das Signal wieder eine fallende Flanke hat(bei der 
ersten fallenden Flanke starte ich den Counter)?
Moderator (Firma: Titel) Persönliche Seite #4197621
Lesenswert?

123 schrieb:
> dann messe ich mit der mindestens doppelten Frequenz den Counterwert,
Mit der doppelten Taktfrequenz kann dein Zähler bestenfalls auf 2 
zählen. Wenn das ausreicht... :-/

Du solltest z.B. mindestens die 100-fache Taktfrequenz haben, wenn du 
eine 1% Auflösung für Frequenzabweichungen brauchst. Wenn du z.B. wissen 
willst, ob du 1µs oder 1,01µs oder 0,99µs Impulsdauer hast, dann musst 
du mit 100 MHz abtasten. Einfach mal auf ein Blatt Papier aufzeichnen...
Gast #4197656
Lesenswert?

123 schrieb:
> Hallo,
>
> ich will die Zeit zwischen 2 fallenden Taktflanken messen. Wie geht
> sowas in VHDL, sodass es auch Synthetisierbar ist?
>
> Danke

In VHDL/FPGA stellt man (System)-Takte ein (PLL/DCM konfiguration); zur 
Messung ob man das richtige eingetellt hat nimmt man ein scope.

SCNR,
Gast #4197668
Lesenswert?

123 schrieb:
> ich will die Zeit zwischen 2 fallenden Taktflanken messen. Wie geht
> sowas in VHDL, sodass es auch Synthetisierbar ist?
Alternativ, wenn es schneller gehen muss, baut man sich einen TDC 
(time-to-digital-converter). Im Prinzip ein langes Schieberegister (ohne 
Takt, einfach nur durch die Gatterlaufzeit bestimmt), welches gelatcht 
wird. Anschließend muss eine mehr oder weniger komplexe Logik ran, um 
die Flanken daraus zu bestimmen:
1
000000000000000111111111111111100000000000011111111110000000000111111

Duke
#4197673
Lesenswert?

Lothar M. schrieb:
> 123 schrieb:
>> dann messe ich mit der mindestens doppelten Frequenz den Counterwert,
> Du solltest z.B. mindestens die 100-fache Taktfrequenz haben, wenn du
> eine 1% Auflösung für Frequenzabweichungen brauchst.
Für Frequenzabweichungen reicht auch der Halbe oder weniger, wenn er nur 
genau genug ist. Allerdings geht es dann nicht mehr um die Zeitdauer 
zwischen zwei einzelnen Flanken.

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