Frage zu VHDL code

Gast #2258889
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.
Gast #2258959
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?
Gast #2258984
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
Gast #2258994
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren