\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: