I have built a low latency c++ order-book and also a metrics recorder unit that helps us monitor the performance of the orderbook like per-operation-latency, throughput, etc.. in real time. For real market data I am parsing an offline NASDAQ ITCH50 file (multi GB) through a c++ parser and feeding the messages to my orderbook and measuring it's performance - everything is Software.

Now I want to feed my order-book with market data arriving on an actual data-wire encapsulated within several layers - ethernet/ipv4/udp/moldUdp. For that I'll be running the packet parser (verilog) on an fpga and feeding it data via ethernet.