Use Case: ULL Tick-to-Trade Platform
» Standard reference design for ULL tick-to-trade FPGA trading strategies
» nxFramework provides all the required hardware & software modules to assist with development
» Sub 100 ns RTT latency
Stay up-to-date with Exegy News
To stay up to date with the latest news and insights, sign up to our newsletter today.
Designed to efficiently build & maintain ultra-low latency FPGA applications for the financial industry
The Enyx Development Framework (nxFramework) is a hardware and software development environment designed to efficiently build and maintain ultra-low latency FPGA applications for the financial industry.
Based on 10 years of research and development, nxFramework is the foundation for all Enyx off-the-shelf solutions and provides clients with the toolchain to manage a large portfolio of applications.
Developed for building in-house high performance trading engines, order execution systems, pre-trade risk check gateways, and custom projects — nxFramework offers:
Ultra-low latency connectivity cores | Latency |
10G MAC/PCS | 29 ns RTT – SOP to SOF @322MHz 35 ns RTT – SOP to SOP @322MHz Includes 27.345 ns Xilinx VUS+ PMA |
40G MAC/PCS | 55 ns RTT – SOP to SOF @322MHz |
10G full TCP stack | 53 ns RTT @322MHz |
10G full UDP stack | 43 ns RTT @322MHz |
PCIe streaming DMA | 790 ns RTT @250MHz |
Library of 60+ utility cores |
» MMIO core library |
» Packet streaming core library |
» Memory management core library |
» Math core library |
» Statistics core library |
» Simulation helpers library |
In addition to the IP cores above, the Enyx development framework also provides the following elements:
Any skilled FPGA developer starting a new low latency project, maintaining an existing one, or looking to change platforms can immediately reduce their time-to-production.
Our platform agnostic solution allows for mobility from one platform to another with minimal effort and can support designs across multiple different hardware platform vendors.
» Standard reference design for ULL tick-to-trade FPGA trading strategies
» nxFramework provides all the required hardware & software modules to assist with development
» Sub 100 ns RTT latency
» Standard reference design for risk checks gateway acceleration
» Two distinct TCP stacks connect respectively to the users and to the exchange
» Sub 1 µs RTT latency
A collection of 8 utility cores to create memory mapped interfaces:
A collection of 40 utility cores that provide basic operations for the packet streaming bus, mostly with zero latency. All cores can be configured with an additional pipe at their output.
The packet stream core library includes over 40 utility cores such as:
A collection of 8 utility cores to store information including:
A collection of 8 utility cores that provide math functions including:
A collection of 9 utility cores that generate live statistics in an FPGA design:
A collection of 28 utility cores for building test benches and simulation environments:
IP core high level functions library
enyx-cores is a software library that relies on enyx-hw for accelerator communication and provides higher level methods to configure, monitor and use the hardware IP cores that are part of nxFramework such as:
enyx-cores is a set of extendable software libraries providing a methodology and model to build functions on top of enyx-hw for custom built hardware cores.
Hardware communication library
enyx-hw is multilayer software library primarily providing all communication primitives to interact with an FPGA accelerator through abstracted interfaces for packet streaming and memory input/output. enyx-hw currently supports the following interfaces:
enyx-hw also includes functionality for IP core tree discovery and register mapping to provide MMIO access via generated C/C++ classes representing each core.
Discovery of the FPGA accelerator internals searching for a specific core in the MMIO tree (e.g. TCP core) and access to exposed registers for reading or writing are just a few of the features provided by enyx-hw.
The library uses XML file descriptions of core memory maps to represent internal register structures. These XML files can be custom crafted to create user defined IP core mappings and generate C/C++ structures or mocking classes.
ULL streaming DMA drivers & libraries
enyx-hfp provides a Linux drivers suite and software library to interact with Enyx HFP ultra low latency direct memory access (DMA). This library also provides kernel bypass data packet send and receive primitives in addition to memory read/write primitives. Binary tools are provided to allow for monitoring of DMA usage.
Linux drivers also provide support for standard network interfaces to allow network traffic from the FPGA to be processed as it would with a regular NIC through the kernel networking stack.
The Linux kernel driver provided by Enyx is tested and compatible with version 3.10 to 5.15 and is compatible with the latest kernel versions. It is delivered as DKMS source packages.
Enyx software libraries and tools are built using the C compiler provided with each supported distribution and packaged as RPM or DEB as applicable.
All Enyx libraries are written in C language, with C++ header-only bindings. This allows the end user to use a C/C++ compiler of their choosing to build applications which link to the Enyx libraries.
A Python scripted development environment is provided to help users simplify their development cycle.
nxFramework is a collection of components that can be standalone IP cores or “sandboxes” that include the developer business logic while respecting defined generic interfaces.
A user can choose to build their sandbox using RTL (SystemVerilog, Verilog or VHDL) or directly in C/C++ using HLS technologies from the targeted FPGA vendor.
Simulation environments supporting Mentor ModelSim® and Aldec® RivieraPro are provided with highly configurable generic test benches.
Once an application is ready for implementation on an FPGA, project creation for Intel® Quartus or Xilinx® Vivado is automatically performed.
The FPGA hardware can be updated using the enyx-firmware-manager tool. enyx-inspector can be used to perform live debugging of a running application as described below.
The Enyx Inspector tool is provided, as part of nxFramework, bringing a unique level of visibility that is commonly unavailable during the FPGA development process.
The web-based GUI is used to explore the FPGA cores, monitor values and take action on registers following XML descriptions of memory map of each core.
The Enyx Inspector enables easy-to-use debugging that FPGA developers can leverage to significantly reduce time-to-production.
Manufacturer | Model | 1G | 10G | 25G | 40G |
---|---|---|---|---|---|
![]() |
Arista 7130 L Series (VU7P-2)
Arista 7130 LB Series (VU9P-3)
Arista 7130 EB Series (VU9P-3)
|
✔ | ✔ | ||
![]() |
BittWare XUP-P3R
|
✔ | ✔ | ✔ | ✔ |
BittWare XUP-VV8
|
✔ | ✔ | |||
![]() |
Xilinx® Alveo™ U50 Xilinx® Alveo™ U55C |
✔ | ✔ | ✔ | ✔ |
Xilinx® Alveo™ U200 Xilinx® Alveo™ U250 |
✔ | ✔ | ✔ | ✔ |
Get the latest nxFramework release from the Enyx Client Portal