Timing Receiver: Event-Condition-Action Unit

ecaTrFec.jpg
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
Topic revision: r6 - 2018-11-16, dbeck - This page was cached on 2024-12-16 - 15:50.

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding GSI Wiki? Send feedback | Legal notice | Privacy Policy (german)