Hallo, ich habe mal wieder eine tolle Aufgabe von unserem Prof bekommen und bin an einem Punk am verzweifeln. Ich habe einen Geschwindigkeitsweg in RPM, Wertebereich 0..9999 und soll den auf nen Display bringen. Also muss ich den in ASCII wandeln. Raus kommen soll es am ende als bit_vector(31 downto 0), also ein Zeichen 8 Bit und 4 Zeichen insgesamt. Als Port habe ich so etwas: speed : in integer; dispStr : out bit_vector(31 downto 0); Ich bin auf die Funktion integer'image() gestoßen, die scheint so ziemlich genau das zu machen was ich will, jedoch kommt da nen string raus. Wie wandle ich nun den string in ein bit_vector oder gibts da noch ne bessere Möglichkeit?
Also ich habs grade mal aus der Verzweiflung heraus mit einer riesiegen Look-Up Table probiert... keine gute Idee, habe maximal 2000 Werte genommen und er ist nach 5 Min immer noch am synthetisieren...
Fabian S. schrieb: > an einem Punk am verzweifeln Ja gibts denn sowas? Fabian S. schrieb: > Ich habe einen Geschwindigkeitsweg in RPM Was hast du? Fabian S. schrieb: > Ich bin auf die Funktion integer'image() gestoßen, die scheint so > ziemlich genau das zu machen was ich will Du willst das aber letztendlich synthetisieren? Falls ja: sieh mal nach, welche Attribute dein Synthsizer überhaupt umsetzen kann, Die, die ich kenne tun sich mit 'image recht schwer... Fassen wir die Aufgabe mal kurz zusammen: Du willst (wie zigtausend andere vor dir) eine Zahl in eine ASCII-Zeichenkette umwandeln. Das geht dann i.A. über einenkleinen Umweg: Integerzahl (oder ein Vektor, der eine Zahl darstellt) --> BCD --> ASCII http://www.lothar-miller.de/s9y/archives/34-Vektor-nach-BCD.html Und wenn du dann die BCD-Werte zwischen 0..9 erzeugt hast, mußt du nur eine ASCII-'0' dazuaddieren. Für Extreme gibts die Lösung auch kombinatorisch: http://www.lothar-miller.de/s9y/archives/67-Vektor-nach-BCD-kombinatorisch.html > Also ich habs grade mal aus der Verzweiflung heraus mit einer riesiegen > Look-Up Table probiert... Das macht nur bei kleinen Zahlen (z.B. char 0..255) Sinn: http://www.lothar-miller.de/s9y/archives/33-Byte-nach-BCD.html
Ach du Sch**** :D Die Lösung in kombinatorischer Logik sieht übersichtlicher aus, auch wenn ich praktisch nichts davon verstehe. Kurze Frage da nochmal zwischendurch was die for Schleifen angeht: Werden die dann parallel in den Prozessor gegossen oder wie kann man sich das vorstellen? Und ich nehme mal an, dass das am Ende nen riesiger "Code" wird? Ohh man... ich weiß ja nicht. Die Vorbereitungszeit zu Hause pro Person ist auf 4 Stunden festgelegt, plus 4 Stunden im Labor, und nochmal 4 Stunden Nachbereitung. Ich wäre sicher nicht in 4 Stunden auf das da gekommen und das ist ja auch nur ein kleiner Teil der Aufgabe :( Der ist echt nicht mehr ganz dicht... Wie auch immer, danke dafür, ich werde mir das mal genauer anschauen und hoffen, dass ich das irgendwie verstehe und nachbauen kann :P Vielleicht übernehme ich es auch einfach und geb ne Quelle an, ist zwar nicht ganz Sinn und Zweck der Sache aber was soll ich machen. Edit: Ganz vergessen, ich bin mit dem integer'image Kram etwas weiter. Was meinst du mit welche Attribute mein Synthese Dingens unterstützt? Was sind Atribute und wo kann ich das sehen was er kann? Ich habe hier Xilinx ISE 12.
Fabian S. schrieb: > Kurze Frage da nochmal zwischendurch was die for Schleifen angeht: > Werden die dann parallel in den Prozessor gegossen oder wie kann man > sich das vorstellen? Und ich nehme mal an, dass das am Ende nen riesiger > "Code" wird? Ich meine, genau das auf meiner HP erwähnt zu haben... :-/ Immerhin ist der Ressourcenverbrauch extrem hoch und die Durchlaufzeit jenseits von gut&böse... Fabian S. schrieb: > 'image ist ein Attribut, 'event ist ein Attribut, 'pos ist ein Attribut... Alles, was hinter einem Signal mit ' angehängt wird, eben. Fabian S. schrieb: > Der ist echt nicht mehr ganz dicht... Naja, die Zeitavorgaben scheinen mir auch recht knapp angesetzt zu sein...
Alles klar. Ich habe nun deinen Quelltext genommen, der der nicht in kombinatorischer Logik gemacht ist. Aber selbst der ist zu groß für meinen kleinen Test CPLD ;) ERROR:Cpld:837 - Insufficient number of macrocells. The design needs at least 256 but only 144 left after allocating other resources. Naja, im Labor haben wir nen Spartan 3, ich hoffe das passt dann. Jetzt muss ich nurnoch meinem Prof klar machen, dass der mal nachdenken soll bevor er sich son Scheiß einfallen lässt :D Vielen Dank erstmal! PS: Hab gerade mal nachgeschaut, es sind sogar nur 3 Stunden Vorbereitung, die offiziell für ein solches Labor eingeplant sind.
Fabian S. schrieb: > Aber selbst der ist zu groß für meinen kleinen Test CPLD ;) Vergiss das gleich wieder mit dem 95144er CPLD. Diese Aufgabe bekommst du darin mit den paar Flipflops nie und nimmer gelöst.
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.