From: Bernhard Urban Date: Fri, 6 Nov 2009 19:28:08 +0000 (+0100) Subject: prot2: weiterer text und ich muss weg X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=dide_16.git;a=commitdiff_plain prot2: weiterer text und ich muss weg --- diff --git a/bsp2/Protokolle/chapter2.tex b/bsp2/Protokolle/chapter2.tex index 2672599..3c027e0 100644 --- a/bsp2/Protokolle/chapter2.tex +++ b/bsp2/Protokolle/chapter2.tex @@ -25,10 +25,10 @@ Weiter unten im Code entdeckt man folgenden Block: \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; @@ -37,12 +37,12 @@ Weiter unten im Code entdeckt man folgenden Block: 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} @@ -68,7 +68,7 @@ ist uns das bei der Simulation nicht aufgefallen (vgl. Screenshots). 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} @@ -80,7 +80,11 @@ constant HALFPERIOD : std_logic_vector(TOG_CNT_WIDTH-1 downto 0) := "000010110 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \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} @@ -89,10 +93,27 @@ Gl\"ucklicherweise ist unsere Periodendauer f\"ur die Simulation kurz genug und %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \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} @@ -100,7 +121,14 @@ Gl\"ucklicherweise ist unsere Periodendauer f\"ur die Simulation kurz genug und %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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} @@ -108,11 +136,22 @@ Gl\"ucklicherweise ist unsere Periodendauer f\"ur die Simulation kurz genug und %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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} @@ -120,7 +159,10 @@ Gl\"ucklicherweise ist unsere Periodendauer f\"ur die Simulation kurz genug und %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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} @@ -128,12 +170,14 @@ Gl\"ucklicherweise ist unsere Periodendauer f\"ur die Simulation kurz genug und %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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} @@ -141,11 +185,15 @@ Gl\"ucklicherweise ist unsere Periodendauer f\"ur die Simulation kurz genug und %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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}