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


von Martin K. (mkohler)


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.

von Mathi (Gast)


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:
1
library ieee;
2
use ieee.std_logic_1164.all;
3
4
package Reg_type_array is
5
  type Reg_type is array(7 downto 0) of std_logic_vector(7 downto 0);
6
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.

von Martin K. (mkohler)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.