Forum: Mikrocontroller und Digitale Elektronik VHDL Quartus II Takt Zähler Hilfe!


von mietzekatze (Gast)


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;

von hefitG! (Gast)


Lesenswert?

Faslsches Forum!

von mietzekatze (Gast)


Lesenswert?

Argh kacke - ich hatte doch vorhin ein anderes Browserfenster offen - 
dann ist der Firefox abgeschmiert - soll ich's neu posten, oder 
verschiebts einer?

Sorry!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.