mikrocontroller.net

Forum: FPGA, VHDL & Co. Integer Vektor ausgeben


Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich möchte 10 Integerwerte ausgeben, die in einem Block berechnet werden 
und dann an einen anderen Block übergeben werden sollen.

Kann ich das so machen das ich ein 1D Array von 10 Integern erstelle und 
das als Ausgang in der Entity deklariere.

Ich dachte dabei an so was in der Form:

ENTITY Look_up_table is
  port(  Zeile: IN   std_logic_vector(1 to 6);
            PWM_in_init: array (1 to 10) of integer(0 to 4096)
        );
end Look_up_table;

Kann mir jemand weiterhelfen, bin in VHDL leider noch nichts o ganz fit?
Vielen Dank

Autor: mac4ever (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Damit Du ein Array im Port nutzen kannst, musst Du einen Type 
definieren.
Z.B.
type pwm_array is array(9 downto 0) of integer range 0 to 4095;
Also einfach ein Package beschreiben und diesen Typ dort definieren. 
Anschließend das Package in deinen Modul-Code inkludieren ( use work. 
... ). Damit ist der Typ nun bekannt und kann auch in der Portdefinition 
genutzt werden. Ob sich das allerdings auch synthetisieren lässt kann 
ich Dir nicht sagen.
Ich würde eher einen std_logic_vector nutzen. Und btw. fang die Vetoren 
lieber immer bei 0 an ... also 0 to 5 anstatt 1 to 6
Das entspricht dann also
port(
 Zeile: IN   std_logic_vector(0 to 5);
 pwm_in_init : in std_logic_vector(0 to 9*12-1)
);

 0-11 = array(0)
12-23 = array(1)
24-35 = array(2) ... usw

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

Bewertung
0 lesenswert
nicht lesenswert
> Und btw. fang die Vetoren lieber immer bei 0 an ...
> also 0 to 5 anstatt 1 to 6
>> Zeile: IN   std_logic_vector(0 to 5);
Und noch besser:
setze die höchstwertige Stelle eines Vektors immer links (wie auch im 
anderen Zahlensystemen so üblich).
 Zeile: IN  std_logic_vector(5 downto 0);

Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Hilfe

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.