VHDL Quartus II Takt Zähler Hilfe!

Gast #1713692
Lesenswert?

So,

ich habe bis Ende des Sommers eine Prüfungsaufgabe mittels VHDL und 
Quartus II zu lösen - es soll eine digitale Weckuhr rauskommen.

Jetzt hänge ich hier da und irgendwie funktioniert garnichts.

Ich hänge mal meinen VHDL-Code ran, in der Hoffnung mir kann jemand 
helfen (sorry - ist schon ziemlich verbastelt).

Wie man erkennen kann, soll es ein 4bit-Synchron-Zähler sein, der von 
0-15,0 zählt.

Problem: Der Zähler zählt garnichts - irgendwie geht mit dem Ding 
nichts.
Nehme ich den "CLK"-Teil (NICHT den clk1s-Teil) raus, dann bekomme ich 
zwar was an den Ausgängen (a-d) zu sehen - aber das hat rein garnichts 
mit einem Zähler zu tun, da kommt irgendwas lustig verwurschteltes raus.

Bei Bedarf kann auch gerne das gesamte Projekt nachgereicht werden.

Hilfe ?!
1
-- Generated by Quartus II Version 9.0 (Build Build 132 02/25/2009)
2
-- Created on Sun May 09 21:17:32 2010
3

4
LIBRARY ieee;
5
USE ieee.std_logic_1164.all;
6

7

8
-- Entity Declaration
9

10
ENTITY dec_sekunden IS
11
-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!
12
PORT
13
(
14
clk1s : in std_logic;
15
reset : in std_logic;
16
a : out std_logic;
17
b : out std_logic;
18
c : out std_logic;
19
d : out std_logic
20
);
21
-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!
22

23
END dec_sekunden;
24

25

26
-- Architecture Body
27

28
architecture dec_sekunden_architecture of dec_sekunden is
29
-- Build an enumerated type for the state machine
30
type state_type is (s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15);
31
-- Register to hold the current state
32
signal state: state_type;
33
signal clk: integer range 0 to 100;
34

35
begin
36
-- Logic to advance to the next state
37
process (clk1s, reset, state, clk) begin
38
if reset = '1' then
39
state <= s0;
40
clk <= 0;
41
end if;
42
if clk < 100 then
43
clk <= clk+1;
44
end if;
45
if clk > 99 and clk1s = '1' then
46
case state is
47
when s0 =>
48
state <= s1;
49
when s1 =>
50
state <= s2;
51
when s2 =>
52
state <= s3;
53
when s3 =>
54
state <= s4;
55
when s4 =>
56
state <= s5;
57
when s5 =>
58
state <= s6;
59
when s6=>
60
state <= s7;
61
when s7=>
62
state <= s8;
63
when s8=>
64
state <= s9;
65
when s9 =>
66
state <= s10;
67
when s10 =>
68
state <= s11;
69
when s11 =>
70
state <= s12;
71
when s12=>
72
state <= s13;
73
when s13=>
74
state <= s14;
75
when s14=>
76
state <= s15;
77
when s15 =>
78
state <= s0;
79
end case;
80
end if;
81
end process;
82

83
-- Output depends solely on the current state
84
process (state) begin
85
case state is
86
when s0 => -- dec 0
87
a <= '0';
88
b <= '0';
89
c <= '0';
90
-- d <= '0';
91
when s1 => -- dec 1
92
a <= '0';
93
b <= '0';
94
c <= '0';
95
d <= '1';
96
when s2 => -- dec 2
97
a <= '0';
98
b <= '0';
99
c <= '1';
100
d <= '0';
101
when s3 => -- dec 3
102
a <= '0';
103
b <= '0';
104
c <= '1';
105
d <= '1';
106
when s4 => -- dec 4
107
a <= '0';
108
b <= '1';
109
c <= '0';
110
d <= '0';
111
when s5 => -- dec 5
112
a <= '0';
113
b <= '1';
114
c <= '0';
115
d <= '1';
116
when s6 => -- dec 6
117
a <= '0';
118
b <= '1';
119
c <= '1';
120
d <= '0';
121
when s7 => -- dec 7
122
a <= '0';
123
b <= '1';
124
c <= '1';
125
d <= '1';
126
when s8 => -- dec 8
127
a <= '1';
128
b <= '0';
129
c <= '0';
130
d <= '0';
131
when s9 => -- dec 9
132
a <= '1';
133
b <= '0';
134
c <= '0';
135
d <= '1';
136
when s10 => -- dec 10
137
a <= '1';
138
b <= '0';
139
c <= '1';
140
d <= '0';
141
when s11 => -- dec 11
142
a <= '1';
143
b <= '0';
144
c <= '1';
145
d <= '1';
146
when s12 => -- dec 12
147
a <= '1';
148
b <= '1';
149
c <= '0';
150
d <= '0';
151
when s13 => -- dec 13
152
a <= '1';
153
b <= '1';
154
c <= '0';
155
d <= '1';
156
when s14 => -- dec 14
157
a <= '1';
158
b <= '1';
159
c <= '1';
160
d <= '0';
161
when s15 => -- dec 15
162
a <= '1';
163
b <= '1';
164
c <= '1';
165
d <= '1';
166
end case;
167
end process;
168

169
end dec_sekunden_architecture;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren