Forum: FPGA, VHDL & Co. Signale in der entity


von Stefan (Gast)


Lesenswert?

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

von Axel (Gast)


Lesenswert?

???

der Code fehlt

von Stefan (Gast)


Lesenswert?

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;

von Klaus F. (kfalser)


Lesenswert?

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.

von Stefan W. (wswbln)


Lesenswert?

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).

von Stefan (Gast)


Lesenswert?

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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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