FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6355 Discussions

三速以太网IP核接收路径的用户侧少了一个字节

yzhan286
Beginner
567 Views

我在使用intel三速以太网IP核时,按照用户手册编写了MAC的配置模块,UDP发送模块和UDP接收模块,目前的发送模块已经测试成功,但是接收模块出现了问题,就是接收模块在对MAC的用户侧(ff_rx_data)数据解析时不成功,为了分析原因,用quartus II中的SignalTap抓取SignalTap抓取ff_rx_data信号,发现数据包的头部少了一个字节,导致了后面所有的数据错位。微信截图_20200506131913.png微信截图_20200506132016.png​使用的100M模式,MAC选项只勾选了Align packet headers

to 32-bit boundary其余的均没有使用,FIFO选项:TX和RX均使用的是1024*32bit。请教一下是我的配置有什么问题吗,怎么改就一直是这种现象

0 Kudos
12 Replies
Deshi_Intel
Moderator
498 Views

Hi,

 

Can you elaborate further on your problem statement "header of the data packet was one byte less" ?

  • Is your payload data corrupted ?
  • Or payload data shifted with extra zero padding bits ?
  • It would be best if you can circle or highlight the problematic data in your signal_tap result

 

As for the TSE IP MAC option with "Align packet headers to 32-bit boundaries" enabled.

 

You can always disable the ""Align packet headers to 32-bit boundaries" if it affect your data result alignment.

 

Thanks.

 

Regards,

dlim

 

0 Kudos
yzhan286
Beginner
498 Views

非常感谢您的回复!

我把我的问题详细描述一下,就是我用电脑的网络调试工具向FPGA发送一个UDP数据包,以广播的方式发送,MAC接收路径的用户侧应该接收到这样的数据 0000FFFF FFFFFFFF 000EC6C2 5DE00080 + 有效数据载荷。

使能了Align packet headers to 32-bit boundary,所以前面添加了两字节的0,紧跟着的6个字节是目的MAC地址(广播帧:6字节的ff),在跟着的是源MAC地址也就是电脑网卡的地址和协议类型(ip协议0800)。

出现问题的地方就是在目的mac地址得到这6个字节,从singaltap抓取到的数据来看是少了一个字节的ff,不知我现在是否已经描述清楚,方框中的数据是出现错误的地方,麻烦您再帮我指教一下,谢谢您!微信截图_20200506131913.png

0 Kudos
yzhan286
Beginner
498 Views

非常感谢您的回复!

我把我的问题详细描述一下,就是我用电脑的网络调试工具向FPGA发送一个UDP数据包,以广播的方式发送,MAC接收路径的用户侧应该接收到这样的数据 0000FFFF FFFFFFFF 000EC6C2 5DE00080 + 有效数据载荷。

使能了Align packet headers to 32-bit boundary,所以前面添加了两字节的0,紧跟着的6个字节是目的MAC地址(广播帧:6字节的ff),在跟着的是源MAC地址也就是电脑网卡的地址和协议类型(ip协议0800)。

出现问题的地方就是在目的mac地址得到这6个字节,从singaltap抓取到的数据来看是少了一个字节的ff,不知我现在是否已经描述清楚,方框中的数据是出现错误的地方,麻烦您再帮我指教一下,谢谢您!

微信截图_20200506131913.png

 

0 Kudos
yzhan286
Beginner
498 Views
非常感谢您的回复! 我把我的问题详细描述一下,就是我用电脑的网络调试工具向FPGA发送一个UDP数据包,以广播的方式发送,MAC接收路径的用户侧应该接收到这样的数据 0000FFFF FFFFFFFF 000EC6C2 5DE00080 + 有效数据载荷。 使能了Align packet headers to 32-bit boundary,所以前面添加了两字节的0,紧跟着的6个字节是目的MAC地址(广播帧:6字节的ff),在跟着的是源MAC地址也就是电脑网卡的地址和协议类型(ip协议0800)。 出现问题的地方就是在目的mac地址得到这6个字节,从singaltap抓取到的数据来看是少了一个字节的ff,不知我现在是否已经描述清楚,方框中的数据是出现错误的地方,麻烦您再帮我指教一下,谢谢您!
0 Kudos
Deshi_Intel
Moderator
498 Views

