介绍
NetFPGA是一款低功耗的开发平台,作为网络硬件教学和路由设计的设计工具。NetFPGA可以很方便的使得研究人员或者高校的学生搭建一个高速、硬件加速的网络系统。兴起于北美,最初只是斯坦福大学课堂教学使用的Project。NetFPGA把FPGA的可配置的特性带入了网络通讯领域,可以为更多的研究人员研究下一代网络提供了一个开放的平台。愈来愈多的人开始关注到NetFPGA的特性,并有很多人参与了基于NetFPGA的开源项目。
NetFPGA的参数
NetFPGA平台(如图1)包含了一个Xilinx Virtex-2 Pro 50 的FPGA,运行在125MHz的时钟频率下,用于用户自定义逻辑的设计;还包含了Xilinx Spartan-II FPGA,运行PCI接口控制器的控制逻辑,用于与主处理器的通信。两个2.25MB的外部SDRAM以及扩展的64MB的DDR SDRAM作出数据存储介质。平台还提供了四个千兆以太网接口,以配合在FPGA中的四个千兆以太网控制器软核。NetFPGA还包含了两个SATA连接器,使得在一个系统中多个NetFPGA板直接交换数据,而不需通过PCI总线。
图1 . NetFPGA的硬件组成
板上的主要资源:
用于逻辑设计的Xilinx Virtex-2 Pro FPGA
用于PCI主接口的Xilinx Spartan
2*2.25MB ZBT SRAM
64MB DDR2 DRAM
物理层上的4个千兆以太网口
开发环境
NetFPGA的系统架构(如图2所示)。在研究开发的过程中主要包括硬件层的设计(FPGA的逻辑层的设计)以及软件层的开发(对应硬件层的驱动开发以及应用程序的开发)。
硬件
购置的主机(配置越高越好),注意主板需留一个PCI-E给网卡使用,所以选主板的时候最好选择集成显卡。
图2. NetFPGA的系统框架
软件
操作系统推荐的是CentOS 4.4,CentOS 4.5 CentOS 5.1;用户需要对Xilinx的FPGA进行配置,所以需要安装ISE9.1i软件;还有相关FPGA的工具,如ModelSim(FPGA逻辑仿真),ChipScope(片上逻辑分析)等。还需要安装NetFPGA Base package,在安装之前还需要Java和RPMforge yum工具包的支持。需要注意安装的每个软件的版本问题,因为彼此存在很大的依赖。
开源项目
在http://www.netfpga.org/上可以找到一些开源项目,罗列如下:
1. NetFlow Probe
2. Hardware Accelerated Linux Router
3. NetFPGA Ethernet Switch
4. Quad-Port Gigabit NIC
5. NetFPGA OpenFlow Switch
在国内也有多个团队在开发使用NetFPGA,在http://www.openhw.org/上可以找到的开源项目,如:
1. 基于NetFPGA的可重构科学计算平台(宁夏大学)
2. 基于NetFPGA的网络流量采集器(济南大学)
3. 基于NetFPGA的网络处理器设计与实现(山东大学)
4. 基于NetFPGA的包过滤防火墙的设计与实现(哈尔滨工程大学)
从各种开源项目中可以看到NetFPGA的实际应用,相信能促进下一代网络的发展。
注:最近本人在学习和应用FPGA,无意中在网上发现NetFPGA的一些资料,虽然这种技术才刚刚起步,关于NetFPGA的项目很多都是开源的,适合高校的学生、老师、研究人员开发研究,相信在不久的将来肯定会带来更过的惊喜。在中国NetFPGA也已经引起了很多高校、公司的兴趣,如北京交通大学、华为,但尚属起步阶段,所以对NetFPGA做一些简单的介绍。详细的开发指南请见参考文献1。
参考资料
1. NetFPGA开源官方网站http://netfpga.org/static/guide.html#Install_Software
2. NetFPGA开发初探,http://www.eefocus.com/myspace/blog/show_155829.html
3. 开放源码硬件社区 http://www.openhw.org/activity/opproject/