基于共享内存机制的FPGA硬件抽象层设计方法、系统技术方案

技术编号:35451116 阅读:12 留言:0更新日期:2022-11-03 12:06
本发明专利技术提供了一种基于共享内存机制的FPGA硬件抽象层设计方法及系统,配置多个用于软件组件数据输入/输出的MOCB端口,并进行内存空间分配,得到多个内存空间,每一个内存空间指定一个逻辑地址;对不同物理总线及IO接口进行封装,构建驱动适配接口;构建地址映射表和事件映射表,实现对每一个内存空间的起始地址与逻辑地址的映射和软件组件数据收发事件的事件ID与逻辑地址的对应;构建优先级仲裁表,根据逻辑地址的优先级对事件收发进行仲裁,并将高优先级的逻辑地址所对应的事件通过数据路由发送至逻辑地址所指定的MOCB端口。本发明专利技术保证了数据的实时性和可靠性,同时保证了硬件抽象层能够在不同平台进行移植。硬件抽象层能够在不同平台进行移植。硬件抽象层能够在不同平台进行移植。

【技术实现步骤摘要】
基于共享内存机制的FPGA硬件抽象层设计方法、系统


[0001]本专利技术涉及电子装备
,具体地,涉及一种基于共享内存机制的FPGA硬件抽象层设计方法、系统,同时提供了一种相应的终端及介质。

技术介绍

[0002]异构嵌入式分布式系统中通常包括FPGA、GPP、DSP等异构资源,并且同一个系统的FPGA资源的处理器类型、对外通信的物理总线(如PCIE、SRIO、EMIF等)存在差异。为了保证软件组件在不同FPGA上的可移植性,采用MOCB硬件抽象层设计技术,通过引入中间层软件屏蔽底层物理接口的差异性。MOCB是一个接口规范,并未规定硬件抽象层的实现细节。然而,现有的MOCB硬件抽象层设计技术无法满足高实时(时延、抖动、吞吐量等)、高可靠的应用需求,从而导致复杂高实时高可靠系统的软件难以组件化,不能在各个平台之间移植。

技术实现思路

