微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教以太网缓存的问题

请教以太网缓存的问题

时间:10-02 整理:3721RD 点击:
做以太网到e1的转换,需先将以太网帧进行缓存,用FIFO实现,我的问题就是:
以太网是变长的,可能在FIFO读的过程中已经写入很多以太网数据了,比如读第1帧的时候又写入了第2,第3,第4帧的数据了,那请问怎么识别读出的数据是哪一帧的呢?我现在的想法就是记录每一次写完以太网数据后的“写地址”,读的时候顺序取出这些“写地址”,如果“读地址”等于“写地址”则认为读完一帧了。不知大家是怎么处理这个问题的?

如果你的datapath宽度是32,那么,可以把fifo的宽度设计成33,34,或者35
多出的bit位,可以用来标志frame头部,以及错误等状态信息

为什么要判断是第几帧呢?
如果你仅仅是做转发处理而不作分析,那根本不用管。

这个办法比我之前想的用另外一个fifo来存地址要简便,不过如果fifo深度很大的话,岂不是有很多的fifo空间没利用?

    主要是我不知道存进fifo的帧的长度,因此不知道在读出的数据什么时候算是下一帧的数据了

多个地址,TAG标记下第一帧

可不可以说的详细点,谢谢

无所谓了,浪费不了多少FIFO空间.一般情况,512x35的FIFO足够了...
我见过的几个MAC,都是这样设计的

请问MAC的深度如何确定,假如1000Mbps工作,而总线带宽是200MBps

一般都是用phase tag

最近也在研究这个,思路也像小编一开始想的这样。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top