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;
|