四、千兆通信中,FPGA→PC机发送链路的构建

前言:前面实现了pc机下发数据包通过以太网传输到fpga并在显示屏上显示。本篇要实现pc机下发数据包通过以太网传输到fpga,然后再通过以太网传回到pc机上。
在这里插入图片描述

一、整体逻辑框图:

在这里插入图片描述
Timer:根据 Timer 定时器产生触发条件,触发产生心跳包,在一些系统中需要根据需求发送心跳包。
Gen_frame_ctrl:根据以太网协议把 UDP 的基本帧结构构建出来。
checksum_ctrl:UDP 包含有两个校验和需要计算,我们这里是使用硬件进行校验和计算,也就是用 FPGA 逻辑电路搭建一个校验和计算模块。
crc_ctrl:在帧的尾部添加 4 个字节的 CRC 校验字段,完成整个帧的设计。
oddr_CTRL:通过 ODDR 模块完成 8 比特到 4 比特的转换操作。

数据流框图:
在这里插入图片描述

二、Timer模块:

在这里插入图片描述

三、Gen_frame_ctrl模块:

在这里插入图片描述
其中组包部分使用case语句完成:
在这里插入图片描述
解释:
1.每一包数据开始都会有帧头、EII 格式等 50 个字节,最后会有四个数据校验位,这里定义 64 个 0x00 作为心跳数据。
2.目的 mac 地址设置成 ff_ff_ff_ff_ff_ff,目的 IP 地址设置成 ff_ff_ff_ff,这些叫做广播 MAC 地址和广播 IP 地址,即所有电脑都可以接收,源 MAC 地址我们可以随便填写一个MAC 地址即可。
这里令:
源mac地址:a8_bb_c8_07_d9_9f
源ip地址:192.168.0.1

目的/源 port 口可以设置为 0-65535任意一个,
此处port源为:1234。
port目的:123

四 、checksum_ctrl模块

1.ip_checksum 计算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. udp_checksum计算

**加粗样式**## 3.将计算好的checksum插入到udp包中合适的位置
在这里插入图片描述
在这里插入图片描述

3. 将checksum计算结果插入到udp包中

在这里插入图片描述

五、Crc_ctrl模块:

在这里插入图片描述

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值