一种FPGA的单向链表数据存储方法及系统技术方案

技术编号:24455875 阅读:58 留言:0更新日期:2020-06-10 15:31
本发明专利技术提供一种FPGA的单向链表数据存储方法及系统,包括:将片内RAM和片外DDR均划分为多个节点,将片内RAM节点和片外DDR节点依次构建成FPGA的单向链表,并设置节点的指针;将FPGA的寄存器地址配置为单向链表的索引地址;将数据包的配置信息缓存到片内RAM节点,所述数据包的数据缓存到片外DDR节点。本发明专利技术构建了单向链表的内存分配结构,节省了配置信息对寄存器的资源占用,解决了单模块寄存器资源紧张的问题。

One way linked list data storage method and system of FPGA

【技术实现步骤摘要】
一种FPGA的单向链表数据存储方法及系统
本专利技术属于芯片数据流控
,具体涉及一种FPGA的单向链表数据存储方法及系统。
技术介绍
链表是一种数据结构,在内存中通过节点记录内存地址而相互链接形成一条链的储存方式。相比数组而言,链表在内存中不需要连续的区域,只需要每一个节点都能够记录下一个节点的内存地址,通过引用进行查找,这样的特点也就造就了链表增删操作时间消耗很小,而查找遍历时间消耗很大的特点。FPGA具有速度快、效率高、灵活稳定、集成度高等优点,所以在硬件逻辑验证与设计中是十分必要的,目前FPGA芯片内经常需要缓存一些管理数据包,数据包内包含FPGA芯片需要读取的数据和数据包的配置信息,PPGA芯片主要包含了可编程逻辑模块、固定功能逻辑模块(如乘法器)的数目及存储器(如嵌入式RAM),其中,FPGA的基本可编程逻辑单元是由查找表和寄存器组成的。现有技术FPGA读取时存在以下缺陷:FPGA片内的缓存小,不能在片内存储大量数据;FPGA片外的缓存大,但是片内模块不方便直接管理片外的缓存数据;FPGA在应用时并行操作较多,但是提高工作效率一般,直接读取数据时会降低CPU的效率。
技术实现思路
针对现有技术的上述不足,本专利技术提供一种FPGA的单向链表数据存储方法及系统,以解决上述技术问题。第一方面,本专利技术提供一种FPGA的单向链表数据存储方法,包括:将片内RAM和片外DDR均划分为多个节点,将片内RAM节点和片外DDR节点依次构建成FPGA的单向链表,并设置节点的指针;将FPGA的寄存器地址配置为单向链表的索引地址;将数据包的配置信息缓存到片内RAM节点,所述数据包的数据缓存到片外DDR节点。进一步的,所述方法还包括:根据FPGA的存储数据读取指令获取寄存器地址;根据所述寄存器地址索引到待测数据包所在的RAM节点,并读取待测数据包的配置信息;根据片内RAM节点的指针索引到片外DDR节点,并读取待测数据包的数据。进一步的,所述方法还包括:CPU通过总线读取待测数据包的配置信息;DAM通过DMA交互模块读取待测数据包的数据。进一步的,所述方法还包括:将所述单向链表的第一个片内RAM节点配置为链表头;所述链表头内输入链表配置信息。进一步的,所述数据配置信息包括:数据包大小、数据包数量、数据包是否校验信息和数据校验位。进一步的,所述链表配置信息包括的单向链表的数据类型,传输通道,优先级,路由信息和目的地址。第二方面,本专利技术提供一种FPGA的单向链表数据存储系统,包括:结构分配单元,配置用于将片内RAM和片外DDR均划分为多个节点,将片内RAM节点和片外DDR节点依次构建成FPGA的单向链表,并设置节点的指针;寄存器配置单元,配置用于将FPGA的寄存器地址配置为单向链表的索引地址;数据存储单元,配置用于将数据包的配置信息缓存到片内RAM节点,所述数据包的数据缓存到片外DDR节点。进一步的,所述系统还包括:读取指令单元,配置用于根据FPGA的存储数据读取指令获取寄存器地址;地址索引单元,配置用于根据所述寄存器地址索引到待测数据包所在的片内RAM节点,并读取待测数据包的配置信息;数据读取单元,配置用于根据片内RAM节点的指针索引到片外DDR节点,并读取待测数据包的数据。进一步的,所述系统还包括:表头配置单元,配置用于将所述单向链表的第一个片内RAM节点配置为链表头;表头信息输入单元,配置用于所述链表头内输入链表配置信息。本专利技术的有益效果在于,本专利技术提供的一种FPGA的单向链表数据存储方法及系统,构建了单向链表形式的内存节点,在片内RAM节点上获取配置信息,节省了配置信息对寄存器的资源占用,解决了单模块寄存器资源紧张的问题;采用链表的方式形成流水线操作,每个节点即阶段,执行不同的操作,并且按照顺序自动执行,提高了数据读取的工作效率;采用链表结合硬件结构的方式,对缓存空间采用分布式节点分布式,占用资源多的数据部分缓存到片外DDR内,极大地降低了片内资源的消耗;通过DMA读取片外DDR内缓存的数据,减少了CPU的工作负担。此外,本专利技术设计原理可靠,结构简单,具有非常广泛的应用前景。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一个实施例的方法的示意性流程图。图2是本专利技术一个实施例的系统的示意性框图。具体实施方式为了使本
的人员更好地理解本专利技术中的技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。下面对本专利技术中出现的关键术语进行解释。DDR:双倍速率同步动态随机存储器。图1是本专利技术一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种FPGA的单向链表数据存储系统。如图1所示,该方法100包括:步骤110,将片内RAM和片外DDR均划分为多个节点,将片内RAM节点和片外DDR节点依次构建成FPGA的单向链表,并设置节点的指针;步骤120,将FPGA的寄存器地址配置为单向链表的索引地址;步骤130,将数据包的配置信息缓存到片内RAM节点,所述数据包的数据缓存到片外DDR节点。可选地,作为本专利技术一个实施例,所述方法还包括:根据FPGA的存储数据读取指令获取寄存器地址;根据所述寄存器地址索引到待测数据包所在的RAM节点,并读取待测数据包的配置信息;根据片内RAM节点的指针索引到片外DDR节点,并读取待测数据包的数据。可选地,作为本专利技术一个实施例,所述方法还包括:CPU通过总线读取待测数据包的配置信息;DAM通过DMA交互模块读取待测数据包的数据。可选地,作为本专利技术一个实施例,所述方法还包括:将所述单向链表的第一个片内RAM节点配置为链表头;所述链表头内输入链表配置信息。可选地,作为本专利技术一个实施例,所述数据配置信息包括:数据包大小、数据包数量、数据包是否校验信息和数据校验位。进一步的,所述链表配置信息包括的单向链表的数据类型,传输通道,优先级,路由信息和目的地址。为了便于对本专利技术的理解,下面以本专利技术一种FPGA的单向链表数据存储方法的原理,结合实施例中对一种FPGA内存进行管理的过程,对本专利技术提供的一种FPGA的单向链表数据存储方法做进一步的描述。具体的,本文档来自技高网
...

