# NetFPGA

The NetFPGA project is an effort to develop open-source hardware and software for rapid prototyping of computer network devices. The project targeted academic researchers, industry users, and students. It was not the first platform of its kind in the networking community. NetFPGA used an FPGA-based approach to prototyping networking devices. This allows users to develop designs that are able to process packets at line-rate, a capability generally unafforded by software based approaches. NetFPGA focuses on supporting developers that can share and build on each other's projects and IP building blocks.

## History

The project began in 2007 as a research project at Stanford University called the NetFPGA-1G. The 1G was originally designed as a tool to teach students about networking hardware architecture and design. The 1G platform consisted of a PCI board with a Xilinx Virtex-II pro FPGA and 4 x 1GigE interfaces feeding into it, along with a downloadable code repository containing an IP library and a few example designs. The project grew and by the end of 2010 more than 1,800 1G boards sold to over 150 educational institutions spanning 15 countries. During that growth the 1G not only gained popularity as a tool for education, but increasingly as a tool for research. By 2011 over 46 academic papers had been published regarding research that used the NetFPGA-1G platform. Additionally, over 40 projects were contributed to the 1G code repository by the end of 2010.
In 2009 work began in secrecy on the NetFPGA-10G with 4 x 10 GigE interfaces. The 10G board was also designed with a much larger FPGA, more memory, and a number of other upgrades. The first release of the platform, codenamed “Howth”, was planned for December 24, 2010, and includes a repository similar to that of the 1G, containing a small IP library and two reference designs.
From a platform design perspective, the 10G is diverging in a few significant ways from the 1G platform. For instance, the interface standards for hardware IP were completely redesigned, relying on industry standards rather than homegrown protocols. Additionally the platform relies more heavily now on industry standard tools for dealing with design composition, automated register mapping, and managing the IP library, rather than custom scripts.
The second release of the NetFPGA-10G platform is codenamed “Skellig” and is scheduled for release before second quarter 2011.

## NetFPGA-1G
### Board Features

* Xilinx Virtex-II Pro 50
* 4 One Gigabit interfaces (RJ45 connectors)
* 4.5 Megabytes SRAM
* 64 Megabytes DDR2 DRAM
* 2 SATA-style connectors to Multi-gigabit I/O
* Standard PCI card
* JTAG cable connector for Xilinx ChipScope
See http://www.digilentinc.com/Products/Detail.cfm?Prod=NETFPGA for more detailed technical information.

### License

The NetFPGA-1G code is distributed using a BSD-style license.

## NetFPGA-10G
### Board Features

Source:
* Xilinx Virtex-5 TX240T FPGA
* 4 x 10 Gigabit Ethernet interfaces (SFP+ interfaces)
* 27 MBs QDRII SRAM
* 288 MBs RLDRAM-II
* Two high-speed QTH Samtec connectors
* Two Platform XL Flash (128 MB)
* Xilinx XC2C256 CPLD
* PCI Express x8 Gen2
* JTAG cable connector for Xilinx ChipScope
See http://www.hitechglobal.com/Boards/PCIExpress_SFP+.htm for more detailed technical information.

### License

The NetFPGA-10G code base contains code covered under a variety of different licenses, though the default license is the GNU LGPL version 3.