\documentclass{beamer}

\mode<presentation> {
\usetheme{Frankfurt}
\usecolortheme{dove}
}
\usepackage[ngerman]{babel}
\selectlanguage{ngerman}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{booktabs}

\title{Parallele Berechnung der Mandelbrotmenge mit grafischer Ausgabe auf einem FPGA} 

\author{Meister Rados}
\institute{
Goethe Universtität Frankfurt am Main\\
\medskip
}
\date{31. August 2017} 
\begin{document}

\begin{frame}
\titlepage
\end{frame}

\begin{frame}
\frametitle{Übersicht}
\tableofcontents
\end{frame}

\section{Einleitung}

\subsection{Motivation}
\usebackgroundtemplate{
\includegraphics[width=\paperwidth,height=\paperheight]{slice1.png}} 
\begin{frame}
\frametitle{Motivation}

\begin{itemize}
	\item Mathe für die Informatik 1: Analysis und lineare Algebra\\Arbeiten mit komplexen Zahlen
	\item Grundlagen von Hardwaresystemen - Praktikum\\
	Arbeiten mit VHDL
	
\end{itemize}

\end{frame}

\usebackgroundtemplate{
	\includegraphics[width=\paperwidth,height=\paperheight]{blank.png}} 
\subsection{Arbeitsungebung}
\begin{frame}
\frametitle{Arbeitsumgebung - Software}
\begin{center}
Vivado 2016.4\vspace{12px}

\includegraphics[width=0.9\textwidth]{slice2.png}
\end{center}


\end{frame}


\begin{frame}
	\frametitle{Arbeitsumgebung - Hardware}
	Nexys4 DDR mit Artix-7\ \ \ Pmod Joystick \ \ \ Pmod OLED Display
	\includegraphics[width=\textwidth]{slice3.png}
\end{frame}
\subsection{Ziele}
\begin{frame}
	\frametitle{Ziele}
	\begin{itemize}
		\item einen VHDL-Entwurf für FPGAs zu entwickeln, der darauf spezialisiert ist, die Mandelbrotmenge zu erkunden
		\item einen Joystick zur Eingabe einzubinden, um durch die Mandelbrotmenge navigieren zu können und diese auf einem Display auszugeben
		\item zu einer Beurteilung über Effizienz der Parallelisierbarkeit der Berechnung zu kommen
		
	\end{itemize}
\end{frame}

\section{Die Mandelbrotmenge}
\subsection{Definition}
\usebackgroundtemplate{
	\includegraphics[width=\paperwidth,height=\paperheight]{slice4.png}} 
\begin{frame}
\frametitle{Die Mandelbrotmenge - Definition}
Formel:
$$z_0 = 0 + 0 \cdot i$$
$$z_{n+1} = z_n^2 + c$$

\vspace*{12px}
Eine komplexe Zahl $c$ ist nicht Teil der Mandelbrotmenge, wenn für $c$ unter Iteration der Formel Divergenz nachgewiesen werden kann (Kriterium $AbsValueMax$).\\
Andernfalls wird Konvergenz angenommen (Kriterium $IterationMax$).
\end{frame}

\begin{frame}[t]
	\frametitle{Die Mandelbrotmenge - Beispiel-Iteration}
	Sei $c := -0,3 + 1 \cdot i$\\
	So ist $z_0 = 0 + 0 \cdot i$\\
	$\implies z_1 = $
\end{frame}

\begin{frame}[t]
	\frametitle{Die Mandelbrotmenge - Beispiel-Iteration}
	Sei $c := -0,3 + 1 \cdot i$\\
	So ist $z_0 = 0 + 0 \cdot i$\\
	$\implies z_1 = -0,3 + 1 \cdot i$\\
	$\implies z_2 = (-0,3 + 1 \cdot i)^2 + -0,3 + 1 \cdot i$
\end{frame}

\begin{frame}[t]
	\frametitle{Die Mandelbrotmenge - Beispiel-Iteration}
	Sei $c := -0,3 + 1 \cdot i$\\
	So ist $z_0 = 0 + 0 \cdot i$\\
	$\implies z_1 = -0,3 + 1 \cdot i$\\
	$\implies z_2 = -1,21 + 0,4 \cdot i$
\end{frame}

\begin{frame}[t]
	\frametitle{Die Mandelbrotmenge - Beispiel-Iteration}
	Sei $c := -0,3 + 1 \cdot i$\\
	So ist $z_0 = 0 + 0 \cdot i$\\
	$\implies z_1 = -0,3 + 1 \cdot i$\\
	$\implies z_2 = -1,21 + 0,4 \cdot i$\\
	$\implies z_3 = (-1,21 + 0,4 \cdot i)^2 + -0,3 + 1 \cdot i$
