太阳城集团

  • / 11
  • 下载费用:30 金币  

基于FPGA的仿真数据存取方法及装置.pdf

摘要
申请专利号:

CN201710081428.7

申请日:

2017.02.15

公开号:

CN106776372A

公开日:

2017.05.31

当前法律状态:

实审

有效性:

审中

法律详情: 实质审查的生效IPC(主分类):G06F 12/0866申请日:20170215|||公开
IPC分类号: G06F12/0866(2016.01)I; G06F12/0831(2016.01)I; G06F12/0842(2016.01)I; G06F13/40 主分类号: G06F12/0866
申请人: 北京中航通用科技有限公司
发明人: 郑云龙; 刘靖; 冷佳鹏
地址: 100000 北京市海淀区香山路88号二层B482号
优先权:
专利代理机构: 代理人:
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201710081428.7

授权太阳城集团号:

|||

法律状态太阳城集团日:

2017.07.04|||2017.05.31

法律状态类型:

太阳城集团实质审查的生效|||公开

摘要

太阳城集团本发明公开了一种基于FPGA的仿真数据存取方法及装置,该方法包括:建立缓冲区状态表,缓冲区状态表用来描述存储器中各个缓冲区的状态,状态表中的每一位都记录对应存储器中一个缓冲区的状态;建立子地址状态表,子地址状态表的每一个表项记录仿真设备当前仿真的一个子地址下数据缓冲区的描述太阳城集团;收到仿真数据存入或读取申请时提取其中的节点地址、子地址太阳城集团;以节点地址、子地址太阳城集团作为输入参数,经哈希压缩映射算法得出子地址状态表入口地址;根据所述入口地址查找子地址状态表,获取子地址的记录表项以及缓冲区地址,将仿真数据存入所述缓冲区地址对应的缓冲区或从所述缓冲区地址对应的缓冲区读取仿真数据;存入或读取完毕后更新缓冲区状态表及子地址状态表表项太阳城集团。本发明大幅提高了单一仿真设备支持并行仿真的节点数量,同时也提高了存储器的使用效率。

权利要求书

