1 | entity Frequenzteiler10_1 is
|
2 | Port ( clk_1Mhz : in STD_LOGIC;
|
3 | Reset : in STD_LOGIC;
|
4 | step_stop_entprellt : in STD_LOGIC;
|
5 | Takt_1Hz : out STD_LOGIC;
|
6 | Takt_10Hz : out STD_LOGIC;
|
7 | Takt_100Hz : out STD_LOGIC;
|
8 | Takt_1kHz : out STD_LOGIC;
|
9 | Takt_10kHz : out STD_LOGIC;
|
10 | Takt_100kHz : out STD_LOGIC);
|
11 | end Frequenzteiler10_1;
|
12 |
|
13 | architecture Behavioral of Frequenzteiler10_1 is
|
14 |
|
15 |
|
16 | Signal Teilerzaehler_a: std_logic_vector (3 downto 0);
|
17 | Signal Teilerzaehler_b: std_logic_vector (3 downto 0);
|
18 | Signal Teilerzaehler_c: std_logic_vector (3 downto 0);
|
19 | Signal Teilerzaehler_d: std_logic_vector (3 downto 0);
|
20 | Signal Teilerzaehler_e: std_logic_vector (3 downto 0);
|
21 | Signal Teilerzaehler_f: std_logic_vector (3 downto 0);
|
22 | -- TAKTTEILER -----------------------------------------------------
|
23 | Taktteiler_100kHz: process (Reset, clk_1Mhz)
|
24 | begin
|
25 | if reset='1' then
|
26 | Teilerzaehler_a <= "0000";
|
27 | elsif clk_1MHz'event and clk_1MHz='1' then
|
28 | if Teilerzaehler_a <= 9 then
|
29 | Teilerzaehler_a <= Teilerzaehler_a+1;
|
30 | else
|
31 | Teilerzaehler_a <= "0000";
|
32 | end if;
|
33 | Takt_100kHz <= Teilerzaehler_a(3);
|
34 | end if;
|
35 | end process;
|
36 |
|
37 | Taktteiler_10kHz: process (Reset, Teilerzaehler_a(3))
|
38 | begin
|
39 | if reset='1' then
|
40 | Teilerzaehler_b <= "0000";
|
41 | elsif Teilerzaehler_a(3)'event and Teilerzaehler_a(3)='1' then
|
42 | if Teilerzaehler_b <= 9 then
|
43 | Teilerzaehler_b <= Teilerzaehler_b+1;
|
44 | else
|
45 | Teilerzaehler_b <= "0000";
|
46 | end if;
|
47 | Takt_10kHz <= Teilerzaehler_b(3);
|
48 | end if;
|
49 | end process;
|
50 |
|
51 | Taktteiler_1kHz: process (Reset, Teilerzaehler_b(3))
|
52 | begin
|
53 | if reset='1' then
|
54 | Teilerzaehler_c <= "0000";
|
55 | elsif Teilerzaehler_b(3)'event and Teilerzaehler_b(3)='1' then
|
56 | if Teilerzaehler_c <= 9 then
|
57 | Teilerzaehler_c <= Teilerzaehler_c+1;
|
58 | else
|
59 | Teilerzaehler_c <= "0000";
|
60 | end if;
|
61 | Takt_1kHz <= Teilerzaehler_c(3);
|
62 | end if;
|
63 | end process;
|
64 |
|
65 | Taktteiler_100Hz: process (Reset, Teilerzaehler_c(3))
|
66 | begin
|
67 | if reset='1' then
|
68 | Teilerzaehler_d <= "0000";
|
69 | elsif Teilerzaehler_c(3)'event and Teilerzaehler_c(3)='1' then
|
70 | if Teilerzaehler_d <= 9 then
|
71 | Teilerzaehler_d <= Teilerzaehler_d+1;
|
72 | else
|
73 | Teilerzaehler_d <= "0000";
|
74 | end if;
|
75 | Takt_100Hz <= Teilerzaehler_d(3);
|
76 | end if;
|
77 | end process;
|
78 |
|
79 | Taktteiler_10Hz: process (Reset, Teilerzaehler_d(3))
|
80 | begin
|
81 | if reset='1' then
|
82 | Teilerzaehler_e <= "0000";
|
83 | elsif Teilerzaehler_d(3)'event and Teilerzaehler_d(3)='1' then
|
84 | if Teilerzaehler_e <= 9 then
|
85 | Teilerzaehler_e <= Teilerzaehler_e+1;
|
86 | else
|
87 | Teilerzaehler_e <= "0000";
|
88 | end if;
|
89 | Takt_10Hz <= Teilerzaehler_e(3);
|
90 | end if;
|
91 | end process;
|
92 |
|
93 | Taktteiler_1Hz: process (Reset, Teilerzaehler_e(3))
|
94 | begin
|
95 | if reset='1' then
|
96 | Teilerzaehler_f <= "0000";
|
97 | elsif Teilerzaehler_e(3)'event and Teilerzaehler_e(3)='1' then
|
98 | if Teilerzaehler_f <= 9 then
|
99 | Teilerzaehler_f <= Teilerzaehler_f+1;
|
100 | else
|
101 | Teilerzaehler_f <= "0000";
|
102 | end if;
|
103 | Takt_1Hz <= Teilerzaehler_f(3);
|
104 | end if;
|
105 | end process;
|