Hi ich muss mittels zweier Lichtschranken, welche im Abstand von z.B. 75mm sind, die Geschwindigkeit einer Kugel messen und auf einem 8stelligem 7Segment Display zur anzeige bringen. Ich hab schon eine Stoppuhr programmiert, weis aber nicht wie eine Division von zwei Fixkommazahlen in VHDL funktioniert. lg Manuel
Hallo, entweder du nimmst den Coregen deiner Wahl um einen Dividierer zu bekommen oder du baust dir selber einen. Lothar Miller hat glaube was auf seiner Homepage http://lothar-miller.de/ oder auf opencores.org gibt es auch ein paar Dividierer.
oooooder: man wählt einfach die Zeitspanne so, dass durch 2^n geteilt werden muss. Und wie man das implementiert, überlasse ich deiner Phantasie ;-)
Erstmal grundsätzlich: brauchst du einen Dividierer? Wenn ja, Stichwort "Non-Restoring Division" auf Google. Vielleicht kannst du dir Gleichungen aber auch soweit vorberechnen, dass du nur mit einem ROM für Konstanten auskommst. Misst also z.B. einen Zählerstand von xxx, guckst du in deine Lookuptable/ROM und gibst den entsprechenden Wert aus. Musst diese ja auch nicht für jede Bitstelle des Zählers vorberechnen, da reichen vielleicht die obersten paar Bits aus. Oder du kannst mittels Bitshifts dich annähern. Ist jetzt mal ein Schuss ins Blaue, aber hilft dir vielleicht. Ansonsten Dividierer IP-Core ziehen.
Da D. schrieb: > oooooder: man wählt einfach die Zeitspanne so, dass durch 2^n geteilt > werden muss. Blöd nur, dass der Zählerwert für die Kehrwertbildung im Nenner stehen muss... ;-) Elektro Wuzzi schrieb: > eine Division von zwei Fixkommazahlen Festkommazahlen sind allerdings unnötig, wenn man die Skalierung mit ein wenig Nachdenken geschickt wählt. Dann bekommt man die Geschwindigkeit z.B. in zehntel km/h und muss nach Umrechnen in eine BCD Zahl nur noch den richtigen Punkt auf der Anzeige leuchten lassen...
:
Bearbeitet durch Moderator
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.