【技术实现步骤摘要】
FPGA自适应位宽数据传输方法、装置、设备和介质
[0001]本申请涉及
FPGA
芯片优化
,特别是涉及一种
FPGA
自适应位宽数据传输方法
、
装置
、
设备和介质
。
技术介绍
[0002]FPGA(Field
‑
Programmable Gate Array)
即现场可编程门阵列,是一种可编程的集成电路芯片,具有可编程性
、
并行处理 、
可重构性
、
高效性能
、
低功耗
、
嵌入式特性和可靠性等特点
。
随着当代电子技术的不断发展,
FPGA
参与的项目设计需求越来越多样化,设计复杂程度也越来越高
。
[0003]在
FPGA
程序设计中,数据缓存作为降低设计复杂度的手段越来越广泛的被应用到设计当中
。FPGA
中较为常用的缓存资源有
FIFO
(先入先出缓冲区)和
RAM
(随机存储器)等结构
。
[0004]然而,上述传统数据缓存存在数据传输的操作精度和带宽难以兼顾的技术问题
。
技术实现思路
[0005]基于此,有必要针对上述技术问题,提供一种
FPGA
自适应位宽数据传输方法
、
一种
FPGA
自适应位宽数据传输装置 >、
一种计算机设备和一种计算机可读存储介质
。
[0006]为了实现上述目的,本专利技术实施例采用以下技术方案:一方面,提供一种
FPGA
自适应位宽数据传输方法,包括:将低位宽数据轮流分散存储在
FPGA
的
N
个低位宽缓存中;低位宽缓存的位宽根据低位宽接口端的位宽确定,
N
为高位宽接口端的位宽与低位宽接口端的位宽之比;在当前读取轮次中,接收本轮读取数据请求;确定本轮读取缓存的开始位置;根据读取数据请求确定需读取数据的位宽;根据需读取数据的位宽确定低位宽缓存的个数;根据开始位置和低位宽缓存的个数,确定本轮读取缓存的结束位置;读取开始位置至结束位置对应的低位宽数据,获得本轮低位宽数据;将本轮低位宽数据按读取顺序拼接成高位宽数据并输出;接收下一轮读取数据请求,进入下一读取轮次的读取;当读取轮次达到设定的轮次阈值后,停止读取
。
[0007]另一方面,还提供一种
FPGA
自适应位宽数据传输装置,包括:缓存模块,用于将低位宽数据轮流分散存储在
FPGA
的
N
个低位宽缓存中;低位宽缓存的位宽根据低位宽接口端的位宽确定,
N
为高位宽接口端的位宽与低位宽接口端的位宽之比;接收模块,用于在当前读取轮次中,接收本轮读取数据请求;第一位置确定模块,用于确定本轮读取缓存的开始位置;
第一解析模块,用于根据读取数据请求确定需读取数据的位宽;第二解析模块,用于根据需读取数据的位宽确定低位宽缓存的个数;第二位置确定模块,用于根据开始位置和低位宽缓存的个数,确定本轮读取缓存的结束位置;读取模块,用于读取开始位置至结束位置对应的低位宽数据,获得本轮低位宽数据;输出模块,用于将本轮低位宽数据按读取顺序拼接成高位宽数据并输出;接收模块,用于接收下一轮读取数据请求,进入下一读取轮次的读取;读取终止模块,用于当读取轮次达到设定的轮次阈值后,停止读取
。
[0008]又一方面,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的
FPGA
自适应位宽数据传输方法的步骤
。
[0009]再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的
FPGA
自适应位宽数据传输方法的步骤
。
[0010]本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:上述
FPGA
自适应位宽数据传输方法
、
装置
、
设备和介质,通过将低位宽数据轮流分散存储在
FPGA
的多个低位宽缓存中,然后根据读取数据请求读出对应数量的低位宽数据,并按读取顺序进行拼接后输出,实现了
FPGA
不同位宽接口间高精度的数据交互,克服了直接进行位宽转换而引起的数据丢失等问题,提高了读取效率和精准性
。
因此,通过分散存储与按序读取的设计,打破了操作精度与带宽的常规减益关系,实现了保证操作精度的同时兼顾了速率
。
[0011]此外,当低位宽接口向高位宽接口传递数据时,高位宽端既可以按高位宽读取数据也可以按低位宽读取数据,使这种场景下缓存两端数据流的数据交互更加精准
。
附图说明
[0012]为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图
。
[0013]图1为一个实施例中
FPGA
自适应位宽数据传输方法的流程示意图;图2为一个实施例中数据拼接步骤的流程示意图;图3为一个实施例中确定本轮读取缓存开始位置的示意图;图4为一个实施例中
FPGA
自适应位宽数据传输装置的模块结构示意图
。
具体实施方式
[0014]为了使本申请的目的
、
技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明
。
应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请
。
[0015]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同
。
在本申请的说明书中所使用的术语只是为了描述具体的实
施例的目的,不是旨在于限制本申请
。
[0016]需要说明的是,在本文中提及“实施例”意味着,结合实施例描述的特定特征
、
结构或特性可以包含在本专利技术的至少一个实施例中
。
在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例
。
[0017]在研究实现本申请的过程中,专利技术人发现在
FPGA
程序设计中,数据缓存多用于同步两个不同带宽数据流的数据交互,而不同带宽的数据流常使用不同位数宽度的数据,这时就会遇到低位宽接口数据流向高位宽接口的情况
。
当传输过程中低位宽数据量不够凑齐一个高位本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.
一种
FPGA
自适应位宽数据传输方法,其特征在于,包括步骤:将低位宽数据轮流分散存储在
FPGA
的
N
个低位宽缓存中;所述低位宽缓存的位宽根据低位宽接口端的位宽确定,
N
为高位宽接口端的位宽与低位宽接口端的位宽之比;在当前读取轮次中,接收本轮读取数据请求;确定本轮读取缓存的开始位置;根据所述读取数据请求确定需读取数据的位宽;根据所述需读取数据的位宽确定所述低位宽缓存的个数;根据所述开始位置和所述低位宽缓存的个数,确定本轮读取缓存的结束位置;读取所述开始位置至所述结束位置对应的所述低位宽数据,获得本轮低位宽数据;将所述本轮低位宽数据按读取顺序拼接成高位宽数据并输出;接收下一轮读取数据请求,进入下一读取轮次的读取;当读取轮次达到设定的轮次阈值后,停止读取
。2.
根据权利要求1所述的
FPGA
自适应位宽数据传输方法,其特征在于,所述低位宽缓存为
FIFO
缓存
。3.
根据权利要求2所述的
FPGA
自适应位宽数据传输方法,其特征在于,使用
SRIO
接口读取所述开始位置至所述结束位置对应的所述低位宽数据,获得本轮低位宽数据
。4.
根据权利要求3所述的
FPGA
自适应位宽数据传输方法,其特征在于,将所述本轮低位宽数据按读取顺序拼接成高位宽数据并输出的步骤,包括:按
SRIO
协议对所述本轮低位宽数据的尾部数据进行重新排序,获得所述高位宽数据;输出所述高位宽数据
。5.
一种
FPGA
自适应位宽数据传输装置,其特征在于,包括:缓存模块,用于将低位宽数据轮流分散存储在
FPGA
的
N
个低位宽缓存中;所述低位宽缓存的位宽根据低位宽接口端的位宽确定,
...
【专利技术属性】
技术研发人员:王杰,胡勇,
申请(专利权)人:湖南高至科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。