Hi,

 

Thanks. I understand your problem statement now.

  • You are sending broadcast address FF:FF:FF FF:FF:FF
  • But Signal_Tap only captured FF:FF:FF FF:FF, looks like last 2 bytes of FF is missing

Couple debug suggestion

  1. Align packet headers to 32-bit boundary is enabled
  2. Align packet headers to 32-bit boundary is disabled
  3. Have you enabled TSE IP statistic counter option and read on register (Dword Offset 0x18 – 0x38) to check on potential error ?
  4. Did you also monitor TSE IP "status LED signals" to check for potential error ?
  5. Do you observed TSE RX FIFO underflow or overflow issue ?
  6. Do you still see similar issue when sending unicast address instead of broadcast address ?
  7. Do you still see similar issue when sending TCP/IP instead of UDP packet ?
  8. Lastly, would you be able to perform TSE IP internal loopback testing to isolate external factor issue ?
  • ff_tx -> TSE MAC -> ff_rx

 

Thanks.

 

Regards,

dlim

0 Kudos
yzhan286
Beginner
498 Views

您好!

再次感谢您的回复,我在您给的建议下做了如下的测试:

1.使用了本地回环模式即TX->TSE MAC->RX,这个现象依然存在,FIFO端口用的32bit

2.在FIFO宽度设置为8bit的模式下使用本地回环,依然还有这种现象。

3.没有发单播数据报和TCP/IP报,因为我的调试软件在没有知道TSE MAC的MAC地址时不能发送单播报文。

4.FIFO用32bit,不采用​Align packet headers to 32-bit boundary ,也有这种现象。

我把我的工程发给您一下。

软件版本是Quartus II13.0 SP1(64bit)​

再次非常感谢​

0 Kudos
Deshi_Intel
Moderator
498 Views

HI,

 

Sorry, I sent the message without completing below update.

 

Couple debug suggestion

  1. Align packet headers to 32-bit boundary is enabled
  • Did you configure register "tx_cmd_stat" and "rx_cmd_stat" correctly as your earlier screen shot shown "comment out" ?
  1. Align packet headers to 32-bit boundary is disabled
  • Just for debug purpose to see if it helps

 

Thanks.

 

Regards,

dlim

 

0 Kudos
Deshi_Intel
Moderator
498 Views

HI,

 

Sorry for the late reply. I have some questions after reviewing your design.

 

I ahve

 

Thanks.

 

Regards,

dlim

0 Kudos
Deshi_Intel
Moderator
498 Views

HI,

 

Sorry, I meant I have sent you private message.

 

Thanks.

 

Regards,

dlim

0 Kudos
Deshi_Intel
Moderator
498 Views

HI,

 

I haven't hear back from you in the private message.

 

Do you had an chance to review my comment in the private message ?

 

Thanks.

 

Regards,

dlim

0 Kudos
yzhan286
Beginner
498 Views

你好!

我很抱歉没有及时回复您的邮件!

由于前段时间网络的原因,导致我没有登录进支持社区,所以后面就一直没有回复。

现在我的项目接收路径没有用TSE MAC,我自己写了模块对PHY的数据进行解析,可以实现我需要的功能了。

等这段时间忙完了再来解决这个问题。

再次非常感谢您!​

0 Kudos
Deshi_Intel
Moderator
498 Views

HI,

 

No problem. It's good to know you are able to proceed with your project development.

 

Alright, for now I am setting this case to closure first.

 

Feel free to file new forum thread if you still face issue in future.

 

Thanks.

 

Regards,

dlim

 

 

0 Kudos
Reply