Forum: FPGA, VHDL & Co. Instanzieren von Komponenten


von Jan (Gast)


Lesenswert?

Servus,

muss man eigentlich in einem VHDL Design alle Ports einer Komponente 
verdrahten?

Ich habe ein Top Level Design, in dem ich 3 Komponenten instanziieren 
möchte.

Nun benötige ich nicht alle Ausgänge meiner Komponten. Wie teile ich das 
in der Portmap mit, dass dieser Eingang oder Ausgang keine Signale 
bekommt, bzw. an keinen Ausgang seine Signale weitergeben soll?

von cfgardiner (Gast)


Lesenswert?

Jan,

das einfachste ist, in der Component Beschreibung nur die Pins zu 
nennen, die Du haben willst. Eine eingebundene Entity darf nämlich mehr 
(aber nicht weniger) Ports haben als die  Component Beschreibung über 
die es eingebunden wird.

ABER:
=====
Damit das alles synthetisierbar bleibt und die nicht angebundene 
Eingänge nicht einer 'X'/'U' verbreitung führen gibt es ein Paar andere 
Aspekte.

1) Ausgänge können mit
   port_name => open,
beleg werden. Es sei dann, der Ausgang ist ein unconstrained Type 
(std_logic_vector ohne range Angaben). Hier musst Du wohl entweder ein 
Dummy Signal vorsehen (z.B. out_dummy_a(0 downto 0)) oder eben den Port 
in der Component Beschreibung weglassen

2) Eingänge können mit default Werte belegt werden. Diese kannst du dann 
in dem Port Map weglassen.
z.B.
Component Xyz
   Port (interessiert_mich_nicht : std_logic := '1';
         bus_dont_care           : std_logic_vector(7 downto 0) := 
(others => '0');

Das scheint auch inzwischen von den meisten Synthesetools richtig 
verstanden zu werden

Viel Erfolg,
Charles

von Jan (Gast)


Lesenswert?

Top, danke für die super Erklärung.

Können eigentlich Komponenten selbst Komponenten beinhalten? Also ein 
Art Verschachtelung? Also eine Blackbox (Top Level Design), welche 
weitere Entity's beinhaltet, welche wiederum Komponenten instanziert?

Versteht man, was ich damit sagen möchte?

von Max Murks (Gast)


Lesenswert?

4x ja

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.