【技术保护点】
1.一种FPGA的单向链表数据存储方法,其特征在于,包括:/n将片内RAM和片外DDR均划分为多个节点,将片内RAM节点和片外DDR节点依次构建成FPGA的单向链表,并设置节点的指针;/n将FPGA的寄存器地址配置为单向链表的索引地址;/n将数据包的配置信息缓存到片内RAM节点,所述数据包的数据缓存到片外DDR节点。/n

【技术特征摘要】
1.一种FPGA的单向链表数据存储方法,其特征在于,包括:
将片内RAM和片外DDR均划分为多个节点,将片内RAM节点和片外DDR节点依次构建成FPGA的单向链表,并设置节点的指针;
将FPGA的寄存器地址配置为单向链表的索引地址;
将数据包的配置信息缓存到片内RAM节点,所述数据包的数据缓存到片外DDR节点。


2.根据权利要求1所述的一种FPGA的单向链表数据存储方法,其特征在于,所述方法还包括:
根据FPGA的存储数据读取指令获取寄存器地址;
根据所述寄存器地址索引到待测数据包所在的RAM节点,并读取待测数据包的配置信息;
根据片内RAM节点的指针索引到片外DDR节点,并读取待测数据包的数据。


3.根据权利要求2所述的一种FPGA的单向链表数据存储方法,其特征在于,所述方法还包括:
CPU通过总线读取待测数据包的配置信息;
DAM通过DMA交互模块读取待测数据包的数据。


4.根据权利要求1所述的一种FPGA的单向链表数据存储方法,其特征在于,所述方法还包括:
将所述单向链表的第一个片内RAM节点配置为链表头;
所述链表头内输入链表配置信息。


5.根据权利要求1述的一种FPGA的单向链表数据存储方法,其特征在于,所述数据配置信息包括:数据包大小、数据包数量、数据包是否校验信息和数据校验位。...

【专利技术属性】
技术研发人员:王凯张贞雷魏红杨邹晓峰吕垣森
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

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

1