[发明专利]多通道FIFO缓冲器的控制方法有效
申请号: | 201410611360.5 | 申请日: | 2014-11-04 |
公开(公告)号: | CN104407809B | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 贾复山 | 申请(专利权)人: | 盛科网络(苏州)有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F5/06 |
代理公司: | 苏州威世朋知识产权代理事务所(普通合伙)32235 | 代理人: | 杨林洁 |
地址: | 215021 江苏省苏州市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通道 fifo 缓冲器 及其 控制 方法 | ||
技术领域
本发明涉及集成电路技术领域,尤其涉及一种多通道FIFO缓冲器的控制方法。
背景技术
FIFO(英文First In First Out的缩写)是在ASIC或FPGA设计中经常会用到的数据缓冲器,所述FIFO在数据转存过程中执行先进先出的策略。基于FIFO实现数据多通道/多数据类型的FIFO缓冲器通常具有两种结构。
其中,实现结构一为:采用多个FIFO缓冲器分别缓冲多个通道的传输数据,并在数据处理时再从这些FIFO中读出所需数据进行相应处理。
如图1所示,本实施方式中,以传输通道的数量为16个,传输通道的数据位宽为4bit为例做具体说明。如此,需要16个FIFO来缓冲每个通道的数据,每个FIFO内部要用到一个4bit宽的双端口RAM,以及各自的读写指针控制单元和状态标识处理单元。另外,输出的数据还需要一个至少是16×4bit的多路选择(MUX)逻辑。
该种方式采用复制多个FIFO可以简单地实现多路数据的存储,但随着数据通道(路数)的增加, 由于每个FIFO的RAM不能共享使用,所以双端口RAM仅能采用数据位宽为大于等于4bit的物理RAM实现,而物理RAM由于限制,只能有固定的某些数据位宽可以用(如FPGA中的RAM最小传输位宽一般要求8bit),所以必要会造成不必要的RAM的浪费,另外,每个FIFO都有各自的读写控制及状态产生单元,必然产生较多的重复逻辑,且随着通道的增加,FIFO所占用的资源会越来越多,造成资源的大量浪费,而且也会对后续设计带来较大的问题,如:对ASIC芯片的面积、功耗等都有特殊的要求,导致ASIC或FPGA的实现变得非常困难,严重影响整个系统的性能。
实现结构二为:采用一个或多个双端口RAM,并将其分成多个区块,每个区块对应一个通道的数据,通过一组读写逻辑来控制所有通道数据的缓冲存储操作,读写指针的高位用来指示通道号,低位用来指示数据在指定区块内的具体地址。
如图2所示,本实施方式中,同样以传输通道的数量为16个,传输通道的数据位宽为4bit为例做具体说明。
这样的设计对于数据处理的带宽和RAM的个数有所限制,不能自由处理,且在大多数据应该场景下,仍会有类似实现方法一中的资源浪费的情况发生,在此不做详细赘述。另外,实现方法二的技术方案相较与实现方法一解决了多个FIFO中必须使用多个双端口RAM,多份读写控制和状态标志产生逻辑的资源浪费问题,但该方法因为只有一份读写逻辑,也就只能同时处理一个通道的数据,大大地降低了数据处理的带宽;进一步的,该方法虽然可以用少数双端口RAM减少了RAM的浪费现象,但在某些情况下RAM的浪费仍不能完全禁止,如上示例中,数据位宽为4bit,而对于FPGA设计中RAM的最小宽度实际上是有限制的,一般要求最小8bit,在这样的设计中,就有4bit的RAM是浪费的;进一步的,该FIFO种需要增加两个存储器R2、R3以用于分别存储读写指针,也导致了资源的浪费;进一步的,这样的设计在应用上不够灵活,每个通道所占用的存储空间是相对固定的,如某个或某几个通道的数据较少时,其所对应的存储空间不能有效的被利用。
发明内容
为解决上述技术问题,本发明的目的在于提供一种FIFO缓冲器及其控制方法。
为实现上述发明目的之一,本发明一实施方式提供的多通道FIFO缓冲器包括:数据存储模块、读写指针控制模块、状态标识模块、以及数据选择模块;
所述数据存储模块用于:存储数据,其包括:内部存储单元、输入端寄存器阵列、输出端寄存器阵列、第一多路选择器;
所述读写指针控制模块包括:写操作控制单元、读操作控制单元;
写操作控制单元用于:控制将输入端寄存器阵列中的数据写入到内部存储单元;
读操作控制单元用于:将内部存储单元中的数据读取到输出端寄存器阵列;
所述状态标识模块包括:用于标识多通道FIFO缓冲器的存储状态;
所述状态标识单元用于标识多通道FIFO缓冲器的存储状态;
所述数据选择模块用于,根据所述状态标识单元标识的多通道FIFO缓冲器的存储状态,判断输入数据的存储位置;
其中,所述输入端寄存器阵列包括多个输入端寄存器,所述输出端寄存器阵列包括至少一个输出端寄存器。
作为本发明的进一步改进,所述输入端寄存器的数量等于数据传输通道数量N,所述N为正整数;所述输入端寄存器的位宽等于传输通道的数据位宽。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于盛科网络(苏州)有限公司,未经盛科网络(苏州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410611360.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种并联臂3D打印机
- 下一篇:一种用于塑料外壳指示灯的熔接机