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.
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?
Nachtrag: Der Wert ist natürlich nur dann eins, wenn sie sich unterscheiden und mindestens einer 1 ist.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.