Hallo, ich wuerde geren in einem Vektor v ein Bit an einer Stelle ersetzen. Also z.B. so was: Anfangswert: v <= "00000"; ... ... ... v(2) <= "1"; dann sollte das Ergebnis so aussehen: "00010" Geht das wenn ich nur die Stelle kenne? Wenn ich das so naiv mache also Vektor(Stlelle) <= ... dann bekomme ich folgende Fehlermeldung: "Index value(s) does not match array range, simulation mismatch." Gruss
Danke fuer die Antwort, so hab ich das gemacht, klappt aber immer noch nicht...
Paul schrieb: > klappt aber immer noch > nicht Ich bin mir ziemlich sicher, dass das nicht die exakte Fehlermeldung ist...
Paul schrieb: > klappt aber immer noch nicht... Vermutlich hast du jetzt mehrere Treiber auf dieses Signal. Aber das kann man nur raten... :-/
Paul schrieb: > Wenn ich das so naiv mache also Vektor(Stlelle) <= ... > > dann bekomme ich folgende Fehlermeldung: > > "Index value(s) does not match array range, simulation mismatch." "Stlelle" ist dein Index. Und der muß vom Typ integer sein. Falls es unsgined ist kannst Du mit "Vektor( to_integer( Stlelle))" konvertieren. Falls Du (warum auch immer) std_logic_vector verwendest muß das ganze so aussehen:
1 | Vektor( to_integer( unsigned(Stlelle))) <= ... |
Duke
Duke Scarring schrieb: > Falls Du (warum auch immer) std_logic_vector verwendest muß das ganze so > aussehen: Dazu muss aber dann auch die numeric_std.all verwendet werden statt der alten Synopsys-Libs... http://www.lothar-miller.de/s9y/archives/14-Numeric_Std.html
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.