Geschwindigkeit messen

Gast #1008020
Lesenswert?

Hallo!

Ich würde gern die Zeit messen, die mein FPGA für eine bestimmte Aktion 
benötigt. Spontan würde mir einfallen, einen eigenen Prozess dafür zu 
spendieren, der pro Takt einen Zähler inkrementiert und zusätzlich 
sensitiv auf das Signal ist, das meine Aktion startet und auf das 
Signal, das anzeigt, dass meine Aktion beendet ist. Durch den Zähler und 
die Taktfrequenz, kann ich mir ja dann die benötigte Zeit errechnen, 
oder?

Gibt es noch andere (bessere?) Möglichkeiten die Geschwindigkeit zu 
messen, oder ist das wie oben beschrieben die sinnvollste Lösung?
Gast #1008034
Lesenswert?

du schreibst von einem prozess (ich kann noch nicht VHDL) aber wenn das 
ein zeitilicher "ablauf" ist und du über ein oszilloskop verfügst, 
kannst du anfang des prozesses ein portpin auf 'high' setzen und am 
schluss au 'low'; und dann mit dem oszilloskop messen wie lange der pin 
auf 'high' ist.
#1008051
Lesenswert?

Ja, es gibt eine bessere Lösungen :

a) Deine Aktion ist getaktet :
Dann verwende eine Simulator um zu sehen, wieviele Takte benötigt 
werden.

b) Deine Aktion ist kombinatorisch :
Dann verwende die Analysetools des FPGA-Herstellers zum Berechnen der 
Durchlaufzeit. Diese hängen sehr stark von Temperatur, 
Versorgungsspannung und Bauteiltolereanzen ab, sodass nur diese 
berechneten (!) Werte garantiert sind. Eine Dimensionierung aufgrund 
irgendwelcher Messwerte von Durchlaufzeiten ist unprofessionell und 
höchst riskant.
Gast #1008078
Lesenswert?

@ Gast: Es geht um die Auswertung einer (großen) Matrix.

@ Klaus Falser: Ja, meine Aktion ist getaktet. Simuliert habe ich 
bereits mit ModelSim. Aber es ist eben nur eine Simulation... Da ich mir 
nicht sicher bin, wie verlässlich  die Simulation ist, wollte ich die 
Geschwindigkeit auch nochmal "live" messen.
Moderator (Firma: Titel) Persönliche Seite #1008099
Lesenswert?

> Ja, meine Aktion ist getaktet.
> Da ich mir nicht sicher bin, wie verlässlich die Simulation ist...
Dann solltest du morgens aber auch kontrollieren,
ob die Erde noch rund ist ... ;-)

Die Simulation ist genauso verlässlich, wie du das, was du simuliert 
haben willst, beschrieben hast. Wenn du natürlich die falschen Stimuli 
auf die Simulation gibst, oder deine Schaltung falsch beschrieben hast 
(Übergang zwischen Taktdomänen) dann verhält sich die Implementation 
anders als die Simulation.
Allerdings hilft dir dann auch eine Laufzeitmessung nicht wirklich 
weiter...
Gast #1010373
Lesenswert?

Nur mal so nebenbei gefragt: Was ist denn der Unterschied zwischen einer 
"Timing Simulation" und einer "normalen" Simulation?

Ich würde bei getakteten Prozessen einfach die Durchläufe "per Hand" 
zählen. Sprich: Durch logisches Überlegen müsste man eigentlich auf die 
Anzahl der Takte kommen, wenn man weiß was man programmiert hat.
#1010400
Lesenswert?

Klaus Falser wrote:
> Blödsinn, man braucht wirklich keine Timing-Simulation um festzustellen
> wieviel Takte eine "Aktion" braucht !!!

Richtig, man hat´s ja selber sequenziell beschrieben, dann weiß man, 
wieviele Takte es benötigt, oder man hat eine kombinatorische Logik, 
dann bekommt man durch die Timing-Simulation raus, wieviel Zeit 
meinetwegen die Addition benötigt, bis alle Ausgänge ihren Pegel 
angenommen haben. Aber ich glaub, den Unterschied hat der Fragesteller 
noch nicht begriffen. Wahrscheinlich ein C-Programmierer....
#1010404
Lesenswert?

Hansi wrote:
> Nur mal so nebenbei gefragt: Was ist denn der Unterschied zwischen einer
> "Timing Simulation" und einer "normalen" Simulation?

Die "Timing Simulation" ist umgangsspachlich für die Post-Route 
Simulation, damit kann man sehen, ob der wirkliche Chip mit dem fertig 
gerouteten Design so funktioniert, wie man das beschrieben hat. Oder ob 
eventuell durch Gatter-Laufzeiten o.ä. irgendwelche Timings 
durcheinander kommen.
Gast #1010405
Lesenswert?

bei ner normalen simualtion werden die gatterlaufzeiten nicht beachtet. 
sprich ein kombinatorischer pfad wird dort quasi sofort ohne meßbaren 
zeitverlust durchlaufen.
bei einer timing simulation werden diese Gatterlaufzeiten jedoch mit 
einberechnet, wodurch man so erkennen kann, ob z.b. ein kombinatorischer 
Pfad zu lang ist um mit der restlichen synchronen schaltung 
zusammenzuarbeiten. Wenn ein kombinatorischer Pfad nicht zu den 
Taktflanken mit der abarbeitung fertig ist, dann werden falsche werte 
für die weitere berechnung übernommen.
Gast #1012096
Lesenswert?

Eine Timing Simulation zu verwenden, um zu sehen, ob alle 
Gatterlaufzeiten eingehalten werden, grenzt schon an Wahnsinn.
Man hätte bei tausende Pfade die man im Simulator graphisch 
kontrollieren müßte.
Genau für diesen Zweck gibt es den Timing Analyzer, der die alle 
angegebenen Pfade überprüft. Dies nennt man statische Timing-Analyse, 
weil die Durchlaufzeiten nicht von den Signalverläufen abhängen.

Man sollte den Anfängern nicht noch auch unnötige Blödsinne beibringen, 
VHDL ist für manche knifflig genug ...

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