White Rabbit Starter Kit
This is a just a draft.
This project demonstrates the functionality of a basic timing system in
order to get people started on White Rabbit (WR).
The WR node's local times are synchronized to a master clock and data
can be exchanged between nodes over the EtherBone protocol. Nodes can be
programmed to execute predefined actions on reception of a certain event
code and will also produce timestamps when triggered. The main purpose
of the kit is to demonstrate scheduled actions and timestamping of
digital signals on WR hardware.
Purpose
It was decided, that the GSI kit should be more than just a White Rabbit (WR) starter kit. In fact, it should already demonstrate some key features required for a timing system. Furthermore it was decided to apply the principle of separation of functions for
* ease of implementation
* optimizing different functions independently
* possibility to replace hard- or software of some parts (plug fest)
* avoiding solutions that will anyhow not be applied in a real world
scenario (like using a SPEC board as a timing master)
Layout
wr_starter_kit.JPG
Figure:* Sketch of the GSI Starter Kit.
The kit is composed of
- A PC with a normal NIC. This PC is used as a Data Master (DM). It uses the Etherbone (EB) library for talking EB to Timing Receivers Nodes (TRN). Note: This is a physical PC, which may not be part of the kit.
- A WR switch. This could be a V2 or V3 switch. This switch has to
fulfill two tasks
- Ethernet switching
-
Clock Master
™
- Two White Rabbit carriers as Timing Receiver Nodes. Most likely, two SPEC boards will be used. Each TRN is equipped with I/O connectors (like FMCs). At least one TRN may be inserted into a PC, for demonstrating the capability of communication from a host system via the host bus interface to a TRN (read/write registers).
- SFPs, fibres.
Priorities and Time Schedule
Listed below are some requirements. Priorities and the time schedule for the realization needs to be discussed.
Functional Requirements
- TRNs synchronize their time to the TM using WR PTP.
- DM and TRNs provide EB as protocol. DM is just a normal NIC in a normal PC. No PTP between DM und WR Switch.
- A set of command line tools for the TRNs. These are executed on the
host system of the TRN. These tools make the functionalities of a
TRN available including
- write to a register/memory (and possibly change the state of an LED or digital output line).
- read from a register/memory
- read the actual time and date
- A set of command line tools for the PC that serves as the DM. These
tools make the functionalities of the GSI Starter Kit available
including
- Send data via EB to individual or all TRNs. The data is written into some memory or register of a TRN. As a result, an LED of a TRN changes its state (on/off) or the level of a digitial output on a TRN's FMC is changed.
- Read data via EB from memory or register of individual TRNs. As an example, this could also be used for reading the actual time and date from a TRN.
- Basically: make all the functionality that is available locally at a TRN PC available on the DM PC via EB.
- Possibility to set time and date on the TM (the switch).
- Usage of the GSI Starter Kit as a timing system (proof of pinciple). One or more TRNs are programmed to change the state of LED or digital output at a configurable time. This requires a primitve ECA unit. It may not be necessary to have the action configurable. However, it shall be possible to configure the time of execution from the DM such, that the TRN execute the action autonomously. A command line tool for the configuration is available at the DM. The "timing event" is sent from the DM to the TRN via EB .
- Usage of the GSI Starter Kit as time stamping system for DAQ (proof of principle). It shall be possible to latch a time stamp on a TRN via a digital input. 8ns resolution is sufficient. It is not required to issue an IRQ on the host system. The value of the latched time stamp is written to a register. It shall be possible to read the content of the register locally via the host bus interface using a command line tool. It is not required to buffer time stamps, but a counter for the latches would be useful to detect multiple latches. The functionality of resetting the time stamp and latch counter registers may be useful. It shall be possible to read the time stamp and latch counter register remotely via EB.
- All functionality that is available via the command line tools shall be available for programmatic use by an application. Do we need an API?
- It shall be possible to use Linux as OS for all PCs involved.
- It may be possible to use Windows as OS for all PCs involved.
Other Requirements
There are different requirements for different levels of users.
- The GSI Starter Kit shall be plug and play. This means, that the functional requirements can be used and tested without installation of tool chains or FPGA manufacturer's development systems. The user only needs to install the driver of the FTRns on their host PCs and to install the software required for the command line tools on the PCs of the TRN's and the DM. This requires, that all firmware including synthesized HDL and soft CPU programs are present in the flash of the TRNs and loaded upon power-up. This shall enable non-experts to use the GSI Starter Kit.
- Pre-synthesized HDL and compiled soft CPU programs are provided. This shall enable novice developers to check their tool chains. This pre-compiled stuff shall be made available as a tagged version in a repository.
- All sources are available via a source code control system like GIT on OHWR. The released versions are tagged. This shall enable developers to understand the code and possibly modify it.
- Documentation shall be provided addressing the different levels of users.
Other Material
Maybe an updated figure of all the blocks in the firmware and some description here...