Forum: FPGA, VHDL & Co. buss(1 to 1)


von -daniel- (Gast)


Lesenswert?

quick question an euch

warum lässt sich das nicht zuweisen?

buss: bit_vector(1 to 3) := b"000";
c: bit;

c <= buss(1 to 1);

hab das in dem Buch gesehen, hab mich noch gewundert
und jetzt beim ausprobieren klappt das nicht.

Klar kann man buss(1); machen
Aber was ist falsh an buss(1 to 1)?

Werde mal nochmal im Buch nachschauen

von **** (Gast)


Lesenswert?

c <= buss(1);

von FPGAküchle (Gast)


Lesenswert?

Grob gesagt alles mit einem range (also "(a to b)") ist ein (Teil
eines) Feld(es), während alles mit einem index (also "(a)") ein
Element des Feldes und somit kein Feld selber ist.

Also range -> std_logic_vector
index          -> std_logic;

Und dank strikter Typüberprüfung passt ein std_logic_vector nicht in
ein std_logic.
Auch wenn nur ein Element ausgewählt ist.

von -daniel- (Gast)


Lesenswert?

wenn die Deklaration so aussieht

c: bit_vector(1 to 1) := "1";

dann funktioniert auch

c <= clk(1 to 1);

wahrscheinlich kommt als Typ von Slice auch ein vector
also wie FPGAküchle gesagt hat

ich schaue mal im Buch in welchem Kontext es auftrat
wenn ich finde poste ich nochmal kurz

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.