Commit 1793de57 authored by Theodor-Adrian Stana's avatar Theodor-Adrian Stana

doc: Update userguide to add ring buffer info

Signed-off-by: Theodor-Adrian Stana's avatarTheodor Stana <t.stana@cern.ch>
parent 17a7bc21
......@@ -9,7 +9,7 @@
\noindent \rule{\textwidth}{.1cm}
\hfill March 6, 2014
\hfill March 26, 2014
\vspace*{3cm}
......
\subsection{Converter board registers}
\label{app:conv-regs}
Base address: 0x000
Base address: 0xf{}f{}f{}f{}f{}f{}f{}f
{
\rowcolors{2}{white}{gray!25}
\begin{longtable}{l l l p{.45\textwidth}}
\begin{longtable}{l l l p{.5\textwidth}}
\hline
\textbf{Offset} & \textbf{Default} & \textbf{Name}
\textbf{Offset} & \textbf{Reset} & \textbf{Name}
& \textbf{Description} \\
\hline
\endfirsthead
......@@ -15,27 +15,27 @@ Base address: 0x000
\endhead
\hline
\endfoot
0x0 & 0x54424c4f & BIDR & Board ID Register\\
0x4 & Undefined (1) & SR & Status Register\\
0x8 & 0x00000000 & CR & Control Register\\
0xc & 0x00000000 & CH1PCR & Channel 1 Pulse Counter Register\\
0x10 & 0x00000000 & CH2PCR & Channel 2 Pulse Counter Register\\
0x14 & 0x00000000 & CH3PCR & Channel 3 Pulse Counter Register\\
0x18 & 0x00000000 & CH4PCR & Channel 4 Pulse Counter Register\\
0x1c & 0x00000000 & CH5PCR & Channel 5 Pulse Counter Register\\
0x20 & 0x00000000 & CH6PCR & Channel 6 Pulse Counter Register\\
0x24 & 0x00000000 & TVLR & Time Value Low Register\\
0x28 & 0x00000000 & TVHR & Time Value High Register\\
0x2c & 0x00000000 & TFMR & Tag FIFO Meta Register\\
0x30 & 0x00000000 & TFCYR & Tag FIFO Cycles Register \\
0x34 & 0x00000000 & TFTLR & Tag FIFO TAI Low Register \\
0x38 & 0x00000000 & TFTHR & Tag FIFO TAI High Register \\
0x3c & 0x00020000 & TFCSR & Tag FIFO Control and Status Register \\
0x0 & 0x54424c4f & BIDR & Board ID Register\\
0x4 & (1) & SR & Status Register\\
0x8 & 0x00000000 & CR & Control Register\\
0xc & 0x00000000 & CH1PCR & Channel 1 Pulse Counter Register\\
0x10 & 0x00000000 & CH2PCR & Channel 2 Pulse Counter Register\\
0x14 & 0x00000000 & CH3PCR & Channel 3 Pulse Counter Register\\
0x18 & 0x00000000 & CH4PCR & Channel 4 Pulse Counter Register\\
0x1c & 0x00000000 & CH5PCR & Channel 5 Pulse Counter Register\\
0x20 & 0x00000000 & CH6PCR & Channel 6 Pulse Counter Register\\
0x24 & 0x00000000 & TVLR & Time Value Low Register\\
0x28 & 0x00000000 & TVHR & Time Value High Register\\
0x2c & 0x00000000 & TBMR & Tag Buffer Meta Register\\
0x30 & 0x00000000 & TBCYR & Tag Buffer Cycles Register\\
0x34 & 0x00000000 & TBTLR & Tag Buffer TAI Low Register\\
0x38 & 0x00000000 & TBTHR & Tag Buffer TAI High Register\\
0x3c & 0x00020000 & TBCSR & Tag Buffer Control and Status Register\\
\end{longtable}
}
\noindent Note 1: The SR is undefined on startup due to the fact that the
gateware version, switches and RTM fields may have different values.
\noindent Note (1): The reset value of the SR cannot be specified, since it is based on the
gateware version, the state of the on-board switches and whether an RTM is plugged in or not.
\vspace{11pt}
\subsubsection{BIDR -- Board ID Register}
......@@ -47,19 +47,19 @@ gateware version, switches and RTM fields may have different values.
\begin{tabular}{>{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} }
31 & 30 & 29 & 28 & 27 & 26 & 25 & 24\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}BITS[31:24]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}BIDR[31:24]}\\
\hline
23 & 22 & 21 & 20 & 19 & 18 & 17 & 16\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}BITS[23:16]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}BIDR[23:16]}\\
\hline
15 & 14 & 13 & 12 & 11 & 10 & 9 & 8\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}BITS[15:8]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}BIDR[15:8]}\\
\hline
7 & 6 & 5 & 4 & 3 & 2 & 1 & 0\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}BITS[7:0]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}BIDR[7:0]}\\
\hline
\end{tabular}
}
......@@ -176,14 +176,14 @@ WRPRES
RST\_UNLOCK
} [\emph{read/write}]: Reset unlock bit
\\
1 - Reset bit unlocked \\ 0 - Reset bit locked
1 -- Reset bit unlocked \\ 0 -- Reset bit locked
\end{small}
\item \begin{small}
{\bf
RST
} [\emph{read/write}]: Reset bit
\\
1 - initiate logic reset \\ 0 - no reset
1 -- initiate logic reset \\ 0 -- no reset
\end{small}
\item \begin{small}
{\bf
......@@ -496,8 +496,9 @@ Writing this field resets the internal cycles counter.
\textbf{Unimplemented bits}: write as '0', read undefined
\end{small}
\end{itemize}
\subsubsection{TFMR -- Tag FIFO Meta Register}
\label{app:conv-regs-tfmr}
\vspace{11pt}
\subsubsection{TBMR -- Tag Buffer Meta Register}
\label{app:conv-regs-tbmr}
\vspace{11pt}
\noindent
......@@ -540,9 +541,13 @@ WRTAG
\item \begin{small}
\textbf{Unimplemented bits}: write as '0', read undefined
\end{small}
\item \begin{small}
\textbf{A read from this register advances the buffer read pointer, if the ring buffer is not empty}
\end{small}
\end{itemize}
\subsubsection{TFCYR -- Tag FIFO Cycles Register}
\label{app:conv-regs-tfcyr}
\vspace{11pt}
\subsubsection{TBCYR -- Tag Buffer Cycles Register}
\label{app:conv-regs-tbcyr}
\vspace{11pt}
\noindent
......@@ -550,19 +555,19 @@ WRTAG
\begin{tabular}{>{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} }
31 & 30 & 29 & 28 & 27 & 26 & 25 & 24\\
\hline
\multicolumn{1}{|c}{-} & - & - & - & \multicolumn{4}{|c|}{\cellcolor{gray!25}CYC[27:24]}\\
\multicolumn{1}{|c}{-} & - & - & - & \multicolumn{4}{|c|}{\cellcolor{gray!25}TBCYR[27:24]}\\
\hline
23 & 22 & 21 & 20 & 19 & 18 & 17 & 16\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}CYC[23:16]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}TBCYR[23:16]}\\
\hline
15 & 14 & 13 & 12 & 11 & 10 & 9 & 8\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}CYC[15:8]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}TBCYR[15:8]}\\
\hline
7 & 6 & 5 & 4 & 3 & 2 & 1 & 0\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}CYC[7:0]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}TBCYR[7:0]}\\
\hline
\end{tabular}
}
......@@ -570,7 +575,7 @@ WRTAG
\begin{itemize}
\item \begin{small}
{\bf
CYC
TBCYR
} [\emph{read-only}]: Cycles counter
\\
Value of the 8-ns cycles counter when time tag was taken.
......@@ -579,8 +584,9 @@ Value of the 8-ns cycles counter when time tag was taken.
\textbf{Unimplemented bits}: write as '0', read undefined
\end{small}
\end{itemize}
\subsubsection{TFTLR -- Tag FIFO TAI Low Register }
\label{app:conv-regs-tftlr}
\vspace{11pt}
\subsubsection{TBTLR -- Tag Buffer TAI Low Register}
\label{app:conv-regs-tbtlr}
\vspace{11pt}
\noindent
......@@ -588,19 +594,19 @@ Value of the 8-ns cycles counter when time tag was taken.
\begin{tabular}{>{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} }
31 & 30 & 29 & 28 & 27 & 26 & 25 & 24\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}TAI\_L[31:24]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}TBTLR[31:24]}\\
\hline
23 & 22 & 21 & 20 & 19 & 18 & 17 & 16\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}TAI\_L[23:16]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}TBTLR[23:16]}\\
\hline
15 & 14 & 13 & 12 & 11 & 10 & 9 & 8\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}TAI\_L[15:8]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}TBTLR[15:8]}\\
\hline
7 & 6 & 5 & 4 & 3 & 2 & 1 & 0\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}TAI\_L[7:0]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}TBTLR[7:0]}\\
\hline
\end{tabular}
}
......@@ -608,7 +614,7 @@ Value of the 8-ns cycles counter when time tag was taken.
\begin{itemize}
\item \begin{small}
{\bf
TAI\_L
TBTLR
} [\emph{read-only}]: Lower part of TAI seconds counter
\\
Value of the TAI seconds counter bits 31..0 when time tag was taken.
......@@ -617,10 +623,11 @@ Value of the TAI seconds counter bits 31..0 when time tag was taken.
\textbf{Unimplemented bits}: write as '0', read undefined
\end{small}
\end{itemize}
\subsubsection{TFTHR -- Tag FIFO TAI High Register}
\label{app:conv-regs-tfthr}
\vspace{11pt}
\subsubsection{TBTHR -- Tag Buffer TAI High Register}
\label{app:conv-regs-tbthr}
%\vspace{11pt}
\noindent
\resizebox{\textwidth}{!}{
\begin{tabular}{>{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} >{\centering\arraybackslash}p{1.5cm} }
......@@ -638,7 +645,7 @@ Value of the TAI seconds counter bits 31..0 when time tag was taken.
\hline
7 & 6 & 5 & 4 & 3 & 2 & 1 & 0\\
\hline
\multicolumn{8}{|c|}{\cellcolor{gray!25}TAI\_H[7:0]}\\
\multicolumn{8}{|c|}{\cellcolor{gray!25}TBTHR[7:0]}\\
\hline
\end{tabular}
}
......@@ -646,7 +653,7 @@ Value of the TAI seconds counter bits 31..0 when time tag was taken.
\begin{itemize}
\item \begin{small}
{\bf
TAI\_H
TBTHR
} [\emph{read-only}]: Upper part of TAI seconds counter
\\
Value of the TAI seconds counter bits 39..32 when time tag was taken.
......@@ -655,8 +662,9 @@ Value of the TAI seconds counter bits 39..32 when time tag was taken.
\textbf{Unimplemented bits}: write as '0', read undefined
\end{small}
\end{itemize}
\subsubsection{TFCSR -- Tag FIFO Control and Status Register }
\label{app:conv-regs-tfcsr}
\vspace{11pt}
\subsubsection{TBCSR -- Tag Buffer Control and Status Register}
\label{app:conv-regs-tbcsr}
\vspace{11pt}
\noindent
......@@ -668,7 +676,7 @@ Value of the TAI seconds counter bits 39..32 when time tag was taken.
\hline
23 & 22 & 21 & 20 & 19 & 18 & 17 & 16\\
\hline
\multicolumn{1}{|c}{-} & - & - & - & - & \multicolumn{1}{|c|}{\cellcolor{gray!25}CLEAR\_BUS} & \multicolumn{1}{|c|}{\cellcolor{gray!25}EMPTY} & \multicolumn{1}{|c|}{\cellcolor{gray!25}FULL}\\
\multicolumn{1}{|c}{-} & - & - & - & - & \multicolumn{1}{|c|}{\cellcolor{gray!25}CLR} & \multicolumn{1}{|c|}{\cellcolor{gray!25}EMPTY} & \multicolumn{1}{|c|}{\cellcolor{gray!25}FULL}\\
\hline
15 & 14 & 13 & 12 & 11 & 10 & 9 & 8\\
\hline
......@@ -684,33 +692,31 @@ Value of the TAI seconds counter bits 39..32 when time tag was taken.
\begin{itemize}
\item \begin{small}
{\bf
FULL
} [\emph{read-only}]: FIFO full flag
USEDW
} [\emph{read-only}]: Buffer counter
\\
1: FIFO is full\\0: FIFO is not full
Number of samples in the ring buffer
\end{small}
\item \begin{small}
{\bf
EMPTY
} [\emph{read-only}]: FIFO empty flag
FULL
} [\emph{read-only}]: Buffer full
\\
1: FIFO is empty\\0: FIFO is not empty
1 -- buffer full \\ 0 -- buffer is not full
\end{small}
\item \begin{small}
{\bf
CLEAR\_BUS
} [\emph{write-only}]: FIFO clear
EMPTY
} [\emph{read-only}]: Buffer empty
\\
write 1: clears FIFO \\write 0: no effect\\
Note that a clear will not delete the data in the FIFO, just bring the
read and write pointers at the same position.\\
1 -- buffer empty\\ 0 -- buffer is not empty
\end{small}
\item \begin{small}
{\bf
USEDW
} [\emph{read-only}]: FIFO counter
CLR
} [\emph{write-only}]: Clear tag buffer
\\
Number of data records currently being stored in FIFO.
1 -- clear\\ 0 -- no effect
\end{small}
\item \begin{small}
\textbf{Unimplemented bits}: write as '0', read undefined
......
......@@ -9,7 +9,7 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="450.6196"
width="418.79147"
height="64.169319"
id="svg3259"
version="1.1"
......@@ -24,11 +24,11 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="255.89633"
inkscape:cy="-42.617916"
inkscape:zoom="2.8"
inkscape:cx="153.82683"
inkscape:cy="-25.630438"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:current-layer="g3267"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
......@@ -51,7 +51,7 @@
units="mm"
spacingx="0.5mm"
spacingy="0.5mm"
originx="-25.966249mm"
originx="-34.948853mm"
originy="-189.85889mm" />
</sodipodi:namedview>
<metadata
......@@ -62,7 +62,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
......@@ -70,7 +70,7 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-92.006394,-315.46453)">
transform="translate(-123.83452,-315.46453)">
<g
transform="translate(49.606305,12.401572)"
id="g6859">
......@@ -141,7 +141,7 @@
y="361.4173"
x="90.354324"
id="tspan72726"
sodipodi:role="line">Blocking</tspan></text>
sodipodi:role="line">Blo.</tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
......
......@@ -10,7 +10,7 @@
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="280.03534"
height="118.4444"
height="120.21608"
id="svg2"
version="1.1"
inkscape:version="0.48.3.1 r9886"
......@@ -67,9 +67,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="4"
inkscape:cx="111.14235"
inkscape:cy="40.54635"
inkscape:zoom="2.8284271"
inkscape:cx="150.54789"
inkscape:cy="-3.0567936"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
......@@ -113,7 +113,7 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-269.67716,-216.01222)">
transform="translate(-269.67716,-214.24054)">
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 270.17716,244.48812 76.1811,0"
......@@ -126,23 +126,23 @@
height="53.14962"
width="13.287388"
id="rect5794"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
y="232.97237"
x="522.6377"
height="53.14962"
width="13.287388"
id="rect5796"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect5798"
width="13.287388"
height="53.14962"
x="535.92511"
y="232.97237" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect6253"
width="13.287388"
height="53.14962"
......@@ -195,14 +195,14 @@
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="516.43695"
y="220.57082"
y="218.79913"
id="text5986"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="516.43695"
y="220.57082"
y="218.79913"
style="font-size:6px;text-align:center;text-anchor:middle"
id="tspan4215">Head</tspan></text>
id="tspan4215">Read pointer</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
......@@ -469,7 +469,7 @@
height="17.716564"
width="26.57486"
id="rect4408"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
sodipodi:linespacing="125%"
id="text4431"
......@@ -481,7 +481,7 @@
y="319.78339"
x="381.07394"
sodipodi:role="line"
id="tspan4825">TFLR</tspan></text>
id="tspan4825">TVLR</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 456.20079,271.06292 0,50.49213 7.97244,0"
......@@ -547,7 +547,7 @@
id="tspan4872"
x="519.19116"
y="309.15347"
style="font-size:6px;text-align:center;text-anchor:middle">TFMR</tspan></text>
style="font-size:6px;text-align:center;text-anchor:middle">TBMR</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4874"
......@@ -559,7 +559,7 @@
y="316.24008"
x="519.19116"
id="tspan4876"
sodipodi:role="line">TFCYR</tspan></text>
sodipodi:role="line">TBCYR</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
......@@ -571,7 +571,7 @@
id="tspan4880"
x="519.19116"
y="324.21252"
style="font-size:6px;text-align:center;text-anchor:middle">TFTLR</tspan></text>
style="font-size:6px;text-align:center;text-anchor:middle">TBTLR</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4882"
......@@ -583,7 +583,7 @@
y="332.18497"
x="519.19116"
id="tspan4884"
sodipodi:role="line">TFTHR</tspan></text>
sodipodi:role="line">TBTHR</tspan></text>
<path
inkscape:connector-curvature="0"
id="path4890"
......@@ -601,6 +601,6 @@
sodipodi:role="line"
x="381.07394"
y="328.64166"
style="font-size:6px;text-align:center;text-anchor:middle">TFHR</tspan></text>
style="font-size:6px;text-align:center;text-anchor:middle">TVHR</tspan></text>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="763.9563"
height="474.45511"
id="svg2"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="timetag-buf-mech.svg">
<defs
id="defs4">
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="TriangleOutM"
style="overflow:visible">
<path
id="path3914"
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="scale(0.4,0.4)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.3398153"
inkscape:cx="289.74312"
inkscape:cy="282.06868"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1855"
inkscape:window-height="1176"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<inkscape:grid
type="xygrid"
id="grid2985"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
units="mm"
spacingx="0.5mm"
spacingy="0.5mm"
originx="35.005274mm"
originy="-158.94332mm" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(124.03443,-14.722073)">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect2987"
width="35.433071"
height="26.574802"
x="53.149605"
y="51.37793" />
<rect
y="51.37793"
x="88.58268"
height="26.574802"
width="35.433071"
id="rect3757"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="51.37793"
x="124.01575"
height="26.574802"
width="35.433071"
id="rect3759"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect3761"
width="35.433071"
height="26.574802"
x="159.44882"
y="51.440475" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4209"
d="m 70.866143,95.669269 0,-12.401575"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="70.866142"
y="24.803127"
id="text4211"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4213"
x="70.866142"
y="24.803127"
style="font-size:18px;text-align:center;text-anchor:middle">rp</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4215"
y="113.3858"
x="70.866142"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;text-align:center;text-anchor:middle"
y="113.3858"
x="70.866142"
id="tspan4217"
sodipodi:role="line">wp</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 70.866143,33.661395 0,12.401575"
id="path4219"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="203.74016"
y="57.587254"
id="text4240"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4242"
x="203.74016"
y="57.587254"
style="font-size:8px">EMPTY = 1</tspan><tspan
sodipodi:role="line"
x="203.74016"
y="67.58725"
id="tspan4244"
style="font-size:8px">FULL = 0</tspan><tspan
sodipodi:role="line"
x="203.74016"
y="77.58725"
style="font-size:8px"
id="tspan4246">USEDW = 0</tspan></text>
<rect
y="175.39368"
x="53.149605"
height="26.574802"
width="35.433071"
id="rect4248"
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4250"
width="35.433071"
height="26.574802"
x="88.58268"
y="175.39368" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4252"
width="35.433071"
height="26.574802"
x="124.01575"
y="175.39368" />
<rect
y="175.45622"
x="159.44882"
height="26.574802"
width="35.433071"
id="rect4254"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 106.29921,219.68502 0,-12.40158"
id="path4256"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
sodipodi:linespacing="125%"
id="text4258"
y="148.81888"
x="70.866142"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;text-align:center;text-anchor:middle"
y="148.81888"
x="70.866142"
id="tspan4260"
sodipodi:role="line">rp</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="106.29921"
y="237.40155"
id="text4262"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4264"
x="106.29921"
y="237.40155"
style="font-size:18px;text-align:center;text-anchor:middle">wp</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4266"
d="m 70.866143,157.67714 0,12.40158"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<text
sodipodi:linespacing="125%"
id="text4268"
y="181.603"
x="203.74016"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:8px"
y="181.603"
x="203.74016"
id="tspan4270"
sodipodi:role="line">EMPTY = 0</tspan><tspan
style="font-size:8px"
id="tspan4272"
y="191.603"
x="203.74016"
sodipodi:role="line">FULL = 0</tspan><tspan
id="tspan4274"
style="font-size:8px"
y="201.603"
x="203.74016"
sodipodi:role="line">USEDW = 1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4276"
y="69.094467"
x="17.716536"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;text-align:center;text-anchor:middle"
y="69.094467"
x="17.716536"
id="tspan4278"
sodipodi:role="line" /></text>
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4280"
width="35.433071"
height="26.574802"
x="53.149605"
y="175.39368" />
<rect
y="175.39368"
x="88.58268"
height="26.574802"
width="35.433071"
id="rect4282"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="175.39368"
x="124.01575"
height="26.574802"
width="35.433071"
id="rect4284"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4286"
width="35.433071"
height="26.574802"
x="159.44882"
y="175.45622" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4288"
d="m 106.29921,219.68502 0,-12.40158"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="70.866142"
y="148.81888"
id="text4290"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4292"
x="70.866142"
y="148.81888"
style="font-size:18px;text-align:center;text-anchor:middle">rp</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4294"
y="237.40155"
x="106.29921"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;text-align:center;text-anchor:middle"
y="237.40155"
x="106.29921"
id="tspan4296"
sodipodi:role="line">wp</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 70.866143,157.67714 0,12.40158"
id="path4298"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="203.74016"
y="181.603"
id="text4300"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4302"
x="203.74016"
y="181.603"
style="font-size:8px">EMPTY = 0</tspan><tspan
sodipodi:role="line"
x="203.74016"
y="191.603"
id="tspan4304"
style="font-size:8px">FULL = 0</tspan><tspan
sodipodi:role="line"
x="203.74016"
y="201.603"
style="font-size:8px"
id="tspan4306">USEDW = 1</tspan></text>
<rect
y="299.40942"
x="53.149605"
height="26.574802"
width="35.433071"
id="rect4308"
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4310"
width="35.433071"
height="26.574802"
x="88.58268"
y="299.40942" />
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4312"
width="35.433071"
height="26.574802"
x="124.01575"
y="299.40942" />
<rect
y="299.47195"
x="159.44882"
height="26.574802"
width="35.433071"
id="rect4314"
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 70.866142,343.70076 0,-12.40157"
id="path4316"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
sodipodi:linespacing="125%"
id="text4318"
y="272.83463"
x="70.866142"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;text-align:center;text-anchor:middle"
y="272.83463"
x="70.866142"
id="tspan4320"
sodipodi:role="line">rp</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="70.866142"
y="361.4173"
id="text4322"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4324"
x="70.866142"
y="361.4173"
style="font-size:18px;text-align:center;text-anchor:middle">wp</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4326"
d="m 70.866142,281.69289 0,12.40157"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<text
sodipodi:linespacing="125%"
id="text4328"
y="305.61874"
x="203.74016"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:8px"
y="305.61874"
x="203.74016"
id="tspan4330"
sodipodi:role="line">EMPTY = 0</tspan><tspan
style="font-size:8px"
id="tspan4332"
y="315.61874"
x="203.74016"
sodipodi:role="line">FULL = 1</tspan><tspan
id="tspan4334"
style="font-size:8px"
y="325.61874"
x="203.74016"
sodipodi:role="line">USEDW = 0</tspan></text>
<rect
style="fill:#333333;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4336"
width="35.433071"
height="26.574802"
x="53.149605"
y="423.42517" />
<rect
y="423.42517"
x="88.58268"
height="26.574802"
width="35.433071"
id="rect4338"
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="423.42517"
x="124.01575"
height="26.574802"
width="35.433071"
id="rect4340"
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4342"
width="35.433071"
height="26.574802"
x="159.44882"
y="423.4877" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4344"
d="m 106.29921,467.71651 0,-12.40157"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="106.29921"
y="396.85037"
id="text4346"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4348"
x="106.29921"
y="396.85037"
style="font-size:18px;text-align:center;text-anchor:middle">rp</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4350"
y="485.43304"
x="106.29921"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;text-align:center;text-anchor:middle"
y="485.43304"
x="106.29921"
id="tspan4352"
sodipodi:role="line">wp</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 106.29921,405.70864 0,12.40157"
id="path4354"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="203.74016"
y="429.63449"
id="text4356"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4358"
x="203.74016"
y="429.63449"
style="font-size:8px">EMPTY = 0</tspan><tspan
sodipodi:role="line"
x="203.74016"
y="439.63449"
id="tspan4360"
style="font-size:8px">FULL = 1</tspan><tspan
sodipodi:role="line"
x="203.74016"
y="449.63449"
style="font-size:8px"
id="tspan4362">USEDW = 0</tspan></text>
<rect
y="175.39368"
x="442.91339"
height="26.574802"
width="35.433071"
id="rect4364"
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4366"
width="35.433071"
height="26.574802"
x="478.34647"
y="175.39368" />
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4368"
width="35.433071"
height="26.574802"
x="513.77948"
y="175.39368" />
<rect
y="175.45624"
x="549.21259"
height="26.574802"
width="35.433071"
id="rect4370"
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 496.06299,219.68502 0,-12.40157"
id="path4372"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
sodipodi:linespacing="125%"
id="text4374"
y="148.81891"
x="531.49603"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;text-align:center;text-anchor:middle"
y="148.81891"
x="531.49603"
id="tspan4376"
sodipodi:role="line">rp</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="496.06296"
y="237.40155"
id="text4378"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4380"
x="496.06296"
y="237.40155"
style="font-size:18px;text-align:center;text-anchor:middle">wp</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4382"
d="m 531.49606,157.67715 0,12.40157"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<text
sodipodi:linespacing="125%"
id="text4384"
y="181.60303"
x="593.50391"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:8px"
y="181.60303"
x="593.50391"
id="tspan4386"
sodipodi:role="line">EMPTY = 0</tspan><tspan
style="font-size:8px"
id="tspan4388"
y="191.60303"
x="593.50391"
sodipodi:role="line">FULL = 0</tspan><tspan
id="tspan4390"
style="font-size:8px"
y="201.60303"
x="593.50391"
sodipodi:role="line">USEDW = 3</tspan></text>
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4392"
width="35.433071"
height="26.574802"
x="442.91339"
y="299.40942" />
<rect
y="299.40942"
x="478.34647"
height="26.574802"
width="35.433071"
id="rect4394"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="299.40942"
x="513.77948"
height="26.574802"
width="35.433071"
id="rect4396"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4398"
width="35.433071"
height="26.574802"
x="549.21259"
y="299.47198" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4400"
d="m 496.06299,343.70077 0,-12.40157"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="460.62991"
y="272.83466"
id="text4402"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4404"
x="460.62991"
y="272.83466"
style="font-size:18px;text-align:center;text-anchor:middle">rp</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4406"
y="361.4173"
x="496.06296"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;text-align:center;text-anchor:middle"
y="361.4173"
x="496.06296"
id="tspan4408"
sodipodi:role="line">wp</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 460.62992,281.6929 0,12.40157"
id="path4410"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="593.50391"
y="305.61877"
id="text4412"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4414"
x="593.50391"
y="305.61877"
style="font-size:8px">EMPTY = 0</tspan><tspan
sodipodi:role="line"
x="593.50391"
y="315.61877"
id="tspan4416"
style="font-size:8px">FULL = 0</tspan><tspan
sodipodi:role="line"
x="593.50391"
y="325.61877"
style="font-size:8px"
id="tspan4418">USEDW = 1</tspan></text>
<rect
y="423.42517"
x="442.91339"
height="26.574802"
width="35.433071"
id="rect4420"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4422"
width="35.433071"
height="26.574802"
x="478.34647"
y="423.42517" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4424"
width="35.433071"
height="26.574802"
x="513.77948"
y="423.42517" />
<rect
y="423.42517"
x="549.21259"
height="26.574802"
width="35.433071"
id="rect4426"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 496.06299,467.71653 0,-12.4016"
id="path4428"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
sodipodi:linespacing="125%"
id="text4430"
y="396.85034"
x="496.06302"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;text-align:center;text-anchor:middle"
y="396.85034"
x="496.06302"
id="tspan4432"
sodipodi:role="line">rp</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="496.06296"
y="485.43301"
id="text4434"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4436"
x="496.06296"
y="485.43301"
style="font-size:18px;text-align:center;text-anchor:middle">wp</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4438"
d="m 496.06299,405.70863 0,12.4016"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<text
sodipodi:linespacing="125%"
id="text4440"
y="429.63452"
x="593.50391"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:8px"
y="429.63452"
x="593.50391"
id="tspan4442"
sodipodi:role="line">EMPTY = 1</tspan><tspan
style="font-size:8px"
id="tspan4444"
y="439.63452"
x="593.50391"
sodipodi:role="line">FULL = 0</tspan><tspan
id="tspan4446"
style="font-size:8px"
y="449.63452"
x="593.50391"
sodipodi:role="line">USEDW = 0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4476"
y="62.143356"
x="44.29134"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="62.143356"
x="44.29134"
sodipodi:role="line"
id="tspan4482">Before pulse arrival,</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="75.893356"
x="44.29134"
sodipodi:role="line"
id="tspan4489">or after buffer clear</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="44.29134"
y="185.18987"
id="text4491"
sodipodi:linespacing="125%"><tspan
id="tspan4495"
sodipodi:role="line"
x="44.29134"
y="185.18987"
style="font-size:11px;text-align:end;text-anchor:end">One pulse arrives,</tspan><tspan
sodipodi:role="line"
x="44.29134"
y="198.93987"
style="font-size:11px;text-align:end;text-anchor:end"
id="tspan4499">advancing write</tspan><tspan
sodipodi:role="line"
x="44.29134"
y="212.68987"
style="font-size:11px;text-align:end;text-anchor:end"
id="tspan4648">pointer</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4501"
y="309.20563"
x="30.024872"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
id="tspan4505"
style="font-size:11px;text-align:end;text-anchor:end"
y="309.20563"
x="30.024872"
sodipodi:role="line">Three more pulses</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="322.95563"
x="30.024872"
sodipodi:role="line"
id="tspan4509">arrive, filling up</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="336.70563"
x="30.024872"
sodipodi:role="line"
id="tspan4654">the ring buffer</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-79.724411"
y="432.28345"
id="text4511"
sodipodi:linespacing="125%"><tspan
id="tspan4515"
sodipodi:role="line"
x="-79.724411"
y="432.28345"
style="font-size:10px;text-align:start;text-anchor:start" /></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="37.085419"
y="420.72137"
id="text4519"
sodipodi:linespacing="125%"><tspan
id="tspan4523"
sodipodi:role="line"
x="37.085419"
y="420.72137"
style="font-size:11px;text-align:end;text-anchor:end">One more pulse arrives,</tspan><tspan
sodipodi:role="line"
x="37.085419"
y="434.47137"
style="font-size:11px;text-align:end;text-anchor:end"
id="tspan4539">one timetag overwritten,</tspan><tspan
sodipodi:role="line"
x="37.085419"
y="448.22137"
style="font-size:11px;text-align:end;text-anchor:end"
id="tspan4541">read pointer advances</tspan><tspan
sodipodi:role="line"
x="37.085419"
y="461.97137"
style="font-size:11px;text-align:end;text-anchor:end"
id="tspan4668">with write pointer</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4529"
y="178.93987"
x="434.05515"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="178.93987"
x="434.05515"
sodipodi:role="line"
id="tspan4533">Read from TBMR,</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="192.68987"
x="434.05515"
sodipodi:role="line"
id="tspan4690">advancing read</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="206.43987"
x="434.05515"
sodipodi:role="line"
id="tspan4694">pointer</tspan></text>
<rect
y="51.37793"
x="442.91339"
height="26.574802"
width="35.433071"
id="rect4543"
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4545"
width="35.433071"
height="26.574802"
x="478.34647"
y="51.37793" />
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect4547"
width="35.433071"
height="26.574802"
x="513.77948"
y="51.37793" />
<rect
y="51.440491"
x="549.21259"
height="26.574802"
width="35.433071"
id="rect4549"
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 496.06299,95.669271 0,-12.40157"
id="path4551"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
sodipodi:linespacing="125%"
id="text4553"
y="24.803164"
x="496.06296"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;text-align:center;text-anchor:middle"
y="24.803164"
x="496.06296"
id="tspan4555"
sodipodi:role="line">rp</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="496.06296"
y="113.3858"
id="text4557"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4559"
x="496.06296"
y="113.3858"
style="font-size:18px;text-align:center;text-anchor:middle">wp</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4561"
d="m 496.06299,33.6614 0,12.40157"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<text
sodipodi:linespacing="125%"
id="text4563"
y="57.58728"
x="593.50391"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:8px"
y="57.58728"
x="593.50391"
id="tspan4565"
sodipodi:role="line">EMPTY = 0</tspan><tspan
style="font-size:8px"
id="tspan4567"
y="67.58728"
x="593.50391"
sodipodi:role="line">FULL = 1</tspan><tspan
id="tspan4569"
style="font-size:8px"
y="77.58728"
x="593.50391"
sodipodi:role="line">USEDW = 0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4571"
y="55.893356"
x="435.87839"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
id="tspan4579"
style="font-size:11px;text-align:end;text-anchor:end"
y="55.893356"
x="435.87839"
sodipodi:role="line">Read from TBCYR, TBTLR,</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="69.643356"
x="435.87839"
sodipodi:role="line"
id="tspan4590">or TBHR, read pointer</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="83.393356"
x="435.87839"
sodipodi:role="line"
id="tspan4592">does not advance</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="434.05515"
y="316.42487"
id="text4594"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="434.05515"
y="316.42487"
style="font-size:11px;text-align:end;text-anchor:end"
id="tspan4636">Two more TBMR reads</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4606"
y="414.47137"
x="434.05515"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="414.47137"
x="434.05515"
sodipodi:role="line"
id="tspan4610">One more TBMR read,</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="428.22137"
x="434.05515"
sodipodi:role="line"
id="tspan4704">emptying the buffer,</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="441.97137"
x="434.05515"
sodipodi:role="line"
id="tspan4730">any more reads will</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="455.72137"
x="434.05515"
sodipodi:role="line"
id="tspan4734">not advance the</tspan><tspan
style="font-size:11px;text-align:end;text-anchor:end"
y="469.47137"
x="434.05515"
sodipodi:role="line"
id="tspan4738">read pointer</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4612"
y="71.226364"
x="-115.15748"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;font-weight:bold;text-align:center;text-anchor:middle"
y="71.226364"
x="-115.15748"
id="tspan4614"
sodipodi:role="line">1.</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-115.15748"
y="195.36076"
id="text4616"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4618"
x="-115.15748"
y="195.36076"
style="font-size:18px;font-weight:bold;text-align:center;text-anchor:middle">2.</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4620"
y="319.37653"
x="-115.15748"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;font-weight:bold;text-align:center;text-anchor:middle"
y="319.37653"
x="-115.15748"
id="tspan4622"
sodipodi:role="line">3.</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-115.15748"
y="443.27362"
id="text4624"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4626"
x="-115.15748"
y="443.27362"
style="font-size:18px;font-weight:bold;text-align:center;text-anchor:middle">4.</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="283.46457"
y="71.226364"
id="text4708"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4710"
x="283.46457"
y="71.226364"
style="font-size:18px;font-weight:bold;text-align:center;text-anchor:middle">5.</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4712"
y="195.36076"
x="283.46457"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;font-weight:bold;text-align:center;text-anchor:middle"
y="195.36076"
x="283.46457"
id="tspan4714"
sodipodi:role="line">6.</tspan></text>
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="283.46457"
y="319.37653"
id="text4716"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4718"
x="283.46457"
y="319.37653"
style="font-size:18px;font-weight:bold;text-align:center;text-anchor:middle">7.</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4720"
y="443.27362"
x="283.46457"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:18px;font-weight:bold;text-align:center;text-anchor:middle"
y="443.27362"
x="283.46457"
id="tspan4722"
sodipodi:role="line">8.</tspan></text>
</g>
</svg>
......@@ -22,9 +22,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="194.19745"
inkscape:cy="35.213476"
inkscape:zoom="1.4"
inkscape:cx="255.07333"
inkscape:cy="46.2021"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
......@@ -235,7 +235,7 @@
style="font-size:14px;text-align:center;text-anchor:middle"
y="371.83063"
x="566.92914"
sodipodi:role="line">in FIFO</tspan></text>
sodipodi:role="line">in ring buffer</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3781"
......
......@@ -6,7 +6,7 @@ Base address: 0x040
\rowcolors{2}{white}{gray!25}
\begin{longtable}{l l l p{.5\textwidth}}
\hline
\textbf{Offset} & \textbf{Default} & \textbf{Name}
\textbf{Offset} & \textbf{Reset} & \textbf{Name}
& \textbf{Description} \\
\hline
\endfirsthead
......
......@@ -66,6 +66,8 @@
23-12-2013 & 1.05 & Added remote reprogramming support \\
10-01-2014 & 1.06 & Added SNMP access sub-section \\
06-03-2014 & 2.00 & Added support for diagnostics \\
26-03-2014 & 2.10 & Changed max. pulse repetition frequency, replaced the timetag FIFO for a
ring buffer \\
\hline
\end{tabular}
}
......@@ -84,7 +86,6 @@
\pagebreak
\section*{List of Abbreviations}
\begin{tabular}{l l}
FIFO & First-In-First-Out (memory) \\
FPGA & Field-Programmable Gate Array \\
I$^2$C & Inter-Integrated Circuit \\
MIB & Management Information Base \\
......@@ -408,7 +409,7 @@ pulses.
$V_{OL}$ & Output pulse low-level amplitude & & 0 & 0.7 & V \\
$t_{p,i}$& Input pulse width & 100 & & & ns \\
$t_{p,o}$& Output pulse width & & 1.2 & & ${\mu}s$ \\
$T_{min}$& Period of pulse signal (3) & 6 & & & ${\mu}s$ \\
$T_{min}$& Period of pulse signal (3) & 600 & & & ${\mu}s$ \\
$t_r$ & Rise time & 1 & 3.2 & 4.9 & ns \\
$t_f$ & Fall time & 2 & 4 & 5.6 & ns \\
\hline
......@@ -439,7 +440,7 @@ by the FPGA gateware. \\
$V_{OL}$ & Output pulse low-level amplitude (2) & & 0 & & V \\
$t_{p,i}$& Input pulse width & 100 & & 3900& ns \\
$t_{p,o}$& Output pulse width & & 1.2 & & ${\mu}s$ \\
$T_{min}$& Period of pulse signal (3) & 6 & & & ${\mu}s$ \\
$T_{min}$& Period of pulse signal (3) & 600 & & & ${\mu}s$ \\
$t_r$ & Rise time & 75 & 140 & 225 & ns \\
$t_f$ & Fall time & 75 & 160 & 225 & ns \\
\hline
......@@ -546,8 +547,8 @@ rising edge is detected on the output of the OR gate between the two inputs type
details about the pulse counters can be found in Section~\ref{sec:diag-pulse-cnt}.
A rising edge on a pulse also triggers storing the value of a user-settable time tag to
a first-in-first-out (FIFO) memory. More details about the time-tagging of pulses
can be found in Section~\ref{sec:diag-pulse-timetag}.
a ring buffer memory. More details about the timetagging of pulses can be found in
Section~\ref{sec:diag-pulse-timetag}.
The PG block can also be triggered by a "manual" pulse. More details about this feature
can be found in Section~\ref{sec:diag-man-trig}.
......@@ -764,7 +765,7 @@ password:**********
\label{sec:comm-snmp}
The second method to access the CONV-TTL-BLO board is via the Simple Network
Management Protocol (SNMP). ELMA crates offer an Management Information Base (MIB)
Management Protocol (SNMP). ELMA crates offer a Management Information Base (MIB)
which provide access to various information such as voltage and current sensor
readout, fan speeds and information about VME slots. Among the information about
the VME slots one can access register values for both read and write.
......@@ -844,10 +845,16 @@ The following diagnostics features are implemented on the CONV-TTL-BLO:
\item reading the state of the on-board switches
\item reading the state of the RTM detection lines
\item input pulse counters
\item input pulse time-tagging
\item remotely reset the FPGA logic
\item manually trigger a pulse
\end{itemize}
Most of the diagnostics features below have test scripts implemented in the
main project repository~\cite{ctb-repo}. These test scripts can be found in the
\textit{software/diag/} folder. Section~\ref{sec:repo} provides more details
about the project repository.
%------------------------------------------------------------------------------
% SUBSEC: Board ID
%------------------------------------------------------------------------------
......@@ -891,7 +898,7 @@ a memory-mapped one-wire master core~\cite{onewire-core} is implemented on the
FPGA, as shown in Figure~\ref{fig:onewire}.
\begin{figure}[h]
\centerline{\includegraphics[width=.8\textwidth]{fig/onewire}}
\centerline{\includegraphics[width=.9\textwidth]{fig/onewire}}
\caption{Interface to the one-wire thermometer}
\label{fig:onewire}
\end{figure}
......@@ -902,6 +909,10 @@ Relevant data in the thermometer are listed in Table~\ref{tbl:thermo-data}. More
details about this data and how to obtain it can be found in the device's
datasheet~\cite{ds18b20}.
Note that an example Python script is provided in the \textit{software/diag/} folder
of the main project repository~\cite{ctb-repo}. Section~\ref{sec:repo-software}
gives more details about the test scripts in the project repository.
\begin{table}[h]
\caption{Data from thermometer}
\label{tbl:thermo-data}
......@@ -922,31 +933,6 @@ datasheet~\cite{ds18b20}.
}
\end{table}
Note that an example Python script is provided in the \textit{software/gp-py/} folder
of the main project repository~\cite{ctb-repo}. The necessary details about this script
can be found in Table~\ref{tbl:thermo-scripts}.
\begin{table}[h]
\caption{Scripts needed for remote reprogramming}
\label{tbl:thermo-scripts}
\centerline {
\rowcolors{2}{white}{gray!25}
\begin{tabular}{l p{.6\textwidth}}
\hline
\multicolumn{1}{c}{\textbf{Script}} & \multicolumn{1}{c}{\textbf{Description}} \\
\hline
gp-py/thermo.py & Implements classes with methods for accessing the thermometer
through the one-wire master core and uses these classes to
retrieve temperature and data \\
ei2c/ei2c.py & Defines the I$^2$C class, containing methods implementing the
the I$^2$C protocol to access the cards \\
ei2c/ei2cexcept.py & Contains exceptions thrown by the I$^2$C class when the response
from the ELMA crate yields an error \\
\hline
\end{tabular}
}
\end{table}
%------------------------------------------------------------------------------
% SUBSEC: RTM lines and on-board switches
%------------------------------------------------------------------------------
......@@ -967,7 +953,7 @@ state in the SR will be a logic '1', and if it is pulled low by an RTMM/P, its
state in the SR will be a logic '0'.
\begin{figure}[h]
\centerline{\includegraphics[width=.75\textwidth]{fig/rtm-det}}
\centerline{\includegraphics[width=.85\textwidth]{fig/rtm-det}}
\caption{RTM detection lines to status register}
\label{fig:rtm-det}
\end{figure}
......@@ -1003,26 +989,30 @@ The architecture of the time-tagging mechanism is shown in Figure~\ref{fig:timet
\begin{figure}[h]
\centerline{\includegraphics[width=\textwidth]{fig/timetag-arch}}
\caption{Time-tag architecture}
\caption{Time-tagging architecture}
\label{fig:timetag-arch}
\end{figure}
Every time a pulse arrives on a channel, a time-tag sample is stored to a 128-deep
FIFO memory and the head of the FIFO advances. The head of the FIFO always points to the
last received pulse, as long as the FIFO is not full. When the FIFO is full, no more
time-tag samples are stored until the FIFO is read.
Every time a pulse arrives on a channel, a timetag sample is stored to a 128-deep
ring buffer. While this ring buffer is not entirely accessible in the addressing
space of the FPGA, it can be read sample by sample by reading the TBCYR, TBL/HR and
TBMR registers (see Appendix~\ref{app:conv-regs}).
%------------------------------------------------------------------------------
\subsubsection{Pulse timetags}
%------------------------------------------------------------------------------
Two time-tags are available on the CONV-TTL-BLO. These time-tags are listed in
Two timetags are available on the CONV-TTL-BLO. These timetags are listed in
Table~\ref{tbl:timetags}. When White-Rabbit (WR) is present, the precise centralized
and synchronized timing from the WR network is used. When WR is not present, the local
time tag is used. Note that due to the fact that this time-tag is unsynchronized,
time tag is used. Note that due to the fact that this timetag is unsynchronized,
it will differ slightly between two different boards in a crate.
Each time-tag sample consists of a cycles value, which counts 8~ns cycles, and a TAI seconds
Each timetag sample consists of a cycles value, which counts 8~ns cycles, and a TAI seconds
value.
\begin{table}[h]
\caption{Time tag types}
\caption{Timetag types}
\label{tbl:timetags}
\centerline
{
......@@ -1033,62 +1023,108 @@ value.
& \multicolumn{1}{c}{\textbf{Description}} \\
\hline
WR & 8~ns & \textbf{\textit{Currently not implemented}} \newline
Precise, centralized and synchronized time-tag \newline
Obtained and configurable via WR \newline
Resolution: \textbf{8~ns} \\
Local & 8~ns & Local, unsynchronized time-tag \newline
Precise, centralized and synchronized timetag \newline
Obtained and configurable via WR \\
Local & 8~ns & Local, unsynchronized timetag \newline
Obtained by counting the ticks of a 125~MHz clock signal \newline
Configurable by writing the TAI value registers (TVL/HR) \newline
Resolution: \textbf{8~ns} \\
Configurable by writing the TAI value registers (TVL/HR) \\
\hline
\end{tabular}
}
\end{table}
The FIFO memory is not entirely accessible in the addressing space,
instead the head of the FIFO is always accessible via the meta, cycle and TAI tag
FIFO registers in the converter board registers (TFMR, TFCYR, TFTL/HR -- see
Appendix~\ref{app:conv-regs}).
%------------------------------------------------------------------------------
\subsubsection{Timetag storage delay}
%------------------------------------------------------------------------------
Due to the internal logic of the FPGA, there is a delay of three to four 8~ns cycles
between the moment when a pulse arrives on the channel input and the moment when
a timetag is stored to the ring buffer. This delay is shown in Figure~\ref{fig:timetag-delay}.
\begin{figure}[h]
\centerline{\includegraphics[width=.8\textwidth]{fig/timetag-delay}}
\caption{Timetag storage delay}
\label{fig:timetag-delay}
\end{figure}
%------------------------------------------------------------------------------
\subsubsection{Reading the timetags}
%------------------------------------------------------------------------------
The tag FIFO cycle and TAI registers (TFCYR, TFTL/HR) contain the actual time tag
values. The tag FIFO meta register (TFMR) completes these registers with information
about the current FIFO time-tag sample, such as the channel number that triggered
the storing of the current time tag and whether this time-tag was obtained via WR
or not.
The TBCYR, TBTLR and TBTHR (see Appendix~\ref{app:conv-regs}) contain the actual
timetag values; the TBMR qualifies these timetag values with meta data such as
which channel triggered the timetag sample and whether a timestamp comes from WR
or from the local timer.
The control and status register (TFCSR -- see Appendix~\ref{app:conv-regs-tfcsr}) can
be used to check the status of the FIFO and clearing it. Note that clearing the FIFO
will not erase the memory, but simply bring the read and write pointers of the FIFO
to the same position.
These registers always point to the oldest timetag in the ring buffer, and
reading them returns subsequent timetags in the buffer.
Also note that in order to properly read a time tag value in the FIFO and advance
the read pointer, a read from the TFMR is needed. If the user only reads one of the
other registers without reading the TFMR, the read pointer of the FIFO will not
advance. A full read cycle of a FIFO sample should look like this:
In order to obtain the correct timetags from the ring buffer, the read sequence
shown in Table~\ref{tbl:timetag-rd-seq} should be performed. This sequence should be
performed as long as the buffer is not empty (the first step is true).
\begin{itemize}
\item read TFMR to obtain meta data about the tag FIFO sample and advance
the FIFO read pointer
\item read TFCYR to obtain the number of 8~ns cycles when the sample was stored
\item read TFTLR to obtain the lower part of the TAI counter
\item read TFTHR to obtain the upper part of the TAI counter
\end{itemize}
For more details on the ring buffer, see the next subsection.
The E (empty) or F (full) bits of the TFCSR can be used to know when to stop reading
the FIFO. Of the two, it is recommended to use the E bit and read the FIFO while
this bit is cleared ('0'). When the FIFO is full of samples, the FPGA will not store
any more samples and the F bit will be set. Note that the USED field will indicate 0
samples stored at this time.
\setcounter{rownr}{0}
\begin{figure}[h]
\centerline{\includegraphics[width=.7\textwidth]{fig/timetag-delay}}
\caption{Time-tag storage delay}
\label{fig:timetag-delay}
\begin{table}[h]
\caption{Timetag read sequence}
\label{tbl:timetag-rd-seq}
\centerline {
\rowcolors{2}{white}{gray!25}
\begin{tabular}{c p{.8\textwidth}}
\hline
\textbf{Step} & \multicolumn{1}{c}{\textbf{Action}} \\
\hline
\rownumber & \textbf{Read the TBCSR} and make sure that the EMPTY bit is not '1' \\
\rownumber & \textbf{Read the TBCYR} to obtain the 8~ns cycles counter value \\
\rownumber & \textbf{Read the TBTLR} to obtain the lower part of the TAI seconds counter \\
\rownumber & \textbf{Read the TBTHR} to obtain the upper part of the TAI seconds counter \\
\rownumber & \textbf{Read the TBTMR} to obtain the meta data about the timetag sample and advance
the buffer read pointer \\
\hline
\end{tabular}
}
\end{table}
%------------------------------------------------------------------------------
\subsubsection{Ring buffer mechanics}
%------------------------------------------------------------------------------
The 128-deep ring buffer implemented in the FPGA gateware contains a read and a write
pointer, each of which advances on a read from and respectively a write to the buffer.
If the buffer is not empty, the read pointer points to the oldest timetag stored in the
buffer, while the write pointer points to the next buffer location to be written.
Figure~\ref{fig:timetag-buf-mech} shows the operation of the ring buffer.
\begin{figure}[t]
\centerline{\includegraphics[width=\textwidth]{fig/timetag-buf-mech}}
\caption{Ring buffer mechanics, example with four-sample-deep buffer}
\label{fig:timetag-buf-mech}
\end{figure}
Due to the internal logic of the FPGA, there is a delay of three to four 8~ns cycles
between the moment when a pulse arrives on the channel input and the moment when
a time-tag is stored to the FIFO. This delay is shown in Figure~\ref{fig:timetag-delay}.
Every time a pulse arrives on an input channel, a timetag is stored to the ring buffer
and the write pointer of the ring buffer is advanced.
When the write pointer reaches the read pointer, the buffer is full and subsequent writes
will overwrite previously written data, while the read pointer is advanced together with
the write pointer.
To read from the buffer, the user reads the TBCYR, TBTLR, TBTHR and TBMR (see Appendix~\ref{app:conv-regs}).
Reading the TBTMR register advances the read pointer of the buffer, if the buffer is not empty. If the
buffer is empty, the read pointer of the buffer is not advanced.
Note that due to the fact that a read from the TBMR advances the read pointer, the TBMR
should be the last register read in a read sequence. Otherwise, the read pointer is advanced
and the contents of the TBMR will correspond to one sample in the ring buffer, while
the contents of the TBCYR and TBH/LR will be that of another sample.
The TBCSR (see Appendix~\ref{app:conv-regs-tbcsr}) contains bits that allow to check the
status and clear the buffer. The USEDW field in this register contains the current number
of samples written to the buffer. When the buffer is full, the USEDW field is 0 and the
FULL bit is set. Setting the CLR bit of the TBCSR will bring the read and write pointers
to 0 and set the USEDW field to 0.
%------------------------------------------------------------------------------
% SUBSEC: Remote reset
......@@ -1149,7 +1185,7 @@ Figure~\ref{fig:cr-mpt}. Until the magic sequence is input, it should be written
bytes in the magic sequence. After that, it should be written with the channel number.
\begin{figure}[h]
\centerline{\includegraphics[width=.85\textwidth]{fig/cr-mpt}}
\centerline{\includegraphics[width=\textwidth]{fig/cr-mpt}}
\caption{MPT field in the CR}
\label{fig:cr-mpt}
\end{figure}
......@@ -1179,7 +1215,7 @@ number is not in the range 1..6, no pulse is generated on any channel and no
error is reported.
\begin{figure}[h]
\centerline{\includegraphics[width=.45\textwidth]{fig/man-trig-fsm}}
\centerline{\includegraphics[width=.55\textwidth]{fig/man-trig-fsm}}
\caption{Manual pulse triggering logic}
\label{fig:man-trig-fsm}
\end{figure}
......@@ -1332,26 +1368,6 @@ data. The user can access this space via the FAR register. Note that in order to
data to the flash, a special sequence of commands should be sent. The flash write sequence
is given in the datasheet of the flash chip~\cite{m25p32}.
\begin{table}[h]
\caption{Scripts needed for remote reprogramming}
\label{tbl:reprog-scripts}
\centerline {
\rowcolors{2}{white}{gray!25}
\begin{tabular}{l p{.6\textwidth}}
\hline
\multicolumn{1}{c}{\textbf{Script}} & \multicolumn{1}{c}{\textbf{Description}} \\
\hline
multiboot/multiboot.py & Communicates to the MultiBoot module to send the bitstream
and issue the IPROG command \\
ei2c/ei2c.py & Defines the I$^2$C class, containing methods implementing the
the I$^2$C protocol to access the cards \\
ei2c/ei2cexcept.py & Contains exceptions thrown by the I$^2$C class when the response
from the ELMA crate yields an error \\
\hline
\end{tabular}
}
\end{table}
%--------------------------------------------------------------------------------------
% SUBSEC: Example script
%--------------------------------------------------------------------------------------
......@@ -1360,13 +1376,10 @@ is given in the datasheet of the flash chip~\cite{m25p32}.
An example Python script is provided to access the MultiBoot logic on the CONV-TTL-BLO.
The script can be found under the \textit{software/multiboot/} folder in the project
repository~\cite{ctb-repo}. The script implements the workflow in
repository (see Section~\ref{sec:repo}). The script implements the workflow in
Table~\ref{tbl:reprog-workflow} and can be used either as \textit{the} means of remotely
reprogramming the flash chip, or as an example for users to write their own tools.
Table~\ref{tbl:reprog-scripts} shows the files in the \textit{software/} repository folder
needed to run the script.
The \textit{multiboot.py} script communicates to the reprogramming logic on the FPGA,
giving the user access to the following:
......@@ -1378,34 +1391,8 @@ giving the user access to the following:
\item Sending the IPROG command
\end{itemize}
Upon running the script, the user is asked in sequence for these actions. Since reading
the FPGA configuration register is an advanced feature, the first item in this list is
outside the scope of this document.
If the user selects to read the first page of the flash chip at the MultiBoot address,
a contiguous list of hexadecimal values corresponding to the page will be returned. The
MultiBoot address will be given later in the script.
Since writing the bitstream file takes a long time, the user is asked twice whether to write
a bitstream to the flash or not.
After the user selects whether to send the IPROG command to the logic, the MultiBoot start
address is given. Note that this value should be given in hexadecimal; it is recommended
to use the values in Table~\ref{tbl:reprog-flash-memmap}.
After inputting the start address of the bitstream, the name of the bitstream file to program
is given. The script accepts any type of raw binary files as input, but it is recommended to use
\textit{.bin} files. It is also recommended to place the binary file in the same location as the
\textit{multiboot.py} script.
Once the file name has been input to and checked by the \textit{multiboot.py} script,
it will start the process of writing to the flash and after that is finished, if the user
selected it, the script will issue the IPROG command, triggering the reprogramming of the
flash. Correct reprogramming is validated by checking the version of the gateware from the SR.
A full bitstream write to the flash chip via I$^2$C using \textit{multiboot.py} will take
at least eleven minutes. This interval may increase, depending on network status and
operating system the script is run on.
More details about the script and how to run it can be found in the \textbf{README.txt}
file in the project repository.
%--------------------------------------------------------------------------------------
% SUBSEC: Don't program bitstreams w/o the ICAP
......@@ -1433,6 +1420,61 @@ CONV-TTL-BLO boards arrive with the Header and Golden bitstreams, along with bit
version 1.0 (see the bitstream releases webpage~\cite{ctb-fw-releases} for more details)
programmed into the flash.
%======================================================================================
% SEC: Proj repo
%======================================================================================
\pagebreak
\section{Project repository}
\label{sec:repo}
All source files for the CONV-TTL-BLO board can be found in the form of an OHWR~\cite{ohwr}
\textit{git} repository. This repository can be obtained by running the following command:
\begin{small}
\begin{center}
\verb+git clone --depth=1 git://ohwr.org/level-conversion/conv-ttl-blo.git+
\end{center}
\end{small}
The folder structure of the repository is presented in Table~\ref{tbl:fold-struct}.
\begin{table}[h]
\caption{Repository folder structure}
\label{tbl:fold-struct}
\centerline
{
\rowcolors{2}{white}{gray!25}
\begin{tabular}{l p{.7\textwidth}}
\hline
\multicolumn{1}{c}{\textbf{Folder}} & \multicolumn{1}{c}{\textbf{Description}} \\
\hline
\textit{conv-ttl-blo-gw/} & \textit{git} subproject for the FPGA gateware \\
\textit{doc/} & CONV-TTL-BLO board documentation, including this user guide \\
\textit{pcb/} & Source files for the latest version of the CONV-TTL-BLO
printed circuit boards \\
\textit{software/} & Tools that can be used to communicate to the CONV-TTL-BLO
and perform various functionality \\
\hline
\end{tabular}
}
\end{table}
\subsection{Software tools}
\label{sec:repo-software}
At the time of writing of this document, the tools present in the \textit{software/}
repository are implemented in Python. They communicate to the CONV-TTL-BLO via Telnet
commands to read and write registers (see Section~\ref{sec:comm-telnet}). Most of these
tools use common Python modules to open up the Telnet connection and read and write the
registers. These common scripts can be found in the \textit{software/ei2c/} folder.
The \textbf{README.txt} files in each of the sub-folders of the \textit{software/} folder
contain the the most up-to-date information on the available test scripts. Other than that,
the source c.ode in the test scripts themselves provide the documentation for these software
tools.
%======================================================================================
% Appendices
%======================================================================================
......
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