www.mikrocontroller.net

Forum: FPGA, VHDL & Co. array definition


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe mal eine Frage zur Definition eines Arrays.
Für ein Filterdesign auf einem FPGA werden parallel 32 8Bit Zahlen
ausgegeben. Kann man in der entity in vhdl ein Array definieren das es
mir ersparrt, 32 Ausgänge zu definieren? Ich kenne sowas nur aus der
architecture wo das ganze so aussieht:
xxx reg_type is array (0 to 31) of STD_LOGIC_VECTOR (7 downto 0);
Bin für jeden Tip dankbar,
Greetz

Autor: Daniel R. (daniel_r)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist schwer daran, in die entity
"xy : out std_logic_vector(31 downto 0);"
zu schreiben?

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt ein package schreiben, das eine Type für Dein Array definiert.
Dieses package verwendest Du im File mit deinem Filter und dort wo Du
das Filter verwendest.
Damit ist die Type an beiden Orten bekannt.
Du kannst dann eine entity Filter schreiben, welches einen Paramter von
diesem Type verwendet.

Gruß
Klaus

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Klaus, wenn ich dich richtig verstehe willst du sowas hier
machen?!

package myPackage is
  constant width: integer;
  subtype FilterTap is std_logic_vector(width-1 downto 0);
end;

type Filter_Out is array(depth-1 downto 0) of FilterTap;

oder falsch verstanden?
Dann weiss ich immer noch nicht wie du in der entity die
Port-deklaration (out) schaffst..oder steh ich gerade auf dem
schlauch?

Und an deinen Vorredner: Das nächste Mal bitte eine Minute Denkpause
vor dem nächsten Beitrag, ok? Wer von "Was ist schwer daran" redet,
sollte doch 8 Zeilen Text nachvollziehen können oder?

Greetz

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die type Filter_Out gehört noch ins package.

Wenn Du dann "use myPackage.all;" an den Anfang stellst, dann
solltest Du schreiben können :

entity Filter is
port (
   ...
   Taps : in Filter_Out;
   ...
   );
end;

Syntax-Fehler im Beispiel möglich, aber das Prinzip sollte stimmen.

Gruß
Klaus

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entschuldigung,
Taps ist bei Dir aus Ausgangsparamter, also

entity Filter is
port (
   ...
   Taps : out Filter_Out;
   ...
   );
end;

Autor: Daniel R. (daniel_r)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ja. Hab deine 8 Zeilen nicht wirklich gelesen.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar..funktioniert..
Dankeschön und schönes Wochenende zusammen

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.