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
1 | library IEEE; |
2 | use IEEE.STD_LOGIC_1164.ALL; |
3 | use IEEE.STD_LOGIC_ARITH.ALL; |
4 | use IEEE.STD_LOGIC_UNSIGNED.ALL; |
5 | |
6 | ---- Uncomment the following library declaration if instantiating
|
7 | ---- any Xilinx primitives in this code.
|
8 | --library UNISIM;
|
9 | --use UNISIM.VComponents.all;
|
10 | |
11 | entity mux_1_code is |
12 | Port ( S : in STD_LOGIC_VECTOR (1 downto 0); |
13 | E : in STD_LOGIC_VECTOR (3 downto 0); |
14 | Y : out STD_LOGIC); |
15 | end mux_1_code; |
16 | |
17 | architecture Behavioral of mux_1_code is |
18 | |
19 | begin
|
20 | with S select |
21 | Y <= E(0) when "00", |
22 | E(1) when "01", |
23 | E(2) when "10", |
24 | E(3) when "11"; |
25 | |
26 | |
27 | end Behavioral; |