mikrocontroller.net

Forum: FPGA, VHDL & Co. array in entity port?


Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
In einem bestehenden VHDL Modul werden verschiedene Submodule 
miteinander verknuepft.
Nun habe ich im Register-Submodul 12 Vektoren zu 8bit.
Diese je 8Bit werden aus dem Register-Submodul über das übergeordnete 
Wrapper-Modul auf 8 separate Submodule geführt.

Ich könnte nun im Wrapper-Module 8 separate std_logic_vector(7 downto0) 
definieren und alle zwölf Vektoren separat in das Register Modul führen.

Lieber wäre mir aus Gründen der Übersichtlichkeit jedoch eine 
Möglichkeit, die Vektoren zu einem Array zusammenzufassen und gemeinsam 
in das Register-Modul zu führen.

Das Problem dabei:
Wie und wo definiere ich den Array Type, so dass ich den in der Entity 
des Register Moduls angeben und auch im Wrapper Modul verwenden kann?
Ist da zwingend ein Package nötig (lieber nicht..)

Oder ist es wohl einfacher, die 12 Vektoren trotzdem einzeln zu führen?

Danke für die Antworten.

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da Du den Array-Typ in mehreren Modulen verwenden möchtest, bleibt Dir 
nur ein Package.
Würde aber sehr übersichtlich bei Dir ausfallen:
library ieee;
use ieee.std_logic_1164.all;

package Reg_type_array is
  type Reg_type is array(7 downto 0) of std_logic_vector(7 downto 0);
end package Reg_type_array;

Ich bin mir nicht ganz sicher ob der obige Code so komplett richtig ist, 
weil mir Deine Struktur nicht richtig klar ist.

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathi wrote:
> Da Du den Array-Typ in mehreren Modulen verwenden möchtest, bleibt Dir
> nur ein Package.
Das habe ich befürchtet. Na gut, machen wir das so.

> Würde aber sehr übersichtlich bei Dir ausfallen:
Sieht ganz so auf!

> Ich bin mir nicht ganz sicher ob der obige Code so komplett richtig ist,
> weil mir Deine Struktur nicht richtig klar ist.
komplett richtig - nein. Ich brauche 12 einzelen 8Bit Vektoren. Das 
Anpassen sollte aber gerade so möglich sein ;-)

Die Struktur: ein umfangreiches VHDL Modell, darin enthalten ein Wrapper 
Modul mit mehreren Submodulen.
Vom Register-Submodul gehen alle 12 Vektoren raus und in einzelne 
Submodule als je 8Bit Vektor wieder rein.

Ich versuch das mal so.
Danke für die Rückmeldung

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.