Hallo Leute :)
Wie schon im Betreff angegeben, bekomme ich diese Fehlermeldung:
"Type error resolving infix expression "<=" as type
ieee.std_logic_1164.STD_LOGIC."
Irgendwie habe ich auch im Internet nichts gefunden. Das Beispiel, was
ich versucht habe zu programmieren, ist eigentlich sehr einfach.
Meine Idee war es einen 1 zu 4 Demultiplexer zu programmieren: Das
Eingangsbit E soll, abhängig von der Selektionsvariable SEL, auf einen
von vier Ausgängen geschalten werden. Die anderen Ausgänge sollen
hochohmig sein. Ein Low-aktiver Freigabeeingang EN sorgt dafür, dass
alle Ausgänge hochohmig werden, falls EN nicht aktiviert ist.
Das ist meine Entity + Architecture:
1 | library IEEE;
|
2 | use IEEE.std_logic_1164.all;
|
3 |
|
4 | entity demu is
|
5 | port (e_i : in std_logic;
|
6 | en_i : in std_logic;
|
7 | sel_i : in std_logic_vector (1 downto 0);
|
8 | q_o : out std_logic_vector (3 downto 0));
|
9 | end entity demu;
|
10 |
|
11 | architecture rtl of demu is
|
12 | begin
|
13 | p_demu : process (e_i, sel_i, en_i)
|
14 | begin
|
15 | if en_i = '1' then
|
16 | q_o <= (others => 'Z');
|
17 | else
|
18 | case sel_i is
|
19 | when "00" => q_o(0) <= e_i,
|
20 | q_o(3 downto 1) <= (others => 'Z');
|
21 |
|
22 | when "01" => q_o(1) <= e_i,
|
23 | q_o(3 downto 2) <= (others => 'Z'),
|
24 | q_o(0) <= 'Z';
|
25 |
|
26 | when "10" => q_o(2) <= e_i,
|
27 | q_o(3) <= 'Z',
|
28 | q_o(1 downto 0) <= (others => 'Z');
|
29 |
|
30 | when others => q_o(3) <= 'Z',
|
31 | q_o(2 downto 0) <= (others => 'Z');
|
32 | end case;
|
33 | end if;
|
34 | end process p_demu;
|
35 | end architecture rtl;
|
Irgendwie habe ich das Gefühl, dass ich den Ausgang q_o so nicht
beschalten kann aber ich hoffe ihr könnt mir da weiterhelfen.
MfG