www.mikrocontroller.net

Forum: FPGA, VHDL & Co. VHDL component


Autor: basty_65 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite mich gerade in die component Funktion ein. Habe 3 *.vhd 
Dateien erstellte. Eine mit top entity in der die component der beiden 
weiteren *.vhd Dateine enthalten sind.

Das Problem ist, dass ich den Ein/Ausgang Y nicht an die Ausgänge des 
Kompletten Projektes haben will, sondern dieser nur als internes signal 
vorhanden sein soll.

Habe in der top entity y: inout std_logic;

und in den weiteren beiden einmal als y: in std_logic; und als y: out 
std_logic;

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Ports der Components kannst du genauso an interne Signale des Moduls 
klemmen, in dem sie instanziiert sind. Die müssen nicht zwagsläufig auf 
externe Ports gehen.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Habe in der top entity y: inout std_logic;
Mich beschleicht ein schlimmer Verdacht. Zeig doch mal den Quelltext, so 
viel kann das nicht sein...
Kopier alle 3 Dateien in eine gesamt.vhd und häng die hier als Anhang 
mit an.

Autor: basty_65 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
siehe Anhang

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das Problem ist, dass ich den Ein/Ausgang Y nicht an die Ausgänge des
> Kompletten Projektes haben will, sondern dieser nur als internes signal
> vorhanden sein soll.
Was sollte denn der Synthesizer anderes machen, als das Signal nach 
aussen zu verdrahten, wenn du es im Port der Entity hast?
Dann mach den auch nur als internes Signal, dafür sind Signale ja auch 
da:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Spartan is
port(    AB: out std_logic;
    A : in std_logic;
    B : in std_logic;
    z : out std_logic);
end entity Spartan;

architecture Verhalten of Spartan is
-- Deklarierung der internen Signale
signal y: std_logic; -- y  wird nur intern zur Verdrahtung benötigt.

-- Deklarierung der vorhandenen Komponenten
component TEST_001
port (  A : in std_logic;
  B : in std_logic;
  y : in std_logic;
  z : out std_logic);
end component;


component TEST_002
port (A, B: in std_logic; y: out std_logic);
end component;

begin
-- Deklarierung der internen Signale für die einzelnen Komponenten
TEST_01 : TEST_001 port map (A, B, y, z);
Test_02 : TEST_002 port map (A, B, y);
AB    <= y;
end architecture;

Autor: basty_65 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh shit... Da hätte ich auch selber drauf kommen können.

Danke für deine Hilfe!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.