Forum: FPGA, VHDL & Co. Frage zu VHDL code


von noname (Gast)


Lesenswert?

Hallo,

mir ist nicht klar, was folgender code macht. Ich habe auch leider keine 
Möglichkeit den Code zu testen.

p: process(x)
variable help: Bit_vector(n-1 downto 0);
begin
help := '0' & x(n-1 downto 1);
for i in 0 to n-1 loop
y(i) <= x(i) xor help(i);
end loop;
end process;


ich stelle mir das ganze so vor:

x:    X2  X1  X0
   &  1   0   1

help: X2  0   X0

die xor verknüpfung ist klar.

von noname (Gast)


Lesenswert?

kann keiner helfen?

von Tilo (Gast)


Lesenswert?

Ist doch eigentlich recht übersichtlich.

help ist X (Abgesehen vom Randwert), allerdings um ein Bit verschoben. 
Danach werden die Elemente von Vektor X mit denen von Help 
xor-Verknüpft.
Damit ist das entsprechende Element von Vektor y 1, wenn sich zwei 
aufeinanderfolgende Elemente von Vektor x unterscheiden.

Deine Vorstellung verstehe ich nicht ganz. Von wo nimmst du den Vektor 
(101) her?

von Tilo (Gast)


Lesenswert?

Nachtrag:
Der Wert ist natürlich nur dann eins, wenn sie sich unterscheiden und 
mindestens einer 1 ist.

von noname (Gast)


Lesenswert?

Hallo,

danke für deine Hilfe!

auf den wert 101 komme ich da "x(n-1 downto 1)" die Bits von X2 und X1 
"rausgreift", diese mit '0' verknüpft, also nur den Wert an gleicher 
Stelle wie X1 auf '0'setzt

von noname (Gast)


Lesenswert?

Tilo Lutz schrieb:
> ein Bit verschoben.

um links oder um rechts?

von Tilo (Gast)


Lesenswert?

Nein, das und ist in diesem Fall keine Bitweise Verundung. Damit werden 
die beiden Einzelvektoren zu einem gemeinsamen Vektor verknüpft. Schau 
dir in der Verknüpfung der Einzelvektoren die Zahl der Elemente an, dann 
wirst du es sofort sehen. Damit ergibt sich auch deine Frage nach der 
Schieberichtung.

von noname (Gast)


Lesenswert?

super vielen dank!. Jetzt passt es danke!

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.