Seite 1 von 1

Zeitmessung

BeitragVerfasst: Mo 17. Nov 2014, 14:35
von Hansdebaer
Hallo Leute,
ich habe ein VHDL Code um Zeit auf die Millisekunde genau zu messen. Das mache ich einfach in dem Ich ein Oszilator Takt so Teile das ich auf eine Millisekunde komme und addiere die auf. Gibt es noch eine zweite Möglichkeit eine Zeit zu Messen mit einem FPGA? Also bei einem Mikrocontroller kann man ja z.B. die Zeit vom Start und vom Ende auslesen, die beiden Subtrahiert und ich habe die Zeit ist sowas auch möglich? Und wenn ja wie geht das?

Liebe Grüße und vielen Dank im Voraus.

Re: Zeitmessung

BeitragVerfasst: Di 18. Nov 2014, 10:13
von eilert
Hi,
wenn du nur Millisekundengenauigkeit brauchst ist das völlig OK so.
Durch das Nullsetzen am Anfang sparst du dir die Subtraktion am Ende, verglichen mit dem Microcontroller.
Dort muss man oft mit der von dir beschriebenen Methode arbeiten, weil man nur einen frei laufenden Zähler hat, der von vielen Prozessen genutzt werden kann. Und auch dort ist es manchmal möglich den Counter zu resetten um sich die subtraktion hinterher zu sparen.

Im FPGA kann man sich ja im Prinzip beliebig viele Zähler mit passender Genauigkeit bauen.
Für die von dir beschriebene Methode braucht man neben dem Zähler ein Register für die Startzeit und einen Subtrahierer. (ggfs noch ein Ergebnisregister.)

Angenommen man würde mehrere unabhängige Zeitmessungen gleichzeitig machen wollen, dann wäre diese Methode letztendlich schlechter als mit separaten Zählern.
Da ein Zähler ja auch nur ein Register mit Addierer ist benötigt man für N Zeitnehmer N Register und N addierer (Die Kontrolllogik vernachlässige ich jetzt mal.)
Für deine Methode bräuchte man ein Register und einen Addierer für den Zähler und zusätzlich N Register und N Subtrahierer, also in Summe mehr Ressourcen.

Have a nice synthesis
Eilert