> Besonders der erste Prozess "div_100Hz"
1 | div_100Hz : process(clk,reset) is
|
2 | begin
|
3 | if reset ='0' then -- Synchroner Reset
|
4 | clk_100Hz <= '0'; -- Rücksetzen des 100 Hz Pulses
|
5 | count <= 0; -- Rücksetzen des Counters
|
6 | elsif(rising_edge(clk)) then
|
7 | if(count = 149999) then -- Counter Endwert erreicht ?
|
8 | count <= 0; -- Dann Counter auf 0
|
9 | clk_100Hz <= '1'; -- und Kurzer Impuls auf clk_100Hz
|
10 | else
|
11 | count <= count + 1; -- Endwert nichz erreicht
|
12 | clk_100Hz <= '0'; -- dann weiter Zählen
|
13 | end if;
|
14 | end if;
|
15 | end process div_100Hz;
|
und was eigentlich das Signal
state macht (wird nur einmal aufgerufen?).
nein, es wird mit jedem clk_100Hz impuls der wert inSig zugewisen
1 | if (rising_edge(clk))then
|
2 | if(clk_100Hz = '1') then
|
3 | ...
|
4 | state <= in_Sig;
|
5 | end if;
|
6 | end if;
|
Zu beachten ist ausserdem noch, dass der clk_100Hz kein richtiger clock
ist. Er ist 14999 Takte = 0 und einen Takt = 1