\end{frame}

\begin{frame}[t]
	\frametitle{Die Mandelbrotmenge - Beispiel-Iteration}
	Sei $c := -0,3 + 1 \cdot i$\\
	So ist $z_0 = 0 + 0 \cdot i$\\
	$\implies z_1 = -0,3 + 1 \cdot i$\\
	$\implies z_2 = -1,21 + 0,4 \cdot i$\\
	$\implies z_3 = -1,3959 + 4,872 \cdot i$\\
	\vspace{30px}
	Der Betrag von $z_3$ hat einen Wert von $\sqrt{1,3959^2 + 4,872^2} = 5,06803$ und überschreitet somit $AbsValueMax$. $c$ liegt somit nicht in der Mandelbrotmenge. Divergenz wurde nach 3 Iterationen festgestellt.
\end{frame}

\subsection{Erzeugen der Bilder}

\begin{frame}
	\frametitle{Die Mandelbrotmenge - Erzeugen der Bilder}
	Farben:
	Für komplexe Zahlen, die unter Iteration der Formel konvergieren: schwarz.
	Alle anderen erhalten eine Farbe aus einer Farbpalette, abhängig davon in welcher Iteration Divergenz festgestellt wurde.\\
\end{frame}

\usebackgroundtemplate{
	\includegraphics[width=\paperwidth,height=\paperheight]{blank.png}}

\begin{frame}
\frametitle{Die Mandelbrotmenge - Visualisiert}
	\includegraphics[width=\textwidth]{man.png}
\end{frame}

\section{Ansatz}
\setcounter{subsection}{1}

\begin{frame}
	\frametitle{Ansatz - Systemeigenschaften}
	\begin{itemize}
		\item Mensch-Computer-Interaktion via Joystick und Display
		\item Komplexe Ebene auf dem Display anzeigen
		\item Sinnvolle Werte für $AbsValueMax$ und $IterationMax$
		\item Beliebig viele ALUs, die die Formel iterieren können, müssen mit komplexen Zahlen des aktuell sichtbaren Bereiches versorgt werden
		\item Dies soll parallel laufen
		\item Ergebnisse sichern und Farbe zuweisen
	\end{itemize}
\end{frame}


\usebackgroundtemplate{
	\includegraphics[width=\paperwidth,height=\paperheight]{slice5.png}}



\begin{frame}
\frametitle{Ansatz}
\begin{itemize}
	\item Modularisierung
	\item Moore-Automaten
	\item IP-Cores
\end{itemize}
\vspace{70px}
\end{frame}

\usebackgroundtemplate{
	\includegraphics[width=\paperwidth,height=\paperheight]{blank.png}}

\section{Implementierung}
\setcounter{subsection}{1}
\begin{frame}[t]
	\frametitle{Implementierung - Topmodul}
	\begin{center}
		Das Topmodul:\\
		\includegraphics[width=0.6\textwidth]{top.pdf}
	\end{center}
\end{frame}

\begin{frame}[t]
	\frametitle{Implementierung - Math-Modul}
	\begin{center}
		Das Math-Modul:\\
		\includegraphics[width=0.8\textwidth]{math.pdf}
	\end{center}
\end{frame}

\begin{frame}[t]
	\frametitle{Implementierung - Komplexe ALU}
	\begin{center}
		\includegraphics[width=0.5\textwidth]{fsm3.pdf}
	\end{center}
\end{frame}

\section{Ergebnisse}
\subsection{Hardware}

\begin{frame}
	\frametitle{Ergebnisse - Hardware zur Interaktion}
	\begin{center}
			Joystick-Ansteuerung erfolgreich. Eine Implementation des Display-Controllers war zeitlich nicht möglich.\vspace{12pt}
		\includegraphics[width = 0.6\textwidth]{hw.png}
	\end{center}

\end{frame}

\begin{frame}
	\frametitle{Ergebnisse - Hardwareentwurf}
	\begin{center}
		Auf dem Artix-7 lassen sich bis zu 8 ALUs unterbringen. Die Korrektheit des Entwurfes muss noch gezeigt werden.\vspace{12pt}
		\includegraphics[width = 0.3\textwidth]{8alusimp.png}
	\end{center}
	
\end{frame}