1.一种基于FPGA的仿真数据存取方法,其特征在于,包括以下步骤:
S1:建立缓冲区状态表,缓冲区状态表用来描述存储器中各个缓冲区的状态,状态表中
的每一位都记录对应存储器中一个缓冲区的状态;
S2:建立子地址状态表,子地址状态表的每一个表项记录仿真设备当前仿真的一个子
地址下数据缓冲区的描述太阳城集团;
S3:收到仿真数据存入或读取申请时提取其中的节点地址、子地址太阳城集团;
S4:以节点地址、子地址太阳城集团作为输入参数,经哈希压缩映射算法得出子地址状态表入
口地址;
S5:根据所述入口地址查找子地址状态表,获取子地址的记录表项以及缓冲区地址,将
仿真数据存入所述缓冲区地址对应的缓冲区或从所述缓冲区地址对应的缓冲区读取仿真
数据;
S6:存入或读取完毕后更新缓冲区状态表及子地址状态表表项太阳城集团。
2.如权利要求1所述的基于FPGA的仿真数据存取方法,其特征在于,在步骤S1之前还包
括步骤S0:将存储器分成固定大小的分块,分块的大小根据总线协议设定为大于该协议最
大帧长度,且为字节,n为正整数,将每个分块都作为一个数据缓冲区。
3.如权利要求1所述的基于FPGA的仿真数据存取方法,其特征在于,若某一缓冲区分块
被占用,其在所述缓冲区状态表中对应的记录位设置为1,反之若该缓冲区分块未被占用,
对应的记录位设置为0。
4.如权利要求1所述的基于FPGA的仿真数据存取方法,其特征在于,若步骤S3收到的是
仿真数据存入申请,在步骤S5中,根据所述入口地址在子地址状态表中进行匹配查找时,若
未查找到匹配项且该入口地址未被占用,则在此地址建立这个子地址的记录表项;若未查
找到匹配项且该入口地址已被占用,则根据冲突算法计算下一入口地址,然后重复步骤S5。
5.如权利要求1所述的基于FPGA的仿真数据存取方法,其特征在于,若步骤S3收到的是
仿真数据读取申请,在步骤S5中,若获取的所述子地址记录表项中记录的缓冲区个数为0,
则返回错误太阳城集团;若未查找到匹配项且该入口地址未被占用,返回错误太阳城集团;若未查找到匹
配项且该入口地址已被占用,则根据冲突算法计算下一入口地址,然后重复步骤S5。
6.如权利要求1所述的基于FPGA的仿真数据存取方法,其特征在于,所述子地址状态表
表项太阳城集团包括节点地址、子地址、子地址状态太阳城集团、头缓冲区指针、头缓冲区数据长度、尾缓
冲区指针、缓冲区个数等。
7.如权利要求1所述的基于FPGA的仿真数据存取方法,其特征在于,提前查询缓冲区状
态表,获取一定数量的待用缓冲区地址存入待用数据缓冲区表中待使用,在进行仿真数据
存入时直接从待用数据缓冲区表中获取一个未被占用的缓冲区地址。
8.一种基于FPGA的仿真数据存取装置,其特征在于,包括:
缓冲区状态表建立模块,用来建立缓冲区状态表来描述存储器中各个缓冲区的状态,
状态表中的每一位都记录对应存储器中一个缓冲区的状态;
子地址状态表建立模块,用来建立子地址状态表,子地址状态表的每一个表项记录仿
真设备当前仿真的一个子地址下数据缓冲区的描述太阳城集团;
子地址状态表入口地址获取模块,用来在收到仿真数据存入或读取申请时,提取其中
的节点地址、子地址太阳城集团,以节点地址、子地址太阳城集团作为输入参数,经哈希压缩映射算法得
出子地址状态表入口地址;
数据存取模块,用来根据所述入口地址查找子地址状态表,获取子地址的记录表项以
及缓冲区地址,将仿真数据存入所述缓冲区地址对应的缓冲区或从所述缓冲区地址对应的
缓冲区读取仿真数据,并在存入或读取完毕后更新缓冲区状态表及子地址状态表表项信
息。
9.如权利要求8所述的基于FPGA的仿真数据存取装置,其特征在于,还包括数据缓冲区
划分模块,用于将存储器分成固定大小的分块,分块的大小根据总线协议设定为大于该协
议最大帧长度,且为字节,n为正整数,将每个分块都作为一个数据缓冲区。
10.如权利要求8所述的基于FPGA的仿真数据存取装置,其特征在于,若某一缓冲区分
块被占用,其在所述缓冲区状态表中对应的记录位设置为1,反之若该缓冲区分块未被占
用,对应的记录位设置为0。
11.如权利要求8所述的基于FPGA的仿真数据存取装置,其特征在于,若收到的是仿真
数据存入申请,数据存取模块根据所述入口地址在子地址状态表中进行匹配查找时,若未
查找到匹配项且该入口地址未被占用,则在此地址建立这个子地址的记录表项,若未查找
到匹配项且该入口地址已被占用,则根据冲突算法计算下一入口地址,然后重新利用所述
入口地址在子地址状态表中进行匹配查找。
12.如权利要求8所述的基于FPGA的仿真数据存取装置,其特征在于,若收到的是仿真
数据读取申请,数据存取模块根据所述入口地址在子地址状态表中进行匹配查找时,若获
取的所述子地址记录表项中记录的缓冲区个数为0,则返回错误太阳城集团;若未查找到匹配项且
该入口地址未被占用,返回错误太阳城集团;若未查找到匹配项且该入口地址已被占用,则根据冲
突算法计算下一入口地址,然后重新利用所述入口地址在子地址状态表中进行匹配查找。
13.如权利要求8所述的基于FPGA的仿真数据存取装置,其特征在于,所述子地址状态
表表项太阳城集团包括节点地址、子地址、子地址状态太阳城集团、头缓冲区指针、头缓冲区数据长度、尾
缓冲区指针、缓冲区个数等。
14.如权利要求8所述的基于FPGA的仿真数据存取装置,其特征在于,还包括待用缓冲
区查询模块,用于查询缓冲区状态表,获取一定数量的待用缓冲区地址后存入待用数据缓
冲区表中待使用,在进行仿真数据存入时直接从待用数据缓冲区表中获取一个未被占用的
缓冲区地址。

