Forum: FPGA, VHDL & Co. VHDL - Deklaration von verwendeten Komponenten


von Tilo (Gast)


Lesenswert?

Hallo

Ich arbeite mich gerade in ISE mit einem Spartan 3 ein. Das 
Anfängertutorial habe ich durch . Mein eigener Code tut auch schon laut 
Simulation das was ich will.

Zu Komponenten hätte ich eine Frage.
Ich will in einer architecture Komponenten verwenden, die ich erstellt 
habe. Das System habe ich verstanden.

In architecture wird die Deklaration der Komponente kopiert. Später wird 
eine Instanz der Komponente angelegt und die Verbindungen verdrahtet.

Was mich an dem Tutorial gewundert hat ist (und auch bei den fertigen 
Cores), dass man die Deklaration der Komponenten vollständig kopieren 
muss. Ist dies nicht ein Punkt, an dem redundante Informationen 
entstehen?
Kann man nicht einfach ein "Include" der Komponente machen, in dem man 
nur den Namen angibt und nicht den ganzen Port kopieren muss?

von Duke Scarring (Gast)


Lesenswert?

Tilo Lutz schrieb:
> Was mich an dem Tutorial gewundert hat ist (und auch bei den fertigen
> Cores), dass man die Deklaration der Komponenten vollständig kopieren
> muss. Ist dies nicht ein Punkt, an dem redundante Informationen
> entstehen?
Ja. Und selbst ich stolpere da gelegentlich mal drüber (nur die Hälfte 
geändert...).
Wenn Du die Komponente mehrfach verwenden willst, dann erstelle am 
Besten ein Package dafür. Dann tauch die Komponentendeklaration nur 
zweimal auf: Einmal in der Komponente und einmal im Package.

> Kann man nicht einfach ein "Include" der Komponente machen, in dem man
> nur den Namen angibt und nicht den ganzen Port kopieren muss?
Alternativ kanst Du folgendes Konstrukt verwenden:
1
instanz_1_meiner_komponente: entity work.meine_komponente
2
  generic map (
3
    ....
4
  )
5
  port map (
6
    ...
7
  );
Statt work kanst Du auch auf andere Bibliotheken verweisen.

Duke

von Mac (Gast)


Lesenswert?

Ja, ich finde die von Duke Scarring beschriebene "direkte 
Instanziierung" auch schöner. Allerdings ist hier die Reihefolge beim 
Kompilieren wichtig: Erst die unteren, dann die oberen Komponenten in 
der Hierarchie.

von Selbi (Gast)


Lesenswert?

Wer von euch verwendet getrennte VHDL-files für configuration und code, 
um Komponenten austauschen / switchen zu können?

von Klaus (Gast)


Lesenswert?

Selbi schrieb:
> Wer von euch verwendet getrennte VHDL-files für configuration und code,
> um Komponenten austauschen / switchen zu können?

Also mir ist das in der Praxis noch nicht untergekommen. Ist doch eher 
ein akademisches Feature.

von Klaus F. (kfalser)


Lesenswert?

Klaus schrieb:
> Selbi schrieb:
>> Wer von euch verwendet getrennte VHDL-files für configuration und code,
>> um Komponenten austauschen / switchen zu können?
>
> Also mir ist das in der Praxis noch nicht untergekommen. Ist doch eher
> ein akademisches Feature.

So akademisch auch wieder nicht.
Im FPGA Design wird man das kaum verwenden, weil es keine Notwendigkeit 
gibt, zwischen verschiedenen Designvarianten über Configurations hin und 
herzuschalten, aber für Testbenches können Configurations nützlich sein.
Ich habe z.B. das Modell einer Leiterplatte mit einem FPGA, in das 
verschiedene Programme geladen werden.
Die allgemein gehaltene Testbench wird nur über die configuration 
zusammengestellt.

von Matthias (Gast)


Lesenswert?

Selbi schrieb:
> Wer von euch verwendet getrennte VHDL-files für configuration und code,
> um Komponenten austauschen / switchen zu können?

Wir machen das hier und da auch mal im FPGA design bei architecturen, 
die die selbe entity haben. Da wir die architecturen nicht alle in die 
gleiche datei schreiben (wird ein bisschen lang) muss man da via 
configuration angeben welche architecture nun zur entity gehoert.
Oder gibts da was einfacheres??

von Selbi (Gast)


Lesenswert?

> Im FPGA Design wird man das kaum verwenden, weil es keine Notwendigkeit
Aber klar, gibt es die: Verschiedene Platinenvarianten, Bestückungen und 
Prozessortypen, Taktfrequenzen etc...

Acuh verschiedene Algos kann man so umswitchen. Das Ganze spielt sehr 
stark ins configuration managment und formeller SW-Entwicklungsprozesse 
rein.

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.