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:
wr_nic_blocks.png
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 portable 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.
Related projects
- White-Rabbit core
- SPEC board (simple PCIe carrier)
- FMC-DIO card
Project's status
Date | Event |
9-2-2012 | Project definition |
14-5-2012 | Preliminary gateware development |
Running | Stable gateware delivery with sdb support |
Coming soon | Software/gateware first release |
Javier Díaz - 24 July 2012