[0003]本专利技术针对现有技术中存在的上述不足,提供了一种基于共享内存机制的FPGA硬件抽象层设计方法,同时提供了一种相应的终端及介质。
[0004]根据本专利技术的一个方面,提供了一种基于共享内存机制的FPGA硬件抽象层设计方法,包括:
[0005]根据应用的需求,配置多个用于软件组件数据输入/输出的MOCB端口,对每一个所述MOCB端口进行内存空间分配,得到多个内存空间,其中每一个所述内存空间指定一个逻辑地址;
[0006]对不同物理总线及IO接口进行封装,构建驱动适配接口;
[0007]建立所述MOCB端口与所述驱动适配接口之间的数据路由;
[0008]构建地址映射表和事件映射表;基于所述地址映射表,对每一个所述内存空间的起始地址信息进行转换,并将所述起始地址信息映射至所述逻辑地址;基于所述事件映射表,将软件组件的数据收发事件的事件ID与所述逻辑地址相对应;
[0009]构建优先级仲裁表,根据所述优先级仲裁表中逻辑地址的优先级对所述软件组件的数据收发事件的收发进行仲裁,并将高优先级的逻辑地址所对应的数据通过所述数据路由发送至所述逻辑地址所指定的MOCB端口,完成对FPGA硬件抽象层的构建。
[0010]可选地,所述MOCB端口包括:发送缓冲区模块、接收缓冲区模块、事件多路复用寄存器模块和流量控制模块;其中:
[0011]所述发送缓冲区模块,用于暂存来自所述软件组件待发送的数据,并依据先进先出的原则依次进行数据发送;
[0012]所述接收缓冲区模块,用于暂存需要发送至所述软件组件的数据,并依据先进先出的原则依次将数据发送给所述软件组件;
[0013]所述事件多路复用寄存器模块,用于存储多个事件,每个事件对应唯一的事件ID,每个事件ID包括若干个子事件;
[0014]所述流量控制模块,用于控制所述接收缓冲区模块和所述发送缓冲区模块的流量,当所述发送缓冲区模块和/或所述接收缓冲区模块的剩余空间低于设定的门限值时,触发流量控制信号,停止缓冲区模块接收新数据。
[0015]可选地,所述驱动适配接口包括:数据通道接口、事件通道接口、射频控制接口及管理通道接口。
[0016]可选地,所述地址映射表实现所述逻辑地址与所述发送缓冲区模块和所述接收缓冲区模块的内存空间的起始地址之间的映射,包括索引、逻辑地址和起始地址字段;
[0017]对所述发送缓冲区模块和所述接收缓冲区模块的内存空间分配由所述软件组件确定。
[0018]可选地,所述事件映射表实现所述事件多路复用寄存器模块与子事件之间的对应,包括:事件ID、逻辑地址、偏移量及字节数n字段;
[0019]所述事件多路复用寄存器模块的每一位对应一个子事件;
[0020]所述事件多路复用寄存器模块的长度为字节的整数倍;
[0021]所述事件多路复用寄存器模块的大小由所述事件映射表中的字节数n指定。
[0022]可选地,所述MOCB端口还包括如下任意一个或任意多个模块:
[0023]流量统计模块,该模块用于统计所述MOCB端口接收和发送的实时数据流量;
[0024]数据校验模块,该模块用于校验所述MOCB端口的数据完整性和正确性。
[0025]可选地,所述软件组件的数据收发,包括如下三个过程:
[0026]所述软件组件将数据发送至所述MOCB端口的发送缓冲区模块;
[0027]所述MOCB端口将所述发送缓冲区模块中的数据发送至物理总线;
[0028]所述软件组件接收来自其他软件组件并需要通过所述MOCB端口进行发送的数据。
[0029]可选地,所述软件组件将数据发送至所述MOCB端口的发送缓冲区模块,包括:
[0030]所述软件组件启动发送数据时序,通过所述MOCB端口传送所述发送缓冲区模块的内存空间的起始地址信息;
[0031]检测所述发送缓冲区模块的内存空间大小,当所述发送缓冲区模块的内存空间剩余空间大于门限值时,置流量控制信号为无效;否则,置流量控制信号为有效;
[0032]所述软件组件向所述发送缓冲区模块写入数据包,并在发生写入错误时,将所述发送缓冲区模块的状态置为写入异常状态,用于实时进行写入异常处理;
[0033]当所述数据包写入完成后,所述发送缓冲区模块的状态立即由空闲状态置为有待发送数据状态;
[0034]重复上述步骤,直至完成所述软件组件的所有数据发送。
[0035]可选地,所述MOCB端口将所述发送缓冲区模块中的数据发送至物理总线,包括:
[0036]等待发送数据请求,所述发送缓冲区模块的状态为有待发送数据状态,启动发送数据到物理总线的时序;
[0037]解析待发送数据的起始地址信息,根据所述地址映射表解析出目标逻辑地址,生成优先级请求信号;
[0038]根据所述优先级请求信号,判断所述目标逻辑地址所对应的优先级级别,将高优先级的目标逻辑地址信息发送至所述数据路由,并在发生发送错误时,将所述发送缓冲区模块的状态置为发送异常状态,用于实时进行发送异常处理;
[0039]所述数据路由根据所述优先级信息和所述目标逻辑地址信息生成路由信息,切换所述物理总线的接口到所述MOCB端口的发送缓冲区模块之间的开关;
[0040]将所述MOCB端口的发送缓冲区模块中的数据包通过所述驱动适配接口发送至物理总线上;
[0041]当一个完整的数据包发送完毕后,发送预设的事件信息到目标逻辑地址,通知数据发送完毕;
[0042]重复上述步骤,当完成对所述发送缓冲区模块中所有待发送数据的发送时,所述发送缓冲区模块的状态置为空闲状态。
[0043]可选地,所述软件组件接收来自其他软件组件并需要通过所述MOCB端口进行发送的数据,包括:
[0044]当所述软件组件接收到数据到达事件信号,解析对应的逻辑地址及MOCB端口的接收缓冲区模块的起始地址信息,并启动响应事件时序;
[0045]检测所述MOCB端口的接收缓冲区模块中是否包含至少一个完整的数据包,如果不是,则本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于共享内存机制的FPGA硬件抽象层设计方法,其特征在于,包括:根据应用的需求,配置多个用于软件组件数据输入/输出的MOCB端口,对每一个所述MOCB端口进行内存空间分配,得到多个内存空间,其中每一个所述内存空间指定一个逻辑地址;对不同物理总线及IO接口进行封装,构建驱动适配接口;建立所述MOCB端口与所述驱动适配接口之间的数据路由;构建地址映射表和事件映射表;基于所述地址映射表,对每一个所述内存空间的起始地址信息进行转换,并将所述起始地址信息映射至所述逻辑地址;基于所述事件映射表,将软件组件的数据收发事件的事件ID与所述逻辑地址相对应;构建优先级仲裁表,根据所述优先级仲裁表中逻辑地址的优先级对所述软件组件的数据收发事件的收发进行仲裁,并将高优先级的逻辑地址所对应的数据通过所述数据路由发送至所述逻辑地址所指定的MOCB端口,完成对FPGA硬件抽象层的构建。2.根据权利要求1所述的基于共享内存机制的FPGA硬件抽象层设计方法,其特征在于,所述MOCB端口包括:发送缓冲区模块、接收缓冲区模块、事件多路复用寄存器模块和流量控制模块;其中:所述发送缓冲区模块,用于暂存来自所述软件组件待发送的数据,并依据先进先出的原则依次进行数据发送;所述接收缓冲区模块,用于暂存需要发送至所述软件组件的数据,并依据先进先出的原则依次将数据发送给所述软件组件;所述事件多路复用寄存器模块,用于存储多个事件,每个事件对应唯一的事件ID,每个事件ID包括若干个子事件;所述流量控制模块,用于控制所述接收缓冲区模块和所述发送缓冲区模块的流量,当所述发送缓冲区模块和/或所述接收缓冲区模块的剩余空间低于设定的门限值时,触发流量控制信号,停止缓冲区模块接收新数据;和/或所述驱动适配接口包括:数据通道接口、事件通道接口、射频控制接口及管理通道接口。3.根据权利要求2所述的基于共享内存机制的FPGA硬件抽象层设计方法,其特征在于,所述地址映射表实现所述逻辑地址与所述发送缓冲区模块和所述接收缓冲区模块的内存空间的起始地址之间的映射,包括索引、逻辑地址和起始地址字段;对所述发送缓冲区模块和所述接收缓冲区模块的内存空间分配由所述软件组件确定。4.根据权利要求2所述的基于共享内存机制的FPGA硬件抽象层设计方法,其特征在于,所述事件映射表实现所述事件多路复用寄存器模块与子事件之间的对应,包括:事件ID、逻辑地址、偏移量及字节数n字段;所述事件多路复用寄存器模块的每一位对应一个子事件;所述事件多路复用寄存器模块的长度为字节的整数倍;所述事件多路复用寄存器模块的大小由所述事件映射表中的字节数n指定。5.根据权利要求2所述的基于共享内存机制的FPGA硬件抽象层设计方法,其特征在于,所述MOCB端口还包括如下任意一个或任意多个模块:
流量统计模块,该模块用于统计所述MOCB端口接收和发送的实时数据流量;数据校验模块,该模块用于校验所述MOCB端口的数据完整性和正确性。6.根据权利要求2

5中任一项所述的基于共享内存机制的FPGA硬件抽象层设计方法,其特征在于,所述软件组件的数据收发,包括如下三个过程:所述软件组件将数据发送至所述MOCB端口的发送缓冲区模块;所述MOCB端口将所述发送缓冲区模块中的数据发送至物理总线;所述软件组件接收来自其他软件组件并需要通过所述MOCB端口进行发送的数据。7.根据权利要求6所述的基于共享内存机制的FPGA硬件抽象层设计方法,其特征在于,所述软件组件将数据发送至所述MOCB端口的发送缓冲区模块,包括:所述软件组件启动发送数据时序,通过所述MOCB端口传送所述发送缓冲区模块的内存空间的起始地址信息;检测所述发送缓冲区模块的内存空间大小,当所述发送缓冲区模块的内存空间剩余空间大于门限值时,置流量控制信号为无效;否则,置流量控制信号为有效;所述软件组件向所述发送缓冲区模块写入数据包,并在发生写入错...

【专利技术属性】
技术研发人员:常坤吴二龙高欣春
申请(专利权)人:上海介方信息技术有限公司
类型:发明
国别省市:

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

1