CN115309676A - 一种异步fifo读写控制方法、系统及电子设备 - Google Patents

一种异步fifo读写控制方法、系统及电子设备 Download PDF

Info

Publication number
CN115309676A
CN115309676A CN202211244073.6A CN202211244073A CN115309676A CN 115309676 A CN115309676 A CN 115309676A CN 202211244073 A CN202211244073 A CN 202211244073A CN 115309676 A CN115309676 A CN 115309676A
Authority
CN
China
Prior art keywords
fifo
fifo queue
data
queue
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211244073.6A
Other languages
English (en)
Other versions
CN115309676B (zh
Inventor
刘伟
卢圣才
王洪良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202211244073.6A priority Critical patent/CN115309676B/zh
Publication of CN115309676A publication Critical patent/CN115309676A/zh
Application granted granted Critical
Publication of CN115309676B publication Critical patent/CN115309676B/zh
Priority to PCT/CN2023/085935 priority patent/WO2024077890A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种异步FIFO读写控制方法、系统及电子设备,所属的技术领域为数据读写技术。异步FIFO读写控制方法包括:解析前端接口接收的数据,得到数据包长度和有效视频数据;根据数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,将有效视频数据乒乓写入第一FIFO队列和第二FIFO队列;根据后端接口的发送时序确定读FIFO的最小时间间隔;利用将空阈值和最小时间间隔从第一FIFO队列和第二FIFO队列中乒乓读取数据,以便通过后端接口输出读取的数据。本申请能够在接口桥接过程中有效控制双FIFO乒乓缓存读写,实现可变包长数据的异步缓存处理。

Description

一种异步FIFO读写控制方法、系统及电子设备
技术领域
本申请涉及数据读写技术领域,特别涉及一种异步FIFO读写控制方法、系统及电子设备。
背景技术
在VR头盔、移动机顶盒等电子设备的设计过程中,通常存在两个接口进行桥接的需求,例如工程师需要将单个接口的输入视频拆分为两路视频流,并以一半的带宽通过两个接口输出。目前常用的解决方案主要有两种,一种是采用专用的桥接芯片,一种是采用内置接口的处理器。专用的桥接芯片存在功能相对单一、扩展性较差、成本相对较高等问题,本领域通常使用处理器实现接口桥接的方案,该方案需要使用基于异步时钟的双FIFO乒乓缓存读写,这种方式极易出现读写冲突,该方式难以实现可变包长数据的异步缓存处理。
因此,如何在接口桥接过程中有效控制双FIFO乒乓缓存读写,实现可变包长数据的异步缓存处理是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种异步FIFO读写控制方法、系统及电子设备,能够在接口桥接过程中有效控制双FIFO乒乓缓存读写,实现可变包长数据的异步缓存处理。
为解决上述技术问题,本申请提供一种异步FIFO读写控制方法,应用于具有前端接口和后端接口的处理器,包括:
解析所述前端接口接收的数据,得到数据包长度和有效视频数据;
根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;
根据所述后端接口的发送时序确定读FIFO的最小时间间隔;
利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,以便通过所述后端接口输出读取的数据。
可选的,在将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列之前,还包括:
对所述有效视频数据执行lane间顺序重组操作。
可选的,根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,包括:
确定所述第一FIFO队列或所述第二FIFO队列的队列深度;
根据所述数据包长度和所述队列深度计算所述第一FIFO队列和所述第二FIFO队列的将空阈值;其中,所述数据包长度与所述将空阈值正相关,所述队列深度与所述将空阈值正相关。
可选的,在将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列之前,还包括:
判断所述将空阈值是否更新至所述第一FIFO队列和所述第二FIFO队列;
若是,则进入将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列的步骤;
若否,则在延时预设时间后,进入判断所述将空阈值是否更新至所述第一FIFO队列和所述第二FIFO队列的步骤。
可选的,利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,包括:
利用所述将空阈值设置将空标志;其中,所述将空标志用于描述第一FIFO队列和所述第二FIFO队列中的数据是否小于预设数量;
利用所述最小时间间隔设置延迟done信号;其中,所述延迟done信号用于描述是否延迟等待完毕;
根据所述将空标志和所述延迟done信号对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作。
可选的,利用所述将空阈值设置将空标志,包括:
判断所述第一FIFO队列和所述第二FIFO队列中的数据是否小于预设数量;
若是,则将所述将空标志设置为1;
若否,则将所述将空标志设置为0。
可选的,利用所述最小时间间隔设置延迟done信号,包括:
在执行当前的FIFO读操作时,将所述延迟done信号设置为0;
在完成当前的FIFO读操作后,启动计数器;
若所述计数器的值等于所述最小时间间隔,则将所述延迟done信号设置为1。
可选的,在将所述延迟done信号设置为1之后,还包括:
将所述计数器的值清零。
可选的,根据所述将空标志和所述延迟done信号对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作,包括:
判断是否所述将空标志为0且所述延迟done信号为1;其中,所述将空标志为0表示所述第一FIFO队列和所述第二FIFO队列中的数据小于或等于所述预设数量,所述延迟done信号为1表示前后两次读操作间隔延迟完毕;
若是,则对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作。
本申请还提供了一种异步FIFO读写控制系统,应用于具有前端接口和后端接口的处理器,包括:
解析模块,用于解析所述前端接口接收的数据,得到数据包长度和有效视频数据;
阈值设置模块,用于根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值;
写控制模块,用于将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;
延迟控制模块,用于根据所述后端接口的发送时序确定读FIFO的最小时间间隔;
读控制模块,用于利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,以便通过所述后端接口输出读取的数据。
可选的,所述处理器为FPGA芯片,所述前端接口为所述FPGA芯片构建的硬核MIPID-PHY接口或软核MIPI D-PHY接口;
所述后端接口为所述FPGA芯片构建的硬核MIPI D-PHY接口或软核MIPI D-PHY接口。
可选的,所述处理器包括至少两个所述后端接口。
可选的,所述第一FIFO队列和所述第二FIFO队列的队列参数相同;其中,所述队列参数包括队列深度和位宽。
本申请还提供了一种电子设备,包括具有前端接口和后端接口的处理器;
其中,所述处理器用于解析所述前端接口接收的数据,得到数据包长度和有效视频数据;还用于根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;还用于根据所述后端接口的发送时序确定读FIFO的最小时间间隔;还用于利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,以便通过所述后端接口输出读取的数据。
可选的,所述电子设备包括VR头盔、服务器或移动机顶盒。
本申请提供了一种异步FIFO读写控制方法,应用于具有前端接口和后端接口的处理器,包括:解析所述前端接口接收的数据,得到数据包长度和有效视频数据;根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;根据所述后端接口的发送时序确定读FIFO的最小时间间隔;利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,以便通过所述后端接口输出读取的数据。
本申请应用于内置前端接口和后端的处理器,处理器根据前端接口传输的数据确定数据包长度和有效视频数据,根据数据包长度设置FIFO队列的将空阈值,根据后端接口的发送时序确定相邻两次读FIFO的最小时间间隔。本申请将有效视频数据乒乓写入第一FIFO队列和第二FIFO队列,还基于空阈值和最小时间间隔对第一FIFO队列和第二FIFO队列进行乒乓读取,进而使后端接口输出读取的数据。本申请根据前端接口对应的数据包长度动态设置FIFO的将空阈值,根据后端接口发送时序设置两次读FIFO间的固定延迟,上述方式能够在接口桥接过程中有效控制双FIFO乒乓缓存读写,实现可变包长数据的异步缓存处理。本申请同时还提供了一种异步FIFO读写控制系统及一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种异步FIFO读写控制方法的流程图;
图2为本申请实施例所提供的一种可变包长异步FIFO读控制处理原理示意图;
图3为本申请实施例所提供的一种可变包长异步FIFO 读写控制时序图;
图4为本申请实施例所提供的一种异步FIFO读写控制系统的结构示意图;
图5为本申请实施例所提供的一种电子设备的结构示意图;
图6为本申请实施例所提供的一种存储介质的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种异步FIFO读写控制方法的流程图。
具体步骤可以包括:
S101:解析所述前端接口接收的数据,得到数据包长度和有效视频数据;
其中,本实施例可以应用于具有前端接口和后端接口的处理器,当处理器包括一个前端接口和一个后端接口时,可以实现一输入一输出的桥接;当处理器包括一个前端接口和多个后端接口时,可以实现一输入多输出的桥接;当处理器包括多个前端接口和一个后端接口时,可以实现多输入一输出的桥接。处理器通过解析上述前端接口接收的数据可以得到数据包长度和有效视频数据,上述有效数据指前端接口接收的数据中除了包头和包尾的数据,数据包长度指有效视频数据的字节长度。
作为一种可行的实施方式,上述处理器可以为FPGA(Field-Programmable GateArray,现场可编程门阵列)芯片,上述前端接口可以为前端MIPI D-PHY(Mobile IndustryProcessor Interface D-PHY,移动产业处理器接口协议中的一项)接口,后端接口可以为后端MIPI D-PHY接口,因此可以通过以下方式实现S101:解析所述前端MIPI D-PHY接口接收的COMMAND(命令)数据,得到数据包长度和有效视频数据。上述过程利用可编程逻辑器件FPGA实现MIPI DSI的桥接,首先需要将MIPI接收端视频进行缓存,然后再从缓存中读出,最后通过MIPI 发送端按照一定的MIPI协议发送出去。目前MIPI DSI的链路层有两种模式:命令模式(COMMAND MODE)和视频模式(VIDEO MODE)。视频模式提供了连续的时钟,输出端可以使用输入端的CLK 时钟,缓存可以设计为同步FIFO(First Input First Output,先进先出)队列,而命令模式提供的是非连续的时钟,输出端时钟只能使用异步的时钟,缓存必须设计为异步FIFO ,同时命令模式的视频分辨率及发送模式不固定(分行模式、分段模式、全帧模式),因此异步FIFO缓存需要对各种包长进行动态的自适应调整。本实施例中的COMMAND数据指命令模式下的视频数据。FPGA可以通过前端MIPI D-PHY接口接收COMMAND数据,通过解析上述COMMAND数据可以得到数据包长度和有效视频数据,上述有效数据指COMMAND数据中除了包头和包尾的数据,数据包长度指有效视频数据的字节长度。
S102:根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;
其中,在本步骤之前还可以设置第一FIFO队列和第二FIFO队列的操作,第一FIFO队列和第二FIFO队列具有相同的深度及位宽。在得到数据包长度之后,本实施例可以确定根据数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,第一FIFO队列和第二FIFO队列具有相同的将空阈值。将空阈值即aempty_cnt,当FIFO队列内包含的数据量小于等于将空阈值时,将空信号有效(aempty为1),将空信号传输给下游模块B,通知下游模块停止读数据,防止FIFO队列中没有有效数据时仍产生读数据操作的情况。作为一种可行的实施方式,本实施例可以预先设置长度区间与将空阈值的对应关系,基于该对应关系确定数据包长度对应的将空阈值。
本实施例可以先对对所述有效视频数据执行lane(通道)间顺序重组操作,将lane间顺序重组后的有效视频数据乒乓写入第一FIFO队列和第二FIFO队列。
S103:根据所述后端接口的发送时序确定读FIFO的最小时间间隔;
其中,处理器还可以查询后端接口的发送时序,该发送时序指发送视频数据的时序。在得到发送时序后,基于发送时序计算两次读FIFO所需的最小时间间隔。
S104:利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,以便通过所述后端接口输出读取的数据。
其中,在得到将空阈值和最小时间间隔后,可以利用将空阈值和最小时间间隔进行数据乒乓读取操作。当第一FIFO队列中的数据小于将空阈值时,停止对第一FIFO队列的读取,当第二FIFO队列中的数据小于将空阈值时,停止对第二FIFO队列的读取。若当前时间距离上一次读操作完成时间的时间间隔小于最小时间间隔,则不执行下一次读操作;若当前时间距离上一次读操作完成时间的时间间隔大于或等于最小时间间隔,则可以执行下一次读操作。在乒乓读取第一FIFO队列和第二FIFO队列中的数据后,可以对数据进行封装,将封装后的数据传输至后端接口,以便后端接口输出读取的数据。
本实施例应用于内置前端接口和后端的处理器,处理器根据前端接口传输的数据确定数据包长度和有效视频数据,根据数据包长度设置FIFO队列的将空阈值,根据后端接口的发送时序确定相邻两次读FIFO的最小时间间隔。本实施例将有效视频数据乒乓写入第一FIFO队列和第二FIFO队列,还基于空阈值和最小时间间隔对第一FIFO队列和第二FIFO队列进行乒乓读取,进而使后端接口输出读取的数据。本实施例根据前端接口对应的数据包长度动态设置FIFO的将空阈值,根据后端接口发送时序设置两次读FIFO间的固定延迟,上述方式能够在接口桥接过程中有效控制双FIFO乒乓缓存读写,实现可变包长数据的异步缓存处理。
作为对于图1对应实施例的进一步介绍,可以通过以下方式确定将空阈值:确定所述第一FIFO队列或所述第二FIFO队列的队列深度,根据所述数据包长度和所述队列深度计算所述第一FIFO队列和所述第二FIFO队列的将空阈值;其中,所述数据包长度与所述将空阈值正相关,所述队列深度与所述将空阈值正相关。
作为一种可行的实施方式,本实施例可以根据数据包长度确定目标区间的下限值,根据队列深度确定目标区间的上限值,在目标区间内选取将空阈值,例如可以将数据包长度的N倍设置为下限值,N≥1;还可以将队列深度的M倍设置为上限值,0<M<1。
作为对于图1对应实施例的进一步介绍,可以先设置第一FIFO队列和第二FIFO队列的将空阈值,在设置将空阈值后在进行乒乓写操作,具体流程如下:
步骤A1:根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值;
步骤A2:将所述将空阈值更新至第一FIFO队列和第二FIFO队列
步骤A3:判断所述将空阈值是否更新至所述第一FIFO队列和所述第二FIFO队列;若是,则进入步骤A4;若否,则进入步骤A5;
步骤A4:将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;
步骤A5:在延时预设时间后,进入步骤A3。
作为对于图1对应实施例的进一步介绍,可以通过以下方式实现数据乒乓读取:
步骤B1:利用所述将空阈值设置将空标志;
其中,所述将空标志用于描述第一FIFO队列和所述第二FIFO队列中的数据是否小于预设数量。
具体的,利用所述将空阈值设置将空标志的过程包括:判断所述第一FIFO队列和所述第二FIFO队列中的数据是否小于预设数量;若是,则将所述将空标志设置为1;若否,则将所述将空标志设置为0。
步骤B2:利用所述最小时间间隔设置延迟done信号;
其中,所述延迟done(结束)信号用于描述是否延迟等待完毕。具体的,利用所述最小时间间隔设置延迟done信号的过程包括:在执行当前的FIFO读操作时,将所述延迟done信号设置为0;在完成当前的FIFO读操作后,启动计数器;若所述计数器的值等于所述最小时间间隔,则将所述延迟done信号设置为1。在将所述延迟done信号设置为1之后,还可以将所述计数器的值清零,以便进行下一次计时。
步骤B3:根据所述将空标志和所述延迟done信号对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作。
本实施例可以判断是否所述将空标志为0且所述延迟done信号为1;其中,所述将空标志为0表示所述第一FIFO队列和所述第二FIFO队列中的数据小于或等于所述预设数量,所述延迟done信号为1表示前后两次读操作间隔延迟完毕;若是,则对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作;若否,则不执行数据乒乓读取操作。
具体的,若空标志为0且延迟done信号为1,则可以执行数据乒乓读取操作;若空标志为0且延迟done信号为0,则不执行数据乒乓读取操作;若空标志为1且延迟done信号为0,则不执行数据乒乓读取操作;若空标志为1且延迟done信号为1,则不执行数据乒乓读取操作。
本实施例可以为第一FIFO队列和第二FIFO队列分别设置对应的将空标志,举例说明上述过程:
在对第一FIFO队列读取数据后,启动计数器开始计时,当延迟done信号设置为1时判断第二FIFO队列对应的将空标志是否为0,若将空标志为0则对第二FIFO队列读取数据,若将空标志不为0则延迟等待将有效视频数据写入第二FIFO队列。
在对第二FIFO队列读取数据后,启动计数器开始计时,当延迟done信号设置为1时判断第一FIFO队列对应的将空标志是否为0,若将空标志为0则对第一FIFO队列读取数据,若将空标志不为0则延迟等待将有效视频数据写入第一FIFO队列。
在ASIC或FPGA设计中,随着设计复杂度的不断提高,单一时钟驱动已无法满足设计及应用需求,多时钟系统驱动设计越来越普遍,在异步时钟域设计中,跨时钟域时钟数据信号传输成了必须要考虑的问题。目前单bit(比特)数据传输常用的方法是利用多级寄存器打拍;多bit数据传输常用的方法是利用异步FIFO。下面通过在实际应用中的实施例说明上述实施例描述的流程。
目前,VR头盔和移动机顶盒设计过程中,工程师常常需要将单个MIPI DSI接口的输入视频拆分为两路视频流,并以一半的带宽通过两个MIPI DSI输出。有时MIPI DSI 到MIPI DSI的“Passthrough(直通)”设计也会要求提供适用于新型显示设备、升级MIPI DSI配置需求,或者需要延长处理器和显示设备之间的距离作为信号中继器使用。目前常用的解决方案主要有两种,一种是采用专用的桥接芯片,一种是采用内置MIPI D-PHY(硬核或软核)的可编程逻辑器件FPGA。专用的桥接芯片因功能相对单一、扩展性较差、成本相对较高等问题,为此本文主要着重介绍利用可编程逻辑器件FPGA实现MIPI DSI 桥接的方案。
本实施例提出了一种可变包长的异步FIFO 读控制处理方案,通过前端包长解析动态设置FIFO的将空阈值,同时根据后端MIPI发送时序设置两次读FIFO间的固定延迟,以及通过双FIFO 乒乓缓存机制有效避免一定概率的读写冲突等操作,可以有效的解决对可变包长数据的异步缓存处理。
请参见图2,图2为本申请实施例所提供的一种可变包长异步FIFO读控制处理原理示意图,图2中示出了MIPI D-PHY接口、MIPI协议解析及组包流程、动态FIFO阈值设置模块、异步FIFO 读写控制模块、读延迟控制模块、MIPI 发送时序控制流程MIPI D-PHY接口,异步FIFO 1即第一FIFO队列,异步FIFO 2即第二FIFO队列。本实施例使用FPGA作为硬件实现单元,设计了一种针对可变包长异步FIFO缓存管理方法,根据前级包长信息动态设置FIFO将空阈值,同时根据后级MIPI 发送时序确定两次读FIFO最小延迟,以及乒乓读写缓存,极大的方便了MIPI DSI桥接设计方案,有效的避免使用专用桥接芯片带来的一些不足之处,同时后期灵活扩展系统功能,这种实现方式可以方便在各个平台移植,提高产品研发周期。
MIPI 协议解析模块用于解析MIPI COMMAND 数据包长度信息和有效数据信息,同时对有效数据进行lane间顺序重组。MIPI 数据包长度信息写入动态FIFO阈值设置模块后,动态FIFO阈值设置模块计算FIFO将空阈值,传入FIFO 读写控制模块,完成FIFO阈值的动态更新。MIPI协议解析模块用于将解析后的有效数据延迟若干时钟乒乓写入两个FIFO。读延迟控制模块用于根据后端MIPI 发送时序计算两次读FIFO所需最小时间间隔,设置延迟参数。当检测到读FIFO使能下降沿(完成一次FIFO读操作)启动计数器开关,当计数器值等于设置的延迟参数时,置done信号为1,当下一次读使能有效时,置done信号为0。当FIFO将空标志为0且done信号为1(满足两次读操作间隔延迟)启动读FIFO使能。当FIFO将空标志变为1是(FIFO即将被读空),FIFO读使能置0。本实施例可以扩展多个模块,以适应多通道MIPIDSI输入或输出。数据从FIFO读出后可进一步进行数据处理,之后再通过MIPI发送端输出,不过读延迟控制模块需根据数据处理模块时序进行适当调整延迟参数。
本实施例通过FPGA内置的MIPI D-PHY接口(硬核或软核)接收前端MIPI COMMAND数据,进入MIPI 协议解析及组包模块,完成MIPI协议的解析,解析数据包长度信息和有效数据信息,长度信息送入动态FIFO阈值设置模块,产生对应的FIFO将空阈值送入FIFO读写控制模块完成对FIFO将空阈值的设置;同时对有效数据信息完成lane间顺序重组,在FIFO读写控制模块控制下乒乓写入两个FIFO缓存,读延迟控制模块会根据后端MIPI D-PHY接口对COMMAND数据的发送时序设置相应的读控制延迟,确保两次MIPI数据发送间隔保持足够的时序余量。
可变包长异步FIFO读控制处理实现时主要包括以下几个步骤:
步骤B1:MIPI D-PHY 接收前端MIPI COMMAND数据送给MIPI协议解析模块完成MIPI 数据包长度和有效视频数据的解析,同时对有效数据进行lane间顺序重组;
步骤B2:数据包长度信息送入动态FIFO阈值设置模块,根据数据包长度及FIFO深度计算FIFO将空阈值,最后将FIFO将空阈值送给FIFO读写控制模块;
步骤B3:将基于MIPI协议解析出的有效视频数据延迟若干时钟(待FIFO将空阈值更新完毕)乒乓写入两个FIFO中;
步骤B4:读延迟控制模块根据后端MIPI发送时序 计算两次读FIFO所需最小时间间隔,设置延迟参数。
步骤B5:当检测到读FIFO使能下降沿(完成一次FIFO读操作)启动计数器开关,当计数器值等于设置的延迟参数时,置done信号为1,当下一次读使能有效时,置done信号为0;
步骤B6:当FIFO将空标志为0且done信号为1(满足两次读操作间隔延迟)启动读FIFO使能 。当FIFO将空标志变为1是(FIFO即将被读空),FIFO读使能置0。
步骤B7:循环步骤B3至和步骤B6,以便乒乓写入和读取FIFO。
请参见图3,图3为本申请实施例所提供的一种可变包长异步FIFO 读写控制时序图,图中WR_CLK表示写时钟,IN表示数据输入,WR1表示向第一FIFO队列中写数据,WR2表示向第二FIFO队列中写数据,RD_CLK表示读时钟,RD1表示从第一FIFO队列中读数据,RD2表示从第二FIFO队列中读数据,OUT表示数据输出,DONE表示延迟done信号,DELAY表示延迟,数字1、2、3、4、5、6、7、8表示读写的数据。
本实施例使用内置多个MIPI D-PHY(硬核或软核)的可编程逻辑器件FPGA作为硬件实现,通过硬件描述语言对算法进行描述,通过前端MIPI协议解析模块对数据包进行解析,提取包长信息根据FIFO深度计算FIFO将空阈值,动态传递给FIFO读写控制模块,读延时控制模块会根据后端MIPI发送时序产生固定的读FIFO延迟,同时双FIFO乒乓缓存读写有效避免一定概率的读写冲突。使用FPGA作为硬件实现单元,方便后期灵活扩展系统功能,同时这种实现方式可以方便在各个平台移植,提高产品研发周期。
请参见图4,图4为本申请实施例所提供的一种异步FIFO读写控制系统的结构示意图,该系统可以应用于具有前端接口和后端接口的处理器,包括:
解析模块401,用于解析所述前端接口接收的数据,得到数据包长度和有效视频数据;
阈值设置模块402,用于根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值;
写控制模块403,用于将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;
延迟控制模块404,用于根据所述后端接口的发送时序确定读FIFO的最小时间间隔;
读控制模块405,用于利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,以便通过所述后端接口输出读取的数据。
其中,本实施例可以应用于具有前端接口和后端接口的处理器,当处理器包括一个前端接口和一个后端接口时,可以实现一输入一输出的桥接;当处理器包括一个前端接口和多个后端接口时,可以实现一输入多输出的桥接;当处理器包括多个前端接口和一个后端接口时,可以实现多输入一输出的桥接。处理器通过解析上述前端接口接收的数据可以得到数据包长度和有效视频数据,上述有效数据指前端接口接收的数据中除了包头和包尾的数据,数据包长度指有效视频数据的字节长度。
作为一种可行的实施方式,上述处理器可以为FPGA(Field-Programmable GateArray,现场可编程门阵列)芯片,上述前端接口可以为前端MIPI D-PHY接口,后端接口可以为后端MIPI D-PHY接口,因此可以通过以下方式实现S101:解析所述前端MIPI D-PHY接口接收的COMMAND数据,得到数据包长度和有效视频数据。上述过程利用可编程逻辑器件FPGA实现MIPI DSI的桥接,首先需要将MIPI 接收端视频进行缓存,然后再从缓存中读出,最后通过MIPI 发送端按照一定的MIPI协议发送出去。目前MIPI DSI的链路层有两种模式:命令模式(COMMAND MODE)和视频模式(VIDEO MODE)。视频模式提供了连续的时钟,输出端可以使用输入端的CLK 时钟,缓存可以设计为同步FIFO(First Input First Output,先进先出)队列,而命令模式提供的是非连续的时钟,输出端时钟只能使用异步的时钟,缓存必须设计为异步FIFO ,同时命令模式的视频分辨率及发送模式不固定(分行模式、分段模式、全帧模式),因此异步FIFO缓存需要对各种包长进行动态的自适应调整。本实施例中的COMMAND数据指命令模式下的视频数据。FPGA可以通过前端MIPI D-PHY接口接收COMMAND数据,通过解析上述COMMAND数据可以得到数据包长度和有效视频数据,上述有效数据指COMMAND数据中除了包头和包尾的数据,数据包长度指有效视频数据的字节长度。
其中,本实施例还可以设置第一FIFO队列和第二FIFO队列的操作,第一FIFO队列和第二FIFO队列具有相同的深度及位宽。在得到数据包长度之后,本实施例可以确定根据数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,第一FIFO队列和第二FIFO队列具有相同的将空阈值。将空阈值即aempty_cnt,当FIFO队列内包含的数据量小于等于将空阈值时,将空信号有效(aempty为1),将空信号传输给下游模块B,通知下游模块停止读数据,防止FIFO队列中没有有效数据时仍产生读数据操作的情况。作为一种可行的实施方式,本实施例可以预先设置长度区间与将空阈值的对应关系,基于该对应关系确定数据包长度对应的将空阈值。
其中,处理器还可以查询后端接口的发送时序,该发送时序指发送视频数据的时序。在得到发送时序后,基于发送时序计算两次读FIFO所需的最小时间间隔。
其中,在得到将空阈值和最小时间间隔后,可以利用将空阈值和最小时间间隔进行数据乒乓读取操作。当第一FIFO队列中的数据小于将空阈值时,停止对第一FIFO队列的读取,当第二FIFO队列中的数据小于将空阈值时,停止对第二FIFO队列的读取。若当前时间距离上一次读操作完成时间的时间间隔小于最小时间间隔,则不执行下一次读操作;若当前时间距离上一次读操作完成时间的时间间隔大于或等于最小时间间隔,则可以执行下一次读操作。在乒乓读取第一FIFO队列和第二FIFO队列中的数据后,可以对数据进行封装,将封装后的数据传输至后端接口,以便后端接口输出读取的数据。
本实施例应用于内置前端接口和后端的处理器,处理器根据前端接口传输的数据确定数据包长度和有效视频数据,根据数据包长度设置FIFO队列的将空阈值,根据后端接口的发送时序确定相邻两次读FIFO的最小时间间隔。本实施例将有效视频数据乒乓写入第一FIFO队列和第二FIFO队列,还基于空阈值和最小时间间隔对第一FIFO队列和第二FIFO队列进行乒乓读取,进而使后端接口输出读取的数据。本实施例根据前端接口对应的数据包长度动态设置FIFO的将空阈值,根据后端接口发送时序设置两次读FIFO间的固定延迟,上述方式能够在接口桥接过程中有效控制双FIFO乒乓缓存读写,实现可变包长数据的异步缓存处理。
进一步的,所述处理器为FPGA芯片,所述前端接口为所述FPGA芯片构建的硬核MIPI D-PHY接口或软核MIPI D-PHY接口;
所述后端接口为所述FPGA芯片构建的硬核MIPI D-PHY接口或软核MIPI D-PHY接口。
进一步的,所述处理器包括至少两个所述后端MIPI D-PHY接口。
进一步的,所述第一FIFO队列和所述第二FIFO队列的队列参数相同;其中,所述队列参数包括队列深度和位宽。
进一步的,还包括:
重组模块,用于在将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列之前,对所述有效视频数据执行lane间顺序重组操作。
进一步的,阈值设置模块402根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值的过程包括:确定所述第一FIFO队列或所述第二FIFO队列的队列深度;根据所述数据包长度和所述队列深度计算所述第一FIFO队列和所述第二FIFO队列的将空阈值;其中,所述数据包长度与所述将空阈值正相关,所述队列深度与所述将空阈值正相关。
进一步的,还包括:
延迟判断模块,用于在将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列之前,判断所述将空阈值是否更新至所述第一FIFO队列和所述第二FIFO队列;若是,则进入写控制模块403将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列的步骤;若否,则在延时预设时间后,进入判断所述将空阈值是否更新至所述第一FIFO队列和所述第二FIFO队列的步骤。
进一步的,读控制模块405利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据的过程包括:利用所述将空阈值设置将空标志;其中,所述将空标志用于描述第一FIFO队列和所述第二FIFO队列中的数据是否小于预设数量;利用所述最小时间间隔设置延迟done信号;其中,所述延迟done信号用于描述是否延迟等待完毕;根据所述将空标志和所述延迟done信号对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作。
进一步的,读控制模块405利用所述将空阈值设置将空标志的过程包括:判断所述第一FIFO队列和所述第二FIFO队列中的数据是否小于预设数量;若是,则将所述将空标志设置为1;若否,则将所述将空标志设置为0。
进一步的,读控制模块405利用所述最小时间间隔设置延迟done信号的过程包括:在执行当前的FIFO读操作时,将所述延迟done信号设置为0;在完成当前的FIFO读操作后,启动计数器;若所述计数器的值等于所述最小时间间隔,则将所述延迟done信号设置为1。
进一步的,还包括:
清零模块,用于在将所述延迟done信号设置为1之后,将所述计数器的值清零。
进一步的,读控制模块405根据所述将空标志和所述延迟done信号对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作的过程包括:判断是否所述将空标志为0且所述延迟done信号为1;其中,所述将空标志为0表示所述第一FIFO队列和所述第二FIFO队列中的数据小于或等于所述预设数量,所述延迟done信号为1表示前后两次读操作间隔延迟完毕;若是,则对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种电子设备,包括具有前端接口和后端接口的处理器;其中,所述处理器用于解析所述前端接口接收的数据,得到数据包长度和有效视频数据;还用于根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;还用于根据所述后端接口的发送时序确定读FIFO的最小时间间隔;还用于利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,以便通过所述后端接口输出读取的数据。当然上述电子设备还可以包括各种网络接口,电源等组件。上述电子设备可以为VR头盔、服务器或移动机顶盒。
在将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列之前,处理器还可以对所述有效视频数据执行lane间顺序重组操作。
进一步的,处理器根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值的过程包括:确定所述第一FIFO队列或所述第二FIFO队列的队列深度;根据所述数据包长度和所述队列深度计算所述第一FIFO队列和所述第二FIFO队列的将空阈值;其中,所述数据包长度与所述将空阈值正相关,所述队列深度与所述将空阈值正相关。
进一步的,在将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列之前,处理器还用于判断所述将空阈值是否更新至所述第一FIFO队列和所述第二FIFO队列;若是,则进入将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列的步骤;若否,则在延时预设时间后,进入判断所述将空阈值是否更新至所述第一FIFO队列和所述第二FIFO队列的步骤。
进一步的,处理器利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据的过程包括:利用所述将空阈值设置将空标志;其中,所述将空标志用于描述第一FIFO队列和所述第二FIFO队列中的数据是否小于预设数量;利用所述最小时间间隔设置延迟done信号;其中,所述延迟done信号用于描述是否延迟等待完毕;根据所述将空标志和所述延迟done信号对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作。
进一步的,处理器利用所述将空阈值设置将空标志的过程包括:判断所述第一FIFO队列和所述第二FIFO队列中的数据是否小于预设数量;若是,则将所述将空标志设置为1;若否,则将所述将空标志设置为0。
进一步的,处理器利用所述最小时间间隔设置延迟done信号的过程包括:在执行当前的FIFO读操作时,将所述延迟done信号设置为0;在完成当前的FIFO读操作后,启动计数器;若所述计数器的值等于所述最小时间间隔,则将所述延迟done信号设置为1。
进一步的,在将所述延迟done信号设置为1之后,处理器还用于将所述计数器的值清零。
进一步的,处理器根据所述将空标志和所述延迟done信号对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作的过程包括:判断是否所述将空标志为0且所述延迟done信号为1;其中,所述将空标志为0表示所述第一FIFO队列和所述第二FIFO队列中的数据小于或等于所述预设数量,所述延迟done信号为1表示前后两次读操作间隔延迟完毕;若是,则对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作。
图5为本申请实施例所提供的一种电子设备的结构示意图,如图5所示,电子设备包括:
通信接口501,能够与其它设备比如网络设备等进行信息交互;
处理器502,与通信接口501连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的纠删码融合方法。而所述计算机程序存储在存储器503上。
当然,实际应用时,电子设备中的各个组件通过总线系统504耦合在一起。可理解,总线系统504用于实现这些组件之间的连接通信。总线系统704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统504。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:半导体存储芯片、U盘、移动硬盘、只读存储器(Read-Only Memory ,ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。图6为本申请实施例所提供的一种存储介质的结构示意图,该存储介质可以为非易失或非瞬时的存储芯片,具体包括译码驱动、存储矩阵、读写电路、地址线、数据线、片选线和读/写控制线。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (15)

1.一种异步FIFO读写控制方法,其特征在于,应用于具有前端接口和后端接口的处理器,包括:
解析所述前端接口接收的数据,得到数据包长度和有效视频数据;
根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;
根据所述后端接口的发送时序确定读FIFO的最小时间间隔;
利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,以便通过所述后端接口输出读取的数据。
2.根据权利要求1所述异步FIFO读写控制方法,其特征在于,在将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列之前,还包括:
对所述有效视频数据执行lane间顺序重组操作。
3.根据权利要求1所述异步FIFO读写控制方法,其特征在于,根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,包括:
确定所述第一FIFO队列或所述第二FIFO队列的队列深度;
根据所述数据包长度和所述队列深度计算所述第一FIFO队列和所述第二FIFO队列的将空阈值;其中,所述数据包长度与所述将空阈值正相关,所述队列深度与所述将空阈值正相关。
4.根据权利要求1所述异步FIFO读写控制方法,其特征在于,在将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列之前,还包括:
判断所述将空阈值是否更新至所述第一FIFO队列和所述第二FIFO队列;
若是,则进入将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列的步骤;
若否,则在延时预设时间后,进入判断所述将空阈值是否更新至所述第一FIFO队列和所述第二FIFO队列的步骤。
5.根据权利要求1所述异步FIFO读写控制方法,其特征在于,利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,包括:
利用所述将空阈值设置将空标志;其中,所述将空标志用于描述第一FIFO队列和所述第二FIFO队列中的数据是否小于预设数量;
利用所述最小时间间隔设置延迟done信号;其中,所述延迟done信号用于描述是否延迟等待完毕;
根据所述将空标志和所述延迟done信号对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作。
6.根据权利要求5所述异步FIFO读写控制方法,其特征在于,利用所述将空阈值设置将空标志,包括:
判断所述第一FIFO队列和所述第二FIFO队列中的数据是否小于预设数量;
若是,则将所述将空标志设置为1;
若否,则将所述将空标志设置为0。
7.根据权利要求5所述异步FIFO读写控制方法,其特征在于,利用所述最小时间间隔设置延迟done信号,包括:
在执行当前的FIFO读操作时,将所述延迟done信号设置为0;
在完成当前的FIFO读操作后,启动计数器;
若所述计数器的值等于所述最小时间间隔,则将所述延迟done信号设置为1。
8.根据权利要求7所述异步FIFO读写控制方法,其特征在于,在将所述延迟done信号设置为1之后,还包括:
将所述计数器的值清零。
9.根据权利要求5所述异步FIFO读写控制方法,其特征在于,根据所述将空标志和所述延迟done信号对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作,包括:
判断是否所述将空标志为0且所述延迟done信号为1;其中,所述将空标志为0表示所述第一FIFO队列和所述第二FIFO队列中的数据小于或等于所述预设数量,所述延迟done信号为1表示前后两次读操作间隔延迟完毕;
若是,则对所述第一FIFO队列和所述第二FIFO队列执行数据乒乓读取操作。
10.一种异步FIFO读写控制系统,其特征在于,应用于具有前端接口和后端接口的处理器,包括:
解析模块,用于解析所述前端接口接收的数据,得到数据包长度和有效视频数据;
阈值设置模块,用于根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值;
写控制模块,用于将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;
延迟控制模块,用于根据所述后端接口的发送时序确定读FIFO的最小时间间隔;
读控制模块,用于利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,以便通过所述后端接口输出读取的数据。
11.根据权利要求10所述异步FIFO读写控制系统,其特征在于,所述处理器为FPGA芯片,所述前端接口为所述FPGA芯片构建的硬核MIPI D-PHY接口或软核MIPI D-PHY接口;
所述后端接口为所述FPGA芯片构建的硬核MIPI D-PHY接口或软核MIPI D-PHY接口。
12.根据权利要求10所述异步FIFO读写控制系统,其特征在于,所述处理器包括至少两个所述后端接口。
13.根据权利要求10所述异步FIFO读写控制系统,其特征在于,所述第一FIFO队列和所述第二FIFO队列的队列参数相同;其中,所述队列参数包括队列深度和位宽。
14.一种电子设备,其特征在于,包括具有前端接口和后端接口的处理器;
其中,所述处理器用于解析所述前端接口接收的数据,得到数据包长度和有效视频数据;还用于根据所述数据包长度确定第一FIFO队列和第二FIFO队列的将空阈值,将所述有效视频数据乒乓写入所述第一FIFO队列和所述第二FIFO队列;还用于根据所述后端接口的发送时序确定读FIFO的最小时间间隔;还用于利用所述将空阈值和所述最小时间间隔从所述第一FIFO队列和所述第二FIFO队列中乒乓读取数据,以便通过所述后端接口输出读取的数据。
15.根据权利要求14所述电子设备,其特征在于,所述电子设备包括VR头盔、服务器或移动机顶盒。
CN202211244073.6A 2022-10-12 2022-10-12 一种异步fifo读写控制方法、系统及电子设备 Active CN115309676B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211244073.6A CN115309676B (zh) 2022-10-12 2022-10-12 一种异步fifo读写控制方法、系统及电子设备
PCT/CN2023/085935 WO2024077890A1 (zh) 2022-10-12 2023-04-03 一种异步fifo读写控制方法、系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211244073.6A CN115309676B (zh) 2022-10-12 2022-10-12 一种异步fifo读写控制方法、系统及电子设备

Publications (2)

Publication Number Publication Date
CN115309676A true CN115309676A (zh) 2022-11-08
CN115309676B CN115309676B (zh) 2023-02-28

Family

ID=83867669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211244073.6A Active CN115309676B (zh) 2022-10-12 2022-10-12 一种异步fifo读写控制方法、系统及电子设备

Country Status (2)

Country Link
CN (1) CN115309676B (zh)
WO (1) WO2024077890A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115756382A (zh) * 2023-01-06 2023-03-07 北京象帝先计算技术有限公司 视频处理方法、装置、电子组件及电子设备
WO2024077890A1 (zh) * 2022-10-12 2024-04-18 浪潮电子信息产业股份有限公司 一种异步fifo读写控制方法、系统及电子设备

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088439A1 (en) * 2002-10-31 2004-05-06 Eugene Lee Pipelined network processing with FIFO queues
US6745264B1 (en) * 2002-07-15 2004-06-01 Cypress Semiconductor Corp. Method and apparatus for configuring an interface controller wherein ping pong FIFO segments stores isochronous data and a single circular FIFO stores non-isochronous data
US8713221B1 (en) * 2010-12-01 2014-04-29 Juniper Networks, Inc. Rate controlled first in first out (FIFO) queues for clock domain crossing
US20150085587A1 (en) * 2013-09-25 2015-03-26 Lsi Corporation Ping-pong buffer using single-port memory
CN104580005A (zh) * 2015-01-13 2015-04-29 天津市德力电子仪器有限公司 一种精确按照流量模型发送随机长度报文的方法
CN104902193A (zh) * 2015-05-19 2015-09-09 上海集成电路研发中心有限公司 一种基于fpga对图像数据进行分割处理和显示的方法
CN105183423A (zh) * 2015-09-02 2015-12-23 青岛中星微电子有限公司 一种跨时钟域异步数据处理方法和装置
CN206557767U (zh) * 2016-11-11 2017-10-13 北京润科通用技术有限公司 一种基于乒乓操作结构控制数据缓存的缓存系统
CN107301136A (zh) * 2017-06-21 2017-10-27 天津光电通信技术有限公司 一种基于fpga实现数据间隔选择连续输出的方法
CN110058816A (zh) * 2019-04-10 2019-07-26 中国人民解放军陆军工程大学 一种基于ddr的高速多用户队列管理器及方法
CN110781104A (zh) * 2019-10-30 2020-02-11 深圳市元征科技股份有限公司 一种数据处理系统、方法和装置
CN114302087A (zh) * 2021-11-30 2022-04-08 苏州浪潮智能科技有限公司 一种mipi数据传输模式转换方法、装置及电子设备
WO2022095632A1 (zh) * 2020-11-06 2022-05-12 苏州浪潮智能科技有限公司 一种基于fpga实现数据卷积运算的方法、装置和介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101403962A (zh) * 2008-11-13 2009-04-08 山东大学 基于fpga的异步双fifo的数据缓存方法
CN115309676B (zh) * 2022-10-12 2023-02-28 浪潮电子信息产业股份有限公司 一种异步fifo读写控制方法、系统及电子设备

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745264B1 (en) * 2002-07-15 2004-06-01 Cypress Semiconductor Corp. Method and apparatus for configuring an interface controller wherein ping pong FIFO segments stores isochronous data and a single circular FIFO stores non-isochronous data
US20040088439A1 (en) * 2002-10-31 2004-05-06 Eugene Lee Pipelined network processing with FIFO queues
US8713221B1 (en) * 2010-12-01 2014-04-29 Juniper Networks, Inc. Rate controlled first in first out (FIFO) queues for clock domain crossing
US20150085587A1 (en) * 2013-09-25 2015-03-26 Lsi Corporation Ping-pong buffer using single-port memory
CN104580005A (zh) * 2015-01-13 2015-04-29 天津市德力电子仪器有限公司 一种精确按照流量模型发送随机长度报文的方法
CN104902193A (zh) * 2015-05-19 2015-09-09 上海集成电路研发中心有限公司 一种基于fpga对图像数据进行分割处理和显示的方法
CN105183423A (zh) * 2015-09-02 2015-12-23 青岛中星微电子有限公司 一种跨时钟域异步数据处理方法和装置
CN206557767U (zh) * 2016-11-11 2017-10-13 北京润科通用技术有限公司 一种基于乒乓操作结构控制数据缓存的缓存系统
CN107301136A (zh) * 2017-06-21 2017-10-27 天津光电通信技术有限公司 一种基于fpga实现数据间隔选择连续输出的方法
CN110058816A (zh) * 2019-04-10 2019-07-26 中国人民解放军陆军工程大学 一种基于ddr的高速多用户队列管理器及方法
CN110781104A (zh) * 2019-10-30 2020-02-11 深圳市元征科技股份有限公司 一种数据处理系统、方法和装置
WO2022095632A1 (zh) * 2020-11-06 2022-05-12 苏州浪潮智能科技有限公司 一种基于fpga实现数据卷积运算的方法、装置和介质
CN114302087A (zh) * 2021-11-30 2022-04-08 苏州浪潮智能科技有限公司 一种mipi数据传输模式转换方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
程晓宇等: "基于Linux的MPEG-4视频压缩卡驱动程序", 《计算机工程》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024077890A1 (zh) * 2022-10-12 2024-04-18 浪潮电子信息产业股份有限公司 一种异步fifo读写控制方法、系统及电子设备
CN115756382A (zh) * 2023-01-06 2023-03-07 北京象帝先计算技术有限公司 视频处理方法、装置、电子组件及电子设备

Also Published As

Publication number Publication date
WO2024077890A1 (zh) 2024-04-18
CN115309676B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN115309676B (zh) 一种异步fifo读写控制方法、系统及电子设备
US8346998B2 (en) System and method for transmitting data packets in a computer system having a memory hub architecture
US20050188146A1 (en) FIFO module, deskew circuit and rate matching circuit having the same
CN114490460B (zh) 一种用于asic的flash控制器及其控制方法
CN112765054A (zh) 一种基于fpga的高速数据采集系统及方法
TWI753063B (zh) 資料傳送裝置及資料傳送方法
EP3200089B1 (en) Method, apparatus, communication equipment and storage media for determining link delay
CN112328523B (zh) 传输双倍速率信号的方法、装置及系统
CN116225990A (zh) 基于fpga的多通道ddr读写仲裁装置
CN112948295A (zh) 一种基于axi4总线的fpga与ddr高速数据包传输系统及方法
CN105446699A (zh) 数据帧队列管理方法
CN116893991B (zh) 一种axi协议下的存储模块转换接口及其转换方法
US8862783B2 (en) Methods and system to offload data processing tasks
CN100463443C (zh) 一种异步fifo实现系统及实现方法
CN111722827A (zh) 一种高效ddr访问方法及应用
CN114584782A (zh) 一种图像发送方法、装置及电子设备
JP7467325B2 (ja) 通信制御装置、通信制御方法、情報処理装置、情報処理方法、および、プログラム
CN213069802U (zh) 非同源时钟数据传输系统
CN102223285B (zh) 处理数据报文的方法及网络节点
JP2005303787A (ja) パケット生成装置
JP4252379B2 (ja) 可変長フレームバッファ装置
CN112052204B (zh) 非同源时钟数据传输系统
US6651114B1 (en) DMA controller which optimizes transfer rate of data and method therefor
JP2006050641A (ja) デジタル遅延バッファ及びこれに関連する方法
US20190065124A1 (en) Information processing apparatus, memory controller, and control method for information processing apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant