diff --git a/data/theory/i48.pdf b/data/theory/i48.pdf index df54472..1de0781 100644 Binary files a/data/theory/i48.pdf and b/data/theory/i48.pdf differ diff --git a/data/theory/mktheory.py b/data/theory/mktheory.py index 1826d48..87b68ef 100644 --- a/data/theory/mktheory.py +++ b/data/theory/mktheory.py @@ -56,7 +56,7 @@ def gen_reticle_empty(): ax.axis('off') ax.set_aspect("equal") - plt.savefig('wafer.pdf') + plt.savefig('wafer.pdf', transparent=True) def gen_reticle_patterns(): plt.clf() diff --git a/data/theory/reg.pdf b/data/theory/reg.pdf index 2a0ab31..f500d93 100644 Binary files a/data/theory/reg.pdf and b/data/theory/reg.pdf differ diff --git a/data/theory/v18.pdf b/data/theory/v18.pdf index d379194..f6af638 100644 Binary files a/data/theory/v18.pdf and b/data/theory/v18.pdf differ diff --git a/data/theory/v48.pdf b/data/theory/v48.pdf index f4d7e7f..efc783a 100644 Binary files a/data/theory/v48.pdf and b/data/theory/v48.pdf differ diff --git a/data/theory/wafer.pdf b/data/theory/wafer.pdf index 91e5f7a..c3f78fc 100644 Binary files a/data/theory/wafer.pdf and b/data/theory/wafer.pdf differ diff --git a/data/theory/wpattern.pdf b/data/theory/wpattern.pdf index 6820aa2..2adf222 100644 Binary files a/data/theory/wpattern.pdf and b/data/theory/wpattern.pdf differ diff --git a/parts/__latexindent_temp.tex b/parts/__latexindent_temp.tex new file mode 100644 index 0000000..cfa4bcb --- /dev/null +++ b/parts/__latexindent_temp.tex @@ -0,0 +1,4 @@ + \begin{tikzpicture} + \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=\textwidth]{some_image.jpg}}; + \draw[red,ultra thick,rounded corners] (7.5,5.3) rectangle (9.4,6.2); +\end{tikzpicture} \ No newline at end of file diff --git a/parts/experiments.tex b/parts/experiments.tex index 486b24d..176e353 100644 --- a/parts/experiments.tex +++ b/parts/experiments.tex @@ -15,7 +15,12 @@ THe first setup was used during the calibration phase, while the secon setup was \centering \includegraphics[width=.35\columnwidth]{./pics/setup_ps_el_mm.jpg} \includegraphics[width=.45\columnwidth]{./pics/poweritv1_test_setup_corr.jpg} - \caption{Left: Keithley K2100 voltmeter (top), PS9080 bench power supply (middle) and EL9000 electronic load (bottom; Right: PowerIt with connected STM32-Discovery board (left), and Raspberry PI (top). as well as power supply connection (cables at top ow PIT)}% + \caption{% + Photographs of the first experimental setup. + On the left side visible are a Keithley K2100 voltmeter (top), a PS9080 bench power supply (middle) and a EL9000 electronic load (bottom). + On the right side visible are a PowerIt with connected STM32-Discovery board (left), and Raspberry PI (top). + Also in the picture is the power supply connection (cables at top of PowerIt).% + }% \label{fig:expsetup1} \end{figure} @@ -24,8 +29,27 @@ THe first setup was used during the calibration phase, while the secon setup was \subsection{Part 2} - To obtain the required measurements for creating a regulation model the second setup was used. - %TODO: add picture for wafer setup + To obtain the required measurements for creating a regulation model the second setup was used (\autoref{fig:expsetup2}). + + \begin{figure}[H] + \centering + \includegraphics[height=.55\columnwidth]{tikz/setup2.pdf} + \hspace{1.5cm} + \includegraphics[height=.53\columnwidth]{pics/setup_pw_back_2.png} + \caption{% + Photographs of the second experimental setup. + In this setup the Wafer system assembly was used. + This module has a height and length of 50cm and a width of 15cm. + The left side shows the back side of the assembly. + Here are the PowerIt (1), CURE (3) and AnaB (2) boards mounted, as well as a RaspberryPi (4) and a STM32-Discovery (5). + The right side shows the empty front side of the MainPCB and the wafer heatsink.% + }% + \label{fig:expsetup2} + \end{figure} + + This setup is similar to a BrainScaleS wafer module as it exists inside the system. + But in contrast to these systems there are no FPGAs, AuxPwr or FCP boards (reference~\cite{waferembedding},fig 2.2) + The MainPCB has the PowerWafer embedded and is also connected to 8 CURE boards, 2 AnaBs and a PowerIt. \section{Characterization} diff --git a/parts/intro.tex b/parts/intro.tex index e6b6109..6c880c6 100644 --- a/parts/intro.tex +++ b/parts/intro.tex @@ -5,7 +5,7 @@ \section{The BrainScale System} - The BrainScale Wafer System~\cite{hbpguidebook}, developed and used in the electronic visions group at Heidelberg University is a neuromorphic hardware implementation.\\~\\ + The BrainScale Wafer System, developed and used in the electronic visions group at Heidelberg University is a neuromorphic hardware implementation~\cite{waferembedding}.\\~\\ For this thesis the following core components are of importance: \begin{itemize} @@ -28,16 +28,8 @@ \begin{figure}[h] \centering - \includegraphics[width=.7\textwidth]{pics/poweritv2_teststand_2} - \caption{PowerIt board, top view, receiving \SI{48}{\volt} as input ( - %TODO: color - ) and outputting \SI{9.6}{\volt} ( - %TODO: color - ) as well as \SI{1.8}{\volt} (analog: - %TODO: color - ; digital: - %TODO: color - )}\label{fig:pitteststand} + \includegraphics[width=.7\textwidth]{./tikz/powerit.pdf} + \caption{PowerIt board, top view, receiving \SI{48}{\volt} as input (magenta) and outputting \SI{9.6}{\volt} (green) as well as \SI{1.8}{\volt} (analog: red, digital: blue)}\label{fig:pitteststand} \end{figure} The brain of these PowerIt boards is a STM32 Chip\footnote{STM32F405RGT~\cite{stm32f405xx}} which runs a custom firmware based on ChibiOS~\cite{chibios}. diff --git a/parts/theory.tex b/parts/theory.tex index f4963e9..8b6dfdc 100644 --- a/parts/theory.tex +++ b/parts/theory.tex @@ -224,24 +224,42 @@ On the other hand, to calculate the voltage to output, it is necessary to classi \begin{figure}[H] \centering - \includegraphics[width=.7\columnwidth]{./data/theory/wafer.pdf} + \includegraphics[width=.6\columnwidth]{./data/theory/wafer.pdf} \caption{Reticle diagram of a wafer in BrainScaleS. All 48 Reticles are shown}% \label{fig:wafer} \end{figure} \begin{figure}[H] \centering - \includegraphics[width=.7\columnwidth]{./pics/waferpcb.png} - \caption{Part of the main pcb on which a wafer is placed, visible are the 48 Reticles and two terminals each for 1.8V Digital (blue) and Analog (red), which correspond to the output terminals on a PowerIt, a reticles dimensions are \SI{2.0077}{\centi\meter} by \SI{2.0077}{\centi\meter}}% + \includegraphics[width=.8\columnwidth]{./tikz/mainpcb_back.pdf} + \caption{A photograph of the top of the MainPCB (courtesy of Maurice G\"{u}ttler~\cite{waferembedding}). + The board has a length and width of 43cm. + Visible in the center are the PowerFETs (Field Effect Transistors) (1) which switch the power supply of each reticle. + These are controlled via the CURE boards. + In yellow the corresponding Reticle and its position is marked. + The CUREs are placed at the 8 central positions (2). + The top-left and bottom right corner connectors (3) are for the AnaB boards. + The main supply voltages V\(_\text{DDA}\) (red) and V\(_\text{DDD}\) (blue) are generated on the PowerIt and inserted at the marked screw connections.}% \label{fig:mainpcb} \end{figure} + % \begin{figure}[H] + % \centering + % \includegraphics[width=.7\columnwidth]{./pics/waferpcb.png} + % \caption{Part of the main pcb on which a wafer is placed, visible are the 48 Reticles and two terminals each for 1.8V Digital (blue) and Analog (red), which correspond to the output terminals on a PowerIt, a reticles dimensions are \SI{2.0077}{\centi\meter} by \SI{2.0077}{\centi\meter}}% + % \label{fig:mainpcb} + % \end{figure} It has the same layout as its system counterparts and each of the 48 reticles can be accessed, digitally as well as electrically. - Each reticle is connected to its corresponding CURE board. - Those can read voltages of each reticle, but not at the same position as an AnaB. - They read right before \(R_1\) in \autoref{fig:retmodel}. + + And like its system counterparts it is placed on a MainPCB (see \autoref{fig:mainpcb}). + All CURE boards connect to it and control the PowerFETs, as well as provide voltage readout from each reticle. + The CURE boards read right before \(R_1\) in \autoref{fig:retmodel}. - Another specialization of the PowerWafer is, that all reticles analog and digital \SI{1.8}{\volt} lines are connected directly to pins on the analog readout boards~\cite{anabpower}. There it is possible to measure a voltage, which is the one after the load resistors in \autoref{fig:retmodel} + Also on the MainPCB are the AnaB boards. + Note that here lies another specialization of the PowerWafer. + All reticles' analog and digital \SI{1.8}{\volt} lines are connected directly to pins on the analog readout boards~\cite{anabpower}. + There it is possible to aaccess a voltage, which is measured after the load resistors in \autoref{fig:retmodel} + (after \cite{waferembedding}) \subsection{Simple Wafer Resistance Model (SWRM)}\label{sec:swrm} diff --git a/pics/mainpcb_back.png b/pics/mainpcb_back.png new file mode 100644 index 0000000..b447b75 Binary files /dev/null and b/pics/mainpcb_back.png differ diff --git a/pics/poweritv2_teststand_3.png b/pics/poweritv2_teststand_3.png new file mode 100644 index 0000000..7ebaad2 Binary files /dev/null and b/pics/poweritv2_teststand_3.png differ diff --git a/pics/setup_ps_el_mm.jpg b/pics/setup_ps_el_mm.jpg index a812a4e..2df55f0 100644 Binary files a/pics/setup_ps_el_mm.jpg and b/pics/setup_ps_el_mm.jpg differ diff --git a/pics/setup_pw.jpg b/pics/setup_pw.jpg new file mode 100644 index 0000000..c7ec27a Binary files /dev/null and b/pics/setup_pw.jpg differ diff --git a/pics/setup_pw_2.png b/pics/setup_pw_2.png new file mode 100644 index 0000000..ae5d27f Binary files /dev/null and b/pics/setup_pw_2.png differ diff --git a/pics/setup_pw_back.jpg b/pics/setup_pw_back.jpg new file mode 100644 index 0000000..c1df67d Binary files /dev/null and b/pics/setup_pw_back.jpg differ diff --git a/pics/setup_pw_back_2.png b/pics/setup_pw_back_2.png new file mode 100644 index 0000000..780ae21 Binary files /dev/null and b/pics/setup_pw_back_2.png differ diff --git a/pics/wafer.png b/pics/wafer.png new file mode 100644 index 0000000..739fc5d Binary files /dev/null and b/pics/wafer.png differ diff --git a/thesis.pdf b/thesis.pdf index a8409ec..bf89fe9 100644 Binary files a/thesis.pdf and b/thesis.pdf differ diff --git a/thesis.tex b/thesis.tex index eaffdf9..caf1c38 100644 --- a/thesis.tex +++ b/thesis.tex @@ -18,9 +18,9 @@ \NoIndentAfterEnv{figure} \NoIndentAfterEnv{align} -\titleformat{\chapter}{\bfseries\huge\color{myteal}}{\thechapter}{.5em}{} -\titleformat*{\section}{\bfseries\Large\color{myteal}} -\titleformat*{\subsection}{\bfseries\large\color{myteal}} +\titleformat{\chapter}{\bfseries\huge}{\thechapter}{.5em}{} +\titleformat*{\section}{\bfseries\Large} +\titleformat*{\subsection}{\bfseries\large} \author{Patrick Nisblé} \title{\color{myteal}Calibration and Regulation of BrainScaleS' PowerIt Subsystems} diff --git a/tikz/mainpcb_back.pdf b/tikz/mainpcb_back.pdf new file mode 100644 index 0000000..e290dc4 Binary files /dev/null and b/tikz/mainpcb_back.pdf differ diff --git a/tikz/mainpcb_back.tex b/tikz/mainpcb_back.tex new file mode 100644 index 0000000..f900751 --- /dev/null +++ b/tikz/mainpcb_back.tex @@ -0,0 +1,18 @@ +\documentclass{standalone} +\input{./tikzpreamble} +\begin{document} + \begin{tikzpicture} + \node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=.7\textwidth]{../pics/mainpcb_back.png}}; + \begin{scope}[x={(image.south east)},y={(image.north west)}] + \node[anchor=south west,inner sep=0, rotate=45] (image2) at (0.43,0.08) {\includegraphics[width=.47\textwidth]{../pics/wafer.png}}; + \draw[fill=white] (0.5,0.5) node {1} circle (.02); + \draw[fill=white] (0.1,0.68) node {2} circle (.02); + \draw[fill=white] (0.1,0.32) node {2} circle (.02); + \draw[fill=white] (0.2,0.8) node {3} circle (.02); + %\draw[fill=white] (0.1,0.16) node {4} circle (.02); + + \draw[red, ultra thick, arrows=<->] (0.245,0.66) to[out=-90, in=180] (.73, .32); + \draw[blue, ultra thick, arrows=<->] (0.765,0.66) to[out=-90, in=0] (.26, .32); + \end{scope} + \end{tikzpicture} +\end{document} \ No newline at end of file diff --git a/tikz/powerit.pdf b/tikz/powerit.pdf new file mode 100644 index 0000000..4c2dbf3 Binary files /dev/null and b/tikz/powerit.pdf differ diff --git a/tikz/powerit.tex b/tikz/powerit.tex new file mode 100644 index 0000000..6485a54 --- /dev/null +++ b/tikz/powerit.tex @@ -0,0 +1,18 @@ +\documentclass{standalone} +\input{./tikzpreamble} +\begin{document} + \begin{tikzpicture} + \node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=\textwidth]{../pics/poweritv2_teststand_3.png}}; + \begin{scope}[x={(image.south east)},y={(image.north west)}] + \draw[blue, fill=blue, fill opacity=.2, ultra thick, rounded corners] (.15, .25) rectangle (.08,.19); + \draw[blue, fill=blue, fill opacity=.2, ultra thick, rounded corners] (.86, .71) rectangle (.94,.79); + \draw[red, fill=red, fill opacity=.2, ultra thick, rounded corners] (.85, .24) rectangle (.93,.18); + \draw[red, fill=red, fill opacity=.2, ultra thick, rounded corners] (.13, .71) rectangle (.06,.78); + + \draw[green, fill=green, fill opacity=.2, ultra thick, rounded corners] (.44, .85) rectangle (.64, .9); + \draw[green, fill=green, fill opacity=.2, ultra thick, rounded corners] (.54, .12) rectangle (.35, .07); + + \draw[magenta, fill=magenta, fill opacity=.2, ultra thick, rounded corners] (.04, .8) rectangle (.14, .9); + \end{scope} + \end{tikzpicture} +\end{document} \ No newline at end of file diff --git a/tikz/setup2.pdf b/tikz/setup2.pdf new file mode 100644 index 0000000..645b988 Binary files /dev/null and b/tikz/setup2.pdf differ diff --git a/tikz/setup2.tex b/tikz/setup2.tex new file mode 100644 index 0000000..535ed77 --- /dev/null +++ b/tikz/setup2.tex @@ -0,0 +1,19 @@ +\documentclass{standalone} +\input{./tikzpreamble} +\begin{document} + \begin{tikzpicture} + \node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=\textwidth]{../pics/setup_pw_2.png}}; + \begin{scope}[x={(image.south east)},y={(image.north west)}] + \draw[black, fill=white] (.65, .53) node {\Large 1} circle (.3cm); + + \draw[black, fill=white] (.9, .25) node {\Large 2} circle (.3cm); + \draw[black, fill=white] (.3, .85) node {\Large 2} circle (.3cm); + + \draw[black, fill=white] (.66, .8) node {\Large 3} circle (.3cm); + \draw[black, fill=white] (.68, .22) node {\Large 3} circle (.3cm); + + \draw[black, fill=white] (.35, .53) node {\Large 4} circle (.3cm); + \draw[black, fill=white] (.3, .3) node {\Large 5} circle (.3cm); + \end{scope} + \end{tikzpicture} +\end{document} \ No newline at end of file