"others=>" gut, aber wie bestimmte?

Gast #203595
Lesenswert?
• ▲
▼
Hallo!
Weis hier jemand wie man bei einer Signalzuweisung bestimmte Werte
zuweist?
Im prinzip was ich machen moechte ist das:
mein_16_bis_32_bit_signal <= (2 downto 0=>"010", others=>'0');

So geht es schon mal nicht, aber ich meine ich haette etwas aehnliches
schon mal zum laufen gebracht.
Danke!
Zen
Gast #203596
Lesenswert?
• ▲
▼
Mein VHDL-Buch sagt, dass die Zuweisungen wie

byte_a <= ('0', '0', '0', '1', '1', '1', '1', '0');
byte_b <= ( 4 | 3 | 2 | 1 => '1', others => '0');
byte_c <= ( 4 downto 1 => '1', others => '0');

äquivalent sind.

mfG,
                           ejd
Gast #203600
Lesenswert?
• ▲
▼
"mein_signal" ist eine Addresse, oder besser gesagt die oberen bits
einer Addresse die konstant sind. Diese Addresse soll nun bei einem
Reset initialisiert werden, und zum testen wollte ich halt auch was
anderes als nur 0 probieren.
Warum fragst du?
Zen
Gast #203606
Lesenswert?
• ▲
▼
Also das "zusammenschieben" (ich nenne es gerne zusammenbasteln :-))
ist die beste möglichkeit wenn man signale außer alles 0 oder 1 braucht
...
vor allem wenn man mit nibbles arbeitet ...
für einen 13 bit-wert z.b. bei dem das erste bit 1 sein soll ists am
einfachsten '0' & X"001" zu schreiben :-) (vor allem erspart man
sich das zählen :-)))
Gast #203607
Lesenswert?
• ▲
▼
wenn die Bitbreite über ein Generic definiert ist,
dann sollte doch folgendes gehen:

signal fill_zero : std_logic_vector(Gen_def-3 downto 0);
signal mein_signal : std_logic_vector(Gen_def downto 0);

...
begin

...
fill_zero <= (others=>'0');

...
mein_signal <= ("101" & fill_zero);

hilft das ?

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