From: Manuel Penschuck Date: Fri, 5 Apr 2013 11:27:40 +0000 (+0200) Subject: Merge branch 'master' of jspc29.x-matter.uni-frankfurt.de:daqdocu X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=1ecd5f803608ada048dcd85f8cefe4aa1de07a66;p=daqdocu.git Merge branch 'master' of jspc29.x-matter.uni-frankfurt.de:daqdocu --- 1ecd5f803608ada048dcd85f8cefe4aa1de07a66 diff --cc trb3/CtsHowtos.tex index e4392b8,287b82e..2eb8ddd --- a/trb3/CtsHowtos.tex +++ b/trb3/CtsHowtos.tex @@@ -1,23 -1,14 +1,23 @@@ \newpage +\label{sec:cts_howto_external_trigger} \subsection{HowTo Implement an External Trigger Module} -\label{sec:cts_howto_external_trigger} + This short tutorial will guide you through the steps necessary to implement an External Trigger Module: + \begin{itemize*} + \item VHDL: Encapsulate the Trigger Logic into an entity (only the interface is discussed here - see section \ref{sec:cts_howto_etm_instantiation}) + \item VHDL: Instantiate the module and connected it to the system (see section \ref{sec:cts_howto_etm_instantiation}) + \item VHDL/Perl: Reserve a module id and implement the software support (see section \ref{sec:cts_howto_etm_instantiation}) + \end{itemize*} + \subsubsection{The module's interface} +\label{sec:cts_howto_etm_instantiation} An External Trigger Module (ETM) gives you the means to implement a high-level trigger criterion that does not require the preprocessing of the general purpose trigger inputs. A typical example is a network bridge. A CTS build can include at - most one ETM. The module is directly linked to the trigger channel with the highest priority. + most one ETM. The module is directly connected to the trigger channel with the highest priority, thus if the ETM asserts + the trigger line while the CTS is idle, the TrbNet Event Type of the next event is defined by the type configured for the ETM. Listing \ref{lst:cts_howto_etm_instantiation} shows a minimal ETM instantiation. For a better readability, it is highly - recommended, that you keep the port's naming. Copy this into the top entity (\filename{trb3\_central.vhd}). Make sure + recommended, that you keep the port's naming. Copy this into the top entity (\files{trb3\_central.vhd}). Make sure there is no active code to instantiate another module (e.g. comment out the CBM/MBS part). You probably need to add signals, e.g. to interface with off-board electronics. The semantics of the CTS interface are very straight-forward: