White Rabbit Network Interface Card
This project is concerned with the development of gateware and software to make the combination of a SPEC and a DIO mezzanine behave as a Network Interface Card (NIC) under Linux.
Below is a quick block diagram showing the gateware to be developed for the SPEC FPGA:
And here's a quick description of each block:
- The DIO core allows configuration of each one of the 5 channels of the DIO mezzanine as input or output. For inputs, it provides an accurate UTC time stamp (using UTC from the WRPC, not shown in the diagram) and optionally a host (PCIe) interrupt via the IRQ Gen block. For outputs, it allows the user to schedule the generation of a pulse at a given future UTC time, or to generate it immediately.
- The IRQ Gen block receives one-tick-long pulses from other blocks and generates interrupt requests to the GN4124 core. It also includes interrupt source and mask registers.
- The WB intercon block ensures seamless interconnection of Wishbone masters and slaves using a crossbar topology.
- The GN4124 core is a bridge between the GN4124 PCIe interface chip and the internal Wishbone bus, allowing communication with the host and interrupts.
- The WRPC (White Rabbit PTP Core) communicates with the outside world through the SFP socket in the SPEC, typically using fiber optics. It deals with the WR PTP using an internal LM32 CPU running a PTP stack. It forwards/receives non-PTP frames to/from the NIC block, using two pipelined Wishbone interfaces (master and slave for forwarding and receiving respectively). It also provides UTC time to other cores (not represented in the diagram), and time-tags for transmitted and received frames that can be read through Wishbone for diagnostics purposes.
- The NIC core ensures communication between the host and the WRPC. More precisely, it interrupts the host and provides a descriptor that the host can use to fetch incoming frames. For outgoing frames, it receives a descriptor from the host, fetches the frame using PCIe DMA via the GN4124 core and sends it to the WRPC using a pipelined Wishbone interface.
For this new release, two new IP cores have been added:
- A Etherbone core that exports device memory map and that allows remote configuration over network using UDP packets.
- A multiplexer core that routes the incomming packets from WRPC to Etherbone or NIC depending on its class.
The WRPC software support must be changed in order to classify the incomming packets correctly:
- New packet filter rules have been added to configure packet filter correctly with new architecture.
A caution to be considered in this release is that the first DIO FMC output channel is reserved for 1-PPS signal from the WRPC. This is the simplest way to avoid the delay between the 1-PPS input and 1-PPS output when the Grand Master mode is used.
This project focus on the HDL but It is currently fully supported in terms of additional software (board drivers, applications examples, etc...) as well as documentation. Please check the White Rabbit Starting kit project for additional details.
Related projects
- White-Rabbit PTP core
- SPEC board (simple PCIe carrier)
- FMC-DIO card
- FPGA Configuration Space Specification SDB
- White-Rabbit Starting kit
Contacts
Main developers
- Javier Díaz - Seven Solutions / University of Granada
- Rafael Rodriguez - Seven Solutions
- Tomasz Wlostowski & Grzegorz Daniluk - CERN
- Alessandro Rubini - Gnudd
- Miguel Jiménez López - University of Granada
General questions about project
- Javier Díaz - Seven Solutions / University of Granada
Releases
Version | Date | Description |
1.0 | 17-12-2012 | First gateware implementation |
1.1 | 07-01-2013 | Update to new HDL lib and fix the version |
2.0 | . 17-02-2014 | . Standalone mode, Etherbone Network configuration, PPS delay corrected |
3.0 | Planned | Add the DMA support in order to improve the performance |
Project status
Date | Event |
09-02-2012 | Project definition |
14-05-2012 | Preliminary gateware development |
30-09-2012 | Gateware delivery with sdb support |
07-01-2013 | Software/gateware first release |
17-02-2014 | Gateware second release |
Javier Díaz - 30 July 2014