注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

chat1的个人空间 http://home.eeworld.com.cn/space-uid-329162.html [收藏] [复制] [分享] [RSS]

日志

FPGA TCP/UDP千兆以太网高速传输, 开源UDP版工程

热度 1已有 3091 次阅读2016-3-8 13:34 |个人分类:TCP/UDP

介绍一下我的FPGA TCP传输方案。
我的方案虽然是支持1000M以太网的,但是由于只是实现了部分TCP协议(包括Listen功能, 重传功能,窗口管理等), 没有实现慢启动,拥塞避免算法,所以速度只能达到300多兆, 不过对于一般的需求应该是足够了,比如工业摄像头图像传输,AD采集上传等。速度测试:

框图:

为达到近1000M, 目前正在改进。
UDP版的速度能接近线速,但是有几率丢包。
TCP/UDP协议是全部用SystemVerilog写的,不带cpu,包括独立的MAC模块。TCP版已经在altera和xilinx的开发板上经过几天的满载传输拷机测试。 支持外部phy的配置,支持GMII和RGMII模式。
另外支持arp,icmp协议。
下面是接口,可以看出是fifo接口:

        input clk50,
        input rst_n,
        
///////////////////////
//interface to user module
    input [7:0] wr_data,  
    input wr_clk,  
    input wr_en,  
    output wr_full,  
  
    output [7:0] rd_data,  
    input rd_clk,  
    input rd_en,  
    output rd_empty,

        input [31:0] local_ipaddr,            //FPGA ip address
        input [31:0] remote_ipaddr,     //PC ip address
        input [15:0] local_port,         //FPGA port number

//interface to ethernet phy
        output mdc,
        inout  mdio,
        output phy_rst_n,
        output is_link_up,

`ifdef RGMII_IF
        input [3:0] rx_data,
        output logic [3:0] tx_data,
`else
        input [7:0] rx_data,
        output logic [7:0] tx_data,
`endif

        input rx_clk,
        input rx_data_valid,
        input gtx_clk,
        output logic tx_en

使用介绍:http://bbs.eeworld.com.cn/forum.php?mod=attachment&aid=MjMyNTk1fDI0MGMzNjViMjRhMmU2NTA3NmJkNWJkNjEyODc1YjVlfDE0NTc0MTUyOTM%3D&request=yes&_f=.pdf另公开UDP源代码,有需要的留下联系方式,比如QQ号






本文来自论坛,点击查看完整帖子内容。

发表评论 评论 (1 个评论)

回复 heartsweat 2018-5-21 10:56
给我发一份udp的demo,谢谢!email:yusfxzh@163.com

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册