专栏名称: EETOP
EETOP电子网(中国电子顶级开发网)是国内最顶级的电子行业工程师社区,涉及:嵌入式、智能硬件、半导体集成电路设计及制造等。 为您分享论坛精华内容、行业最新资讯、产品及技术 。 网址:www.eetop.cn bbs.eetop.cn
目录
相关文章推荐
ZOL中关村在线  ·  11月新机扎堆发布,最受关注的几款都在这里! ·  昨天  
ZOL中关村在线  ·  硬核电竞易如“反”掌,ROG游戏手机9 ... ·  昨天  
ZOL中关村在线  ·  新电脑配置明明够高了!为什么还是会卡顿? ·  5 天前  
哎咆科技  ·  年轻人找爹 ·  4 天前  
调研纪要  ·  AI服务器电源的投资机会 ·  6 天前  
调研纪要  ·  AI服务器电源的投资机会 ·  6 天前  
51好读  ›  专栏  ›  EETOP

用FPGA实现简单的UDP\/IP通信(采用纯硬件语言,非软核)

EETOP  · 公众号  · 硬件  · 2017-09-26 12:30

正文

来源:EETOP论坛  作者:dogbear2245

转眼间,2016年就过完了。年底,公司也从忙碌和喧嚣中安静了下来,近几周都无所事事。每天随意的逛着各电子论坛,微博,刷着网页。某天发现有一个帖子写的用FPGA软核实现的UDP协议,突然想着,能不能用纯硬件语言做个UDP协议呢?      

说点题外话,自从来到现在的小公司有个3年多了,公司小到不能再小(比大学时我呆的那个实验室的人数都少)。原来在大公司工作,只需要在自己研发的那个微小的方向上做好本职工作就可以,工作十分的纯粹。现在在这里,什么工作都做,研发,生产,技术支持,甚至偶尔还得跑跑市场,做合同等等。到上面我说有那个想法的时候,恐怕都好久没有写过代码调试过东西了。所以,闲着也是闲着,为了不让自己太生疏,决定自己来写点东西。纵然水平有限,那也是自己的,不是吗?
      说到做到,花了一周左右时间复习了下相关的网络协议(都还给大学老师了),再花了一周时间做系统设计,把代码敲完,然后就是仿真,调试。做的过程中,正好有位朋友需要用到这东西(很奇怪居然还有人需要这没有多大应用价值的玩意,这个后面再谈),就顺便把这块代码发给他去试用,来回修改调试了之后,他居然说用上了。。。。。。完了之后,想着这东西如果就这样躺在自己电脑硬盘里,是不是闷了点?共享出来让初学者交流学习,让高手批评指正,岂不更好?
说正事:
1)此模块就做了UDP,没玩TCP,那玩意控制流程很复杂。我看到有人说用纯硬件语言实现了TCP/IP协议栈,对此我表示怀疑。我怀疑的不是它的不可实现性,而是,在没有什么应用价值的前提下,是否有人愿意花费如此多的功夫去做这件事情。当然了,毕竟我才疏学浅,见识也少,所以我也仅仅只是怀疑。
2)受限于手头的硬件板,只在10M/100M的网络上做了验证和调试,如果用在千兆网上,给模块适配一个支持千兆的MAC就可以了。
3)在本例中若网络负荷过大,报文会直接丢弃,无论何种类型,UDP本身也不保证交付。
4)我在上文很多地方都说过应用价值不大这个概念,为何?其实这个是从产品实现,项目交付的角度上来说的。在现有的技术条件下,如果需要使用UDP/TCP,市面上可以找到一千种自带以太网的ARM/CPU,从高端到低端,从系统设备到消费电子。。。。。。退一步说,如果真的有设计需要在FPGA跑UDP/TCP,FPGA现有自带的软核也可以很方便地完成这个工作,基于C语言的各种网络协议栈代码满世界都是。若不是要做ASIC,有必要花时间去自己写对于硬件描述语言来说繁很繁琐的UDP甚至是TCP么?
5)有人要骂我了,你说这东西没价值,那你写这玩意装逼?这么说也可以,其实一开始我并不了解这东西有没有应用价值,我的初衷仅仅是找点东西写写,在写的过程中慢慢发现这东西其实没啥意义。巧了,想起前段时间和朋友聊天时说到这个,他说他们有一个已成型产品中需要增加功能,在不更改硬件的前提下需要UDP做数据传输,原有的处理器做网络协议回复消息速度不够,而且资源也有点捉襟见肘。一拍即合,直接就用上了。可是这是去救火,有人会在产品设计阶段就这样设计么? 另外,我说的没有价值,是指没有什么应用价值,用来交流学习,也是可以的。
6)自己能力有限,设计中肯定会有或多或少的问题,模块的测试也不是那么的充分,搞不好在某些情况下可能会有bug。欢迎各位批评指正!
        附上设计的PDF,先看看大家有没有兴趣,有兴趣我把代码打包上来,没兴趣的话,说明这东西真没啥用。把帖子沉了吧~~~
        马上要春节了,提前祝各位新春快乐!


 
 

 

 
 udp_ip_stack.pdf  
(下载附件请点击阅读原文)


推荐阅读:千兆以太网 TCP, UDP协议, FPGA实现



点击下方阅读原文,前往论坛下载附件