Forum: FPGA, VHDL & Co. Bit anordnung to und downto


von Thomas (Gast)


Lesenswert?

Ich habe mal eine Frage was die Anordnung der Bits bei to und downto 
betrifft.

Wenn ich jetzt Ein signal habe:

signal  a :  std_logic_vector(7 downto 0);

und schreibe a<=x"51";
dann habe ich den Bitvektor 0101 0010

was passiert jetzt, wenn ich schreibe

signal  a :  std_logic_vector(0 to 7);

a<=x"51";   ?

Habe ich dann als Bitvektor 0101 0010   oder 0100 1010?

Das ist mir nicht so ganz klar.

von Duke Scarring (Gast)


Lesenswert?

Thomas schrieb:
> Wenn ich jetzt Ein signal habe:
>
> signal  a :  std_logic_vector(7 downto 0);
>
> und schreibe a<=x"51";
> dann habe ich den Bitvektor 0101 0010
Genau:
a(7) = '0'
a(6) = '1'
a(5) = '0'
a(4) = '1'
a(3) = '0'
a(2) = '0'
a(1) = '1'
a(0) = '0'


> was passiert jetzt, wenn ich schreibe
>
> signal  a :  std_logic_vector(0 to 7);
>
> a<=x"51";   ?
>
> Habe ich dann als Bitvektor 0101 0010   oder 0100 1010?
Du hast "0101 0010". So wie Du es hingeschrieben hast.
Allerdings sind die Indizes andersrum:
a(0) = '0'
a(1) = '1'
a(2) = '0'
a(3) = '1'
a(4) = '0'
a(5) = '0'
a(6) = '1'
a(7) = '0'

Duke

von derLars (Gast)


Lesenswert?

Nur damit du nicht auch noch darüber stolperst:

"0101 0010" = x"52"

Gruß,
derLars :)

von Thomas (Gast)


Lesenswert?

derLars schrieb:
> "0101 0010" = x"52"

ja :D   verpeilt ;)  danke erstmal

von Klaus (Gast)


Lesenswert?

Regel bei VHDL:  Es wird immer left an left und right an right 
zugewiesen. Egal, welche Indizes die Elemente im Vektor haben.

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


Lesenswert?

Das kann man durchaus auch nutzen, um eine Bitreihenfolge "umzudrehen":
http://www.lothar-miller.de/s9y/categories/49-RS232-IO
Man sollte sich diesen Trick aber im Code deutlich markieren...

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.