\begin{lstlisting}
BLINKER_syn: process(clk, reset)
begin
- if (reset = RES_ACT) then -- asyn reset
+ if (reset = RES_ACT) then
toggle_counter_sig <= (others => '0');
toggle_sig <= COLR_OFF;
- elsif(clk'event and clk = '1') then -- synchronous capture
+ elsif(clk'event and clk = '1') then
toggle_counter_sig <= toggle_counter_next;
toggle_sig <= toggle_next;
end if;
BLINKER_next : process(toggle_counter_sig, toggle_sig)
begin
- if toggle_counter_sig >= HALFPERIOD then -- after half period ...
- toggle_counter_next <= (others => '0'); -- ... clear counter
- toggle_next <= not(toggle_sig); -- ... and toggle colour.
- else -- before half period ...
- toggle_counter_next <= toggle_counter_sig + '1'; -- ... increment counter
- toggle_next <= toggle_sig; -- ... and hold colour
+ if toggle_counter_sig >= HALFPERIOD then
+ toggle_counter_next <= (others => '0');
+ toggle_next <= not(toggle_sig);
+ else
+ toggle_counter_next <= toggle_counter_sig + '1';
+ toggle_next <= toggle_sig;
end if;
end process;
\end{lstlisting}
Wie auch immer, fuhren wir mit dem falschen Wert fort.
-Dieser entspricht einen Bin\"arwert von: $(101101110001101100000)_2$. Diese Wert \"ubernahmen wir:
+Dieser entspricht einen Bin\"arwert von: $(1500000)_{10} = (101101110001101100000)_2$. Diese Wert \"ubernahmen wir:
\begin{lstlisting}
constant HALFPERIOD : std_logic_vector(TOG_CNT_WIDTH-1 downto 0) := "0000101101110001101100000";
\end{lstlisting}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Behavioral Simulation}
-Gl\"ucklicherweise ist unsere Periodendauer f\"ur die Simulation kurz genug und m\"uessen daher unseren Wert nicht skalieren.
+Gl\"ucklicherweise ist unsere Periodendauer f\"ur die Simulation kurz
+genug und m\"uessen daher unseren Wert nicht skalieren. An
+\emph{d\_toggle} kann man sch\"on unsere eingestellte halbierte Periodendauer
+von $60ms$ ablesen. Wir sind also bereit f\"ur die Synthese.
+
%1behsim.png
\begin{center}
\includegraphics[width=\textwidth]{pics/1behsim.png}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Synthese}
+Mit Synplify Pro wird der VHDL Code in Logik-Elemente umgesetzt.
+Bei diesem Schritt ist zu beachten, dass nur VHDL Ausdr\"ucke
+umgesetzt werden k\"onnen die auch in Hardware modellierbar sind!
+
+Die Ausgegebenen Dateien dieses Schrittes werden f\"ur die
+n\"achsten ben\"otigt.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
\subsection{Pre-Layout Simulation}
+F\"ur die Pre-Layout Simulation wird nun die synthetisierte
+Datei \emph{vga.vhm} und die entsprechende Testbench verwendet.
+Dieser Schritt war insofern heimt\"uckisch, da bei den
+File-Pattern kein *.vhm enthalten war und wir deswegen (ohne darauf weiter zu achten)
+\emph{vga.\textbf{vqm}} ausw\"ahlten, da diese automatisch angezeigt wurde,
+da diese Dateiendung in den vorgegebenen File-Patterns enthalten
+war\dots{} Nach einem Hinweis vom Tutor war diese Problem gel\"ost.
+
+Wie auch immer: auch hier sind die $60ms$ f\"ur \emph{d\_toggle} erkenntlich.
+
%3prelayoutsim.png
\begin{center}
\includegraphics[width=\textwidth]{pics/3prelayoutsim.png}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
\subsection{PPR}
+Partition, Place and Route erfolgt mit Hilfe des Tools
+\emph{Quartus II}. Vorerst wird unser Projekt ohne PLL
+kompiliert um damit die Post-Layout Simulation ausf\"uhren
+zu k\"onnen.
+
+Die folgende Abbildung zeigt die Auslastung des FPGAs:
%4ppr_auslastung.png
\begin{center}
\includegraphics[width=\textwidth]{pics/4ppr_auslastung.png}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
\subsection{Post-Layout Simulation}
+In der Post-Layout stehen nun die von \emph{Quartus II}
+generierten Daten zur Verf\"ugung die schon exakte
+Timinig-Informationen enthalten. Wieder sind die $60ms$
+ersichtlich.
+
%5postlayout_sim.png
\begin{center}
\includegraphics[width=\textwidth]{pics/5postlayout_sim.png}
\end{center}
+
+\newpage
+Hier noch ein Screenshot der Simulationsumgebung: Bei der
+Testbench f\"ur die Post-Layout Simulation waren weitere Parameter
+anzugeben (\emph{vga\_unit}).
%5postlayout_vgaunit.png
\begin{center}
\includegraphics[width=\textwidth]{pics/5postlayout_vgaunit.png}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
\subsection{PPR mit PLL}
+Die folgende Abbildung zeigt die Auslastung des FPGAs, diesmal
+mit PLL. Anschliessend wurde die Ausgabe auf das FPGA downgeloaded.
%6pll_auslastung.png
\begin{center}
\includegraphics[width=\textwidth]{pics/6pll_auslastung.png}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
\section{Logikanalysator}
%7logikwave.jpg
\begin{center}
\includegraphics[width=\textwidth]{pics/7logikwave.jpg}
\end{center}
+\newpage
%7trigger.jpg
\begin{center}
\includegraphics[width=\textwidth]{pics/7trigger.jpg}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newpage
\section{Ergebnisse}
\begin{itemize}
\item Blinkfrequenz = $\frac{1}{0.12}s = 8.33333$ Hz
\end{itemize}
+Unser Arbeitsplatz: Rechts ist das blinkende Objekt zu sehen
+und am mittleren Schirm ist noch die Post-Layout Simulation
+sichtbar.
\begin{center}
\includegraphics[width=\textwidth]{pics/fertig.jpg}
\end{center}