说明书

基于FPGA的仿真数据存取方法及装置


技术领域

本发明涉及总线仿真测试技术领域,具体涉及一种用于高速总线仿真设备的基于
FPGA的仿真数据存取方法及装置。


背景技术

高速总线仿真设备主要应用在航电总线仿真与测试系统中,用于航电系统研制过
程中进行半实物联合仿真测试、实物仿真测试等。航电系统使用于恶劣的环境,确保航电系
统设备功能的完备性以及性能的可靠性是航电系统研制过程中的核心任务。在航电系统研
制的过程中,需要在地面进行各种仿真试验,以验证整个航电系统功能,性能是否达标。

随着航电总线系统的发展,新一代高速航电总线在支持节点数量、通信带宽方面
均大幅提高,这也加大了高速总线仿真设备的设计难度,仿真数据的存储管理是其中的一
个主要难点。


发明内容

为了解决上述现有技术的难点,本发明提出了一种用于高速总线仿真设备的基于
FPGA的存储管理方法及装置。

根据本发明的一个方面,提供了一种基于FPGA的仿真数据存取方法,其包括以下
步骤:

S1:建立缓冲区状态表,缓冲区状态表用来描述存储器中各个缓冲区的状态,状态表中
的每一位都记录对应存储器中一个缓冲区的状态;

S2:建立子地址状态表,子地址状态表的每一个表项记录仿真设备当前仿真的一个子
地址下数据缓冲区的描述太阳城集团;

S3:收到仿真数据存入或读取申请时提取其中的节点地址、子地址太阳城集团;

S4:以节点地址、子地址太阳城集团作为输入参数,经哈希压缩映射算法得出子地址状态表入
口地址;

S5:根据所述入口地址查找子地址状态表,获取子地址的记录表项以及缓冲区地址,将
仿真数据存入所述缓冲区地址对应的缓冲区或从所述缓冲区地址对应的缓冲区读取仿真
数据;

S6:存入或读取完毕后更新缓冲区状态表及子地址状态表表项太阳城集团。

根据本发明的另一个方面,提供了一种基于FPGA的仿真数据存取装置,其包括:

缓冲区状态表建立模块,用来建立缓冲区状态表来描述存储器中各个缓冲区的状态,
状态表中的每一位都记录对应存储器中一个缓冲区的状态;

子地址状态表建立模块,用来建立子地址状态表,子地址状态表的每一个表项记录仿
真设备当前仿真的一个子地址下数据缓冲区的描述太阳城集团;

子地址状态表入口地址获取模块,用来在收到仿真数据存入或读取申请时,提取其中
的节点地址、子地址太阳城集团,以节点地址、子地址太阳城集团作为输入参数,经哈希压缩映射算法得
出子地址状态表入口地址;

数据存取模块,用来根据所述入口地址查找子地址状态表,获取子地址的记录表项以
及缓冲区地址,将仿真数据存入所述缓冲区地址对应的缓冲区或从所述缓冲区地址对应的
缓冲区读取仿真数据,并在存入或读取完毕后更新缓冲区状态表及子地址状态表表项信
息。

本发明与现有技术相比,有以下优点:

上位机不参与仿真数据的存储器管理,减轻了上位机的负担,降低了上位机软件的设
计难度,利用FPGA内部各模块并行工作的特点,提升了效率。

