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?
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
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.