增加ARP后,Board通过电脑端的APR请求获取PC端MAC地址及IP,所以宏定义内不定义Destination_MAC、Destination_IP。提取到顶层文件用以寄存器存储。

`define   Leading_code                      64'h55_55_55_55_55_55_55_D5
`define   Source_MAC                       48'h00_11_22_33_44_08
//`define   Destination_MAC                    48'h11_22_33_44_55_02
`define   IP_TYPE                          16'h08_00
`define   IP_TYPE_ARP                      16'h08_06
`define   Source_IP                        32'hC0_A8_00_04  //192.168.0.4  //BOARD
`define   Source_Gateway                   32'hC0_A8_00_01  //192.168.0.1
//`define   Destination_IP                     32'hC0_A8_00_03  //192.168.0.3
`define   Source_Port                          16'd8001                        //BOARD
`define   Destination_Port                     16'd8000                        //PC

ARP数据更新进程。接收进程接收到ARP包后,将数据复制给reg,并通知接收进程收取完毕(ARP_addr_Get )进程回到正常接收模式。

/*ARP_PROCESS*/
always @(posedge Rx_Clk_i or negedge ETH_RESET_n)
beginif(!ETH_RESET_n)beginARP_addr_Get  <= 1'b0;Eth_Command[2]  <= 1'b0;endelse if (ARP_addr_en)beginARP_addr_Get     <= 1'b1;Destination_MAC <= ARP_addr_data[79:32];Destination_IP  <= ARP_addr_data[31: 0];Eth_Command[2]  <= 1'b1;endelse beginARP_addr_Get <= 1'b0;Eth_Command[2]  <= 1'b0;end
end

Board APR回复数据,需要增加16byte的padding,以太网数据传输有最小包要求。

