www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Vector mit einem ENABLE Signal verUNDen


Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

wie kann ich in vhdl einen std_logic_vector(15 downto 0) mit einem 
einzigen Signal verUNDen, ohne dabei jedes element des vectors mit einem 
normalen "and" mit diesem signal zu verbinden?
also wie kann ich das mit einem kurzen "befehl" machen?

geht sowas in vhdl oder muss ich doch jedes signal einzeln verbinden bzw 
das ganze in einer if abfrage machen?


mfg

Andi

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wie kann ich in vhdl einen std_logic_vector(15 downto 0) mit einem
> einzigen Signal verUNDen
Bitte genauer. Man kann nicht einfach so 1 Bit mit 1 Vektor verunden. Da 
psst die Breite nicht zusammen.

Oder meinst du das:
Wenn das Signal '0' ist, dann soll der Vektor "00...00" sein?
Dann geht es so:
   Ausgangsvektor <= Eingangsvektor when DasSignal = '1' else "000000000";

Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ja sowas meinte ich. diese lösung hatte ich auch schon im kopf. 
allerdings dachte ich eher an einen befehl der eben alles auf einmal 
verundet.

naja diese lösung ist denk ich besser.

danke

Andi

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, ich kann mir das manchmal nicht verkneifen. Das Folgende ist 
off-topic und ich bitte schonmal im voraus um Entschuldigung. Aber wie 
würdest Du das in C schreiben? So:

ausgang = signal ? eingang : 0;

Und genau so schreibt man das auch in Verilog. Da muss man dann auch 
keine Nullen abzählen.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald Flügel schrieb:

> Da muss man dann auch keine Nullen abzählen.
Ausgangsvektor <= Eingangsvektor when DasSignal = '1' else (others => '0');

So auch nicht. :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.