Hallo, ich bin ein Neuling in der VHDL Programmierung. Jetzt habe ich das Problem, das Operationen mit Modulo nicht synthetisierbar sind. Deshalb suche ich nach einer Möglichkeit, den Modulo Operator durch etwas anderes zu ersetzen, z.B. eine Schleife. Meine Versuche das zu erstzen haben bisher noch zu keinem konkreten Ergebniss geführt. In diesem konkreten Fall soll ich die einzelnen Stellen einer 6 stelligen Integer Zahl auswerten und übergeben. Mit Modulo soweit ja kein Problem: HT <= X /(10**5); ZT <= (X mod (10**5))/(10**4); T <= (X mod (10**4))/(10**3); H <= (X mod (10**3))/(10**2); Z <= (X mod (10**2))/(10**1); E <= (X mod 10); Wie kann ich das denn so, z.B. in eine while-Schleife, schreiben? Ich habe daran gedacht, pro Stelle die dementsprechende Potenz abzuziehen und die Abzüge mitzuzählen. Also z.B. 321456 - 100000 solange x < 100000 ist. Wie übergebe ich denn dan meine Zählvariable? Vielen Dank an alle für ihre Mühen Viele Grüße Daniel
Daniel H. wrote: > ich bin ein Neuling in der VHDL Programmierung. > Jetzt habe ich das Problem, das Operationen mit Modulo nicht > synthetisierbar sind. Deshalb suche ich nach einer Möglichkeit, den > Modulo Operator durch etwas anderes zu ersetzen, z.B. eine Schleife. Modulo ist das Abfallprodukt einer Division. Und Divisionen sind (so ohne weiteres) nicht synthetisierbar. Wenn Zeit für dich kein Problem darstellt, dann machs doch über Subtraktionen: nimm die Ausgangszahl, und zieh solang 100000 ab, bis die Zahl negativ wird (unterläuft) und zähl die HT mit. Nimm dann den letzten Wert vor dem Unterlauf und zieh 10000 ab, bis die Zahl negativ wird und zähl dabei die ZT mit. Nimm dann die letzte Zahl vor dem Unterlauf und... Dazu ist natürlich eine Statemachine nötig, die das Ganze steuert. Aber die würdest du für eine Division auch brauchen. Da ist also nichts mit "einfach so hinschreiben" ;-)
Wenn das ein Zähler ist über den zu volle Kontrolle hast, dann könntest du ihn auch gleich im BCD-Format zählen lassen. Ansonsten z.B. mal hier schauen: Beitrag "Zahlenausgabe" INT nach BCD geht auch ohne Modulo und Division.
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.