Hi, ich Probiere eine inout Kommunikation hinzukriegen, leider habe ich
undefinierte Zustände, wenn enable auf 0 ist, da sollte inout aber
eigentlich hochomig sein. Die ganze Datei zu posten wäre zu
unübersichtlich, hier ist aber eine Vereinfachte Version:
1 | library ieee;
|
2 | use ieee.std_logic_1164.all;
|
3 |
|
4 | entity tri_io is
|
5 | port( clk : in std_logic;
|
6 | enable : in std_logic;
|
7 |
|
8 | write_s : out std_logic_vector(3 downto 0);
|
9 | read_s : in std_logic_vector(3 downto 0);
|
10 | bus_s : inout std_logic_vector(3 downto 0)
|
11 |
|
12 | );
|
13 | end tri_io;
|
14 |
|
15 | architecture behaviour of tri_io is
|
16 | signal int : std_logic_vector(3 downto 0) := X"2";
|
17 |
|
18 | begin
|
19 | write_s <= bus_s;
|
20 | bus_s <= read_s when enable='1' else "ZZZZ";
|
21 |
|
22 | process (clk)
|
23 | begin
|
24 | if rising_edge(clk) then
|
25 | --int <= output;
|
26 | end if;
|
27 |
|
28 | end process;
|
29 | end behaviour;
|