Commit 43db528f authored by Theodor-Adrian Stana's avatar Theodor-Adrian Stana

doc: Change max. pulse frequency, substitute FIFO with ring buffer

Signed-off-by: Theodor-Adrian Stana's avatarTheodor Stana <t.stana@cern.ch>
parent cc71e6a0
......@@ -11,7 +11,7 @@
\hfill Gateware v2.0
\hfill February 14, 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,8 +9,8 @@
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="316.84351"
height="137.04678"
width="302.68109"
height="130.83073"
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="2.8284271"
inkscape:cx="254.17917"
inkscape:cy="-5.5751353"
inkscape:zoom="2"
inkscape:cx="25.670243"
inkscape:cy="-97.576783"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
......@@ -94,8 +94,8 @@
units="mm"
spacingx="0.25mm"
spacingy="0.25mm"
originx="-65.967777mm"
originy="-197.35888mm" />
originx="-67.217779mm"
originy="-199.60888mm" />
</sodipodi:namedview>
<metadata
id="metadata7">
......@@ -113,47 +113,19 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-233.74409,-216.01222)">
transform="translate(-238.17323,-214.25582)">
<path
style="fill:none;stroke:#cccccc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:8, 4;stroke-dashoffset:1.8"
d="m 234.74409,310.92512 314.84351,0"
style="fill:none;stroke:#cccccc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:8, 4;stroke-dashoffset:13"
d="m 239.17323,310.92512 265.74803,1.77165 0,-97.44095"
id="path4226"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
sodipodi:nodetypes="ccc" />
<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"
id="path8077"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<rect
y="232.97237"
x="509.35034"
height="53.14962"
width="13.287388"
id="rect5794"
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;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
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;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"
x="496.06299"
y="232.97237" />
<rect
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect6758"
......@@ -185,18 +157,6 @@
x="270.17715"
id="tspan5173"
sodipodi:role="line">White Rabbit time valid</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="516.43695"
y="220.57082"
id="text5986"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="516.43695"
y="220.57082"
style="font-size:6px;text-align:center;text-anchor:middle"
id="tspan4215">Head</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"
......@@ -389,68 +349,6 @@
x="468.49564"
sodipodi:role="line">SR</tspan></text>
</g>
<text
sodipodi:linespacing="125%"
id="text3220"
y="261.31885"
x="502.70523"
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"
inkscape:transform-center-x="10.430045"
inkscape:transform-center-y="5.4426046"><tspan
style="font-size:6px;font-weight:normal;text-align:center;text-anchor:middle"
y="261.31885"
x="502.70523"
id="tspan3222"
sodipodi:role="line">0</tspan></text>
<text
inkscape:transform-center-y="5.4426046"
inkscape:transform-center-x="10.430045"
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="515.86072"
y="261.31885"
id="text3224"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3226"
x="515.86072"
y="261.31885"
style="font-size:6px;font-weight:normal;text-align:center;text-anchor:middle">1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3228"
y="261.31885"
x="542.41498"
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"
inkscape:transform-center-x="10.430051"
inkscape:transform-center-y="5.4426046"><tspan
style="font-size:6px;font-weight:normal;text-align:center;text-anchor:middle"
y="261.31885"
x="542.41498"
id="tspan3230"
sodipodi:role="line">128</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3232"
y="261.31885"
x="529.2843"
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"
inkscape:transform-center-x="10.430045"
inkscape:transform-center-y="5.4425989"><tspan
style="font-size:6px;font-weight:normal;text-align:center;text-anchor:middle"
y="261.31885"
x="529.2843"
id="tspan3234"
sodipodi:role="line">...</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 516.43701,221.45663 0,7.08661"
id="path4220"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<rect
y="326.87"
x="367.6181"
......@@ -469,7 +367,7 @@
y="333.9566"
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 451.77165,271.06292 0,64.66535 18.60236,0"
......@@ -496,86 +394,6 @@
x="416.33856"
y="284.35031"
style="font-size:6px;text-align:start;text-anchor:start">TAI time</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4844"
d="m 516.43701,286.12198 0,31.88976"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<g
id="g4197"
transform="translate(0,18.602379)">
<rect
y="302.95267"
x="501.37796"
height="31.003952"
width="35.433067"
id="rect4827"
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
inkscape:connector-curvature="0"
id="path4858"
d="m 501.37796,310.0393 35.43307,0"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4864"
d="m 501.37796,318.01174 35.43307,0"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
inkscape:connector-curvature="0"
id="path4868"
d="m 501.37796,325.98418 35.43307,0"
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
sodipodi:linespacing="125%"
id="text4870"
y="309.15347"
x="519.19116"
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:6px;text-align:center;text-anchor:middle"
y="309.15347"
x="519.19116"
id="tspan4872"
sodipodi:role="line">TFMR</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="519.19116"
y="316.24008"
id="text4874"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4876"
x="519.19116"
y="316.24008"
style="font-size:6px;text-align:center;text-anchor:middle">TFCYR</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4878"
y="324.21252"
x="519.19116"
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:6px;text-align:center;text-anchor:middle"
y="324.21252"
x="519.19116"
id="tspan4880"
sodipodi:role="line">TFTLR</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="519.19116"
y="332.18497"
id="text4882"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4884"
x="519.19116"
y="332.18497"
style="font-size:6px;text-align:center;text-anchor:middle">TFTHR</tspan></text>
</g>
<path
inkscape:connector-curvature="0"
id="path4890"
......@@ -593,27 +411,31 @@
sodipodi:role="line"
x="381.07394"
y="342.81488"
style="font-size:6px;text-align:center;text-anchor:middle">TFHR</tspan></text>
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect5604"
width="6.2007871"
height="15.059055"
x="-314.46844"
y="443.79922"
transform="matrix(0,-1,1,0,0,0)" />
<text
sodipodi:linespacing="125%"
id="text5606"
y="312.17776"
x="446.06168"
style="font-size:20.85194778px;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:4.5999999px"
y="312.17776"
style="font-size:6px;text-align:center;text-anchor:middle">TVHR</tspan></text>
<g
id="g3876"
transform="translate(0,0.88579413)">
<rect
transform="matrix(0,-1,1,0,0,0)"
y="443.79922"
x="-314.46844"
height="15.059055"
width="6.2007871"
id="rect5604"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<text
xml:space="preserve"
style="font-size:20.85194778px;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="446.06168"
id="tspan5608"
sodipodi:role="line">sync</tspan></text>
y="312.17776"
id="text5606"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5608"
x="446.06168"
y="312.17776"
style="font-size:4.5999999px">sync</tspan></text>
</g>
<text
sodipodi:linespacing="125%"
id="text4240"
......@@ -638,5 +460,37 @@
y="307.38181"
style="font-size:16px;font-weight:bold;text-align:end;text-anchor:end;fill:#cccccc;fill-opacity:1"
id="tspan4246">125 MHz</tspan></text>
<rect
y="232.97237"
x="496.06299"
height="66.437027"
width="44.29134"
id="rect3074"
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<g
transform="translate(76.872936,-61.429516)"
id="g3076">
<g
transform="translate(-19.931093,21.508793)"
id="g3078">
<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.86642"
y="303.58963"
id="text3080"
sodipodi:linespacing="125%"><tspan
id="tspan3084"
sodipodi:role="line"
x="460.86642"
y="303.58963"
style="font-size:10px;font-weight:bold;text-align:center;text-anchor:middle">Ring</tspan><tspan
sodipodi:role="line"
x="460.86642"
y="316.08963"
style="font-size:10px;font-weight:bold;text-align:center;text-anchor:middle"
id="tspan3088">buffer</tspan></text>
</g>
</g>
</g>
</svg>
......@@ -10,7 +10,7 @@
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="515.67535"
height="386.33466"
height="342.0433"
id="svg3221"
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="3.959798"
inkscape:cx="299.46018"
inkscape:cy="100.84137"
inkscape:zoom="2.8"
inkscape:cx="341.71695"
inkscape:cy="92.945084"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
......@@ -95,7 +95,7 @@
spacingx="0.25mm"
spacingy="0.25mm"
originx="-43.042525mm"
originy="-181.10889mm" />
originy="-193.60889mm" />
</sodipodi:namedview>
<metadata
id="metadata3226">
......@@ -113,13 +113,7 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-152.51288,-24.303127)">
<path
sodipodi:nodetypes="cccc"
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleOutM);marker-end:none"
d="m 285.23622,365.84643 228.5433,0 0,-16.83071 8.85827,0"
id="path4846"
inkscape:connector-curvature="0" />
transform="translate(-152.51288,-24.303135)">
<rect
style="fill:none;stroke:#808080;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0.8"
id="rect3160"
......@@ -142,11 +136,11 @@
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleOutM);marker-end:url(#TriangleOutS)"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none"
d="m 456.20078,330.41336 23.69587,0 33.88287,0 0,12.40157 8.85827,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 456.20078,330.41336 94.78347,10e-6"
id="path4534"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 290.4005,302.1811 -16.83071,0 0,4.42914 0,4.42913 12.40158,0"
......@@ -281,20 +275,20 @@
id="tspan4075">counter</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 367.61811,131.10234 4.42913,0 0,51.37795 17.71654,0"
d="m 367.61811,131.10234 8.85826,0 0,51.37795 13.28741,0"
id="path4077"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<text
sodipodi:linespacing="125%"
id="text4106"
y="395.96457"
y="347.24411"
x="260.43307"
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="tspan4110"
style="font-size:12px;font-weight:normal;text-align:end;line-height:125%;text-anchor:end"
y="395.96457"
y="347.24411"
x="260.43307"
sodipodi:role="line">clk125</tspan></text>
<path
......@@ -523,14 +517,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="559.84253"
y="349.90155"
y="334.8425"
id="text4536"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="559.84253"
y="349.90155"
y="334.8425"
style="font-size:12px;font-weight:normal;text-align:start;line-height:125%;text-anchor:start"
id="tspan4538">fifo_wr_req_p_o</tspan></text>
id="tspan4538">buf_wr_req_p_o</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4542"
......@@ -611,19 +605,19 @@
<rect
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4560"
width="265.74802"
height="385.33466"
width="265.30508"
height="341.0433"
x="283.9075"
y="24.803135" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 283.90748,383.56297 14.17323,8.85827 -14.17323,8.85826"
d="m 283.90748,334.84251 14.17323,8.85827 -14.17323,8.85826"
id="path5430"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 262.20472,392.42123 21.25984,0"
d="m 262.20472,343.70077 21.25984,0"
id="path5432"
inkscape:connector-curvature="0" />
<g
......@@ -918,38 +912,5 @@
x="330.29565"
y="318.01178"
style="font-size:12px;font-weight:normal;text-align:center;line-height:125%;text-anchor:middle;fill:#808080;fill-opacity:1">sync.</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="278.1496"
y="370.27557"
id="text3126"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="278.1496"
y="370.27557"
style="font-size:12px;font-weight:normal;text-align:end;line-height:125%;text-anchor:end"
id="tspan3128">fifo_full_i</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 535.03937,345.93436 15.94488,0"
id="path5408"
inkscape:connector-curvature="0" />
<path
style="fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 520.86614,339.27163 0,13.32546 c 7.08661,-0.0381 14.17323,-0.0381 14.17323,-6.66273 0,-6.66273 -7.08662,-6.66273 -14.17323,-6.66273 z"
id="path5406"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
sodipodi:type="arc"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path5601"
sodipodi:cx="355.95169"
sodipodi:cy="320.28348"
sodipodi:rx="1.7716547"
sodipodi:ry="1.7716535"
d="m 357.72335,320.28348 a 1.7716547,1.7716535 0 1 1 -3.54331,0 1.7716547,1.7716535 0 1 1 3.54331,0 z"
transform="translate(163.14279,28.732262)" />
</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="197"
height="111"
id="svg3130"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="timetag-ring-buf.svg">
<defs
id="defs3132">
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="TriangleOutM"
style="overflow:visible">
<path
id="path4211"
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>
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="marker3080"
style="overflow:visible">
<path
id="path3082"
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>
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="marker3084"
style="overflow:visible">
<path
id="path3086"
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>
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="marker3088"
style="overflow:visible">
<path
id="path3090"
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>
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="marker3092"
style="overflow:visible">
<path
id="path3094"
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>
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="marker3096"
style="overflow:visible">
<path
id="path3098"
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>
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="marker3100"
style="overflow:visible">
<path
id="path3102"
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="3.959798"
inkscape:cx="135.67931"
inkscape:cy="82.820703"
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"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<inkscape:grid
type="xygrid"
id="grid3138"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
spacingx="0.5px"
spacingy="0.5px"
originx="-248.5px"
originy="-709.5px" />
</sodipodi:namedview>
<metadata
id="metadata3135">
<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(-248.5,-231.86218)">
<rect
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6, 6;stroke-dashoffset:0"
id="rect4119"
width="40"
height="75.000031"
x="327.5"
y="232.36218" />
<rect
y="232.36218"
x="377.5"
height="74.999992"
width="67.5"
id="rect4129"
style="fill:none;stroke:#cccccc;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6, 6;stroke-dashoffset:0" />
<path
style="fill:none;stroke:#cccccc;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:18, 6;stroke-dashoffset:25.8"
d="m 250,327.36218 97.5,0 0,-85"
id="path4226"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<rect
y="249.86218"
x="400.78735"
height="53.14962"
width="13.287388"
id="rect5794"
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
y="249.86218"
x="414.07471"
height="53.14962"
width="13.287388"
id="rect5796"
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
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="427.36212"
y="249.86218" />
<rect
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"
x="387.5"
y="249.86218" />
<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="250"
y="262.97513"
id="text5992"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5994"
x="250"
y="262.97513"
style="font-size:6px;text-align:start;text-anchor:start">Trigger channel</tspan></text>
<text
sodipodi:linespacing="125%"
id="text6033"
y="271.8334"
x="250"
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"
inkscape:transform-center-x="10.430045"
inkscape:transform-center-y="5.4426047"><tspan
style="font-size:6px;text-align:start;text-anchor:start"
y="271.8334"
x="250"
id="tspan6035"
sodipodi:role="line">TAI time</tspan></text>
<text
inkscape:transform-center-y="5.4426046"
inkscape:transform-center-x="10.430045"
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="250"
y="280.69165"
id="text7512"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7514"
x="250"
y="280.69165"
style="font-size:6px;text-align:start;text-anchor:start">Cycles time</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#TriangleOutM)"
d="m 250,265.63264 132.5,0"
id="path4223"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 250,274.49091 132.5,0"
id="path5155"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 250,283.34917 132.5,0"
id="path5157"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
sodipodi:linespacing="125%"
id="text5159"
y="289.54993"
x="250"
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:6px;text-align:start;text-anchor:start"
y="289.54993"
x="250"
id="tspan5161"
sodipodi:role="line">White Rabbit time valid</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 250,292.20744 132.5,0"
id="path5163"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
sodipodi:linespacing="125%"
id="text3220"
y="278.20865"
x="394.14224"
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"
inkscape:transform-center-x="10.430045"
inkscape:transform-center-y="5.4426046"><tspan
style="font-size:6px;font-weight:normal;text-align:center;text-anchor:middle"
y="278.20865"
x="394.14224"
id="tspan3222"
sodipodi:role="line">0</tspan></text>
<text
inkscape:transform-center-y="5.4426046"
inkscape:transform-center-x="10.430045"
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="407.29773"
y="278.20865"
id="text3224"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3226"
x="407.29773"
y="278.20865"
style="font-size:6px;font-weight:normal;text-align:center;text-anchor:middle">1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3228"
y="278.20865"
x="433.85199"
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"
inkscape:transform-center-x="10.430051"
inkscape:transform-center-y="5.4426046"><tspan
style="font-size:6px;font-weight:normal;text-align:center;text-anchor:middle"
y="278.20865"
x="433.85199"
id="tspan3230"
sodipodi:role="line">128</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3232"
y="278.20865"
x="420.72131"
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"
inkscape:transform-center-x="10.430045"
inkscape:transform-center-y="5.4425989"><tspan
style="font-size:6px;font-weight:normal;text-align:center;text-anchor:middle"
y="278.20865"
x="420.72131"
id="tspan3234"
sodipodi:role="line">...</tspan></text>
<g
id="g4113">
<rect
ry="0"
rx="0"
style="fill:#fcfcfc;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect3293"
width="20.000011"
height="53.14962"
x="337.5"
y="249.86218" />
<path
inkscape:connector-curvature="0"
id="path4105"
d="m 342.5,249.86218 0,52.5"
style="fill:none;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"
d="m 347.5,249.86218 0,52.5"
id="path4107"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4109"
d="m 352.5,249.86218 0,52.5"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<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="347.5"
y="239.86218"
id="text4121"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="347.5"
y="239.86218"
id="tspan4125"
style="font-size:6px;font-weight:bold;text-align:center;text-anchor:middle;fill:#cccccc;fill-opacity:1">Sync. FIFO</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4131"
y="239.86218"
x="412.5"
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:6px;font-weight:bold;text-align:center;text-anchor:middle;fill:#cccccc;fill-opacity:1"
id="tspan4133"
y="239.86218"
x="412.5"
sodipodi:role="line">Buffer RAM</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4240"
y="342.36218"
x="327.5"
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="tspan4242"
style="font-size:16px;font-weight:bold;text-align:end;text-anchor:end;fill:#cccccc;fill-opacity:1"
y="342.36218"
x="327.5"
sodipodi:role="line">20 MHz</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="327.5"
y="322.36218"
id="text4244"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="327.5"
y="322.36218"
style="font-size:16px;font-weight:bold;text-align:end;text-anchor:end;fill:#cccccc;fill-opacity:1"
id="tspan4246">125 MHz</tspan></text>
<rect
style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="rect3053"
width="52.5"
height="20"
x="387.5"
y="322.36218" />
<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="413.85547"
y="330.24402"
id="text3865"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="413.85547"
y="330.24402"
id="tspan3867"
style="font-size:6px;font-weight:bold;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1">Control</tspan><tspan
sodipodi:role="line"
x="413.85547"
y="337.74402"
style="font-size:6px;font-weight:bold;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1"
id="tspan3869">logic</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="145.20943"
y="102.38651"
id="text4088"
sodipodi:linespacing="125%"
transform="translate(240.5,214.36218)"><tspan
sodipodi:role="line"
id="tspan4090"
x="145.20943"
y="102.38651" /></text>
<g
id="g4106"
transform="translate(1.25,0)">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3890"
d="m 405,322.36218 0,-10"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3100)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3100)"
d="m 420,322.36218 0,-10"
id="path4086"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3100)"
d="m 412.5,322.36218 0,-10"
id="path4104"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>
......@@ -66,6 +66,8 @@
14-02-2014 & 2.00 & Version 2.0 of gateware, with diagnostics support including: unique board ID
and temperature readout, input pulse counters, pulse time-tagging and
manual pulse triggering. \\
26-03-2014 & 2.10 & Version 2.1 of gateware, bringing down the max. allowed pulse frequency
to 1.6~kHz and changing the pulse timetag FIFO for a timetag buffer\\
\hline
\end{tabular}
}
......@@ -91,6 +93,7 @@ IC & Integrated Circuit \\
I$^2$C & Inter-Integrated Circuit (bus) \\
PLL & Phase-Locked Loop \\
RTM & Rear-Transition Module \\
RAM & Random-Access Memory \\
SPI & Serial Peripheral Interface \\
SysMon & (ELMA) System Montior \\
VCXO & Voltage-controlled oscillator \\
......@@ -482,8 +485,9 @@ selection signals to these multiplexers are set throughout the logic.
{
\begin{tabular}{l l l}
\hline
\textbf{Entity} & \textit{conv\_pulse\_gen} & \\
\textbf{Generics} & \textit{g\_pwidth} & Width of the output pulse in \textit{clk\_i} cycles \\
\textbf{Entity} & \textit{ctblo\_pulse\_gen} & \\
\textbf{Generics} & \textit{g\_pwidth} & Width of the output pulse in \textit{clk\_i} cycles \\
& \textit{g\_duty\_cycle\_div} & Duty cycle divider ratio \\
\textbf{Ports} & \textit{clk\_i} & Clock signal \\
& \textit{rst\_n\_i} & Active-low reset signal \\
& \textit{en\_i} & Pulse generator enable \\
......@@ -567,7 +571,8 @@ state of the rising-edge detector on the FSM input.
After the pulse generation period, the FSM goes into a pulse rejection state,
where the pulse reset is kept high. If any pulses arrive on the input while the FSM
is in this rejection state, they are not replicated at the output. The pulse rejection
phase lasts for 4*\textit{g\_pwidth}, yielding a maximum duty cycle of 1/5 for input pulses.
phase lasts for \textit{g\_duty\_cycle\_div}*\textit{g\_pwidth}, yielding a maximum duty
cycle of 1/\textit{g\_duty\_cycle\_div} for input pulses.
Note that due to the fact that the counter starts counting up from zero and delays
in the glitch filter when it is enabled, the maximum value of the internal counter is not
......@@ -731,94 +736,103 @@ state (Figure~\ref{fig:man-trig-fsm}).
\section{Pulse time-tagging}
\label{sec:timetag}
\centerline
{
\begin{tabular}{l l p{.5\textwidth}}
\hline
\textbf{Entity} & \textit{pulse\_timetag} & \\
\textbf{Generics} & \textit{g\_clk\_rate} & Frequency in Hz of \textit{clk\_i} signal \\
& \textit{g\_nr\_chan} & Pulse repeater number of channels \\
\textbf{Ports} & \textit{clk\_i} & Clock signal \\
& \textit{rst\_n\_i} & Active-low reset signal \\
& \textit{pulse\_a\_i} & Asynchronouse pulse input \\
& \textit{wr\_tm\_cycles\_i} & Cycles counter from WRPC \\
& \textit{wr\_tm\_tai\_i} & TAI seconds counter from WRPC \\
& \textit{wr\_tm\_valid\_i} & Time from WRPC is valid \\
& \textit{wb\_tm\_tai\_l\_i} & Lower bits of TAI time counter from register \\
& \textit{wb\_tm\_tai\_l\_ld\_i} & Lower bits register write \\
& \textit{wb\_tm\_tai\_h\_i} & Upper bits of TAI time counter from register \\
& \textit{wb\_tm\_tai\_h\_ld\_i} & Upper bits register write \\
& \textit{tm\_cycles\_o} & Cycles counter to FIFO \\
& \textit{tm\_tai\_o} & TAI seconds counter to FIFO \\
& \textit{tm\_wpres\_o} & Time from WRPC is valid \\
& \textit{chan\_o} & Trigger channel to FIFO \\
& \textit{fifo\_full\_i} & FIFO status input \\
& \textit{fifo\_wr\_req\_o} & FIFO write request output, max. four clock cycles
delay after pulse rising edge \\
\hline
\end{tabular}
}
\vspace*{11pt}
A simplified view of the time-tagging architecture is shown in Figure~\ref{fig:timetag-arch}.
There are two clock domains in the design. The time-tag controller and the time from the
WRPC are both in the 125~MHz clock domain, while the \textit{conv\_regs} component is in the
20~MHz clock domain. The FIFO is asynchronous and clocked by both the 125 and 20~MHz clocks.
The time-tagging architecture is shown in Figure~\ref{fig:timetag-arch}. There are two
clock domains in the design. The time-tag controller and the time from the WRPC are both
in the 125~MHz clock domain, while the ring buffer is in both the 20~MHz clock domain and
the 125~MHz clock domain.
\begin{figure}[h]
\centerline{\includegraphics[width=.9\textwidth]{fig/timetag-arch}}
\caption{Time-tag architecture}
\caption{Pulse time-tagging architecture}
\label{fig:timetag-arch}
\end{figure}
The time-tag controller in the figure is the \textit{pulse\_timetag} VHDL component.
It is designed to be connected directly to the FIFO as shown above.As opposed to what the
simplified architecture above shows, the time-tag controller also implements the local time counters.
The block's design is presented in Figure~\ref{fig:timetag-core}. This figure shows the functioning
when the \textit{pulse\_timetag} component is clocked from the 125~MHz clock, as is the case in the
converter board designs. Note however that the component can work with any clock rate by changing
the \textit{g\_clk\_rate} generic.
The timetag controller and ring buffer components are connected at the top-level. The outputs
of the ring buffer are connected directly to the \textit{conv\_regs} component at the top
level also.
%======================================================================================
% SUBSEC: Timetag controller
%======================================================================================
\subsection{Timetag controller}
\label{sec:timetag-ctrl}
The time-tag controller in Figure~\ref{fig:timetag-arch} is the \textit{conv\_pulse\_timetag}
VHDL component. It is designed to be connected directly to the ring buffer as shown above. As opposed
to what the simplified architecture above shows, the time-tag controller also implements the
local time counters.
\begin{figure}[h]
\centerline{\includegraphics[width=.9\textwidth]{fig/timetag-core}}
\caption{Time-tag controller logic}
\centerline{\includegraphics[width=\textwidth]{fig/timetag-core}}
\caption{Timetag controller logic}
\label{fig:timetag-core}
\end{figure}
The block's design is presented in Figure~\ref{fig:timetag-core}. This figure shows the functioning
when the \textit{conv\_pulse\_timetag} component is clocked from the 125~MHz clock, as is the case in the
converter board designs. Note however that the component can work with any clock rate by changing
the \textit{g\_clk\_rate} generic.
A free-running counter inside the block counts the ticks of the \textit{clk\_i} signal
to count the seconds. When it reaches the value \textit{g\_clk\_rate-1} (125~mega in
the figure), it resets and sends a "tick" to the TAI seconds counter, which then increments.
As seen in Figure~\ref{fig:hdl-bd}, the pulse inputs are derived from the OR gate which
ORs together the TTL and blocking inputs. Since these pulses can be asynchronous, they
are synchronized in the 125~MHz domain and passed through rising edge detectors. If the
FIFO is not full, a rising edge on any channel then triggers the
\textit{fifo\_wr\_req\_p\_o} output. As the port's name suggests, this signal is a one-cycle
pulse that triggers a write to the FIFO.
are synchronized in the 125~MHz domain and passed through rising edge detectors. A rising
edge on any pulse channel triggers the \textit{buf\_wr\_req\_p\_o} signal. As the port's
name suggests, the \textit{buf\_wr\_req\_p\_o} signal is a one-cycle pulse that triggers
a write to the ring buffer.
Note that due to the synchronization logic, rising edge detector and the latching of the
ORed pulse rising edge detection signal, the \textit{fifo\_wr\_req\_p\_o} signal is
set between three and four cycles after the pulse signal actually arrives on the input.
All the output ports are connected externally directly to the FIFO, therefore when the
\textit{fifo\_wr\_req\_p\_o} output pulses, they are written to the FIFO. As shown in
All the output ports are connected externally directly to the ring buffer, therefore when the
\textit{buf\_wr\_req\_p\_o} output pulses, they are written to the ring buffer. As shown in
Figure~\ref{fig:timetag-arch}, the \textit{tm\_wpres\_o} signal is also reflected in the
board status register (SR -- see Appendix~\ref{app:conv-regs-sr}).
The FIFO itself is generated using \textit{wbgen2}~\cite{wbgen2} and connected
on the top-level to the \textit{pulse\_timetag} component.
Note that due to the synchronization logic, rising edge detector and the latching of the
ORed pulse rising edge detection signal, the \textit{buf\_wr\_req\_p\_o} signal is
set between three and four cycles after the pulse signal actually arrives on the input.
Due to the two clock domains in the design, some synchronization logic is needed. This is
achieved via \textit{gc\_sync\_ffs} components from the \textit{general-cores}
library~\cite{gencores-ohwr} in the case of the WR time valid signals storage to the SR
and in the case of the TAI time value load pulses from the \textit{conv\_regs} to the
\textit{pulse\_timetag} components.
\textit{conv\_pulse\_timetag} components.
The TAI time signal is not synchronized before being connected to the \textit{conv\_regs}
component, since its rate of change of once per second is considered too slow to present
any problem of synchronization when read by the user.
%======================================================================================
% SUBSEC: Ring buffer
%======================================================================================
\subsection{Ring buffer}
\label{sec:timetag-ring-buf}
The mechanics of the ring buffer are presented in the \textbf{Ring buffer mechanics}
section of the CONV-TTL-BLO user guide~\cite{ctb-ug}. This section gives a few more details about the
implementation of the ring buffer, which can be found in the \textit{conv\_ring\_buf.vhd} file.
\begin{figure}
\centerline{\includegraphics[width=.8\textwidth]{fig/timetag-ring-buf}}
\caption{Ring buffer implementation}
\label{fig:timetag-ring-buf}
\end{figure}
A high-level view of the implementation is shown in Figure~\ref{fig:timetag-ring-buf}.
This figure is oriented towards the converter board designs, but the ring buffer is
generic and can be used in other designs by properly instantiating it.
The ring buffer is implemented via a dual-clock, asynchronous FIFO, whose purpose is to
synchronize data between the read and write clock domains, a dual-port RAM clocked
with the read clock, and control logic for the buffer RAM. In the case of the converter
board designs, the write clock is the 125~MHz clock and the read clock is the 20~MHz clock.
The buffer control logic controls when the read and write pointers get incremented and
when the empty and full signals are set. The setting of the empty and full signals are
based on a buffer count signal, which gets incremented when a write is performed and the
buffer is not full, and decremented when a read is performed and the buffer is not empty.
%======================================================================================
% SEC: Folder structure
%======================================================================================
......@@ -879,10 +893,10 @@ The folder structure for the project is presented below.
\item Release/
\begin{itemize}
\item conv\_man\_trig.vhd
\item conv\_pulse\_gen.vhd
\item conv\_regs.vhd
\item conv\_regs.wb
\item pulse\_timetag.vhd
\item conv\_pulse\_timetag.vhd
\item ctblo\_pulse\_gen.vhd
\end{itemize}
\item pulsetest/
\begin{itemize}
......
......@@ -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
......
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