Commit b3d35ea2 authored by Paolo Baesso's avatar Paolo Baesso Committed by GitHub

Merge pull request #9 from PaoloGB/documentation

Documentation
parents ec6e9a66 f0d57c64
......@@ -4,28 +4,34 @@
0
1
Main_TLU.tex
16
12
0
8
2
Main_TLU.tex
TeX
403714043 0 -1 4536 -1 4537 75 75 1448 573 0 1 265 578 -1 -1 0 0 43 -1 -1 43 1 0 4537 -1 0 -1 0
EUDAQParameters.tex
135278587 0 -1 3576 -1 4266 75 75 1448 573 0 1 265 884 -1 -1 0 0 43 -1 -1 43 1 0 4266 -1 0 -1 0
ch_TLU_triggerInputs.tex
TeX
17838075 0 -1 22273 -1 22523 100 100 1473 598 0 1 825 714 -1 -1 0 0 48 -1 -1 48 1 0 22523 -1 0 -1 0
ch_EUDAQParameters.tex
TeX
1060859 0 -1 44 -1 45 275 275 2188 952 0 1 41 17 -1 -1 0 0 -1 -1 -1 -1 1 0 45 -1 0 -1 0
269496315 0 -1 11800 -1 11801 300 300 1686 977 0 1 1945 969 -1 -1 0 0 45 -1 -1 45 1 0 11801 -1 0 -1 0
ch_TLU_Preparation.tex
TeX
1060859 1 -1 64 -1 74 150 150 1523 648 0 1 273 17 -1 -1 0 0 43 -1 -1 43 1 0 74 -1 0 -1 0
1060859 0 -1 2428 -1 2401 150 150 1523 648 0 1 137 408 -1 -1 0 0 43 -1 -1 43 1 0 2401 -1 0 -1 0
O:\LatexFiles\Glossary\myGlossary.tex
TeX
1060859 0 -1 2823 -1 2808 150 150 2063 827 0 1 49 935 -1 -1 0 0 -1 -1 -1 -1 1 0 2808 -1 0 0 0
ch_TLU_Hardware.tex
TeX
1060859 0 -1 1910 -1 1570 200 200 1573 698 0 1 425 238 -1 -1 0 0 41 -1 -1 41 1 0 1570 -1 0 -1 0
1060859 0 -1 2604 -1 2778 200 200 1573 698 0 1 369 493 -1 -1 0 0 41 -1 -1 41 1 0 2778 -1 0 -1 0
ch_TLU_Functions.tex
TeX
1060859 0 22 71 -1 3888 0 0 1398 472 0 1 233 561 -1 -1 0 0 39 -1 -1 39 1 0 3888 -1 0 -1 0
1060859 0 -1 1975 -1 3888 0 0 1386 472 0 1 233 561 -1 -1 0 0 39 -1 -1 39 1 0 3888 -1 0 -1 0
ch_TLU_IPBusRegs.tex
TeX
17838075 1 -1 14645 -1 14630 25 25 1423 497 0 1 249 442 -1 -1 0 0 45 -1 -1 45 1 0 14630 -1 0 -1 0
17838075 0 -1 9482 -1 9218 25 25 1411 497 0 1 169 510 -1 -1 0 0 45 -1 -1 45 1 0 9218 -1 0 -1 0
ch_TLU_Appendix.tex
TeX
1060859 4 -1 36 -1 37 175 175 1548 673 0 1 337 0 -1 -1 0 0 37 -1 -1 37 1 0 37 -1 0 -1 0
......@@ -35,27 +41,9 @@ TeX
ch_TLU_clock.tex
TeX
1060859 0 -1 3508 -1 3508 100 100 1473 598 0 1 553 561 -1 -1 0 0 31 -1 -1 31 1 0 3508 -1 0 -1 0
ch_TLU_triggerInputs.tex
TeX
17838075 0 -1 24307 -1 24306 100 100 1473 598 0 1 977 782 -1 -1 0 0 48 -1 -1 48 1 0 24306 -1 0 -1 0
ch_EventBuffer.tex
TeX
1060859 0 -1 545 -1 563 125 125 1498 623 0 1 41 204 -1 -1 0 0 44 -1 -1 44 1 0 563 -1 0 -1 0
O:\LatexFiles\Glossary\myGlossary.tex
TeX
1060859 0 -1 891 -1 892 50 50 1423 548 0 1 633 85 -1 -1 0 0 61 -1 -1 61 1 0 892 -1 0 0 0
:\Dati\Latex files\CV\CVinglese.tex
TeX
269496315 0 -1 0 -1 0 25 25 1423 497 0 1 41 0 -1 -1 0 0 -1 -1 -1 -1 1 0 0 -1 0 -1 0
:\Dati\Latex files\CV\CVinglese.pdf
DATA
273744114 0 0 1 0 1 0 0 1398 472 1 0 73 0 -1 -1 0 0 -1 -1 -1 -1 1 0 1 0 0 0 0
:\Workspace\myFirmware\DUNE\Documentation\Main_pc053a.tex
TeX
269496315 1 -1 0 -1 3664 0 0 1373 498 0 1 41 697 -1 -1 0 0 43 -1 -1 43 1 0 3664 -1 0 -1 0
:\Workspace\myFirmware\DUNE\Documentation\ch_I2C.tex
TeX
1060859 0 31 17 -1 493 25 25 1398 523 0 1 161 136 -1 -1 0 0 28 -1 -1 28 1 0 493 -1 0 -1 0
*Main_TLU.tex
>
......@@ -69,4 +57,5 @@ TeX
*ch_TLU_Appendix
*ch_TLU_Functions
*ch_TLU_IPBusRegs
*ch_EUDAQParameters
<
\chapter{EUDAQ Parameters}\label{ch:EUDAQPar}
\ No newline at end of file
......@@ -122,7 +122,6 @@
\author{Paolo Baesso}
\title{AIDA Trigger logic unit (TLU)}
\date{\today}
%\date{23 February 2015}
\loadglsentries{O:/LatexFiles/Glossary/myGlossary.tex}
%\input{O:/LatexFiles/Glossary/myGlossary.tex}
%\makeglossaries
......
This diff is collapsed.
......@@ -154,18 +154,18 @@
\end{tabular}
\end{table}
\begin{description}
\begin{description}\label{ch:IPBus_DUT}
\item[version] Returns the current version of firmware used to program the \gls{tlu}
\item[------------------------]
\item[DUTINTERFACES]
\item[DUTMaskW] Writing to this register allows to define which \gls{dut}s are active when in AIDA mode. The lower 4 bits of the register can be used to define the status of the \gls{dut}s: 1 for active, 0 for masked. \verb|hdmi1| is defined by bit 0, \verb|hdmi2| is defined by bit 1, \verb|hdmi3| is defined by bit 2, \verb|hdmi4| is defined by bit 3.
\item[IgnoreDUTBusyW] Writing to this register allows to ignore the busy signal from a particular \gls{dut} while in AIDA mode. The lower 4 bits are used to define the status for each device. A 1 indicates that the logic should ignore busy signals from the specific \gls{dut}.
\item[IgnoreShutterVetoW] The \gls{lsb} of this register can be written to define whether the \gls{dut} should ignore the shutter veto signal. Normally, when the shutter signal is asserted the \gls{dut} reports busy. If this bit is flag the \gls{dut} will ignore the shutter signal.
\item[DUTInterfaceModeW] Write register to define the mode of operation for a \gls{dut}. Two bits per device can be used to define the mode; currently only two modes are available (AIDA, EUDET).\\
\item[DUTInterfaceModeW] Write register to define the mode of operation for a \gls{dut}. Two bits per device can be used to define the mode; currently only two modes are available (AIDA, EUDET) but the second but is reserved for additional modes introduced in the future.\\
The bit pairs are packed from the \gls{lsb} starting with \verb|hdmi1| (bits 0, 1), \verb|hdmi2| (bits 2, 3), \verb|hdmi3| (bits 4, 5), \verb|hdmi4| (bits 6, 7).
\begin{itemize}
\item bit pair X0: EUDET
\item bit pair X1: AIDA
\item bit pair \texttt{X0}: EUDET
\item bit pair \texttt{X1}: AIDA
\end{itemize}
\item[DUTInterfaceModeModifierW] Write register. This register only affects the EUDET mode of operation. For each \gls{dut} two bits can be configured although cyrrently only the lower of the pair is considere. The bit packing is done in a manner similar to the DUTInterfaceMode. Set bit high to allow asynchronous veto using \verb|DUT_CLK| when in EUDET mode.
\item[DUTInterfaceModeR] Read the content of the DUTInterfaceMode register.
......@@ -236,7 +236,7 @@
\item[ThrCount5R] Read register. Returns the number of pulses above threshold for the trigger input.
\end{description}
\begin{description}\label{ch:triggerLogic}
\begin{description}\label{ch:triggerLogicAdd}
\item[------------------------]
\item[TRIGGERLOGIC]
\item[PostVetoTriggersR] Read register. Returns the number of triggers recorded in the \gls{tlu} after the veto is applied. These are the triggers actually sent to the \gls{dut}s.
......
......@@ -23,10 +23,10 @@ The status register (SerdesRst) is as follows:
9 bits are used to determine trigger edges. 8 are from the deserializers, 1 is added as the LSB and is the MSB from the previous word.
\section{Trigger logic}\label{ch:triggerLogic}
The TLU has six trigger inputs than can be used to generate a valid trigger event. The number of possible different trigger combinations is $2^6= 64$ so a 64-bit word can be used to decide the valid combinations. In the hardware the 64-bit word is split into two 32-bit words and the rules to generate the trigger can be specified by the user by writing in the two 32-bit registers \verb|TriggerPattern_highW| and \verb|TriggerPattern_lowW|: the first stores the 32 most significative bits of the trigger word, the latter stores the least significative bits.\\
The TLU has six trigger inputs than can be used to generate a valid trigger event. The number of possible different trigger combinations is $2^6= 64$ so a 64-bit word can be used to decide the valid combinations. In the hardware the 64-bit word is split into two 32-bit words (indicated as \gls{msb} and \gls{lsb} word) and the rules to generate the trigger can be specified by the user by writing in the two 32-bit registers \verb|TriggerPattern_highW| and \verb|TriggerPattern_lowW|: the first stores the 32 most significative bits of the trigger word, the latter stores the least significative bits.\\
The user can select any combination of the trigger inputs and declare it a valid trigger pattern by setting a 1 in the corresponding trigger configuration word.
Tables~\ref{tab:trigconfigLow} and ~\ref{tab:trigconfigHigh} show an example of how to determine the trigger configuration words: whenever a valid trigger combination is encountered, the user should put a 1 in the corresponding row under the PATTERN column. The pattern thus obtained is the required word to write in the configuration register.\\
It is important to note that this solution allows the user to set veto pattern as well: for instance if only word 31 from table~\ref{tab:trigconfigLow} were picked, then the \gls{tlu} would only register a trigger when the combination $\overline{I_{5}}$ + $I_{4}$ + $I_{3}$ + $I_{2}$ + $I_{1}$ + $I_{0}$ was presented at its inputs. In other words, in this specific case $I_{5}$ would act as a veto signal.
It is important to note that this solution allows the user to set veto pattern as well: for instance if only word 31 from table~\ref{tab:trigconfigLow} were picked, then the \gls{tlu} would only register a trigger when the combination $\overline{I_{5}}$ * $I_{4}$ * $I_{3}$ * $I_{2}$ * $I_{1}$ * $I_{0}$ was presented at its inputs. In other words, in this specific case $I_{5}$ would act as a veto signal and the \gls{tlu} would \textbf{not} produce a trigger if $I_{5}$=1.
% Please add the following required packages to your document preamble:
% \usepackage{multirow}
......@@ -122,9 +122,13 @@ DEC & I5 & I4 & I3 & I2 & I1 & I0 & PATTERN & \multicolumn{1}{l|}{\begin{tabular
A ``1'' in the logic table means that the corresponding input must be active to produce a valid trigger. Similarly, a ``0'' indicates that the corresponding input must be inactive (i.e. is a veto, not an ignore). Any change in input configuration will cause the logic to re-assess the trigger status. The following section gives a brief example.\\
\end{alertinfo}
\begin{alertinfo}{Bit 0 meaning}
A 1 in the lowest bit of the \gls{lsb} word indicates that $\overline{I_{5}}$ * $\overline{I_{4}}$ * $\overline{I_{3}}$ * $\overline{I_{2}}$ * $\overline{I_{1}}$ * $\overline{I_{0}}$ is a valid trigger combination, so the \gls{tlu} will produce a trigger when all the inputs are unactive (i.e. even if all the inputs are unplugged). Apart from very specific cases, this is generally not a desired behaviour.
\end{alertinfo}
\subsubsection{Example}
In this example we have connected a pulser to two inputs of the \gls{tlu}, namely input 0 and input 4. The inputs fire with a small, random delay with respect to each other.\\
In order to ensure that the signals overlap adequately, we use the \emph{stretch} register (see chapter~\ref{ch:triggerLogic}) to increase the length of the pulses: we extend \emph{in0} to 10 clock cycles and \emph{in4} to 8 clock cycles. The resulting signals are shown in figure~\ref{Fig:exampleExtendedTriggers}.
In order to ensure that the signals overlap adequately, we use the \emph{stretch} register (see chapter~\ref{ch:triggerLogic}) to increase the length of the pulses: we extend \emph{in0} to 10 clock cycles and \emph{in4} to 8 clock cycles, where the clock has a frequency of 160~MHz. The resulting signals are shown in figure~\ref{Fig:exampleExtendedTriggers}.
\begin{figure}
\centering
\includegraphics[width=.90\textwidth]{./Images/Initial.png}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment