mikrocontroller.net

Forum: FPGA, VHDL & Co. Componet OR3 Simulation :-(


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

eigentlich ist es doch ganz einfach eine Componete z.B. OR3 in einen
VHDL-Code einzubinden. Die folgende Variante funktioniert perfekt in
der Simulation:

....
component OR3 is
port (O : out STD_ULOGIC;
    I0 : in STD_ULOGIC;
    I1 : in STD_ULOGIC;
    I2 : in STD_ULOGIC);
end component OR3;

begin
OR3_INSTANCE_NAME : OR3 port map (OUTPUT0,INPUT0, INPUT1,INPUT2);
end Behavioral;

Hier sind OUTPUT0 und INPUTn phsikalisch vorhandene Ports. Im Anhang
ist eine VHDL Code, der auch die Component OR3 benutzt. Allerdings ist
OUTPUT0 ersetzt durch ein Signal uhelp, welches ich dann in einem
Process weiter verarbeiten möchte. XST synthetisiert korrekt allerdings
hängt sich immer die Simulation auf, an der Stelle wo sie die Lib von
OR3 laden möchte.

Ich hab' keine Idee mehr was ich falsch mache...

Danke schon mal für Eure Antworten,
Sebastian

Autor: FPGAküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist die unsim komplett für deinen Simulator (welcher?) compiliert?
Check mal mit dem Librarybrowser des Simulators, ob die unisim sichtbar
ist und ob sie eine entity namens or3 enthält.

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wenn Du die Verwendung von Components üben willst, geht Dein Code in
Ordnung, ansonsten geht es viel, viel einfacher mit

Output1 <= Input1 or Input2 or Input3;

Tip am Rande :
Obwohl der Xilinx Editor die Zeilen

use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

automatisch einfügt, sollte man sie löschen und bei Bedarf besser mit
dem Paket numeric_std arbeiten.

Grüße
Klaus

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok Danke,

ich hab's gefunden.

process
begin
  if uhelp = '1' then
     OUTPUT1 <= '1';
  else
    OUTPUT1 <= '0';
  end if;
end process;

OUTPUT1 ist ein physikalischer Port. Den darf man in einem Process
nicht verweden sondern nur Signale...

Aller Anfang ist schwer....
Sebastian

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss nicht was Du meinst, Ports darf man in Prozessen genau so
verwenden wie Signale.
Du solltest aber in jedem Fall schreiben :

OUTPUT1 <= uhelp;

Ohne einen Prozess !!

Grüße
Klaus

Autor: FPGA-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sollte es nicht heißen :

process(uhelp)
begin
...

?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

im "VHDL Kompakt.pdf" von der uni hamburg; Kapitel 6.2 Seite 42 steht
geschrieben:

Die Verbindung von Prozessen mit der Außenwelt (andere Prozesse,
instanziierte Komponenten, Ports der umgebenden Entity. . . ) geschieht
ausschließlich über Signale. Dabei sind beim schreibenden Zugriff, also
bei Signalzuweisungen durch den Prozess, einige Punkte zu
beachten.

Vielleicht habe ich das aber auch falsch verstanden.
Sebastian

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.