Hallo, ich lerne gerade VHDL und bin bei einem Code auf eine Frage gestoßen und zwar: Ich habe ein VHDL Programm das später in einem Top Level als Component eingebunden wird in der entity sind nun normale Ports deklariert und auch SIGNALE. Was haben die Signale für Vorteile gegenüber den In und Out Ports bzw. warum macht man das, wo liegt der Unterschied bei den Signalen in der entity und denen die im architecture deklariert sind. Und wie binde ich Diese Signale später in mein Top-Level Design ein. Danke vorab
entity Test is port( clk :in std_logic; a :in std_logic; b :in std_logic; signal c : in std_logic; Q : out std_logic); end Test; architecture behaver of Test is Signal Temp: std_logic; begin .... end architecture;
Stell Dir das ganze als Kästchen vor. In das Kästchen gehen Signale und kommen Signale heraus. Das sind die Ports. Die Ports dienen zur Verbindung mit äußeren Signalen. Die in der Entity definierten Signale sind außen nicht sichtbar.
Deine I/O-Ports definieren Signale, die zu - I/O-Ports führen. die intern definierten Signale sind "Drähte", die zur internen Verkabelung von Komponenten dienen (und eben nicht nach draussen geführt werden).
also habe ich das richtig verstanden das die Signale die im architecture deklariert sind nur dort sichtbar sind, Die Signale die in der entity deklariert sind auch im Top-Level sichtbar sind und die Ports zu den Beinchen des FPGA gehen. Bin ich da jetzt richtig? und wie behandele ich die Signale von der entity beim Port map in der höheren ebene, wie ganz normale ports?
Stefan schrieb: > Die Signale die in der entity > deklariert sind auch im Top-Level sichtbar sind und die Ports zu den > Beinchen des FPGA gehen. Bin ich da jetzt richtig? Nicht ganz. Die Port-Liste beschreibt die "Anschlusspins" des Moduls (=Entity). Ob diese Pins nach aussen gehen oder nicht, hängt davon ab, ob dieses Modul evtl "nur" ein Untermodul eines größeren Moduls ist. Z.B. kann ein Baudratenteiler ein Modul sein. Dessen Ports/Pins werden aber nicht an die FPGA-Pins verdrahtet, sondern "nur" an die passenden Signale des übergelagerten Moduls. So wie dort z.B. der Tatkteiler: http://www.lothar-miller.de/s9y/archives/61-Lauflicht.html Aber natürlich werden die Ports vom Top-Level dann an die FPGA-Pins gehen. > Ich habe ein VHDL Programm das später in einem Top Level als Component > eingebunden wird in der entity sind nun normale Ports deklariert und > auch SIGNALE. Unnötige Schreibarbeit:
1 | entity Test is |
2 | port( |
3 | signal c : in std_logic; |
4 | );
|
das ist gleichwertig mit
1 | entity Test is |
2 | port( |
3 | c : in std_logic; |
4 | );
|
und mit
1 | entity Test is |
2 | port( |
3 | signal c : std_logic; |
4 | );
|
und mit
1 | entity Test is |
2 | port( |
3 | c : std_logic; |
4 | );
|
Wenn die Richtung eines Ports nicht angegeben ist, wird automatisch IN angenommen. Das Schlüsselwort Signal vor dem Portnamen ist unnötig.
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.