(others => '0')

Moderator (Firma: Titel) Persönliche Seite #1698726
Lesenswert?

>> Wiso geht das nicht?
>> s_mem <= (X"33333", others => '0');
Woher soll der Synthesizer wissen, wohin die x"33333" in den Vektor 
gehören?

> probier mal
> s_mem <= (X"33333", (3 => '0'));
Das wird nicht gehen: damit würde nur das 3. Element definiert...

Das dürfte gehen, hier ist alles definiert:
s_mem <= (22 downto 3 => X"33333", others => '0');
Gast #2947848
Lesenswert?

Marcus Harnisch schrieb:
1
s_mem              <= (others => '0');
2
s_mem(22 downto 3) <= x"33333";

Sorry, dass ich einen so alten Thread ausgrabe, aber das gleiche Problem 
wie der Fragensteller hatte ich auch gerade.

Bei dem oben zitierten VHDL-Code meckert ModelSim allerdings:
s_mem sei ja schon "als Ganzes" definiert.
Für mich ist das auch irgendwo nachvollziehbar, da diese spezielle 
Stelle des Signals nicht zwei verschiedene Werte zur gleichen Zeit 
annehmen kann.

Abhilfe schafft da glaube ich nur:
1
s_mem(2 downto 0)  <= (others => '0');
2
s_mem(22 downto 3) <= x"33333";

Ich lasse mich aber auch gerne eines Besseren belehren.

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