使用本发明进行仿真数据的存取可以同时仿真几百到几千个通道,大幅提高了单
一仿真设备支持并行仿真的节点数量。

采用了存储器小片管理,动态分配的方案,相比于采用固定大小缓冲区分配方案
提高了存储器的使用效率。


附图说明

图1示出本发明的原理示意图。

图2示出本发明的子地址状态表的表项定义示意图。

图3示出本发明的子地址下数据缓冲区管理示意图。

图4示出本发明的仿真数据存入流程图。

图5示出本发明的仿真数据读取流程图。


具体实施方式

本发明的基于FPGA的仿真数据存储管理方法,用于高速总线仿真设备实现多个节
点,每个节点下多个子通道并行仿真功能时仿真数据的管理。仿真数据的来源包括但不限
于运行在通用计算机,嵌入式计算机,DSP处理器,ARM处理器,power pc处理器等,其与FPGA
的接口包括但不限于PCIE,rapid io,AXI及自定义互联总线等,使用的存储器可以为DRAM,
SRAM,FPGA内Block ram等。

下面结合附图对本发明作进一步详细描述。

图1是本发明的用于高速总线仿真设备的基于FPGA的仿真数据存储管理方法的原
理示意图。

其中,存储器空间大小根据实际应用分配,要求为连续的存储空间,存储器以固定
大小的分块进行管理,分块的大小可以根据高速总线仿真设备所实现的协议特点确定,通
常根据总线协议设定,一般要求大于该协议最大帧长度,且要求为字节。每个分块都作为一
个数据缓冲区。

在FPGA逻辑中建立缓冲区状态表,使用FPGA内部Block ram资源实现。缓冲区状态
表用来描述存储器中各个分块(缓冲区)的状态,状态表中的每一位都记录对应存储器中一
个缓冲区的状态。若该缓冲区分块被占用,对应的记录位为1,反之若该缓冲区分块未被占
用,对应的记录位为0。

在FPGA逻辑实现待用缓冲区查询,新的数据存入前首先需获取一个未被占用的缓
冲区地址,待用缓冲区查询模块提前查询缓冲区状态表,获取一定数量的待用缓冲区地址
存入待用数据缓冲区表中待使用,此种方式避免了每次新数据存入都去查询缓冲区状态
表,提升了效率。

存入待用数据缓冲区表中的指针对应的缓冲区在缓冲区状态表中记录位将被置
1,表明此缓冲区已被占用。

数据缓冲区在子地址缓冲区链表中释放出来后,将该缓冲区在缓冲区状态表中的
记录位置0,表明此缓冲区已被回收,可供使用。

本发明主要用于高速数据总线仿真多节点多子通道,例如FC-AE-1553总线协议中
节点地址位宽为24bit,子地址(子通道)位宽为32bit。总线仿真设备通常会同时仿真多个
节点,节点的地址不做限制,同时每个节点下会支持多个子地址,子地址的值不做限制。仿
真时需要为每个节点下的每个子地址都要建立一个数据缓冲区记录。

在FPGA逻辑中建立子地址(子通道)状态表,使用FPGA内部Block ram资源实现,子
地址状态表每一个表项记录着仿真设备当前仿真的一个子地址下数据缓冲区的描述太阳城集团,
记录太阳城集团格式如图2所示,子地址状态表的深度决定了仿真设备同时支持仿真的仿真节点,
子地址的数量。

在FPGA逻辑中采用哈希压缩映射算法,由于节点地址和子地址拼接后的寻址空间
远远大于子地址状态表的地址空间,无法建立直接映射,因此采用哈希算法进行压缩映射。
将节点地址与子地址拼接经过哈希算法得到固定长度的key,将得到的key作为该子地址数
据缓冲区描述太阳城集团在子地址状态表中的存储器地址,其中key的长度应与子地址状态表的
深度一致。

