资源预览内容
第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
第9页 / 共46页
第10页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
从初次接触到熟练应用杨卫杨卫 zeweiyanggmail.comhttp:/www.netfpga.org/内容 初识NetFPGA 目标设计平台 开发系统搭建 近观NetFPGA 浅出Router架构 深入Router软硬件 Demo1: Reference Router 再会NetFPGA 开发实践之路 丰富的Projects 皆可NetFPGA Demo 2: 流量检测NetFPGANetFPGA2.1开发板To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort能否满足你的设计需求?To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort FPGA器件 逻辑规模、I/O及专用资源 用户指南和数据手册 外部接口 4个千兆以太网口 PCI总线接口 2个SATA接口 存储器 4.5MB ZBT SRAM 64MB DDR2 DRAM 时钟资源 FPGA和SRAM支持125MHz DRAM支持200MHz链接关系?NetFPGA不仅仅是开发板To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort FPGAMemory1GE1GE1GE1GEPCICPUMemory开发板PC with NetFPGA运行于PC上 的网络软件带硬件加速的 网络设计平台如何建立自己的开发系统?NetFPGA获取硬件To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort PC 购买预装机 自己装配 推荐配置 http:/netfpga.org/foswiki/bi n/view/NetFPGA/OneGig/ Guide#List_of_PC_Compo nents 千兆网卡 当前项目都是基于 EXPI9402PT 其他网卡,比如 TPLink81392U Server (Dell 2950) 1U Server (Accent Technology, Inc)自己装配安装软件To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort操作系统 Linux CentOS 4/5 http:/netfpga.org/Cent OS_Install.pdf辅助工具安装 Perl安装包 Java安装包CAD工具安装 ISE,Chipscope Pro Modelsim 存储器仿真模型基础开发包安装 硬件设计、驱动及GUI 下载 http:/netfpga.org/beta/ distributions用户空间 Linux内核NICGEPCI-ePCIBrowser & Video ClientGUIGEGEGEGEGECAD Tools可编程硬件VIVIVIVI驱动(eth1 2)(nf2c0 3)Web & Video ServerNetFPGA总观NetFPGATo gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort深入浅出Reference RouterNetFPGAIP Router on NetFPGASwitching转发路由表路由协议用户界面SoftwareHardwareLinux user-level processesVerilog on NetFPGA 开发板驱动程序PackestNetFPGA浅出Router架构To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effortPCI软件NetFPGANetFPGANFP目录结构(一) NF2binlibprojectsbitfiles(运行仿真和设置环境变量的脚本)(所有的FPGA配置文件)(参考设计所有的软硬件源代码,包括C、Java、Perl及 VerilogHDL等)(用户工程相关文件)NetFPGANFP目录结构(二) libCjavaMakefilesPerl5pythonscriptsverilog(驱动程序源代码)(用户界面源代码)(仿真和综合的makefiles)(用于硬件仿真的通用库)(用于regression测试的通用库)(通用功能的脚本命令,比如启动RouterGUI)(参考设计Router的VerilogHDL源码)NetFPGANFP目录结构(三) projectsdocincluderegresssrcswsynthverif(工程说明文档)(设计中的module列表和寄存器定义文件)(regression测试文件)(工程中新添加module的verilogHDL源代码)(工程的软件代码)(生成IP core对应的.xco文件和makefiles)(仿真测试的Perl文件)NetFPGARouter硬件设计To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort最顶层module nf2_top功能实现module nf2_top主数据通路module input_arbiter output_port_lookup oq_queues链路层module nf2c_mac_grpSRAM控制器 sram_arbiter差异化module output_port_lookupNetFPGAVerilgoHDL源代码 verilogcommoncpci_busdmanf2io_queuesuser_data_pathtestbench(宏定义文件,比如module寄存器位宽及地址)(cpci总线接口描述及PCI逻辑核(DMA接口和包传输module)(最顶层module、rgmii接口及Router功能module)(Router链路层处理module)(主数据通路module及寄存器实现)(仿真测试task)还有user_data_path中的moduleNetFPGA流水线To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort输入队列 链路层实现 包缓冲队列调度 选择一个RxQPackets处理 包头检查 路由查找输出缓冲 选择一个TxQ 包缓冲池输出队列 链路层实现 包缓冲NetFPGAmodule headerTo gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effortIP HdrEth Hdr000Last word of packet0x10Last Module HdryModule Hdrx包含Packets字长, 输 入端口,输出端口等Data Word (64 bits)Ctrl Word (8 bits)每个模块都可添加自己的module_header前后级模块交换信息,比如处理结果。NetFPGAPackets和Reg双数据通路To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort统一的外部接口和内部结构模块化设计思路NetFPGAModule间的单向操作To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effortrdy信号 请求数据data信号 64bits数据字ctrl信号 8bits标记wr信号 数据字有效NetFPGAoutput_port_lookup外部接口To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effortoutput_port_lookup内部结构To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effortHDL源码探究 第一 迅速定位某个module 脑海里有一张Router电路结构 图 第二 想起某个module,脑海里是其 电路结构 FSM、always等 第三 将算法和电路一一对应 理解module电路的可取之处 端口定义 output、input、寄存器 接口及系统信号 线网和参数定义 module实例化 FSM描述 两段式NetFPGANetFPGA驱动To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort寄存器读写 Packets传输PCI设备初始化NetFPGA驱动程序源代码To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effortccommonkerneldownloadreg_accessswitchrouternic(用于操控硬件设备的函数)(内核驱动程序)(下载配置文件的程序)(读写寄存器示例)(状态寄存器显示程序)(Router 相关的c程序)(用于统计Packets的树木等)NetFPGA如何访问硬件寄存器To gain a competitive edgeTo upgrade a designTo achieve greater marginTo reduce design time and effort从用户软件协议栈驱动程序NetFPGA板卡PCI Bus1.用户软件调用Write/Read函数 ;2.启动驱动程序的ioctl;3. 驱动程序 完成PCI的I/O 读写操作硬件的接口
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号