www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Schieberegister mit Unsigned


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Sepp (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Nabend, ich habe eine Frage. Ich soll ein Schieberegister/Zähler, je 
nach Modus, erstellen. Das Problem ist das das Signal unsigned sein 
muss, nicht Std_Logic. (Vorgabe) Nun erhalte ich aber eine Fehlermeldung 
bei folgendem Ausdruck:


 CYCLESINT<= unsigned(std_logic_vector(CYCLESINT)(3 downto 0) & F)

Fehler:
Prefix of slice name cannot be type conversion (STD_LOGIC_VECTOR) 
expression.

Wie gesagt, ich darf nur kurz auf Std_Logic casten, aber außer F darf 
kein Signal diesen Typ haben.

Danke schonmal!

Autor: Daniel M. (daniel__m)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Du kannst unsigned i.d.R. genauso verwenden wie std_logic_vectoren. Was 
ist F? Ein anderer Vector oder die Hex-Zahl? Falls es die Hex-Zahl ist, 
versuchs mal so:
CYCLESINT<= CYCLESINT(3 downto 0) & x"F";

oder falls Vector
CYCLESINT<= CYCLESINT(3 downto 0) & unsigned(F);

grüße

Autor: Sepp (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Verrückt, es funktioniert. Danke! F war nur ein Bit. Da scheint der Cast 
nicht zu klappen. Ist jetzt ein Unsigned(0 downto 0), nicht schön aber 
egal. Danke nochmal!

Autor: Daniel M. (daniel__m)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
dann sollte es aber ein
CYCLESINT<= CYCLESINT(3 downto 0) & F;
auch tun.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite Flattr this
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Sepp schrieb:
> F war nur ein Bit.
Was für ein Bit? So ein VHDL-Bit:
signal F : bit;

Dann ist es klar: dafür ist keine Konvertierungsfunktion vorhanden. 
Deshalb nimmt der Rest der Welt diese Dinger nicht. Warum nimmst du 
nicht einen std_logic, wie alle anderen? Dann klappts auch mit dem 
unsigned...

> Das Problem ist das das Signal unsigned sein muss, nicht Std_Logic.
Soso, ist es das?
Natürlich ist ein Zähler unsigned, wenn nicht gleich integer. Denn mit 
uneingeschränkten Vektoren rechnet man nicht. Und man sieht: das Problem 
lag (wie allgemein üblich) ausserhalb des geposteten Codes...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net