From 684a3b19980ef7844a110d360db77f03c611beed Mon Sep 17 00:00:00 2001 From: Hadaq in Frankfurt Date: Thu, 31 Jan 2013 19:42:42 +0100 Subject: [PATCH] added synchronous TrbNet section, JM --- trb3/CodeRepository.tex | 9 +++- trb3/SyncMediaInterface.tex | 61 ++++++++++++++++++++++++++++ trb3/figures/mediainterface_new.png | Bin 0 -> 36816 bytes trb3/main.tex | 7 +++- trbnet2spec.tex | 7 +++- 5 files changed, 79 insertions(+), 5 deletions(-) create mode 100644 trb3/SyncMediaInterface.tex create mode 100755 trb3/figures/mediainterface_new.png diff --git a/trb3/CodeRepository.tex b/trb3/CodeRepository.tex index 3000d62..0a68760 100644 --- a/trb3/CodeRepository.tex +++ b/trb3/CodeRepository.tex @@ -1,7 +1,12 @@ \begin{description*} \item[Trb3 Vhdl]cvs -d lxi051.gsi.de:/misc/hadesprojects/daq/cvsroot/trb3 \item[TrbNet Vhdl]cvs -d lxi051.gsi.de:/misc/hadesprojects/daq/cvsroot/trbnet - \item[Trb3 Documentation]cvs -d lxi051.gsi.de:/misc/hadesprojects/daq/cvsroot/daq\_docu/trb3 - \item[Trb3 Software]cvs -d lxi051.gsi.de:/misc/hadesprojects/daq/cvsroot/trbsoft/trb3 + + \item[Trb3 Documentation]git clone git://jspc29.x-matter.uni-frankfurt.de/projects/daqdocu.git + \item[Trb3 SlowControl Software]git clone git://jspc29.x-matter.uni-frankfurt.de/projects/daqtools.git + \item[Trbnet Software Library]git clone git://jspc29.x-matter.uni-frankfurt.de/projects/trbnettools.git + \item[Data Server (Eventbuilder)]git clone git://jspc29.x-matter.uni-frankfurt.de/projects/daqdata.git + + \item[Dabc Eventbuilder]http://hades-wiki.gsi.de/cgi-bin/view/DaqSlowControl/EventBuilderDabc \end{description*} diff --git a/trb3/SyncMediaInterface.tex b/trb3/SyncMediaInterface.tex new file mode 100644 index 0000000..010dbd0 --- /dev/null +++ b/trb3/SyncMediaInterface.tex @@ -0,0 +1,61 @@ +\subsection{Central Aspects} +\begin{itemize*} + \item All FPGA run on a central clock, each network node recovers the clock from the optical link and uses it as the main clock source for all design components. + \item Low-level messages with deterministic latency can be inserted in the data stream and forwarded in the direction toward the front-ends + \item Links toward the front-ends run in bit-synchronous mode, i.e. the word alignment of the Serdes is always locked on Bit 0. + \item Links toward the read-out run in clock-synchronous mode only, i.e. the round-trip time for a packet can be measured with one word length (currently 5 ns) precision only. +\end{itemize*} + + +\subsection{Media Interfaces} + +\begin{figure}[htp] + \centering + \includegraphics[width=.5\textwidth]{figures/mediainterface_new.png} + \caption{New Media Interface Block Diagram} + \label{fig:medint_new} +\end{figure} + +\paragraph{The link start-up procedure}~\\ +Each link has a defined master and slave side, given by the hard-wired configuration of each design. The reset of the TX and RX reset state machines follows the Lattice reference design. +\begin{enumerate} + \item The master switches on its transceiver + \item The slave recovers the clock, resets itself as often as needed to lock on Bit 0. Lattice ECP3 reset recommendation takes 4~ms per try, but actual locking time seems to be about 1~ms. During this time, the RX clock (which is the main system clock) is not stable so that the slave logic needs to be in reset state. + \item The slave activates its transceiver (or: transceiver is already on, and slave switches to another idle comma character to signal readiness - to be investigated). + \item The master locks on the received stream / detects the new comma character. To make sure that the link is stable (e.g. when plugging in a cable by hand), a delay of about 500 ms is started + \item The master declares the connection active and changes its own idle comma character. +\end{enumerate} + +Using a recovered clock to drive its own transceivers has the implication that if one link is lost and needs to be restarted, the full tree of boards behind the erroneous one needs to be resynchronized. It needs to be investigated if this is possible in a clean way or all these FPGA need to be resetted automatically because of loss of the RX clock. This needs in detail check of the transceiver PLLs in case of an unlock of the clock recovery PLL. + +The bi-directional hand-shake by changing comma characters is necessary when front-ends are able to actively send data to the read-out - it can be omitted if there is only a central master as in triggered systems. + + +\paragraph{Comma Characters}~\\ +Each control word consists of two parts, a comma character and a data character. Assignment of individual character is not fixed and can be changed by constants in a vhdl package. CBMnet uses a set of 64 16 bit characters with big Hamming distance for error correction - this will not be done in TrbNet due to additional overhead and low error rates on transmission via SFP. + + +\begin{table}[ht] +\begin{center} +\begin{tabular}{|c|c|c|c|} + \hline + \textbf{Name} & \textbf{Full Name} & \textbf{K Character} & \textbf{D Character}\\ +\hline\hline +IDLE& Idle & BC & C5 (idle0) or 50 (idle1)\\ +SOP & Start of Packet & DC & Channel / Packet Type (not in first version)\\ +EOP & End of Packet & FD & CRC \\ +BGN & Begin of Transmission & 1C & Buffer Position\\ +REQ & Retransmit Request & 7C & Buffer Position\\ +DLM & DLM & FB & Deterministic Latency Message \\ +& & 3C & \\ +& & 5C & \\ +& & 9C & \\ +& & FC & \\ +& & F7 & \\ +Reset & Link reset & FE & none\\ +\hline +\end{tabular} +\caption{Comma Characters} +\end{center} +\end{table} + diff --git a/trb3/figures/mediainterface_new.png b/trb3/figures/mediainterface_new.png new file mode 100755 index 0000000000000000000000000000000000000000..35f6ce9c92542508f914fe3c60a34c96d4ba3392 GIT binary patch literal 36816 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