Timing Receiver: Event-Condition-Action Unit
Figure: A Timing Receiver embedded in a Front-End Computer. The core component is the Event-Condition-Action unit (orange).
The figure above shows the Event-Condition-Action unit (ECA) inside a Timing Receiver (TR). The
Data Master sends
Timing Messages to all TRs in network via broadcast which is received at the input of the ECA. This
event at the ECA input is followed by a comparison of the index of the timing message with a
condition the has been configured previously by a
user program at the host system. Upon a matching condition, the timing message is forwarded to one of the ECAs channels. The channels compare the due-time of the stored messages with the actual White Rabbit time. On-time, the channels forward the timing message to a
receiving component, that are pre-configured to execute an
action. Examples of actions are pulse generation on a Lemo output or issuing a Message Signalled Interrupt (MSI) towards the host system.
ECA Properties
The ECA is able to
- trigger actions with 1ns granularity
- handle incoming messages at Ethernet line speed
- handle back-pressure from receiving components (subsequent actions are marked 'delayed')
- maintain order of timing messages according to their due time
- detect messages arriving at the input too late (if arriving later than their 'due time', actions are marked 'late')
- detect messages arriving at the input significantly too early
- detect messages with identical due time in the same channel (conflicting messages are delayed and marked 'conflict')
Configuration
As the ECA VHDL has no public interface for configuration, the
saftlib API is available for userland application in the host system. The saftlib API also manages concurrent access (it also takes care of dispatching timing messages (as signals) from the ECA towards applications).
Back
Next
--
DietrichBeck - 12 Nov 2018