在FPGA逻辑中完成对每个子地址(子通道)下数据缓冲区的管理,子地址下缓冲区
采用一维链表管理方式,示意图如图3所示。在子地址对应的子地址状态表项中记录着该缓
冲区下数据缓冲区中头缓冲区地址,尾缓冲区地址,缓冲区个数等。在存储器中的每个缓冲
区中有单独区域存放缓冲区链表中下一数据缓冲区地址指针太阳城集团。新申请的数据缓冲区编
入链表尾部;头缓冲区数据使用后,释放该缓冲区并更新头缓冲区地址。

仿真数据的存入流程如图4所示,具体步骤如下:

步骤1,收到下行仿真数据包后提取节点地址,子地址太阳城集团;

步骤2,以节点地址,子地址太阳城集团作为输入参数,经哈希压缩映射算法得出子地址状态
表入口地址;

步骤3,在子地址状态表中进行匹配查找,若查找到匹配项,进行下一步;若未查找到匹
配项且该地址未被占用,则在此地址建立这个子地址的记录表项;若未查找到匹配项且该
地址已被占用,则根据冲突算法计算下一入口地址,然后重复步骤3;

步骤4,在待用缓冲区表中获取一个缓冲区地址,将仿真数据存入该数据缓冲区;若此
子地址下目前无缓冲区,则将此数据缓冲区地址作为缓冲区链表的头缓冲区地址;否则,将
此缓冲区加入缓冲区链表尾部,对应的操作是在当前尾缓冲区的特定描述区填入此缓冲区
地址,数据长度太阳城集团;

步骤5,将该数据缓冲区在缓冲区状态表中记录位置1;

步骤6,更新子地址状态表表项太阳城集团,包括头缓冲区地址,头缓冲区数据长度,尾缓冲区
地址,缓冲区个数等,若其中某项太阳城集团未变化可不更新。

仿真数据的读取流程如图5所示,具体步骤如下:

步骤1,收到仿真数据读取申请,提取节点地址,子地址太阳城集团;

步骤2,以节点地址,子地址太阳城集团作为输入参数,经哈希压缩映射算法得出子地址状态
表入口地址;

步骤3,在子地址状态表中进行匹配查找,若查找到匹配项,若子地址状态表表项中记
录的缓冲区个数为0,则返回错误太阳城集团,否则进行下一步;若未查找到匹配项且该地址未被
占用,则返回错误太阳城集团,此种情况表明该子地址下未建立缓冲区记录;若未查找到匹配项且
该地址已被占用,则根据冲突算法计算下一入口地址,然后重复步骤3;

步骤4,在子地址状态表项中获取头缓冲区地址,头缓冲区数据长度等太阳城集团,读取对应
外部存储器中缓冲区的数据,同时获得了下一数据缓冲区的地址;

步骤5,完成后释放该缓冲区,对应操作是将该数据缓冲区在缓冲区状态表中记录位置
0。

步骤6,更新子地址状态表表项太阳城集团,包括头缓冲区地址,头缓冲区数据长度,缓冲
区个数等。

通过本发明的仿真数据存储管理方法,可实现多节点,多子地址(子通道)仿真数
据的管理,支持的节点,子地址的数量主要由子地址状态表的深度决定,FPGA内Block ram
资源十分丰富,根据FPGA型号不同,可轻易实现几k到十几k深度,因此可实现几百到几千个
子地址的管理。同时每个子地址下的缓冲区实现动态分配,用完立即释放,存储器使用效率
非常高。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序
产品。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存
储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法和计算机程序产品的流程图和/或方框图
来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、
以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计
算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使
得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一
个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特
定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本发明进行各种
改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发
明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

关 键 词:
基于 FPGA 仿真 数据 存取 方法 装置
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:基于FPGA的仿真数据存取方法及装置.pdf
链接地址:http://zh228.com/p-6019694.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');