TCP/IP协议栈设计—TCP设计实现小结
设计目的:在FPGA上采用纯Verilog描述的方式,实现可定制裁剪的TCPIP硬件协议栈,并加入超时重传、滑动窗口等优化算法,最终希望实现传输速率能超过200MHz的千兆以太网。
去年3月份,就开始了设计之旅,期间参考了众多论文,网上也查了许多资料。经过一步步设计,现在终于实现了初步的TCPIP传输。现将实现的工程进行简单介绍和总结。
开发环境:ISE14.7 ,win7 X64 台式机,采用具备phy接口芯片的黑金开发板AX516,高速网线一根。
测试工具:网络调试助手NetAssist.exe 、TCP&UDP测试工具 、WireShark软件
设计过程:设计中,先是参考开发板例程,自己全新实现了一遍UDP硬件协议栈。具体细节见我前期的相关文章,其代码已上传资源。
问题小结:在充分了解了以太网,特别是MAC层接口工作原理后,开始设计TCPIP协议栈。但发现困难重重,一直前进不了。不断在网上查阅资料,参考了UDPIP协议栈设计,然后实现了ARP、ICMP。并给出完整的UDPIP协议栈设计代码。但在调试TCP传输时,遇到一些问题,始终未能解决。
直到最近,在找工作期间,为了应付IC设计中的笔试题,特别学习了IC设计相关的书,对其中的时序分析,有了很多认识,特别是保持时间、建立时间、关键路径等等。最近再回过