drivingsouth
Registrierter Benutzer
Beiträge: 1
|
Erstellt: 22.09.06, 11:37 Betreff: Suche eine art NOP Befehl
drucken
Thema drucken weiterempfehlen
|
|
|
Hallo zusammen,
gibt es in VHDL eine Art "do-nothing" Befehl?
Es geht um folgendes:
Ich habe ein Konstrukt der Form
architecture behaviour of mux5 is begin process(sel) variable error : bit; begin case sel is when "000" => output <= i0; when "001" => output <= i1; when "010" => output <= i2; when "011" => output <= i3; when "100" => output <= i4; when others => error:='1'; --just a kind of NOP-Operation end case; end process; end behaviour;
nun finde ich die Lösung im "others" case nicht besonders elegant. Wenn ich aber den others case weglasse, dann bekomme ich beim Übersetzen eine Fehlermeldung, daß z.B. nur 4 von 83 Fällen betrachtet wurden. Sel ist vom Typ std_logic_vector.
Gruß, Christoph
|
|
DaMicha
Stammgast
Beiträge: 27 Ort: Rostock
|
Erstellt: 22.09.06, 14:24 Betreff: Re: Suche eine art NOP Befehl
drucken
weiterempfehlen
|
|
|
Hallo Christoph.
Du kannst einfach: when others => schreiben (die Zeile nicht mit einem Semikolon abschließen). Oder when others => null; um deutlicher zu kennzeichnen, dass hier auch wirklich nichts gemacht werden soll. So mach ich's immer.
Zu beachten ist, dass Du Dir so ein Latch in den MUX baust, da bei allen anderen Eingangskombinationen (101 bis 111) der alte MUX Wert gehalten wird. Musst Du Dir überlegen, ob Du das wirklich brauchst, denn eigentlich sollten Latche vermieden werden. Für einen reinen MUX würde when others => output <= "0...0"; gehen ("0...0" je nach output-Bitbreite oder when others => output <= (others => '0'); für beliebige Bitbreiten ).
Gruß DaMicha.
Zitat:
Hallo zusammen,
gibt es in VHDL eine Art "do-nothing" Befehl?
Es geht um folgendes:
Ich habe ein Konstrukt der Form
architecture behaviour of mux5 is begin process(sel) variable error : bit; begin case sel is when "000" => output <= i0; when "001" => output <= i1; when "010" => output <= i2; when "011" => output <= i3; when "100" => output <= i4; when others => error:='1'; --just a kind of NOP-Operation end case; end process; end behaviour;
nun finde ich die Lösung im "others" case nicht besonders elegant. Wenn ich aber den others case weglasse, dann bekomme ich beim Übersetzen eine Fehlermeldung, daß z.B. nur 4 von 83 Fällen betrachtet wurden. Sel ist vom Typ std_logic_vector.
Gruß, Christoph |
[editiert: 22.09.06, 14:29 von DaMicha]
|
|