3 \section{Frequenzanpassung}
4 Die Aufgabenstellung die Frequenz f\"ur das blickende Objekt
5 zu modifizieren, in unserem Fall auf eine Frequenz von
6 $\frac{1}{0.12}s = 8.333 Hz$ einzustellen.
8 Dazu mussten wir uns vorerst mit dem gegebenen Sourcecode
9 vertraut machen. Schlie\ss{}lich stellten wir fest, dass der
10 Code in der Datei \emph{vga\_control\_arc.vhd} daf\"ur ist,
11 genauer gesagt die Konstante \emph{HALFPERIOD}.
13 Dabei bestimmt \emph{HALFPERIOD} die halbe Periode. Um also auf
14 unsere gew\"unschte Periodendauer von $0.12s$ kommen muss diese
15 Konstante $0.06s$ ausdr\"ucken. Aber welche Einheit beschreibt
16 \emph{HALFPERIOD}? Auf folgenden Wert ist \emph{HALFPERIOD}
17 in der Angabe konfiguriert:
19 constant HALFPERIOD : std_logic_vector(TOG_CNT_WIDTH-1 downto 0) := "1100000000010001111011000";
22 wobei ${1100000000010001111011000}_2 = (25175000)_{10} = (18023D8)_{16}$ entspricht.
24 Weiter unten im Code entdeckt man folgenden Block:
26 BLINKER_syn: process(clk, reset)
28 if (reset = RES_ACT) then -- asyn reset
29 toggle_counter_sig <= (others => '0');
30 toggle_sig <= COLR_OFF;
31 elsif(clk'event and clk = '1') then -- synchronous capture
32 toggle_counter_sig <= toggle_counter_next;
33 toggle_sig <= toggle_next;
38 BLINKER_next : process(toggle_counter_sig, toggle_sig)
40 if toggle_counter_sig >= HALFPERIOD then -- after half period ...
41 toggle_counter_next <= (others => '0'); -- ... clear counter
42 toggle_next <= not(toggle_sig); -- ... and toggle colour.
43 else -- before half period ...
44 toggle_counter_next <= toggle_counter_sig + '1'; -- ... increment counter
45 toggle_next <= toggle_sig; -- ... and hold colour
49 Wir sehen: bei jedem CLK-Signal ein Counter erh\"oht
50 wird -- jener Counter der mit \emph{HALFPERIOD} verglichen wird.
51 Daraus k\"onnen wir schliessen, dass \emph{HALFPERIOD} also von
52 der eingestellten Taktung abh\"angt. Diese betr\"agt 25.175MHz.
54 F\"ur unseren gew\"unschten Wert von $0.12s$ muss also folgender
55 Wert verwendet werden:
57 $\frac{25175000Hz}{\frac{1}{0.12s/2}} = \frac{25175000Hz}{16.66667Hz} = 1510500$ Takte.
59 Bedauerlicherweise mussten wir beim Verfassen dieses Protokolls
60 feststellen, dass wir anscheinend von einer Frequenz von 25MHz
61 -- warum auch immer -- ausgegangen sind und daher genau
62 $1500000$ Takte als Ergebnis bekamen.
64 Solche Fehler sollten ja \emph{eigentlich} bei der Simulation auffallen.
65 Da es sich aber offensichtlich um einen kleinen Fehler handelt
66 (10500 Takte entsprechen $417.08\mu s$)
67 ist uns das bei der Simulation nicht aufgefallen (vgl. Screenshots).
70 Wie auch immer, fuhren wir mit dem falschen Wert fort.
71 Dieser entspricht einen Bin\"arwert von: $(101101110001101100000)_2$. Diese Wert \"ubernahmen wir:
73 constant HALFPERIOD : std_logic_vector(TOG_CNT_WIDTH-1 downto 0) := "0000101101110001101100000";
78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
81 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
82 \subsection{Behavioral Simulation}
83 Gl\"ucklicherweise ist unsere Periodendauer f\"ur die Simulation kurz genug und m\"uessen daher unseren Wert nicht skalieren.
86 \includegraphics[width=\textwidth]{pics/1behsim.png}
90 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
94 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
95 \subsection{Pre-Layout Simulation}
98 \includegraphics[width=\textwidth]{pics/3prelayoutsim.png}
102 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
106 \includegraphics[width=\textwidth]{pics/4ppr_auslastung.png}
110 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
111 \subsection{Post-Layout Simulation}
114 \includegraphics[width=\textwidth]{pics/5postlayout_sim.png}
116 %5postlayout_vgaunit.png
118 \includegraphics[width=\textwidth]{pics/5postlayout_vgaunit.png}
122 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
123 \subsection{PPR mit PLL}
126 \includegraphics[width=\textwidth]{pics/6pll_auslastung.png}
130 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
131 \section{Logikanalysator}
134 \includegraphics[width=\textwidth]{pics/7logikwave.jpg}
139 \includegraphics[width=\textwidth]{pics/7trigger.jpg}
143 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
146 \item Blinkfrequenz = $\frac{1}{0.12}s = 8.33333$ Hz
150 \includegraphics[width=\textwidth]{pics/fertig.jpg}