diff --git a/data/m03_poticalib/adccalib_02.pdf b/data/m03_poticalib/adccalib_02.pdf index 930fef9..0dc9233 100644 Binary files a/data/m03_poticalib/adccalib_02.pdf and b/data/m03_poticalib/adccalib_02.pdf differ diff --git a/data/m03_poticalib/processing_poticalib.py b/data/m03_poticalib/processing_poticalib.py index 34759d6..dcd27ce 100644 --- a/data/m03_poticalib/processing_poticalib.py +++ b/data/m03_poticalib/processing_poticalib.py @@ -51,10 +51,10 @@ axa[0].errorbar( axa[0].plot( data['r_bcu/kohm'], data['v_bcutheo/v'], - label="V$_{BCU,O}$" + label="V$_{O}$" ) -axa[0].set_xlabel('$R_{BCU,Set}$/k$\Omega$') +axa[0].set_xlabel('$R_{S}$/k$\Omega$') #axa[1].set_ylabel('Residuals / %$_{err}$') axa[0].set_ylabel('V$_{1.8V, Analog}$/V') axa[0].legend() diff --git a/parts/__latexindent_temp.tex b/parts/__latexindent_temp.tex index cfa4bcb..fa7a7af 100644 --- a/parts/__latexindent_temp.tex +++ b/parts/__latexindent_temp.tex @@ -1,4 +1,438 @@ - \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 +%! TEX root = ../thesis.tex +\chapter{Experiments} +Now that the theoretical model is complete, experiments can be done to start checking that model. +The results of these experiments are usable for either voltage or current measurements. + +\section{Experimental Setup} +The first setup was used during the calibration phase, while the second setup was used for creating the regulation model. + +\subsection{Calibration Setup} + + To now calibrate a PowerIt a setup is required that can sweep the input voltage, as well as draw different currents from the PowerIt (see \autoref{fig:expsetup1}). + For that a setup with a bench power supply an electronic load and an external voltmeter are used. + Additionally a STM32-Discovery board and a RaspberryPi microcomputer were connected to flash new firmware onto the PowerIt. + \begin{figure}[H] + \centering + \includegraphics[width=.35\columnwidth]{./pics/setup_ps_el_mm.jpg} + \includegraphics[width=.45\columnwidth]{./pics/poweritv1_test_setup_corr.jpg} + \caption{% + Photographs of the first experimental setup. + On the left side visible are a Keithley K2100 voltmeter (top), a Elektro-Automatik PS8080 bench power supply (middle) and EL9080 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} + + To now calibrate the board the bench supply could be controlled, to sweep through a voltage range, or in a similar fashion the electronic load could sweep through different current draw scenarios. + +\subsection{Power Wafer Setup} + + To obtain the required measurements for creating a regulation model the second setup was used (\autoref{fig:expsetup2}). + These required measurements are the calculation of I\(_\text{ret}\), R\(_0\) and R\(_1\) of \autoref{eq:vout2}. + + \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 heat sink.% + }% + \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 attached and is also connected to 8 CURE boards, 2 AnaBs and a PowerIt. + +\section{Characterization} + +The first experiments to run are the characterization of hardware behavior. +These will then result in a PowerIt calibration, which later then can be used as basis for creating a regulation method. + +For the complete calibration process the calibration setup was used. + +\subsection{Sampling Time} + First up was selecting an optimal sample tick number. + The sample ticks are the cycles for which an adc will probe a pin. + + In this case the uncalibrated measurement of input voltage was taken as example, and repeated with each of the possible 8 settings. + + In addition a voltage measurement was taken with an external voltmeter\footnote{Keithley 2100}. The voltameter was connected to the \SI{48}{\volt} input voltage terminal. + The difference from the supplied Voltage, set with the external power supply\footnote{} was then calculated. + In \autoref{sampleticks1} these calculated values are plotted. + + \begin{figure} + \centering + \hspace*{-.175\columnwidth} + \includegraphics[width=1.3\columnwidth]{./data/m04_cycledepends/cycledepends_20180529.pdf} + \caption{Top: input difference from set voltage vs set voltage for different possible scaler values. + Bottom: gain error of the linear fitted curves vs set scaler value (May 29th 2018, $\approx$32\si\degree C)}% + \label{sampleticks1} + \end{figure} + + The in \autoref{sampleticks1} contained absolute error of the voltmeter is not 0 but signifficantly different from the power supply voltage. + Therefore from here on the reference voltages were taken with the external voltmeter, if possible. + This avoids added uncertainty introduced by the power supply. + + Also shown are the calculated gain errors, in case of all 8 settings. + Important to note is the relative error in only one case not usable. + Here the \verb|cycleTime|-Setting was set to 0 and therefore the smallest available sampling time of 3 Ticks was chosen. + This result excludes 0 as a possible value to use. + All other measurements are within error margin of each other, and because a smaller time frame is preferred, the best value to use is 1. + This results in a sample time of 15 Ticks or \SI{77}{\nano\second} per pin. + + % TODO: move to appendix + %\begin{figure}[H] + % \centering + % \hspace*{-.175\columnwidth} + % \includegraphics[width=1.3\columnwidth]{./data/m04_cycledepends/cycledepends_20180530.pdf} + % \caption{plotted difference from set input voltage, and fitted linearly, May 30th 2018, $\approx$25\si\degree C} + % \label{sampleticks2} + %\end{figure} + +\subsection{Voltages} + + Now that a sample time is chosen, it is possible to proceed with the voltage calibration measurements. + Note, that measurements can be less accurate, the more components are contained in their respective measurement circuit. + The reason for that is, that small errors can accumulate and in e.g. the case of 48V's be amplified by a factor of 8. + + \subsubsection{48V Input} + + In this setup the voltmeter is connected to positive and negative input voltage terminal. + + When looking at calibrating the input voltage (\autoref{v48_precalib}), we can clearly see a relatively constant offset of $\approx$1V. + This is most likely the result of a offset voltage introduced behind the secondary amplifier. + In \autoref{v48_precalib} a polynomial fit of 2nd degree\footnote{A Fit of second degree will be used in the complete calibration process} is done and its coefficients extracted (\autoref{pitdb}, line 9). + These coefficients not only show an offset, but also some deviation in the incline and curve from the default values. + + \begin{figure}[H] + \centering + \vspace{-1cm} + \hspace*{-.16\columnwidth} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180824/calib_v48.pdf} + \vspace{-1cm} + \caption{ + Calibration of \SI{48}{\volt} input voltage. + Plotted are measured and reference vs the calculated vin voltage. + The Calibration sweeps from \SIrange{43.2}{52.8}{\volt}. + The fit is of second degree and its inverse are the to use calibration coefficients. + (fit:{\( + \pyval{poly48v2}V_\text{IN}^2+\pyval{poly48v1}V_\text{IN}+\pyval{poly48v0}=V_\text{MONITOR\_48V} + \)})}% + \label{v48_precalib} + \end{figure} + + \subsubsection{9.6V Output} + + For this setup the voltmeter was connected to a PowerIt \verb|GND| and \verb|10V| pad. + + The 9.6V Calibration, shows a slight difference between internal values and the reference measurement. + This results in a list of coefficients (\autoref{pitdb}, line 7), very similar to those set in the theoretical defaults (\autoref{pitdb-example}). + + \begin{figure}[H] + \centering + \vspace{-1cm} + \hspace*{-.16\columnwidth} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180824/calib_v10.pdf} + \vspace{-1cm} + \caption{% + Calibration of \SI{9.6}{\volt} input voltage. + Plotted are measured and reference vs the calculated vin voltage. + The Calibration sweeps from \SIrange{43.2}{52.8}{\volt}, and the supply modules divide that into \SIrange{8.64}{10.56}{\volt}. + The fit is of second degree and its inverse are the to use calibration coefficients. + (fit:{\( + \pyval{poly10v2}V_\text{10V}^2+\pyval{poly10v1}V_\text{10V}+\pyval{poly1v0}=V_\text{MONITOR\_10V} + \)})}% + \label{v10_precalib} + \end{figure} + + This small difference is explained by the simple voltage division used as our circuitry, and no amplification, as for the input voltage circuit. + + \subsubsection{1.8V Output} + + The last voltage to calibrate is divided into two domains, one for supplying the analog, and one for the digital side of the wafer circuitry. + Each deliver between \SI{1.549}{\volt} and \SI{2.022}{\volt} and both are settable by their respective circuit (both as in \autoref{fig:gen18v}). + + And for each measurement the voltmeter was either connected to POwerIt \verb|GND| and \verb|1.8V analog| or \verb|1.8V digital| pins. + + \begin{figure}[H] + \centering + \vspace{-1cm} + \hspace*{-.15\columnwidth} + \includegraphics[width=1.3\columnwidth]{./data/m03_poticalib/adccalib_02.pdf} + \caption{Calibration: analog 1.8V Output voltage, plotted are external measurement and internal values vs set resistance R\(_S\)at the voltage module.}% + \label{fig:v18_precalib} + \end{figure} + + Visualized in \autoref{fig:v18_precalib} is the analog domains calibration, showing nearly no difference in board and reference measurements. Mostly due to direct connection between created voltage and the STM-Chips pin. + +\subsection{Currents} + + With now calibrated Voltages, the next step is to measure the behavior of the current measuring circuits. + Note that the 9.6V Output does in fact not have a include circuit for measuring its current draw, and that this number will be obtainable from all other (calibrated) measurements. + + \subsubsection{48V Input} + This experiment will calibrate the 48V input current. + The setup consists of connecting the electric load to \verb|GND| and \verb|10V| pins. + In it the current drawn by the PowerIt sweeps over a range from \SIrange{0}{20}{\ampere}. + + In \autoref{fig:calib48i} quite a gap between observed and measured values can be seen. + This is most likely a gain error, which would result in a error in \(m_2\), as observed. + And the fitted curve has the following parameters: + + \begin{align} + V_\text{MONITOR\_48I} =&~m_0 + m_1\cdot I_\text{IN} + m_2\cdot I_\text{IN}^2\\ + m_0 =&~\pyval{poly48i0}\nonumber\\ + m_1 =&~\pyval{poly48i1}\nonumber\\ + m_2 =&~\pyval{poly48i2}\nonumber + \end{align} + + from which the inverse will used for calibration inside the PowerIt. + + \begin{figure}[H] + \centering + \vspace{-1cm} + \hspace*{-.16\columnwidth} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180824/calib_i48.pdf} + \vspace{-1cm} + \caption{% + Calibration of \SI{48}{\volt} input current. + Plotted are measured and reference current vs the calculated pin voltage. + The Calibration sweeps over \SIrange{0}{20}{\ampere}. + The fit is of second degree and its inverse are the to use calibration coefficients. + }% + \label{fig:calib48i} + \end{figure} + + \subsubsection{1.8V Output} + + For the calibration experiment of both 1.8V output currents, the current draw ranged from \SIrange{0}{90}{\ampere}. + The electric load was connected to a \verb|GND| and \verb|1.8V analog| or \verb|1.8V digital|pin depending on the measurement. + Observed were the values in \autoref{precalib18i}. + Visible is a different incline of internal measurement and reference. + + \begin{figure}[H] + \centering + \vspace{-1cm} + \hspace*{-.165\columnwidth} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180824/calib_i18.pdf} + \vspace{-1cm} + \caption{% + Calibration of \SI{1.8}{\volt} output current for both digital and analog. + Plotted are measured and reference current vs the calculated pin voltage. + The Calibration sweeps over \SIrange{0}{90}{\ampere}. + The fits are of second degree and their inverse are the to use calibration coefficients. + }% + \label{precalib18i} + \end{figure} + + The fitted curve for the analog side were: + + \begin{align} + V_\text{MONITOR\_1I8\_ANA} =&~m_0 + m_1 \cdot I_\text{1.8V, ana} + m_2 \cdot I_\text{1.8V, ana}^2\\ + m_0 =&~\pyval{poly18iana0}\nonumber\\ + m_1 =&~\pyval{poly18iana1}\nonumber\\ + m_2 =&~\pyval{poly18iana2}\nonumber + \end{align} + + , while the digital side had quite similar values of: + + \begin{align} + V_\text{MONITOR\_1I8\_DIGI} =&~m_0 + m_1 \cdot I_\text{1.8V, digi} + m_2 \cdot I_\text{1.8V, digi}^2\\ + m_0 =&~\pyval{poly18idigi0}\nonumber\\ + m_1 =&~\pyval{poly18idigi1}\nonumber\\ + m_2 =&~\pyval{poly18idigi2}\nonumber + \end{align} + + This also show, that both parts are so similar in behavior, that a single sides observations would have sufficed. + +\section{1.8V Regulation} + +As Described beforehand the Output Voltages for both analog and digital can be adjusted to some degree and therefore we can compensate for the dropoff occurring between PowerIt Output Terminals and Reticles. + +The following experiments were run unsing the Power Wafer setup. +To run any test with the PowerWafer, the patterns in \autoref{fig:wpattern} were used. +There are two reasons for that, firstly these patterns distribute the current draw in a regular fashion as to distribute the load between the connectors. +Secondly, when powering Reticles all of the energy is converted into heat, via the ohmic resistors. + +\begin{figure}[H] + \centering + \includegraphics[width=\columnwidth]{./data/theory/wpattern.pdf} + \caption{Used regular patterns for current tests on PowerWafer}% + \label{fig:wpattern} +\end{figure} + +And although the copper heat sink and fans (see \autoref{fig:expsetup2}), should be able to handle this heat in a HICAN wafer system, when grouping together reticles and powering them, the dissipation does not suffice. +This is the case, because the Power Wafer is drawing more current per reticle than a HICANN wafer would during an experiment. +The internal temperature probes (between heat sink and wafer) register well above \SI{50}{\celsius}, when grouping 3 or more reticles. + +\subsection{Characterization of Dropoff} + +Wanting to observe and characterize the voltage drop, first the connections between PowerIt and Reticles can be measured with the in \autoref{fig:retmodel} described connections, which in actuality are the PowerIT Terminal and corresponding analog readout pin on a Analog readout board. + +To use the PowerWafer for testing one of the patterns in \autoref{fig:wpattern} will be used, each pattern has a approximate current draw of 120A and will distribute heat and draw per terminal evenly. + +In \autoref{1v8dip} a single reticles (\#40) voltage drop for different Current Draws is visualized. +A relatively linear trend and residuals of a trigonometric behavior can be observed (most likely the result of the inaccurately measurable current draw, which here is done inside the PowerIt). + +\begin{figure}[H] + \centering + \vspace*{-1.5cm} + \hspace*{-.16\columnwidth} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180824/ret_vdip.pdf} + \vspace{-1cm} + \caption{Voltage drop observed between PowerIt and HICANN, each point represents a state after enabling additional Reticles on the PowerWafer (right upper wafer in \autoref{fig:wpattern})} + \label{1v8dip} +\end{figure} + +Here a Voltage Drop vs. Current draw of the wafer shows a linear behavior and therefore can be regulated on basis of the current measurement done by on board Measurement circuit. + +\subsection{Numerical-Correction (Regulation)} + +The initial idea, to approach the correction of this dropoff is a Numerical: the SWRM (\autoref{sec:swrm}) and its corresponding Equations can be applied here. +\autoref{eq:fullreg}, which maps the measured output current to a corresponding potentiometer setting, requires the Dropoff to be linear, which was observed. + +To apply this approach, two assumptions need to be made: +\begin{itemize} + \item all reticles have the same current draw (already not accurate, see \autoref{1v8dip}) + \item all reticles experience the same voltage drop (as observed for reticle 40) +\end{itemize} + +and the following four values are required, before a regulation can be attempted: +\begin{itemize} + \item \(I_{ret}\), the current draw of a single reticle, + \item \(R_0\), the resistance between PowerIt and FET, + \item \(R_1\), the resistance of a single Reticle + + \item \(V_{off}\), the wanted Voltage at a Reticle +\end{itemize} + +To get a representative value of \(I_{ret}\) for use in the SWRM, the mean current draw per reticle was taken (\autoref{fig:ihist}): + +\begin{align} + \pyval{iretmeancorr}\label{eq:iretmeancorr} +\end{align} + +\begin{figure}[H] + \centering + \vspace{-1cm} + \hspace*{-.15\columnwidth} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180828/reticle_ihist.pdf} + \caption{Distribution of analog current draw for all reticles on the PowerWafer (which were possible to measure)}% + \label{fig:ihist} +\end{figure} +The \autoref{fig:ihist} was obtained by measuring the increase in current draw for each reticle, for each of the 4 patterns (\autoref{fig:wpattern}).\\\\ +To obtain \(R_0\), the pattern in \autoref{fig:wafer-ret5} was used to take measurements for both the neighborhood as well as the farthest reticles. + +\begin{figure}[H] + \centering + \hspace*{.1\columnwidth} + \includegraphics[width=.6\columnwidth]{../pitstop/processing/neighborhoood_5.pdf} + \vspace{-1cm} + \caption{Reticles used to determine correlation between distance and Voltage Drop}% + \label{fig:wafer-ret5} +\end{figure} + +\begin{figure}[H] + \centering + \vspace*{-1cm} + \hspace*{-.15\columnwidth} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180828/reticle_corr} + \caption{Voltage drop vs current for both Reticles in direct neighborhood and farthest possible Reticles}% + \label{fig:ret5corr} +\end{figure} + +From \autoref{fig:ret5corr} it is possible to see that the distance between reticles that are used gives different behavior of the voltage drop. Both Inclines happen to be the extreme cases, while either being completely uncorrelated, the case for farthest Reticles, or being directly correlated by their distance, here observable for the neighboring Reticles. + +Therefore we obtain two values for \(R_0\): + + \begin{align} + \pyval{r0_from_neighbor}\nonumber\\ + \pyval{r0_from_farthest}\label{eq:r0} + \end{align} + +from the same measurement it is also possible to extract \(R_1\) by extrapolating to 0, which results in: + + \begin{align} + \pyval{r1_from_neighbor}\nonumber\\ + \pyval{r1_from_farthest}\label{eq:r1} + \end{align} + +here the values obtained are within error margin of each other. + +So applying these Values, the following behavior for regulation can be visualized: + +\begin{figure}[H] + \centering + \hspace*{-.16\columnwidth} + \includegraphics[width=1.3\columnwidth]{./data/theory/reg.pdf} + \caption{Possible \(P_{val}\) curves after SWRM, dotted lines represent not achievable values. This plot is generated from the obtained SWRM parameters, leaving only V\(_\text{off}\) to vary.}% + \label{fig:regswrm} +\end{figure} + +The in \autoref{fig:regswrm} visualized values show the theoretical \(P_{val}\) for the corresponding current. +All of the dotted parts depict with this setup unachieveble values. +This reaults in the PowerIts inability to correct for any change in current above a certain threshold. +In the domain above this threshold the resulting voltage would behave the same as before regulation. +Note that the 1.8V regulation, should fail at about 80A of current draw. + +Now voltage drop per reticle, in a single reticle power state, was observed: + +\begin{figure}[H] + \centering + \vspace*{-1cm} + \hspace*{-.15\columnwidth} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180828/reticle_vdiphist.pdf} + \caption{Initially observed voltage drop, red values are ignored for corrected mean}% + \label{fig:vdiphist} +\end{figure} + +The histogram in \autoref{fig:vdiphist} has amean of + +\begin{align} + \pyval{vdipmeancorr} +\end{align} + +\autoref{fig:wrdist} shows how those Voltages are Distributed over the complete PowerWafer. +All white Reticles are not measurable, either because they were not functional or could not be read. +The occurances marked in red in \autoref{fig:vdiphist} are reticles \#11, \#20 and \#28, which were outliers and are excluded in the calculation of corrected values. + +This results in a distribution, which when combined with the spread of \(R_0\) from \autoref{fig:ret5corr}, gives an approximate range for all reticles voltage drop at a given current draw (\autoref{fig:vrange}). + +To be able to obtain the through AnaB pins measured voltages it should also be possible to use the CUREs voltage readout. +The voltages obtained from these boards, should be comparable. +THe reason for that is that we can assume a constand R\(_1\) for all reticles. +In \autoref{fig:vcure40} these voltages are visualized, in comparison to the AnaB voltages. + +\begin{figure}[H] + \centering + \vspace{-1cm} + \includegraphics[width=.7\columnwidth]{../pitstop/20180828/reticel_rdist.pdf} + \vspace{-.5cm} + \caption{\(V_\text{drop}\) distribution over full Power Wafer; White have no measurement; Red an Orange are marked red in \autoref{fig:vdiphist}}% + \label{fig:wrdist} +\end{figure} + +\begin{figure}[H] + \centering + \vspace{-1cm} + \includegraphics[width=.9\columnwidth]{../pitstop/20180828/reticle_vcure.pdf} + \vspace{-.7cm} + \caption{% + Comparison of AnaB and CURE measured voltage drop. + Colors indicate their respective relative values for each measurement. + White reticles have no measurement. + }% + \label{fig:vcure40} +\end{figure} + +This comparison shows no discernable relation between both measurements. +The reason for this is most likely a problem in the assumption, that R\(_1\) is the same for all reticles, which would result in a voltage difference that is constant. +Additionally the distribution of CURE voltages would look similar to the AnaB measurement. \ No newline at end of file diff --git a/parts/experiments.tex b/parts/experiments.tex index 2b00529..fa7a7af 100644 --- a/parts/experiments.tex +++ b/parts/experiments.tex @@ -1,14 +1,14 @@ %! TEX root = ../thesis.tex \chapter{Experiments} -Now that the theoretical model is complete, experiments can be done to start checking that model and get results to use for in system components. +Now that the theoretical model is complete, experiments can be done to start checking that model. +The results of these experiments are usable for either voltage or current measurements. \section{Experimental Setup} -But before diving into the measurements a short tour of both experimental setups. The first setup was used during the calibration phase, while the second setup was used for creating the regulation model. -\subsection{Part 1} +\subsection{Calibration Setup} - To calibrate a PowerIt a setup is required, that can sweep the input voltage, as well as draw different current from the PowerIt (see \autoref{fig:expsetup1}). + To now calibrate a PowerIt a setup is required that can sweep the input voltage, as well as draw different currents from the PowerIt (see \autoref{fig:expsetup1}). For that a setup with a bench power supply an electronic load and an external voltmeter are used. Additionally a STM32-Discovery board and a RaspberryPi microcomputer were connected to flash new firmware onto the PowerIt. \begin{figure}[H] @@ -25,11 +25,11 @@ The first setup was used during the calibration phase, while the second setup wa \end{figure} To now calibrate the board the bench supply could be controlled, to sweep through a voltage range, or in a similar fashion the electronic load could sweep through different current draw scenarios. - This setup includes cable connections to voltmeter, power supply and load as to be able to control them with a piece of software. -\subsection{Part 2} +\subsection{Power Wafer Setup} To obtain the required measurements for creating a regulation model the second setup was used (\autoref{fig:expsetup2}). + These required measurements are the calculation of I\(_\text{ret}\), R\(_0\) and R\(_1\) of \autoref{eq:vout2}. \begin{figure}[H] \centering @@ -48,20 +48,25 @@ The first setup was used during the calibration phase, while the second setup wa \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. + 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 attached and is also connected to 8 CURE boards, 2 AnaBs and a PowerIt. \section{Characterization} -The first experiments to run are the characterization of hardware behavior. These will then result in a PowerIt Calibration, which later then can be used as basis for creating a regulation method. +The first experiments to run are the characterization of hardware behavior. +These will then result in a PowerIt calibration, which later then can be used as basis for creating a regulation method. + +For the complete calibration process the calibration setup was used. \subsection{Sampling Time} - First up was selecting an optimal number of cycles for which the adc will probe a to it connected pin, like described in \autoref{sec:adc}. + First up was selecting an optimal sample tick number. + The sample ticks are the cycles for which an adc will probe a pin. In this case the uncalibrated measurement of input voltage was taken as example, and repeated with each of the possible 8 settings. - To be able to compare a reference voltage measurement was taken with an external Voltmeter\footnote{Keithley K2100}. - The resulting errors, from a set Voltage, can be seen in figures \ref{sampleticks1} + In addition a voltage measurement was taken with an external voltmeter\footnote{Keithley 2100}. The voltameter was connected to the \SI{48}{\volt} input voltage terminal. + The difference from the supplied Voltage, set with the external power supply\footnote{} was then calculated. + In \autoref{sampleticks1} these calculated values are plotted. \begin{figure} \centering @@ -72,10 +77,16 @@ The first experiments to run are the characterization of hardware behavior. Thes \label{sampleticks1} \end{figure} - \autoref{sampleticks1} contains the absolute error of the measured voltage compared to the theoretical, set input voltages. therefore the reference measurements (yellow), taken with an external Voltmeter, are not at 0. - Also shown are the calculated gain errors, in case of all 8 settings. + The in \autoref{sampleticks1} contained absolute error of the voltmeter is not 0 but signifficantly different from the power supply voltage. + Therefore from here on the reference voltages were taken with the external voltmeter, if possible. + This avoids added uncertainty introduced by the power supply. - Important to note is the relative error in only the 0th case, here the \verb|cycleTime|-Setting was set to 0 and therefore the smallest available sampling time of 3 Ticks. This excludes 0 a possible value to use. All other measurements are within error margin of each other, and because a smaller time frame is preferred, the best value to use is 1, resulting in a measure time of 15 Ticks. + Also shown are the calculated gain errors, in case of all 8 settings. + Important to note is the relative error in only one case not usable. + Here the \verb|cycleTime|-Setting was set to 0 and therefore the smallest available sampling time of 3 Ticks was chosen. + This result excludes 0 as a possible value to use. + All other measurements are within error margin of each other, and because a smaller time frame is preferred, the best value to use is 1. + This results in a sample time of 15 Ticks or \SI{77}{\nano\second} per pin. % TODO: move to appendix %\begin{figure}[H] @@ -89,11 +100,15 @@ The first experiments to run are the characterization of hardware behavior. Thes \subsection{Voltages} Now that a sample time is chosen, it is possible to proceed with the voltage calibration measurements. - Note, that measurements are expected to be less accurate, the more components are contained in their respective measurement circuit. Because small errors will accumulate and in e.g. the case of 48V's be amplified by a factor of 8. + Note, that measurements can be less accurate, the more components are contained in their respective measurement circuit. + The reason for that is, that small errors can accumulate and in e.g. the case of 48V's be amplified by a factor of 8. \subsubsection{48V Input} + In this setup the voltmeter is connected to positive and negative input voltage terminal. + When looking at calibrating the input voltage (\autoref{v48_precalib}), we can clearly see a relatively constant offset of $\approx$1V. + This is most likely the result of a offset voltage introduced behind the secondary amplifier. In \autoref{v48_precalib} a polynomial fit of 2nd degree\footnote{A Fit of second degree will be used in the complete calibration process} is done and its coefficients extracted (\autoref{pitdb}, line 9). These coefficients not only show an offset, but also some deviation in the incline and curve from the default values. @@ -116,9 +131,10 @@ The first experiments to run are the characterization of hardware behavior. Thes \subsubsection{9.6V Output} - The 9.6V Calibration, in contrast, shows only a slight deviation of the internal values and the reference measurement, which results in a list of coefficients (\autoref{ - %TODO: - }, line 7), very similar to those set in the theoretical defaults. + For this setup the voltmeter was connected to a PowerIt \verb|GND| and \verb|10V| pad. + + The 9.6V Calibration, shows a slight difference between internal values and the reference measurement. + This results in a list of coefficients (\autoref{pitdb}, line 7), very similar to those set in the theoretical defaults (\autoref{pitdb-example}). \begin{figure}[H] \centering @@ -141,15 +157,17 @@ The first experiments to run are the characterization of hardware behavior. Thes \subsubsection{1.8V Output} - The last Voltage to calibrate is divided into two domains, one for supplying the analog circuitry inside the wafer system, and one for the digital side. Each deliver between 1.5%TODO: value!! - and 2.022V and each is settable by its own circuit (both as in \autoref{fig:gen18v}). + The last voltage to calibrate is divided into two domains, one for supplying the analog, and one for the digital side of the wafer circuitry. + Each deliver between \SI{1.549}{\volt} and \SI{2.022}{\volt} and both are settable by their respective circuit (both as in \autoref{fig:gen18v}). + + And for each measurement the voltmeter was either connected to POwerIt \verb|GND| and \verb|1.8V analog| or \verb|1.8V digital| pins. \begin{figure}[H] \centering \vspace{-1cm} \hspace*{-.15\columnwidth} \includegraphics[width=1.3\columnwidth]{./data/m03_poticalib/adccalib_02.pdf} - \caption{Calibration: analog 1.8V Output voltage, plotted are external measurement and internal values vs set resistance at the BCU Voltage Module.}% + \caption{Calibration: analog 1.8V Output voltage, plotted are external measurement and internal values vs set resistance R\(_S\)at the voltage module.}% \label{fig:v18_precalib} \end{figure} @@ -162,6 +180,7 @@ The first experiments to run are the characterization of hardware behavior. Thes \subsubsection{48V Input} This experiment will calibrate the 48V input current. + The setup consists of connecting the electric load to \verb|GND| and \verb|10V| pins. In it the current drawn by the PowerIt sweeps over a range from \SIrange{0}{20}{\ampere}. In \autoref{fig:calib48i} quite a gap between observed and measured values can be seen. @@ -195,6 +214,7 @@ The first experiments to run are the characterization of hardware behavior. Thes \subsubsection{1.8V Output} For the calibration experiment of both 1.8V output currents, the current draw ranged from \SIrange{0}{90}{\ampere}. + The electric load was connected to a \verb|GND| and \verb|1.8V analog| or \verb|1.8V digital|pin depending on the measurement. Observed were the values in \autoref{precalib18i}. Visible is a different incline of internal measurement and reference. @@ -237,6 +257,7 @@ The first experiments to run are the characterization of hardware behavior. Thes As Described beforehand the Output Voltages for both analog and digital can be adjusted to some degree and therefore we can compensate for the dropoff occurring between PowerIt Output Terminals and Reticles. +The following experiments were run unsing the Power Wafer setup. To run any test with the PowerWafer, the patterns in \autoref{fig:wpattern} were used. There are two reasons for that, firstly these patterns distribute the current draw in a regular fashion as to distribute the load between the connectors. Secondly, when powering Reticles all of the energy is converted into heat, via the ohmic resistors. @@ -248,7 +269,8 @@ Secondly, when powering Reticles all of the energy is converted into heat, via t \label{fig:wpattern} \end{figure} -And although the copper heat sink and fans (see \autoref{fig:expsetup2}), should be able to handle this heat in theory, when grouping together reticles and powering them, the dissipation does not suffice. +And although the copper heat sink and fans (see \autoref{fig:expsetup2}), should be able to handle this heat in a HICAN wafer system, when grouping together reticles and powering them, the dissipation does not suffice. +This is the case, because the Power Wafer is drawing more current per reticle than a HICANN wafer would during an experiment. The internal temperature probes (between heat sink and wafer) register well above \SI{50}{\celsius}, when grouping 3 or more reticles. \subsection{Characterization of Dropoff} @@ -292,22 +314,22 @@ and the following four values are required, before a regulation can be attempted \item \(V_{off}\), the wanted Voltage at a Reticle \end{itemize} -To get a representative value of \(I_{ret}\) for use in the SWRM, the mean of all reticles current draw was taken (\autoref{fig:ihist}): +To get a representative value of \(I_{ret}\) for use in the SWRM, the mean current draw per reticle was taken (\autoref{fig:ihist}): \begin{align} - \pyval{iretmeancorr} + \pyval{iretmeancorr}\label{eq:iretmeancorr} \end{align} \begin{figure}[H] \centering \vspace{-1cm} \hspace*{-.15\columnwidth} - \includegraphics[width=1.3\columnwidth]{../pitstop/20180819/reticle_ihist.pdf} - \caption{Distribution of analog current draw for all reticles on the PowerWafer (which were possible to measure \(\rightarrow\) \autoref{sec:pitfalls})}% + \includegraphics[width=1.3\columnwidth]{../pitstop/20180828/reticle_ihist.pdf} + \caption{Distribution of analog current draw for all reticles on the PowerWafer (which were possible to measure)}% \label{fig:ihist} -\end{figure}~\\ +\end{figure} The \autoref{fig:ihist} was obtained by measuring the increase in current draw for each reticle, for each of the 4 patterns (\autoref{fig:wpattern}).\\\\ -To obtain \(R_0\), the pattern in \autoref{fig:wafer-ret5} was used to take measurements for both the Neighborhood as well as the Farthest Reticles. +To obtain \(R_0\), the pattern in \autoref{fig:wafer-ret5} was used to take measurements for both the neighborhood as well as the farthest reticles. \begin{figure}[H] \centering @@ -322,7 +344,7 @@ To obtain \(R_0\), the pattern in \autoref{fig:wafer-ret5} was used to take meas \centering \vspace*{-1cm} \hspace*{-.15\columnwidth} - \includegraphics[width=1.3\columnwidth]{../pitstop/20180820/reticle_corr} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180828/reticle_corr} \caption{Voltage drop vs current for both Reticles in direct neighborhood and farthest possible Reticles}% \label{fig:ret5corr} \end{figure} @@ -332,15 +354,15 @@ From \autoref{fig:ret5corr} it is possible to see that the distance between reti Therefore we obtain two values for \(R_0\): \begin{align} - \pyval{r0_from_neighbor}\\ - \pyval{r0_from_farthest} + \pyval{r0_from_neighbor}\nonumber\\ + \pyval{r0_from_farthest}\label{eq:r0} \end{align} from the same measurement it is also possible to extract \(R_1\) by extrapolating to 0, which results in: \begin{align} - \pyval{r1_from_neighbor}\\ - \pyval{r1_from_farthest} + \pyval{r1_from_neighbor}\nonumber\\ + \pyval{r1_from_farthest}\label{eq:r1} \end{align} here the values obtained are within error margin of each other. @@ -351,45 +373,48 @@ So applying these Values, the following behavior for regulation can be visualize \centering \hspace*{-.16\columnwidth} \includegraphics[width=1.3\columnwidth]{./data/theory/reg.pdf} - \caption{Possible \(P_{val}\) curves after SWRM, dotted lines represent not achievable values}% + \caption{Possible \(P_{val}\) curves after SWRM, dotted lines represent not achievable values. This plot is generated from the obtained SWRM parameters, leaving only V\(_\text{off}\) to vary.}% \label{fig:regswrm} \end{figure} -The in \autoref{fig:regswrm} visualized values show the theoretical \(P_{val}\) for the corresponding Current, while all dotted parts depict the values which would be needed to achieve full correction at the Reticle level. +The in \autoref{fig:regswrm} visualized values show the theoretical \(P_{val}\) for the corresponding current. +All of the dotted parts depict with this setup unachieveble values. +This reaults in the PowerIts inability to correct for any change in current above a certain threshold. +In the domain above this threshold the resulting voltage would behave the same as before regulation. Note that the 1.8V regulation, should fail at about 80A of current draw. -Now that the SWRM is applicable, what about the DWRM, which removes the assumption of a equal voltage drop per reticle, applying an offset to the initially observed voltage of each reticle. - -To account for that, the voltage drop per reticle, in a single reticle power state, was observed: +Now voltage drop per reticle, in a single reticle power state, was observed: \begin{figure}[H] \centering \vspace*{-1cm} \hspace*{-.15\columnwidth} - \includegraphics[width=1.3\columnwidth]{../pitstop/20180820/reticle_vdiphist.pdf} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180828/reticle_vdiphist.pdf} \caption{Initially observed voltage drop, red values are ignored for corrected mean}% \label{fig:vdiphist} \end{figure} -and a mean of: +The histogram in \autoref{fig:vdiphist} has amean of + \begin{align} \pyval{vdipmeancorr} \end{align} -can be observed. - \autoref{fig:wrdist} shows how those Voltages are Distributed over the complete PowerWafer. -All white Reticles are not measurable, and those colored in Red and Yellow are the outliers in \autoref{fig:vdiphist}. Note that in a deployed, working, Wafer System inside BrainScaleS the middle two Reticles (19 \& 28) are not used and also give grounds to ignoring the outliers. +All white Reticles are not measurable, either because they were not functional or could not be read. +The occurances marked in red in \autoref{fig:vdiphist} are reticles \#11, \#20 and \#28, which were outliers and are excluded in the calculation of corrected values. This results in a distribution, which when combined with the spread of \(R_0\) from \autoref{fig:ret5corr}, gives an approximate range for all reticles voltage drop at a given current draw (\autoref{fig:vrange}). -The last values that were measured, came from the CURE boards connected to each reticle. -The voltages obtained from these boards, can be compare to the manually obtained voltages vie AnaB pins. + +To be able to obtain the through AnaB pins measured voltages it should also be possible to use the CUREs voltage readout. +The voltages obtained from these boards, should be comparable. +THe reason for that is that we can assume a constand R\(_1\) for all reticles. In \autoref{fig:vcure40} these voltages are visualized, in comparison to the AnaB voltages. \begin{figure}[H] \centering \vspace{-1cm} - \includegraphics[width=.7\columnwidth]{../pitstop/20180825/reticel_rdist.pdf} + \includegraphics[width=.7\columnwidth]{../pitstop/20180828/reticel_rdist.pdf} \vspace{-.5cm} \caption{\(V_\text{drop}\) distribution over full Power Wafer; White have no measurement; Red an Orange are marked red in \autoref{fig:vdiphist}}% \label{fig:wrdist} @@ -398,10 +423,10 @@ In \autoref{fig:vcure40} these voltages are visualized, in comparison to the Ana \begin{figure}[H] \centering \vspace{-1cm} - \includegraphics[width=.9\columnwidth]{../pitstop/20180825/reticle_vcure.pdf} + \includegraphics[width=.9\columnwidth]{../pitstop/20180828/reticle_vcure.pdf} \vspace{-.7cm} \caption{% - Qualitative comparison of AnaB and CURe measured voltage drop. + Comparison of AnaB and CURE measured voltage drop. Colors indicate their respective relative values for each measurement. White reticles have no measurement. }% @@ -409,4 +434,5 @@ In \autoref{fig:vcure40} these voltages are visualized, in comparison to the Ana \end{figure} This comparison shows no discernable relation between both measurements. -This could be the result of not correctly calibrated CURE boards, or at least hints to some problem with the measurement. \ No newline at end of file +The reason for this is most likely a problem in the assumption, that R\(_1\) is the same for all reticles, which would result in a voltage difference that is constant. +Additionally the distribution of CURE voltages would look similar to the AnaB measurement. \ No newline at end of file diff --git a/parts/intro.tex b/parts/intro.tex index 036a654..3eee50f 100644 --- a/parts/intro.tex +++ b/parts/intro.tex @@ -3,6 +3,8 @@ \chapter{Introduction} + This will be a short introduction to the BrainScaleS System and PowerIt. + \section{The BrainScaleS System} The BrainScaleS Wafer System which is visualized in \autoref{fig:wss}, developed and used in the electronic visions group at Heidelberg University is a neuromorphic hardware implementation~\cite{waferembedding}. @@ -30,23 +32,23 @@ \section{About the PowerIt Subsystem} - The main subject of this thesis is the PowerIt board, photographed in \autoref{fig:pitteststand}. It functions as power supply inside of the WaferScale system, described before, in which it is e.g. providing the wafer with \SI{1.8}{\volt} and the FPGAs with \SI{9.6}{\volt}. Its maximum rated power draw is \SI{2}{\kilo\watt}.~\cite{poweritupgrade} + The main subject of this thesis is the PowerIt board, photographed in \autoref{fig:pitteststand}. It functions as power supply inside of the WaferScale system, described before, in which it provides e.g. the wafer with \SI{1.8}{\volt} and the FPGAs with \SI{9.6}{\volt}. Its maximum rated power draw is \SI{2}{\kilo\watt}.~\cite{poweritupgrade} \begin{figure}[h] \centering \includegraphics[width=.7\textwidth]{./tikz/powerit.pdf} \caption{ Photograph of the PowerIt boards top view. - Its 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} + It receives \SI{48}{\volt} as input (magenta) and provides \SI{9.6}{\volt} (green) and \SI{1.8}{\volt} (analog: red, digital: blue)}\label{fig:pitteststand} \end{figure} This PowerIt board has a integrated STM32 microcontroller\footnote{STM32F405RGT~\cite{stm32f405xx}} which runs a custom firmware based on ChibiOS~\cite{chibios}. - The PowerIt, while providing \SI{9.6}{\volt} and \SI{1.8}{\volt}, also is able to measure the following values: + The PowerIt also measures the following values: \begin{itemize} \item input voltage and current \item \SI{1.8}{\volt} output voltage and current each for analog and digital parts of the wafer circuits - \item and the \SI{9.6}{\volt} output Voltage + \item and the \SI{9.6}{\volt} output voltage \end{itemize} which can then be used inside the firmware. @@ -60,7 +62,7 @@ \section{Contents in Detail} The first goal was to be able to change the calibration parameters. - An upgrade for the PowerIt firmware was added to accomodate any calibration parameters. + An upgrade for the PowerIt firmware was added to accomodate for those values. This was accomplished with a virtual memory map, which maps every parameter to a specific location and all of them can be changed.\\ Calibrating the PowerIt was the next task. @@ -71,4 +73,6 @@ Taking these calibrations as basis, the \SI{1.8}{\volt} power supplies' behavior through different current draws could be observed. A simple model was generated from these measurements and applied. - Also inside the formware a first iteration of that model was implemented and could now be tested. \ No newline at end of file + Also inside the formware a first iteration of that model was implemented and could now be tested. + + This all resulted in the testing and quntification of the regulation mechanism, as well as a secondary model that could be used in the future. \ No newline at end of file diff --git a/parts/results.tex b/parts/results.tex index 226c5da..24e1bbb 100644 --- a/parts/results.tex +++ b/parts/results.tex @@ -67,17 +67,53 @@ One example of a calibrated measurement can be seen in \autoref{fig:postcalib10v \end{figure} This repeats the calibration measurement for \SI{9.6}{\volt}. -Here quite similar values can be observed, with a maximum \(\Delta V\) of around \SI{31.676}{\milli\volt}. +Here quite similar values can be observed, with a maximum \(\Delta V\) of around \SI{31.7}{\milli\volt}. It is also possible to see a systematic error in \autoref{fig:postcalib10v}. -This error could be corrected, but requires quite some time investment. -It would allow for a reduction of \(\Delta V\), up to a value of \SI{24.456}{\milli\volt}. +This error could be corrected, but requires further iterations of the calibration procedure. +Additional iterations would allow for a reduction of \(\Delta V\), up to a value of \SI{24.5}{\milli\volt} (\(\approx\) \SI{.25}{\%}). -This result is similar to others, and for all it would be possible to achieve a bit better fits. +%This result is similar to others, and for all it would be possible to achieve a bit better fits. +In comparison to this, the \SI{1.8}{\volt} measurement should have a bit better accuracy because of the even simpler circuit. +\begin{align*} + \SI{.25}{\%} \cdot \SI{1.8}{\volt} \approx \SI{4.5}{\milli\volt} +\end{align*} -\section{Regulation} +And also the accuracy of measuring \SI{48}{\volt} should be worse than \SI{24}{\milli\volt}, again because of the circuits complexity. - \subsection{Resulting Observation} +\begin{align*} + \SI{.25}{\%} \cdot \SI{48}{\volt} \approx \SI{120}{\milli\volt} +\end{align*} + +%TODO: currents + +\section{Regulation}\label{sec:withoutreg} + + THese are the obtained results from attempting to regulate the \SI{1.8}{\volt} terminals. + + \subsection{Without Regulation} + + Before the regulation could be attempted some parameters were needed to complete the SWRM, see equations~\ref{eq:iretmeancorr},~\ref{eq:r0} and~\ref{eq:r1}. + With these values and their respective (error) ranges the in \autoref{fig:reg} found plot could be created. + + \begin{figure}[H] + \centering + \vspace{-.5cm} + \hspace*{-.16\columnwidth} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180828/reticle_variance.pdf} + \vspace{-.5cm} + \caption{% + Plot of the expected range of V\(_\text{drop}\) for different current draw. This result is the expected spread without any regulation. Shown are the range for 98\% and 50\% of reticles, as well as the mean V\(_\text{drop}\) for all reticles. + }% + \label{fig:reg} + \end{figure} + + In \autoref{fig:reg} the expected spread of V\(_\text{drop}\) can be found. + Thsi spread is the worst case scenario of V\(_\text{drop}\) distribution. + The reason for that is that with a regulated voltage a constant V\(\text{drop}\) is expected. + This applies to all currents up until \(\approx\) \SI{80}{\ampere}, becase from there the regulation would not work anymore and V\(_\text{drop}\) would behave like in the unregulated case. + + \subsection{With Regulation} To verify the regulation is working and to see if the prediction in \autoref{fig:regswrm} is correct new values were measured. These Values are the voltages with regulation enabled at different Reticles (see \autoref{fig:postreg}). @@ -86,7 +122,7 @@ This result is similar to others, and for all it would be possible to achieve a \centering \vspace{-1cm} \hspace*{-.15\columnwidth} - \includegraphics[width=1.3\columnwidth]{../pitstop/20180825/ret_vdip.pdf} + \includegraphics[width=1.3\columnwidth]{../pitstop/20180828/ret_vdip.pdf} \vspace{-1cm} \caption{% Observed AnaB voltages after regulation at multiple reticles. @@ -96,10 +132,10 @@ This result is similar to others, and for all it would be possible to achieve a \label{fig:postreg} \end{figure} - In this figure three different reticles (\#5, \#29 and \#40) were measured. - Observable is, that firstly the regulation, which was set to achieve \SI{1.8}{\volt} is working until I\(_{ana}\) is at about \SI{80}{\ampere}. + In \autoref{fig:postreg} three different reticles (\#5, \#29 and \#40) were measured. + Observable is, that firstly the regulation, which was set to achieve \SI{1.8}{\volt} is working until I\(_{ana}\) is at I\(_\text{thresh}=\SI{80}{\ampere}\). There the minmal potentiometer setting is used. - From here further regulation, with the same hardware, is impossible. + From here V\(_\text{drop}\) behaves the same as without regulation. Secondly the voltages for different reticles is different and not equal. This was one of the assumptions in the SWRM. @@ -107,17 +143,19 @@ This result is similar to others, and for all it would be possible to achieve a And third, under the assumption of a constant fit (up to I\(_{ana} \approx \SI{80}{\ampere}\)) a systematic error can be observed. - \begin{figure}[H] - \centering - \includegraphics[width=\columnwidth]{../pitstop/20180821/reticle_variance.pdf} - \caption{% - }% - \label{fig:reg} - \end{figure} + Also, the expected behavior from \autoref{sec:withoutreg} can be observed. + + Additionally if the range of I\(_\text{ana}\) > I\(_\text{thresh}\) is observed, V\(_\text{drop}\) does not increase by more than about \SI{30}{\milli\volt}. + \subsection{Distance Wafer Resistance Model (DWRM)}\label{sec:dwrm} - Although the through SWRM gained functions approximate the real world, it is not exact enough. + So far, the discussed measurements and SWRM have been enough to create a first iteration regulation mechanism. + Until now assumptions like a constant R\(_0\) over the complete Wafer, have driven the creation of equations to satisfy this model. + They also led to observable inaccuracies, as seen in \autoref{eq:r0}. + Although the SWRM approximates the real world, it is not exact enough. + To further develop a model that could describe the real world setup in a better way, the next model would have to describe e.g. a different R\(_0\). + In a wafer, the distance between reticles and voltage connector (see \autoref{fig:mainpcb}) are resulting in additional resistance. Therefore the DWRM could be adapted. @@ -125,7 +163,7 @@ This result is similar to others, and for all it would be possible to achieve a \begin{figure}[H] \centering - \includegraphics[width=.5\columnwidth]{tikz/reticlepower_2} + \includegraphics[width=.45\columnwidth]{tikz/reticlepower_2} \caption{Modified model of the to measure resistances and their currents. Similar to SWRM \(R_0\) describes the resistance of a connection between the PowerIt Output, up to the FET (depicted as switch), while \(R_1\) is a Resistance between FET and Reticles. But additionally \(R_{0+}\) described a Resistance, that depends on the distance between reticle and voltage connector. The measurement is done between output terminals on the PowerIt and pins on a Analog readout board}% @@ -137,10 +175,8 @@ This result is similar to others, and for all it would be possible to achieve a \begin{figure}[H] \centering \hspace*{-.14\columnwidth} - \includegraphics[width=1.2\columnwidth]{../pitstop/20180821/reticel_rtheo.pdf} + \includegraphics[width=1.1\columnwidth]{../pitstop/20180821/reticel_rtheo.pdf} \vspace{-1cm} \caption{Distances of reticles to the nearest voltage supplying connection for DWRM, distance is in reticle-side length}% \label{fig:retmodelrdist} - \end{figure} - - Additionally this model is a better fit to the already observed voltage distribution in \autoref{fig:wrdist}. \ No newline at end of file + \end{figure} \ No newline at end of file diff --git a/parts/theory.tex b/parts/theory.tex index 42ce076..ed36516 100644 --- a/parts/theory.tex +++ b/parts/theory.tex @@ -1,6 +1,6 @@ %! TEX root = ../thesis.tex \chapter{Theory}\label{ch:theory} -This chapter will be discussing the fundamental principles used in the experiments. +This chapter will be discussing the principles used in the experiments. These will contain simplified circuits and their respective equations as well as component behavior as specified in their respective data sheets by their manufacturer \section{Hardware Component Behavior} @@ -235,8 +235,8 @@ On the other hand, to calculate the voltage to output, it is necessary to classi \subsection{Power Wafer} To test the \SI{1.8}{\volt} regulation the so called PowerWafer is going to be used. - It can be controlled similar to a in BrainScaleS used, functional, Wafer module. - But it is fundamentally different, as it cannot be used for any neuromorphic computations, but only to test for voltages and currents. + Its reticles can be controlled via the CURE board, similar to HICANN wafers, which are used in BrainScaleS. + But the Power Wafer is different, as it cannot be used for any neuromorphic computation. Its internals are ohmic resistors, which provide a maximum power draw per reticle of what is possible inside a usable wafer module. % \begin{figure}[H] @@ -276,8 +276,16 @@ On the other hand, to calculate the voltage to output, it is necessary to classi \subsection{Simple Wafer Resistance Model (SWRM)}\label{sec:swrm} - To describe the resistances on such a wafer module, a model is needed. - For that the circuit in \autoref{fig:retmodel} can be used. + When powering any reticle on a wafer system, the voltage setting on the PowerIt side is set to about \SI{1.9}{\volt}. + This then results in the reticles receiving around \SI{1.8}{\volt}. + Additionally when running experiments on a HICANN wafer, the current draw results in a drop of this received voltage. + This behavior is most likely the result of a resistance between power supply and reticles. + + To describe the resistances on such a wafer module, a model can be used. + This model combines all resistances introduced through any connection point between supply terminal (copper pad on PowerIt) and PowerFET into R\(_0\). + It also represents the connection between FET and reticle as another resistor R\(_1\). + For this simple model the circuit in \autoref{fig:retmodel} is used. + This naive model will be referenced as SWRM (Simple Wafer Resistance Model) from here. \begin{figure}[H] @@ -293,7 +301,6 @@ On the other hand, to calculate the voltage to output, it is necessary to classi The SWRM circuit consists of two fixed resistance values and their respective currents as approximations of a real world system. It assumes that the connection to the nearest voltage connector is equal (electrically) for all reticles. - inside the code used for Regulation, \autoref{eq:fullreg} will be used to create a lookup table, while \autoref{eq:vout2} will be used at runtime, for which \autoref{eq:vdip} and~\ref{eq:voff} are needed. In the SWRM, the current flowing through \(R_1\) will be either 0 or a constant current \(I_\text{ret}\). And the current through \(R_0\) will change depending on the number of reticles that are powered \(n_\text{ret}\) @@ -301,16 +308,18 @@ On the other hand, to calculate the voltage to output, it is necessary to classi I_{ges} = n_{ret} \cdot I_{ret} \end{align} - Therefore the voltage drop \(V_\text{dip}\) as measured by a voltmeter (see \autoref{fig:retmodel}) can be described with \autoref{eq:vdip} + Therefore the voltage drop \(V_\text{drop}\) as measured by a voltmeter (see \autoref{fig:retmodel}) can be described with \autoref{eq:vdip} \begin{align} \label{eq:vdip} - V_\text{dip} =&\ V_{R_1} + V_{R_0} \nonumber\\ + V_\text{drop} =&\ V_{R_1} + V_{R_0} \nonumber\\ =&\ R_1 \cdot I_\text{ret} + R_0 \cdot I_\text{ges} \nonumber\\ =&\ I_\text{ret} \cdot \left( R_1 + R_0 \cdot n_\text{ret} \right) \end{align} \begin{align} \label{eq:voff} - V_\text{dip} =& V_O - V_\text{off}\\ + V_\text{drop} =& V_O - V_\text{off}\\ \Rightarrow V_O =& I_\text{ret} \cdot \left( R_1 + R_0 \cdot n_\text{ret} \right) + V_\text{off}\label{eq:vout2} \end{align} + + In equations~\ref{eq:voff} and~\ref{eq:vout2} reference the desired voltage at reticle level V\(\text{off}\) and the voltage at a PowerIt terminal V\(_O\). \ No newline at end of file diff --git a/thesis.pdf b/thesis.pdf index 4a77390..e9c2aab 100644 Binary files a/thesis.pdf and b/thesis.pdf differ diff --git a/thesis.tex b/thesis.tex index d6095c9..c050ec4 100644 --- a/thesis.tex +++ b/thesis.tex @@ -29,7 +29,7 @@ \providecommand*{\listingautorefname}{code} \author{Patrick Nisblé} -\title{\color{myteal}Calibration and Regulation of BrainScaleS' PowerIt Subsystems} +\title{\color{myteal}Calibration and Regulation of PowerIt Hardware} \begin{document} %\maketitle \pagenumbering{Roman} diff --git a/tikz/reticlepower.pdf b/tikz/reticlepower.pdf index b14dc59..a1d808b 100644 Binary files a/tikz/reticlepower.pdf and b/tikz/reticlepower.pdf differ diff --git a/tikz/reticlepower.tex b/tikz/reticlepower.tex index 1397989..5c5d867 100644 --- a/tikz/reticlepower.tex +++ b/tikz/reticlepower.tex @@ -15,19 +15,27 @@ to [nos, *-] (0,1) to [R, l={$R_1$}, v_>=$I_{ret}$, -] (0,-.5) to (0, -.8) node[draw=black, fill=white]{reticle} - to [short, -o] (0,-1.2) node[right] {GND} + to [short, -] (0,-1.2) + to [short, -o] (-.4, -1.2) node[left] {GND} (0,1.5) to [] (.6,1.5) to [nos, *-] (.6,1) to [R, l={$R_1$}, -] (.6,-.5) + to (.6, -.8) node[draw=black, fill=white]{reticle} + to [short, -] (.6,-1.2) + to [short, -*] (0, -1.2) (.6,1.5) to [] (1.2,1.5) to [nos, *-] (1.2,1) to [R, l={$R_1$}, -] (1.2,-.5) + to (1.2, -.8) node[draw=black, fill=white]{reticle} + to [short, -] (1.2,-1.2) + to [short, -*] (0.6, -1.2) - (1.2,1.5) - to [] (1.5, 1.5) node[right]{\ldots}; + (1.2, -1.2) to (1.5, -1.2) node[right]{\ldots} + + (1.2,1.5) to [] (1.5, 1.5) node[right]{\ldots}; \end{circuitikz} \end{document} diff --git a/tikz/reticlepower_2.pdf b/tikz/reticlepower_2.pdf index e2f813a..a7e26b8 100644 Binary files a/tikz/reticlepower_2.pdf and b/tikz/reticlepower_2.pdf differ diff --git a/tikz/reticlepower_2.tex b/tikz/reticlepower_2.tex index 6f57243..5d16b35 100644 --- a/tikz/reticlepower_2.tex +++ b/tikz/reticlepower_2.tex @@ -15,20 +15,28 @@ to [nos, *-] (0,1) to [R, l={$R_1$}, v_>=$I_{ret}$, -o] (0,-.5) to (0,-.8) node[draw=black, fill=white]{reticle} - to [short, -o] (0,-1.2) node[right] {GND} + to (0,-1.2) + to [short, -o] (-.3, -1.2) node[left] {GND} (0,1.5) to [R, l={$R_{0+}$}] (1,1.5) to [nos, *-] (1,1) to [R, l={$R_1$}, -] (1,-.5) + to (1,-.8) node[draw=black, fill=white]{reticle} + to (1,-1.2) + to [short, -*] (0, -1.2) (1,1.5) to [R, l={$R_{0+}$}] (2,1.5) to [nos, *-] (2,1) to [R, l={$R_1$}, -] (2,-.5) + to (2,-.8) node[draw=black, fill=white]{reticle} + to (2,-1.2) + to [short, -*] (1, -1.2) + (2,-1.2) to[short, *-] (2.5, -1.2) node[right]{\ldots} (2,1.5) - to [] (2.5, 1.5) node[right]{...} + to [] (2.5, 1.5) node[right]{\ldots} ; \end{circuitikz}