千兆UDP学习调试记录(四)
20181009 周二
继续分析源代码,CRC已经说过了,现在来看IP_Receive模块。通过对发送模块的全面、细致解析,再对现在的接收模块进行分析,应该会轻松很多了吧。哈哈。
补充:程序是直接用一个总的流程状态实现的,相比于一般的三段式状态机,各有什么优点呢?
可以尝试把程序写成三段式状态机来实现。
△Iprecieve模块,GMII UDP数据包发送模块。
上一节已经全部梳理了整个以太网传输协议及过程,因此此节不再赘述,下面开始梳理IP(以太网)接收模块的程序源码。
接收过程就是挨着IP帧的格式,顺序接收便OK。8bit位宽的数据进来,按要求组合成32bit位宽数据,并取出首部信息。
到此,就分析完了整个UDP测试模块,下一步的要求,就是用自己的方式实现该UDP协议传输。有几点要求如下:
- 以位宽为8bit的RAM来存数据,不用32bit的RAM;
- 尽量考虑模块的通用性,实用性,拓展性,模块化,为后续工作做好准备;
- 做好测试记录,磨刀不误砍柴工,一定要扎实基础;
- 尽快实现,不要陷到细节里,要站在全局来实现。
流程和发送模块类似,在此不再赘述。
千兆UDP学习之测试记录