gpt4 book ai didi

vhdl - 在 vhdl 中计算(和验证)以太网 FCS (crc32)

转载 作者:行者123 更新时间:2023-12-01 10:07:26 29 4
gpt4 key购买 nike

我正在使用 Spartan 3E Starter Kit我正在尝试通过 100MBit 链接在其上接收以太网帧。

对于那些不知道的人,板子有一个PHY芯片,暴露了25MHz的接收时钟。我已经(几乎)通过缓冲接收到的帧并通过串行链路重新发送它们来验证接收工作正常。

此外,我正在使用 CRC32 generator from outputlogic.com .我将收到的 nybbles 聚合为字节并将它们转发给 CRC。在帧的末尾,我锁存生成的 CRC 并将其与我在以太网帧中找到的 CRC 一起显示在 LCD 上。

但是,(您可能已经猜到了)这两个数字不匹配。

527edb0d  -- FCS extracted from the frame
43a4d833 -- calculated using the CRC32 generator

第一个也可以通过 python 的 crc32 函数运行包来验证,既有 wireshark 捕获的帧,也有通过串行端口从 FPGA 捕获和检索的帧。

我想这一定是一些或多或少微不足道的事情。 I pasted the receiving process over here .我剥离了所有不必要的东西。当通过串行捕获输出时,我添加了一个 fifo(赛灵思现成的单元),它与 CRC 生成器同时锁存以获得完全相同的字节。

有人知道这有什么问题吗?

最佳答案

一段时间前,我开始研究以太网 MAC,虽然我一直没有时间完成它,但我确实有一个可用的 CRC 生成器,您可以在这里使用:

CRC.vhd

它基于关于 IEEE 802.3 CRC 的 Xilinx 应用说明,您可以找到它 here .

CRC 在 ethernet receieve component 中实例化,如果您查看 ETH_RECEIVE_SM 进程,您可以看到 FCS 如何加载到检查器中。

希望您通过与我的代码进行比较可以发现您的错误。

编辑:

我从 fpga4fun 中获取了示例以太网帧并通过 CRC 检查器传递它,请参见下面的模拟屏幕截图(右键单击,复制 URL 并在新的浏览器选项卡中查看以获得完整分辨率):

enter image description here

您可以在末尾看到残留的 C704DD7B,尝试用您自己的 CRC 检查器执行相同操作,看看会得到什么。

关于vhdl - 在 vhdl 中计算(和验证)以太网 FCS (crc32),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12497608/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com