论文部分内容阅读
基于FPGA的网络信息处理正成为近年来高性能网络设备开发领域的研究热点之一。本文从分析常见的网络开发平台架构入手,结合FPGA技术,实现了一款基于大容量FPGA的网络开发硬件平台,提出了平台及其软件设计方案,实现了原理图设计和PCB设计,完成了Linux系统下基于PCI的网络设备驱动程序设计。具体研究工作如下:分析了现有的网络开发平台架构:X86架构、ASIC架构、NP架构、FPGA架构,探讨了各类架构的实现机制、原理及其优缺点。简要介绍了本平台支持的网络信息处理功能及应用开发者应掌握的知识和开发工具。本文采用模块化设计方法,总体方案主要包括硬件设计和软件设计两部分。硬件设计主要指硬件电路板的设计与实现,按电路功能将其划分为Virtex-5模块、SPARTAN模块、存储模块、网络接口模块等。软件设计包括应用程序、驱动程序和FPGA硬件逻辑设计,其中应用程序查看和配置硬件设备参数,驱动程序为硬件设备运行分配并管理必要的系统资源,FPGA硬件逻辑是网络信息处理的核心部分。本文实现以硬件电路板开发和Linux网络驱动程序设计为主。硬件设计包括原理图设计和PCB设计。原理图分为多个子电路:电源系统、时钟电路、PCI总线电路、网络接口电路、配置电路、存储电路等,本文介绍了主要芯片的选取,并完成了各子电路原理图设计。本平台PCB设计运行速率达1GHz,属高速电路板系统设计,本文探讨了高速电路板的设计流程、信号完整性问题以及常见解决措施,阐述了本平台PCB设计中线距线宽等约束规则设置以及约束驱动布线的设置过程,最后完成了PCB的布局布线工作。驱动程序分为PCI设备驱动设计和网络设备驱动设计两部分。本硬件平台为基于PCI的网络设备,运行于Linux系统下,可以实现四个网络接口。驱动程序首先向Linux内核注册PCI设备,初始化网络接口,为PCI硬件设备和网络接口申请系统资源,并将网络接口关联到PCI硬件设备。网络设备驱动程序设计分为接收数据包模块、发送数据包模块、中断处理模块等。DMA技术是网络数据传输控制的重要手段,本文介绍了DMA实现要点,最后阐述了驱动程序各子模块的设计实现过程。本文最后介绍了本硬件平台设计的完成结果,总结了论文的主要研究工作并简要描述了下一步研究重点。