\subsection{Software}
\begin{frame}
	\frametitle{Ergebnisse - Software}
	\begin{table}[h]
		\begin{center}
			\begin{tabular}{|c||c|c|c|} \hline
				\textbf{ALUs}& \textbf{Simulationszeit} & \textbf{Speed-Up Faktor} & \textbf{Rechenzeit}\\ \hline
				1&2,980427328 s&100,0000\% & 87h 14m 59s\\ \hline
				2&1,499020169 s&198,8825\%& 39h 33m 52s\\ \hline 
				4&0,749917795 s&397,9743\%& 20h 19m 45s\\ \hline
				8&0,3789402895 s&786,8651\%& 12h 42m 21s\\ \hline
				16&0,195372699 s&1525,5086\%&7h 32m 02s\\ \hline
				32&0,992802226 s&3002,0353\%&4h 01m 29s\\ \hline
				64&0,051410618 s&5797,2991\%&3h 04m 51s\\ \hline
				128&0,027015148 s&11032,4301\%&2h 44m 52s\\ \hline
			\end{tabular}
			\caption{Ergebnisse der Simulation}		
			\label{erg_table}
		\end{center}
	\end{table}
\end{frame}
\subsection{Regression}
\begin{frame}
	\frametitle{Ergebnisse - Regression}
	Eine Exponenten-Regression über die ermittelten Werte des Speed-Up Faktors ergibt folgende Funktion:
	$$Speed Up Faktor \approx 102.1063968 \cdot AnzahlALUs^{0.9710699028}$$
\end{frame}

\begin{frame}
	\frametitle{Ergebnisse - Fehler der Regression}
	\begin{table}[H]
		\begin{center}
			\begin{tabular}{|c|c|c|c|} \hline
				\textbf{ALUs}& \textbf{Speed-Up Faktor} & \textbf{Regressionswert}  &  \textbf{$\varnothing$ Fehler}\\ \hline
				1&100\%&102,1063968&2,106396819\\ \hline
				2&198,8825\%&200,1585377&2,132467248\\ \hline
				4&397,9743\%&392,3695425&-0,121841053\\ \hline
				8&786,8651\%&769,1595855&-4,3014843815\\ \hline
				16&1525,5086\%&1507,77877&-6,8854325912\\ \hline
				32&3002,0353\%&2955,689399&-13,4562939776\\ \hline
				64&5797,2991\%&5794,0196348&-11,959732807 \\ \hline
				128&11032,4301\%&11357,98083&30,282837006375\\ \hline
			\end{tabular}
			\caption{Exponenten-Regression über den Speed-Up Faktor}
			\label{reg_table}		
		\end{center}
	\end{table}
\end{frame}

\subsection{Bottleneck}
\begin{frame}
	\frametitle{Bottleneck - Math-Modul}
	\begin{center}
	Was ist bei Hinzunahme von weiteren ALUs zu erwarten?\\
	Bereits 3 ALUs können das Math-Modul auslasten.\\
	Das Holen von Ergebnisse und Erzeugen neuer komplexen Zahlen dauert eine Zeit $t > 0s$.\\
	\vspace{12pt}
\includegraphics[width=0.4\textwidth]{graph.png}\\
Die ermittelte Regressionsfunktion grafisch dargestellt
	\end{center}

\end{frame}

\section{Ausblick}
\setcounter{subsection}{1}
\begin{frame}
	\frametitle{Ausblick}
	Die Lehrveranstaltungen wurden erfolgreich verbunden.\\
	Berechnung anderer Fraktale möglich.\\
	Gar komplett andere Berechnungen möglich.\\
	Andere Displaygrößen\\
	Aufbauend: Implementation des LED-Controllers, sowie zeigen der Korrektheit steht noch aus.\\
	\vspace{12pt}\begin{center}
		\includegraphics[width=0.2\textwidth]{pic.png}
\includegraphics[width=0.2\textwidth]{man2.png}
\includegraphics[width=0.2\textwidth]{man3.png}
\includegraphics[width=0.2\textwidth]{man4.png}

	\end{center}

\end{frame}

\begin{frame}
	\frametitle{Quellen}
	
	\small{
			Inhalt: Bachelorarbeit\\
		Hintergrund Folie 1:\\ http://de.numberempire.com/images/complex-numbers.png\\
		Folie 5:\\ https://reference.digilentinc.com/reference/pmod/pmodoledrgb/reference-manual\\
		http://store.digilentinc.com/pmod-jstk-2-axis-joystick-limited-time/\\
		http://store.digilentinc.com/pmod-oledrgb-96-x-64-rgb-oled-display-with-16-bit-color-resolution/\\
	}
\end{frame}

\end{document}