Jon*_*fer 2 crc32 ethernet vhdl
我正在使用Spartan 3E入门套件,我正试图通过100 MBit链接接收以太网帧.
对于那些不知道的人,该主板采用PHY芯片,接收时钟为25 MHz.我(几乎)通过缓冲接收的帧并通过串行链接重新发送它来验证接收工作正常.
此外,我正在使用outputlogic.com的CRC32生成器.我将收到的nybbles聚合为字节并将它们转发给CRC.在帧结束时,我锁存生成的CRC并将其与在以太网帧中找到的CRC I一起显示在LCD上.
但是,(正如您可能已经猜到的那样)这两个数字不匹配.
527edb0d -- FCS extracted from the frame
43a4d833 -- calculated using the CRC32 generator
Run Code Online (Sandbox Code Playgroud)
第一个也可以通过pythons crc32函数运行包来验证,两者都由wireshark捕获的帧和通过串行端口从FPGA捕获和检索的帧.
我想它一定是或多或少都是微不足道的.我在这里粘贴了接收过程.我剥掉了一切不必要的东西.当通过串行捕获输出时,我添加了一个fifo(来自Xilinx的容易制造的单元),它与CRC发生器同时锁存以获得完全相同的字节.
有没有人知道这有什么问题?
我一开始就开始使用以太网MAC了,虽然我从来没有完成它,但我确实有一个可用的CRC生成器,你可以在这里使用:
它基于关于IEEE 802.3 CRC的Xilinx应用笔记,您可以在此处找到.
CRC在以太网接收组件中实例化,如果查看ETH_RECEIVE_SM过程,您可以看到FCS如何加载到检查器中.
希望您可以通过与我的代码进行比较来发现您的错误.
编辑:
我从fpga4fun获取示例以太网帧并将其传递给CRC检查器,请参阅下面的模拟屏幕截图(右键单击,复制URL并在新浏览器选项卡中查看以获得完整分辨率):

您可以在那里看到剩余的C704DD7B,尝试使用您自己的CRC检查器,看看你得到了什么.
| 归档时间: |
|
| 查看次数: |
10330 次 |
| 最近记录: |