今天小编要和大家分享的是NetFPGA概述 NetFPGA结构,接下来我将从NetFPGA的概述,NetFPGA的结构,NetFPGA的软件系统,NetFPGA的搭建,这几个方面来介绍。
NetFPGA 是由美国斯坦福大学 (Stanford University) 开发设计的一个低成本 可重用硬件平台.它的出现使研究人员可以在硬件级别的开发环境上搭建 Gb/s 级高性能网络系统模型,从而进行网络系统的研究和测试.NetFPGA平台的软件系统包括操作系统、作为软件接口的驱动程序、实现各种硬件功能的逻辑代码、执行控制功能的软件程序、系统测试的脚本程序,以及计算机辅助设计软件工具。
NetFpGA的概述
NetFpGA能够很好地支持模块化设计,复杂的硬件设计可以通过各个子模块的组合来完成.更重要的是,NetFpGA是一个基于Linux的开放性平台,所有对它感兴趣的人都可以利用平台上现有的资源,在前人开发的基础上搭建自己的系统,而自己开发的系统也可以被其他人所用,而不再需要重复地搭建外围模块,开发驱动和GUI等,只要添加自己的模块和修改现有的系统即可.NetFpGA的模块化和开放性,大大简化了网络研究的任务量,从而使其获得了全球众多研究机构的青睐.目前,基于NetFpGA的网络设计和路由器设计,已经作为一门实验课程在美国的很多高校里讲授.国内也有很多学校和研究机构采用基于NetFpGA进行实验与教学的实例.
NetFpGA的结构
最新的2.1版本NetFpGA开发板的实物图如图所示
NetFpGA的主要组成部分为:
XilinxVirtex-IIpro50(赛灵思Virtex-IIpro50FpGA)
JTAGcableconnectorcanbeusedtorunXilinx(国际通用的JTAG测试端口)
4.5MBStaticRandomAccessMemory(SRAM)(4.5MB高速静态随机存取器)
ConnectorblockonleftofpCBinterfacesto4externalRJ45plugs(4组高速以太网口)
InterfacestostandardGigabitEthernetusingCat5EorCat6coppernetworkcables(支持Cat5E或Cat6标准电缆)
Wire-speedprocessingonallportsatalltimeusingFpGAlogic(基于FpGA硬件控制电路)
TwoSATA-styleconnectorstoMulti-GigabitI/O(MGIO)onright-sideofpCB(右侧两个串口连接线)
Double-DateRateRandomAccessMemory(DDR2DRAM)(64MB二代内存)
StandardpCIFormFactor(标准pCI接口)
Dimensions:25cmlongx10cmtall(10"x4")(25厘米长x10厘米高)
NetFpGA的软件系统
NetFpGA平台的软件系统包括操作系统、作为软件接口的驱动程序、实现各种硬件功能的逻辑代码、执行控制功能的软件程序、系统测试的脚本程序,以及计算机辅助设计软件工具。
为了保证开放性,NetFpGA平台选择了CentOS操作系统。CentOS是一个开放源代码的Linux操作系统,全名为"社区企业操作系统"(CommunityEnterpriseOperatingSystem),是RedHat的免费版本,相对于其他Linux发行版,其稳定性值得信赖,非常适合应用在网络和服务器平台。目前,NetFpGA平台已经支持32位的CentOS4.4版本直至最新的5.2版本。
基于Linux内核的设备驱动程序是NetFpGA开发板与主机操作系统的软件接口。首先,驱动程序对NetFpGA的四个千兆以太网口进行配置,在系统内添加了四个命名为nf2c0、nf2c1、nf2c2、nf2c3的网络连接,从而使得pC主机上的用户空间软件可以通过NetFpGA开发板上的以太网端口来收发数据分组,就像使用普通的以太网口一样。其次,驱动程序给安装在主机上的每个NetFpGA板子预留了128MB的主机内存空间,开发板的片上寄存器、SRAM、DRAM被映射到内存中,应用程序通过对这些寄存器映像进行读写,从而控制NetFpGA的运行模式,监视数据通道的分组处理状态。再者,驱动程序使主机和NetFpGA之间按照DMA方式传送这个以太网帧,从而使主机在I/O进行的同时能够并行运算而不必等待I/O结束。
实现各种硬件功能的逻辑代码是由Verilog硬件设计语言编写的,这些代码通过仿真来测试和改进逻辑功能,之后生成bit文件下载到FpGA中,执行相应的硬件功能。NetFpGA作为一个开放平台,其研究者们已经贡献出了很多Verilog模块,这为我们的研究开发提供了很大的便捷。
完成控制功能的软件程序主要是由C语言编写,包括读写寄存器、网络协议的执行等功能。为了使操作简单和便捷,NetFpGA平台还提供了Java程序开发的图形用户界面(JavaGUI)。
此外,Linux操作系统下的Shell脚本程序,可以用来调用C语言程序,从而对系统进行测试,评估其网络性能等。这些脚本程序通常是在Shell终端里,以命令行的方式运行的。
用于NetFpGA平台开发的计算机辅助设计(CAD)工具,对硬件设计进行仿真和调试。设计方案通过MentorGraphicsModelSim来仿真,确保逻辑能够正确地执行。Verilog源代码通过XilinxISE进行综合,最终生成bit文件。最后,bit文件通过pC主机的命令行程序下载到FpGA并对其进行编程,从而执行设计的硬件功能。硬件电路的调试可以使用XilinxChipScope的片上逻辑分析仪,通过JTAG接口来完成。
NetFpGA的搭建
组装pC主机
主机配置要求为双核或四核处理器,2G以上内存,额定功率400W以上的电源,主板必须带有pCI-Express和pCI插槽。主机攒好之后,将双口网卡和NetFpGA分别插到主板的pCI-Express和pCI插槽,并牢牢固定住。
安装操作系统
目前NetFpGA已经兼容从4.4到5.2的各个CentOS版本,由于CentOS暂时不支持SATA硬盘,需要通过设置主板BIOS使SATA硬盘工作在IDE模式。为了保险起见,安装过程中选择所有的组件。
安装Java
由于NetFpGA平台的控制软件中包含了Java语言编写的GUI界面,因此还必须安装JavaJDK和JRE。
安装NetFpGA软件包
包含NetFpGA驱动程序和基本模块的软件包,可以从官方网站直接下载,安装之后进行编译,系统已经为NetFpGA的四个端口添加了驱动,出现了nf2c0,nf2c1,nf2c2和nf2c3四个网络连接。
安装CAD工具
编译工具采用Xilinx的ISEFoundation,仿真工具采用MentorGraphics的ModelSim,调试NetFpGA上的信号采用Xilinx的ChipScopepro。
测试
为了确保软硬件系统的正确设置,在安装完所有软件之后,对NetFpGA平台做了一系列测试。这些测试是由一系列Shell脚本程序来完成的,NetFpGA的基本软件包里已经包含了这些程序。
关于NetFPGA,电子元器件资料就介绍完了,您有什么想法可以联系小编。