mikrocontroller.net

Forum: FPGA, VHDL & Co. [Verilog] jedes 8.Bit aus Register auswählen


Autor: Andreas Auer (aauer1) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich hab hier ein kleines Problem mit Verilog... und zwar möcht ich gerne 
aus einem 2048 Bit Register jedes 8. Bit mit einem OR verknüpfen. Wenn 
man das ausführlich ausschreiben muss, dann wird das eine ziemlich lange 
"Wurscht". Gibts da vielleicht eine Möglichkeit, dass man das irgendwie 
kurz hinschreibt (in Verilog)??
Zusätzlich wär so eine Lösung auch interessant wegen der 
Parametrisierbarkeit.

Danke schonmal,
Andreas

Autor: Schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenn Verilog nicht, aber gibt es da keine Möglichkeit, das über ne 
Schleife zu lösen, in der du den Index deines Vektros immer um 8 
inkrementierst und so "sequentiell" die Bits ODER-verknüpfst?

Was die Synthese daraus macht, müsstest du dir allerdings genauer 
anschauen.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Andreas Auer

>Ich hab hier ein kleines Problem mit Verilog... und zwar möcht ich gerne
>aus einem 2048 Bit Register jedes 8. Bit mit einem OR verknüpfen. Wenn

Ich hab keine Ahnung von Verilog, in VHDL wäre es etwa so machbar.

signal long_vector: std_logic_vector[2047 downto 0);

process (long_vector)
  variable tmp: std_logic;
begin
  tmp :=0;
  for i in 0 to 255 loop
    tmp := tmp or long_vector(i*8);
  end loop;
end process;

MfG
Falk

Autor: Schlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau so meinte ich es auch. Ne andere "sinnvolle" Lösung fällt mir auch 
nicht ein.

Autor: Andreas Auer (aauer1) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Danke für die Antworten. Das mit der Schleife hat tatsächlich geklappt. 
Ich hab am Anfang auch an eine Schleife gedacht, jedoch war ich der 
Meinung, dass der Synthesizer das nicht verstehen würde. Aber ich wurde 
eines besseren belehrt. Wunderbar!

Besten Dank,
Andreas

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.