NetFPGA可以很好地支持模块化设计。
通过子模块的组合可以实现复杂的硬件设计。
更重要的是,NetFPGA是一个基于Linux的开放平台,任何对它感兴趣的人都可以使用它。
在现有资源上,基于前辈的开发构建自己的系统,自己开发的系统可以被其他人使用,而不是重复构建外围模块,开发驱动程序和GUI,只需添加自己的模块和修改现有的系统。
NetFPGA的模块化和开放性极大地简化了网络研究的任务,使其成为全球许多研究机构的最爱。
目前,基于NetFPGA的网络设计和路由器设计,它已被教授为美国许多大学的实验课程。
中国也有许多学校和研究机构使用基于NetFPGA的实例进行实验和教学。
最新2.1版本的NetFPGA开发板的物理图显示在NetFPGA的主要组件中。
适用于:Xilinx Virtex-II Pro 50(Xilin Virt Ex-II Pro 50 FPGA)JTAG电缆连接器可用于运行Xilinx(国际上使用的JTAG测试端口)4.5 MBStatic随机存取存储器(SRAM)(4.5 MB高速静态随机存取) )PCB左侧的连接器块连接到4个外部RJ45插头(4组高速以太网端口)使用Cat5E或Cat6铜缆网络连接到标准千兆以太网(支持Cat5E或Cat6标准电缆)所有端口上的线速处理随时使用FPGA逻辑电路)两个SATA型连接器连接到PCB右侧的多千兆位I / O(MGIO)(右侧两个串行端口)双日期速率随机存取存储器(DDR2 DRAM)(64MB)第二代存储器)标准PCI形状因数尺寸:25cm长×10cm高(10“×4”)(25cm长×10cm高)NetFPGA平台的软件系统包括操作系统,软件接口的驱动程序和各种实现。
逻辑生成硬件功能代码,执行控制功能的软件程序,系统测试脚本和计算机辅助设计软件工具。
为确保开放性,NetFPGA平台选择了CentOS操作系统。
CentOS是一个开源Linux操作系统,全称为“社区企业操作系统”,是Red Hat的免费版本。
与其他Linux发行版相比,CentOS可靠且适用于应用程序。
在网络和服务器平台上。
目前,NetFPGA平台已经支持32位CentOS 4.4到最新的5.2。
基于Linux内核的设备驱动程序是NetFPGA开发板和主机操作系统之间的软件接口。
首先,驱动程序配置NetFPGA的四个千兆以太网端口,并向系统添加四个名为nf2c0,nf2c1,nf2c2和nf2c3的网络连接,以便可以通过NetFPGA开发PC主机上的用户空间软件。
板上的以太网端口发送和接收数据包,就像它是普通的以太网端口一样。
其次,驱动程序为主机上安装的每个NetFPGA板保留128MB的主机内存空间。
开发板的片上寄存器,SRAM和DRAM映射到存储器,应用程序读写这些寄存器映像。
控制NetFPGA的操作模式并监视数据通道的数据包处理状态。
此外,驱动程序在DMA模式下将以太网帧传输到主机和NetFPGA,允许主机在I / O运行时执行并行操作,而无需等待I / O结束。
实现各种硬件功能的逻辑代码用Verilog硬件设计语言编写。
这些代码通过仿真测试和改进逻辑功能,然后生成位文件下载到FPGA以执行相应的硬件功能。
作为一个开放平台,NetFPGA贡献了大量的Verilog模块,为我们的研发提供了极大的便利。
完成控制功能的软件程序主要用C语言编写,包括读写寄存器和网络协议执行等功能。
为了简化操作,NetFPGA平台还为Java程序开发提供了图形用户界面(Java GUI)。
此外,Linux操作系统下的shell脚本程序可用于调用C语言程序来测试系统并评估其网络性能。
这些脚本通常从shell终端的命令行运行。
用于NetFPGA平台开发的计算机辅助设计(CAD)工具,用于模拟和调试硬件设计。
该设计由Mentor Graphics ModelSim模拟,以确保逻辑正确执行。
Verilog源代码由Xilinx ISE合成,最后生成位文件。
最后,通过主计算机的命令行程序将位文件下载到FPGA,并编程以执行设计的硬件功能。
可以使用Xilinx ChipScope的片上逻辑分析仪通过JTAG接口完成硬件电路的调试。
组装PC主机主机配置需要双核或四核处理器,2G或更大内存,以及额定功率为400W或更高的电源。
主板必须具有PCI-Express和PCI插槽。
主机准备就绪后,将双端口NIC和NetFPGA插入主板的PCI-Express和PCI插槽,然后将其牢固固定。
安装操作系统目前,NetFPGA与4.4到5.2的各种CentOS版本兼容。
由于CentOS暂时不支持SATA硬盘,因此需要设置主板BIOS以使SATA硬盘在IDE模式下工作。
为安全起见,请在安装过程中选择所有组件。
安装Java由于NetFPGA平台的控制软件包含用Java语言编写的GUI界面,因此还必须安装Java JDK和JRE。
安装包含NetFPGA驱动程序和基本模块的NetFPGA软件包。
它可以直接从官方网站下载。
安装完成后,系统已经为NetFPGA的四个端口添加了驱动程序。
有四个nf2c0,nf2c1,nf2c2和nf2c3。
网络连接。
安装CAD工具构建工具使用Xilinx的ISE Foundation,模拟工具使用Mentor Graphics的ModelSim,调试NetFPGA信号基于Xilinx的ChipScope Pro。
测试为确保正确设置硬件和软件系统,在安装所有软件后,在NetFPGA平台上执行了一系列测试。
这些测试由一系列已经包含在NetFPGA基本软件包中的shell脚本执行。