www.mikrocontroller.net

Forum: FPGA, VHDL & Co. VHDL Anfänger: Problem mit Xilinx9.2


Autor: Chris H. (xkris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe mir vorgenommen VHDL zu erlernen und scheitere bereits am 
ersten kleinen Beispielprogramm (code angehängt). Ich nutze ISE9.2 von 
Xilinx. Wenn ich ein neues Projekt erstelle kann ich direkt zu Beginn 
die Ein- und Ausgänge definieren. Daraufhin generiert das Programm den 
Code für die entity. Allerdings benutzt er statt der Datentypen bit und 
bit_vector die in meinem Beispielcode verwendet werden die Typen 
STD_LOGIC_VECTOR und STD_LOGIC. Wenn ich dies so übernehme erhalte ich 
berits beim compilieren die Fehlermeldung :

"A value is missing in select"

Wandle ich STD_LOGIC_VECTOR und STD_LOGIC um in bit_vector und bit kann 
ich den Code zwar compilieren aber er meckert dann bei der Siumlation:

"Default port map for entity mux to
component mux connects std_ulogic type local port Y of the component to 
BIT
type port of the entity."

Offensichtlich ist irgenwo eine Portmap hinterlegt in der die Variablen 
E,S und Y als
STD_LOGIC_VECTOR und STD_LOGIC definiert sind und dies kollidiert mit 
meinen Definitionen im Quelltext wo ich bit_vector und bit als Datentpen 
nutze.

Ich habe Hilfe Files von Xilinx durchsucht aber ohne Ergebnis.

Kann mir jemand von euch sagen wo das Problem liegt?

Ich danke im Voraus

Gruß
Kristian
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity mux_1_code is
    Port ( S : in  STD_LOGIC_VECTOR (1 downto 0);
           E : in  STD_LOGIC_VECTOR (3 downto 0);
           Y : out  STD_LOGIC);
end mux_1_code;

architecture Behavioral of mux_1_code is

begin
  with S select
  Y <= E(0) when "00",
       E(1) when "01",
       E(2) when "10",
       E(3) when "11";
      

end Behavioral;

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du brauchst einen default case beim when (when others), da std-logic 
ausser 0 und 1 auch unbestimmt, hochohmig usw. annehmen kann.

Autor: Chris H. (xkris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast wrote:
> Du brauchst einen default case beim when (when others), da std-logic
> ausser 0 und 1 auch unbestimmt, hochohmig usw. annehmen kann.

Danke, bin auch grad fündig geworden. Aber das erklärt nicht, warum das 
Programm nicht mit bit und bit_vector simuliert werden kann.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ModelSim XE 6.2g macht sowohl std_logic als auch bit ohne murren mit. 
Hast du den Mux wo eingebunden und wird der nach std_logic 
weitergeleitet?

Autor: Chris H. (xkris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast wrote:

> Hast du den Mux wo eingebunden und wird der nach std_logic
> weitergeleitet?

Nicht, dass ich wüßte

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also in einer Testbench zum Beispiel, da steht ja eindeutig was von 
component in der Fehlermeldung.

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Idee: Evtl. erzeugt das ISE automatisch eine Testbench und verwendet da 
std_logic...

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.