ARP_Code  <= {`Leading_code,    Destination_MAC,`Source_MAC,`IP_TYPE_ARP, // 8 + 6 + 6 + 2 = 2216'h00_01    ,    16'h08_00         ,16'h06_04  ,16'h00_02   , // 2 + 2 + 2 + 2 = 8`Source_MAC  , `Source_IP    ,                          // 6 + 4         = 10Destination_MAC,Destination_IP,                              // 6 + 4         = 10{18{8'h00}}                                             //padding};

wireshark实时捕获:

Py测试数据源代码:

from scapy.all import *
pkt = ARP()
pkt.psrc = "192.168.0.35"
pkt.pdst = "192.168.0.4"
for n in range(10):aaa = send(pkt)print(aaa)

板级调试

Verilog 实现千兆网UDP协议 基于88E1111--板级验证--增加ARP相关推荐

  1. Verilog 实现千兆网UDP协议 基于88E1111--数据发送

    Verilog 实现千兆网UDP协议 基于88E1111–数据发送 注:此版本没有添加ARP PING 等,未完待续. 注:项目采用Verilog开发,基于Vivado编译器. UDP(User Da ...

  2. Verilog 实现千兆网UDP协议 基于88E1111--数据接收

    注:此版本没有添加ARP PING 等,未完待续. 注:项目采用Verilog开发,基于Vivado编译器. 注:本版本没有计算校验 与上一篇相同开发环境,采用三段式状态机. 同样,接收后将数据写入F ...

  3. 一个udp用户数据报的数据字段为8192_基于FPGA的千兆网UDP通信分析

    千兆网UDP通信 以太网帧格式 图8‑12 以太网帧格式 表8‑5 以太网帧格式说明 UDP协议分析 为什么UDP协议在FPGA实现时很受欢迎,最主要一个原因就是简单,简答到什么地步呢?UDP协议只是 ...

  4. 基于zynq的千兆网udp项目_基于FPGA的千兆网UDP通信分析

    千兆网UDP通信 以太网帧格式 图8‑12 以太网帧格式 表8‑5 以太网帧格式说明 UDP协议分析 为什么UDP协议在FPGA实现时很受欢迎,最主要一个原因就是简单,简答到什么地步呢?UDP协议只是 ...

  5. 基于zynq的千兆网udp项目_米联客 ZYNQ/SOC 精品教程 S05-CH05 PS 千兆 UDP 加速

    软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...

  6. FPGA基于SFP光口实现1G千兆网UDP通信 1G/2.5G Ethernet PCS/PMA or SGMII替代网络PHY芯片 提供工程源码和技术支持

    目录 1.前言 2.我这里已有的UDP方案 3.详细设计方案 4.vivado工程详解 5.上板调试验证并演示 6.福利:工程代码的获取 1.前言 目前网上的fpga实现udp基本生态如下: 1:ve ...

  7. 千兆以太网PHY芯片调试-88E1111(RGMII接口-数据收发ECHO测试) Verilog实现python测试

    千兆以太网PHY芯片调试-基于RGMII接口的88E1111(数据收发ECHO测试) 先放结果: Py测试代码: import socket #网络通信 TCP,UDP DST_IP = '192.1 ...

  8. 基于zynq的千兆网udp项目_一种基于ZYNQ的四路万兆以太网安全交换机的制作方法...

    本实用新型涉及网络安全.网络通信技术领域,尤其是一种基于ZYNQ的四路万兆以太网安全交换机,适用于大中型企业的交换网络. 背景技术: 随着互联网的高速发展,传统的以太网交换机在功能和性能上已不能满足要 ...

  9. 基于zynq的千兆网udp项目_随时随地感受“沉浸式千兆体验”!海南互联网络迈入“三千兆”时代...

    海口网6月18日消息(记者刘杰)18日,海南电信在海口友谊阳光城举办"电信三千兆 智享新生活"发布会."电信三千兆"的发布标志着海南互联网络建设进入一个全新的发 ...

最新文章

  1. vim中tab键8空格换4空格
  2. poj_2762,弱连通
  3. aopaspect区别_面试官:什么是AOP?Spring AOP和AspectJ的区别是什么?
  4. OpenCASCADE:形状愈合之修复
  5. Mac或者Linux安装RabbitMQ
  6. Java的深拷贝的例子
  7. MVC4发布到IIS7报404错误
  8. Mycat分库分表的简单实践 / 用Mycat,学会数据库读写分离、分表分库
  9. FlexSIM.ED v4.0 1CD(生产排程,虚拟管理,能力平衡软件)
  10. 通过CN3口直接控制台达伺服电机A2-M(一)
  11. gaster字体转换器_Galas字体转换器 Galas在线生成器-万字网
  12. 多媒体计算机主机系统,多媒体计算机系统的组成
  13. [系统安全] 二十.PE数字签名之(上)什么是数字签名及Signtool签名工具详解
  14. Python人工智能学习路线(长篇干货)
  15. idea 去掉author波浪线
  16. 墨卡托坐标转GPS坐标
  17. IBM-kmeans-坏盘预测
  18. vb.net 同时给多个属性赋值_C++程序入门之——赋值操作符
  19. 通过Windows防火墙禁止某程序(或软件)联网
  20. 用pyecharts画地图(世界地图、中国省级地图、市级地图、某省市级地图、某市县级地图)

热门文章

  1. 入手一年,再谈HiFi耳机的“白月光”——飞利浦Fidelio X3
  2. 发明计算机的人的名人名言,16句关于科学家的名言
  3. java 实现EME2000(国家大地坐标系)转ECEF坐标系(地心地固坐标系)
  4. matlab 双曲正割脉冲,matlab画双曲正割(急)!!!!!!!!!!!!!!!!!!!!!!...
  5. 20.3. texi2html
  6. java解析Excel日期格式转换问题
  7. [足式机器人]Part1 运动控制的替代方法Ch06——【Legged Robots that Balance 读书笔记】
  8. 393高校毕业设计选题
  9. USB小票打印解决办法
  10. 网络抖动多少ms算正常_网络延迟多少ms正常 - 卡饭网