Hallo
Ich stehe mal wieder vor einem undefinierbaren VHDL Problem: Ich möchte
ein kleiner Empfänger für ein EM4095 bauen, doch leider läuft nicht
einmal der Reset.
1 | library IEEE;
|
2 | use IEEE.STD_LOGIC_1164.ALL;
|
3 | USE ieee.numeric_std.ALL;
|
4 |
|
5 | entity EM4095_Reader is
|
6 | Generic (
|
7 | delay_cnt_max : integer := 2500000);
|
8 |
|
9 | Port ( reset : in STD_LOGIC;
|
10 | clk2 : in STD_LOGIC;
|
11 | Demod : in STD_LOGIC;
|
12 | RDY_CLK : in STD_LOGIC;
|
13 | nMOD : out STD_LOGIC;
|
14 | nSHD : out STD_LOGIC;
|
15 | row_0 : out STD_LOGIC_VECTOR(3 downto 0);
|
16 | row_1 : out STD_LOGIC_VECTOR(3 downto 0);
|
17 | row_2 : out STD_LOGIC_VECTOR(3 downto 0);
|
18 | row_3 : out STD_LOGIC_VECTOR(3 downto 0);
|
19 | row_4 : out STD_LOGIC_VECTOR(3 downto 0);
|
20 | row_5 : out STD_LOGIC_VECTOR(3 downto 0);
|
21 | row_6 : out STD_LOGIC_VECTOR(3 downto 0);
|
22 | row_7 : out STD_LOGIC_VECTOR(3 downto 0);
|
23 | row_8 : out STD_LOGIC_VECTOR(3 downto 0);
|
24 | row_9 : out STD_LOGIC_VECTOR(3 downto 0);
|
25 | testport : out std_logic_vector(7 downto 0));
|
26 | end EM4095_Reader;
|
27 |
|
28 | architecture Behavioral of EM4095_Reader is
|
29 | begin
|
30 |
|
31 | process(clk2)
|
32 | begin
|
33 | if rising_edge(clk2) then
|
34 | -------------------------------------------------------------------------
|
35 | -- Reset
|
36 | -------------------------------------------------------------------------
|
37 | if (reset = '1') then
|
38 | testport <= (others => '0');
|
39 |
|
40 | -------------------------------------------------------------------------
|
41 | -- Normaler Betrieb
|
42 | -------------------------------------------------------------------------
|
43 | else
|
44 | testport <= "10101010";
|
45 | end if;
|
46 | end if;
|
47 | end process;
|
48 | end Behavioral;
|
Die Ledanzeige (testport) bleibt konstant auf "10101010" und wechselt
nie, egal ob ich den Taster drücke, oder ein Schalter nehme oder sonst
was. Wo ist hier mein Fehler?
Eigentlich wäre noch eine ganze Statemachine dabei, doch die habe ich
mitlwereile komplett auskommentiert und der Reset läuft immer noch
nicht.
Bei der Synthese gibts zwar irgendwelche Warnungen (optimierung von
testport, da gewisse Bits konstant sind) aber in der Simulation läufts
und anhand der Beispiele sollte das doch richtig sein?
Besten Dank
Gruss
Patrick