Forum: FPGA, VHDL & Co. Ich bekomme das mit der Umwandung nicht hin.kapier ich nicht.


von peter (Gast)


Lesenswert?

Hmmm.., es geht mit der Umwandlung nicht so..., kapier ich wohl nie.

Ich bekomme den "wert" hier nicht rein:
ascii_rom(RomAddr_v)<= wert ?????? ;

Da komme ich wieder nicht klar.
Wie geht das mit Integer dort und Unsigned?

Danke.
Gruss


signal RomAddr_v  : integer range 0 to 9599 := 0;
signal wert  : integer range 0 to 255 := 129;

-----------------------------------------------------------
type Rom is array (0 to 9599) of unsigned (7 downto 0);
signal ascii_rom : Rom := (
  x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff",
  x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff",
  x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff", x"ff",
  ..............

  RomAddr_v <=RomAddr_v +1;
  ascii_rom(RomAddr_v)<= wert ?????? ;
---------------------------------------------------------

von Schlumpf (Gast)


Lesenswert?

Welchen Datentyp haben die Werte im ROM?
Welchen Datentyp hat Wert?

Passt das zusammen?

Dein Compiler spuckt dir sicher eine Fehlermeldung aus.
Was steht da drin?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

peter schrieb:
> Ich bekomme den "wert" hier nicht rein:
> ascii_rom(RomAddr_v)<= wert ?????? ;
Naja, es ist zwar nur eine Namensgebung, aber in ein ROM wird 
normalerweise nicht reingeschrieben...

peter schrieb:
> ascii_rom(RomAddr_v) <= wert ?????? ;
ascii_rom ist ein "unsigned (7 downto 0)". Also musst du aus dem Integer 
"wert" einen unsigned Vektor machen.

Nimm die Übersicht dort, druck sie dir aus und häng sie an den 
Arbeitsplatz
(eine Woche später kennst du die 4 Konvertierungen und kannst den Zettel 
wegwerfen):
http://www.lothar-miller.de/s9y/categories/16-Numeric_Std

Wie kommst du dort von Integer nach Unsigned?

Richtig: mit der Funktion to_unsigned(). Der muss man dann noch die 
Länge des Zielvektors angeben und fertig. Heraus kommt also sowas:

ascii_rom(RomAddr_v) <= to_unsigned(wert,8);

: Bearbeitet durch Moderator
von Schlumpf (Gast)


Lesenswert?

Lothar Miller schrieb:
> Naja, es ist zwar nur eine Namensgebung, aber in ein ROM wird
> normalerweise nicht reingeschrieben...

Darauf wollte ich erst gar nicht eingehen ;-)

von peter (Gast)


Lesenswert?

Jup, danke jetzt funktioniert es.
Habe deine Grafik mal ausgedruckt.

Gruss

von Karl Klarsicht (Gast)


Lesenswert?

Lothar Miller schrieb:
> Nimm die Übersicht dort, druck sie dir aus und häng sie an den
> Arbeitsplatz
> (eine Woche später kennst du die 4 Konvertierungen und kannst den Zettel
> wegwerfen):
> http://www.lothar-miller.de/s9y/categories/16-Numeric_Std

Eine komplette Übersicht findet sich hier:
 http://www.mimuw.edu.pl/~marpe/pul/card_1164.pdf

Ebenso für den VHDL-Syntax:
 http://www.mimuw.edu.pl/~marpe/pul/card_vhdl.pdf

MfG

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Die zweite Seite der "1164 QRC" braucht man nicht ausdrucken, das wäre 
rausgeworfenes Papier. Denn dort sind nur die alten Synopsis 
Bibliotheken drauf. Und zu denen kann ich nur sagen: Finger weg!

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
Noch kein Account? Hier anmelden.