多通道FIFO缓冲器的控制方法技术

技术编号:11122973 阅读:44 留言:0更新日期:2015-03-11 12:06
本发明专利技术提供的一种多通道FIFO缓冲器的控制方法,所述FIFO缓冲器包括:数据存储模块、读写指针控制模块、状态标识模块、以及数据选择模块;所述数据存储模块用于:存储数据,其包括:内部存储单元、输入端寄存器阵列、输出端寄存器阵列、第一多路选择器;所述输入端寄存器阵列R2包括多个输入端寄存器,所述输出端寄存器阵列包括至少一个输出端寄存器。本发明专利技术可以一次传输多个传输通道的多个输入数据,且在多个传输通道的数据拼凑写满输入端寄存器阵列后,才一次性写入到内部存储器,避免了由于数据位宽导致的内部存储器资源浪费的问题以及内部存储器读写性能的问题。

【技术实现步骤摘要】
多通道FIFO缓冲器及其控制方法
本专利技术涉及集成电路
,尤其涉及一种多通道FIFO缓冲器及其控制方法。
技术介绍
FIFO (英文First In First Out的缩写)是在ASIC或FPGA设计中经常会用到的数据缓冲器,所述FIFO在数据转存过程中执行先进先出的策略。基于FIFO实现数据多通道/多数据类型的FIFO缓冲器通常具有两种结构。 其中,实现结构一为:采用多个FIFO缓冲器分别缓冲多个通道的传输数据,并在数据处理时再从这些FIFO中读出所需数据进行相应处理。 如图1所示,本实施方式中,以传输通道的数量为16个,传输通道的数据位宽为4bit为例做具体说明。如此,需要16个FIFO来缓冲每个通道的数据,每个FIFO内部要用到一个4bit宽的双端口 RAM,以及各自的读写指针控制单元和状态标识处理单元。另外,输出的数据还需要一个至少是16X4bit的多路选择(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缓冲器的存储状态,判断输入数据的存储位置;其中,所述输入端寄存器阵列包括多个输入端寄存器,所述输出端寄存器阵列包括至少一个输出端寄存器。 [0011 ] 作为本专利技术的进一步改进,所述输入端寄存器的数量等于数据传输通道数量N,所述N为正整数;所述输入端寄存器的位宽等于传输通道的数据位宽。 作为本专利技术的进一步改进,所述输出端寄存器的数量为M个,所述M为正整数,其取值范围为I彡M彡N。 作为本专利技术的进一步改进,所述输出端寄存器的数量为N个。 作为本专利技术的进一步改进,所述数据存储单元还包括:第二多路选择器。 为了实现上述专利技术目的之一,本专利技术的一种多通道FIFO缓冲器的控制方法包括: S1、提供如上所述的多通道FIFO缓冲器。 S2、将所述多通道FIFO缓冲器初始化,以使所述FIFO缓冲器的存储状态为空;53、第一个时钟周期到来时,且在写使能有效后,将通过多个传输通道的输入数据全部写入输出端寄存器阵列,以在读使能有效后,通过多个通道的输入数据可以在同一个周期内全部输出。 作为本专利技术的进一步改进,第二个时钟周期到来时,所述内部存储单元为空;所述方法还包括:54、在写使能有效后,根据输入端寄存器阵列、输出端寄存器阵列的状态,判断输入数据的存储位置;若输出端寄存器阵列未满,则继续将输入数据写入到输出端寄存器阵列;若输出端寄存器阵列为满,则将输入数据写入到输入端寄存器阵列;若输出端寄存器阵列为满,同时,读使能有效,所述输出端寄存器阵列中存储的数据正在读出,则将输入数据写入到输出端寄存器阵列。 作为本专利技术的进一步改进,在以后的每个时钟周期到来时,所述方法还包括:55、写使能有效后,判断内部存储单元是否为空, 若是,按照步骤S4判断输入数据的存储位置;若否,根据输入端寄存器阵列的存储状态判断输入数据的存储位置。 作为本专利技术的进一步改进,所述:“若否,根据输入端寄存器阵列的存储状态判断输入数据的存储位置。”具体包括:在同一个时钟周期内,若所述输入端寄存器阵列未满,且其存储空间的总位宽大于等于输入数据的总位宽,则将输入数据直接写入到所述输入端寄存器阵列;若所述输入端寄存器阵列未满,且其存储空间的总位宽小于输入数据的总位宽,则将部分输入数据写入到所述输入端寄存器阵列,待所述输入端寄存器阵列为满后,将所述输入端寄存器阵列中的全部输入数据写入到所述内部存储单元之后,再将剩余的输入数据写入到所述输入端寄存器阵列;若所述输入端寄存器阵列为满,则在当前时钟周期内,将所述输入端寄存器阵列中的全部输入数据写入到所述内部存储单元之后,再将输入数据写入到所述输入端寄存器阵列。 为了实现上述专利技术目的之一,本专利技术的一种多通道FIFO缓冲器的控制方法包括: Ml、提供如上所述的多通道FIFO缓冲器;M2、将所述多通道FIFO缓冲器初始化,以使所述FIFO缓冲器的存储状态为空;M3、第一个时钟周期到来时,且在写使能有效后,将通过多个传输通道的输入数据全部写入到第二多路选择器,以在读使能有效后,通过多个通道的输入数据可以在同一个周期内全部输出。 与现有技术相比,本专利技术的多通道FIFO缓冲本文档来自技高网
...
多通道FIFO缓冲器的控制方法

【技术保护点】
一种多通道FIFO缓冲器,其特征在于,包括:数据存储模块、读写指针控制模块、状态标识模块、以及数据选择模块;所述数据存储模块用于:存储数据,其包括:内部存储单元、输入端寄存器阵列、输出端寄存器阵列、第一多路选择器; 所述读写指针控制模块包括:写操作控制单元、读操作控制单元;写操作控制单元用于:控制将输入端寄存器阵列中的数据写入到内部存储单元;读操作控制单元用于:将内部存储单元中的数据读取到输出端寄存器阵列;所述状态标识模块包括:用于标识多通道FIFO缓冲器的存储状态;所述状态标识单元用于标识多通道FIFO缓冲器的存储状态;所述数据选择模块用于,根据所述状态标识单元标识的多通道FIFO缓冲器的存储状态,判断输入数据的存储位置;其中,所述输入端寄存器阵列包括多个输入端寄存器,所述输出端寄存器阵列包括至少一个输出端寄存器。

【技术特征摘要】
1.一种多通道FIFO缓冲器,其特征在于,包括:数据存储模块、读写指针控制模块、状态标识模块、以及数据选择模块; 所述数据存储模块用于:存储数据,其包括:内部存储单元、输入端寄存器阵列、输出端寄存器阵列、第一多路选择器; 所述读写指针控制模块包括:写操作控制单元、读操作控制单元; 写操作控制单元用于:控制将输入端寄存器阵列中的数据写入到内部存储单元; 读操作控制单元用于:将内部存储单元中的数据读取到输出端寄存器阵列; 所述状态标识模块包括:用于标识多通道FIFO缓冲器的存储状态; 所述状态标识单元用于标识多通道FIFO缓冲器的存储状态; 所述数据选择模块用于,根据所述状态标识单元标识的多通道FIFO缓冲器的存储状态,判断输入数据的存储位置; 其中,所述输入端寄存器阵列包括多个输入端寄存器,所述输出端寄存器阵列包括至少一个输出端寄存器。2.根据权利要求1所述的多通道FIFO缓冲器,其特征在于, 所述输入端寄存器的数量等于数据传输通道数量N,所述N为正整数;所述输入端寄存器的位宽等于传输通道的数据位宽。3.根据权利要求2所述的多通道FIFO缓冲器,其特征在于,所述输出端寄存器的数量为M个,所述M为正整数,其取值范围为I彡MS N。4.根据权利要求3所述的多通道FIFO缓冲器,其特征在于,所述输出端寄存器的数量为N个。5.根据权利要求1、2、3、4任一项所述的多通道FIFO缓冲器,其特征在于,所述数据存储单元还包括:第二多路选择器。6.一种多通道FIFO缓冲器的控制方法,其特征在于,所述方法包括: 51、提供一权利要求1至4任一项所述的多通道FIFO缓冲器。 52、将所述多通道FIFO缓冲器初始化,以使所述FIFO缓冲器的存储状态为空; 53、第一个时钟周期到来时,且在写使能有效后,将通过多个传输通道的输入数据全部写入输出端寄存器阵列,以在读使能有效后,通过多个通道的输入数据可以在同一个周期内全部输出。7.根据权利要求6所述的多通道FIFO缓冲器的控制方法,其特征在于,第二个时钟周期到来时,所述...

【专利技术属性】
技术研发人员:贾复山
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1