一种分时复用的多通道FIFO结构及方法技术

技术编号:34265411 阅读:15 留言:0更新日期:2022-07-24 14:48
本发明专利技术公开了一种分时复用的多通道FIFO结构及方法,该结构包括数据拼接模块、存储模块、写入指针产生模块、读出指针产生模块、区块分配模块和数据解拼接模块;数据拼接模块,用于接收多通道的输入数据,将同一时钟边沿到来的数据拼接为一个长数据;存储模块,用于进行长数据的存储;数据解拼接模块,用于从存储模块中读出的长数据,依次拆分长数据得到拆分结果;把拆分结果分配到每个输出通道上并行输出;写入指针产生模块,用于控制当数据输入时,生成递增的存储空间地址;读出指针产生模块,用于当数据写入达到读出地址偏移量时,生成递增的读出地址。本发明专利技术实现同时接收多通道的输入数据,写入存储空间缓冲,并通过多通道同时输出。输出。输出。

A multi-channel FIFO structure and method of time-sharing multiplexing

【技术实现步骤摘要】
一种分时复用的多通道FIFO结构及方法


[0001]本专利技术涉及FIFO
,具体涉及一种分时复用的多通道FIFO结构及方法。

技术介绍

[0002]FIFO(First In First Out)是在ASIC或FPGA设计中经常会用到的数据缓冲器,其在数据转存过程中遵循先进先出的规则。就多通道的的FIFO而言,目前常见的方法是采用多个FIFO缓冲器缓冲多个通道的传输数据,当数据处理时再从这些FIFO中读出所需数据。这种方式能够实现多路数据的存储,但各个FIFO的存储空间不能共享,造成不必要的存储空间浪费,最终影响芯片的面积、功耗等。还有一种常见的FIFO结构(以下简称结构二)是,采用一个或多个双端口RAM,并将其分成多个区块,每个区块对应一个通道的数据,通过一组读写逻辑来控制所有通道数据的缓冲存储。这种设计的缺陷是,数据处理的带宽和存储空间的利用率受到限制。

技术实现思路

[0003]本专利技术所要解决的技术问题是现有的多通道FIFO结构存在存储空间(RAM)资源浪费,以及数据处理带宽受限等问题。本专利技术目的在于提供一种分时复用的多通道FIFO结构及方法,本专利技术实现了多通道数据同时写入,多通道数据同时输出的同时,还节约了存储空间。
[0004]本专利技术通过下述技术方案实现:
[0005]第一方面,本专利技术提供了一种分时复用的多通道FIFO结构,该结构包括数据拼接模块、存储模块、写入指针产生模块、读出指针产生模块、区块分配模块和数据解拼接模块;
[0006]所述数据拼接模块,用于接收多通道的输入数据,将同一时钟边沿到来的数据拼接为一个长数据;
[0007]所述存储模块,用于根据配置划分存储空间为若干区块,在不同区块中存储所述长数据的行数据;
[0008]所述写入指针产生模块,用于根据拼接后形成的长数据和区块有效情况,生成能够写入该区块的初始地址,并从初始地址开始生成递增的存储空间地址,得到写入指针;依次将输入数据按照相应的地址存入存储空间;
[0009]所述读出指针产生模块,用于根据当数据写入量达到读出地址偏移量时,生成递增的读出地址,得到读出指针;
[0010]所述区块分配模块,用于根据输入数据的行同步信号,为每行数据分配一个区块用以存储行数据;
[0011]所述数据解拼接模块,用于从所述存储模块中读出的长数据,按照数据拼接时从低位到高位的排列规则,依次拆分所述长数据得到拆分结果;并把所述拆分结果分配到每个输出通道上并行输出。
[0012]工作原理是:本专利技术为了实现多通道数据同时传输,在现有结构二的基础上设计
了一种分时复用的多通道FIFO结构,本专利技术在通道输入侧,将处于同一时钟边沿的所有通道的数据进行拼接,作为一个长数据写入存储器进行存储,较结构二的单通道选择来说,拓宽了数据入口。在存储器的区块使用上,根据输入行数据请求,依次将行数据写入不同区块。在读数据控制中,加入读出地址偏移量。只有写入数据地址达到该偏移量时,读出控制才开始有效,各通道开始读出数据。由于该偏移量的加入,减少了写慢读快造成的读取数据等待问题,数据得以连续输出。在数据输出侧,采用与输入侧相反的处理,依次将每一个拼接的长数据拆分分配到对应的输出通道上。由于偏移量一定小于一整行的数据个数并能根据实际情况设置不同的值,相较于传统的整行存储读写来说,节省了时间并且更为灵活。
[0013]本专利技术为处理大数据量跨时钟域转换提供了一种可能,如在使用多帧合成的方式实现高动态范围成像等场景下,可同时接受多帧到来的大量图像数据,缓冲后同时多通道输出。
[0014]进一步地,该结构还包括状态标志产生模块;
[0015]所述状态标志产生模块,用于比较所述写入指针与所述读出指针,得到比较结果;根据所述比较结果,产生存储器空/满状态信号。
[0016]进一步地,所述的比较所述写入指针与所述读出指针,得到比较结果;根据所述比较结果,产生存储器空/满状态信号;具体包括:
[0017]当所述读出指针超过所述写入指针时,则说明FIFO数据已被读空,输出存储器空状态信号;
[0018]当所述写入指针达到本区块最大值,且再次从初始值计数达到所述读出指针时,则说明FIFO数据已被写满,输出存储器满状态信号。
[0019]进一步地,所述数据拼接模块包括预处理单元和拼接处理单元,所述预处理单元的一端对应接入各个输入通道中的输入数据,所述预处理单元的另一端连接所述拼接处理单元;所述拼接处理单元,用于对所述预处理单元预处理后的数据进行拼接处理,输出拼接后的长数据;
[0020]所述预处理单元包括若干个选择器和若干个第一D触发器(即锁存器),一个选择器对应连接一个第一D触发器;所述选择器的输入端接入输入通道的输入数据,所述选择器的输出端连接第一D触发器(即锁存器)的输入端;所述第一D触发器(即锁存器)的输出端连接所述拼接处理单元;
[0021]还包括第二D触发器及或门,一个第二D触发器对应一个第一D触发器,所述第二D触发器的输入端接入对应输入通道输入数据的有效性标志信号,且对应输入通道输入数据的有效性标志信号还连接对应的第一D触发器;所述第二D触发器的输出端连接所述或门的输入端,所述或门的输出端输出长数据的有效性信号ff_ivalid。
[0022]进一步地,所述数据拼接模块拼接后长数据的bit位宽IN_WIDTH=IDATA_WIDTH
×
CH_NUM,其中,IDATA_WIDTH为输入数据bit位宽,CH_NUM为同时输入通道数目。
[0023]进一步地,所述存储模块为DPRAM存储模块,所述DPRAM存储模块采用双口随机访问存储器作为数据存储器。
[0024]进一步地,所述写入指针产生模块包括第三选择器和第一计数器,所述第三选择器的输入端接入各个区块的初始地址,所述第三选择器的输出端连接所述第一计数器的输入端;所述第三选择器的输入端还接入写能信号block_w_en来标识当前数据写到的区块;
所述第一计数器的输入端还接入写时钟信号w_clock和长数据的有效性信号ff_ivalid,所述第一计数器的输出端输出写入指针信号p_write;
[0025]所述第三选择器,用于控制写入指针选择区块的有效性(即控制写入指针在哪个区块有效);
[0026]所述第一计数器,用于记录每个区块写入地址的累加计算。
[0027]进一步地,所述读出指针产生模块包括第四选择器和第二计数器,所述第四选择器的输入端接入各个区块的初始地址,所述第四选择器的输出端连接所述第二计数器的输入端;所述第四选择器的输入端还接入读能信号block_r_en来标识当前数据读到的区块;所述第二计数器的输入端还接入读时钟信号r_clock,所述第二计数器的输出端输出读出指针信号p_read;
[0028]所述第四选择器,用于控制读出指针选择区块的有效性(即控制读出指针在哪个区块有效);
[0029]所述第二计数器,用于记录每本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分时复用的多通道FIFO结构,其特征在于,该结构包括数据拼接模块、存储模块、写入指针产生模块、读出指针产生模块、区块分配模块和数据解拼接模块;所述数据拼接模块,用于接收多通道的输入数据,将同一时钟边沿到来的数据拼接为一个长数据;所述存储模块,用于根据配置划分存储空间为若干区块,在不同区块中存储所述长数据的行数据;所述写入指针产生模块,用于根据拼接后形成的长数据和区块有效情况,生成能够写入该区块的初始地址,并从初始地址开始生成递增的存储空间地址,得到写入指针;所述读出指针产生模块,用于根据当数据写入量达到读出地址偏移量时,生成递增的读出地址,得到读出指针;所述区块分配模块,用于根据输入数据的行同步信号,为每行数据分配一个区块用以存储行数据;所述数据解拼接模块,用于从所述存储模块中读出的长数据,依次拆分所述长数据得到拆分结果;并把所述拆分结果分配到每个输出通道上并行输出。2.根据权利要求1所述的一种分时复用的多通道FIFO结构,其特征在于,该结构还包括状态标志产生模块;所述状态标志产生模块,用于比较所述写入指针与所述读出指针,得到比较结果;根据所述比较结果,产生存储器空/满状态信号。3.根据权利要求2所述的一种分时复用的多通道FIFO结构,其特征在于,所述的比较所述写入指针与所述读出指针,得到比较结果;根据所述比较结果,产生存储器空/满状态信号;具体包括:当所述读出指针超过所述写入指针时,则说明FIFO数据已被读空,输出存储器空状态信号;当所述写入指针达到本区块最大值,且再次从初始值计数达到所述读出指针时,则说明FIFO数据已被写满,输出存储器满状态信号。4.根据权利要求1所述的一种分时复用的多通道FIFO结构,其特征在于,所述数据拼接模块包括预处理单元和拼接处理单元,所述预处理单元的一端对应接入各个输入通道中的输入数据,所述预处理单元的另一端连接所述拼接处理单元;所述拼接处理单元,用于对所述预处理单元预处理后的数据进行拼接处理,输出拼接后的长数据;所述预处理单元包括若干个选择器和若干个第一D触发器,一个选择器对应连接一个第一D触发器;所述选择器的输入端接入输入通道的输入数据,所述选择器的输出端连接第一D触发器的输入端;所述第一D触发器的输出端连接所述拼接处理单元;还包括第二D触发器及或门,一个第二D触发器对应一个第一D触发器,所述第二D触发器的输入端接入对应输入通道输入数据的有效性标志信号,且对应输入通道输入数据的有效性标志信号还连接对应的第一D触发器;所述第二D触发器的输出端连接所述或门的输入端,所述或门的输出端输出长数据的有效性信号。5.根据权利要求1或4所述的一种分时复用的多通道FIFO结构,其特征在于,所述数据拼接模块拼接后长数据的bit位宽IN_WID...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:四川创安微电子有限公司
类型:发明
国别省市:

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

1