CN105630619A - 一种帧序列处理方法及系统 - Google Patents
一种帧序列处理方法及系统 Download PDFInfo
- Publication number
- CN105630619A CN105630619A CN201410844107.4A CN201410844107A CN105630619A CN 105630619 A CN105630619 A CN 105630619A CN 201410844107 A CN201410844107 A CN 201410844107A CN 105630619 A CN105630619 A CN 105630619A
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- configuration data
- section
- configuration
- 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.)
- Pending
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
在本发明中公开了一种帧序列处理方法,为存储至外部存储设备中的配置数据添加预先设计的关键命令字,对添加有关键命令字的配置数据进行数据帧分段;当反熔丝FPGA检测到所述外部存储设备输出的配置数据的数据值不满足预设输出条件时,依照所述配置数据中的关键命令字,依次对每一段数据帧进行处理,从而确定异常数据帧。应用本发明提供的帧序列处理方法,反熔丝FPGA以数据帧为单位,对存储在外部存储设备中的配置数据进行处理,相对于现有技术中整芯片配置数据的读取,在反熔丝FPGA资源容量有限的基础上,对资源容量的需求有很多大程度的降低,减少了资源空间的占用,数据处理速度有了很大的提升。
Description
技术领域
本发明涉及通信领域,特别涉及一种帧序列处理方法及系统。
背景技术
SRAM型FPGA在空间电子产品中的应用越来越广泛,然而在空间环境的电磁辐射影响下,基于SRAM的配置单元被射线击中时,可能发生数据“翻转”,导致FPGA程序运行错误,造成严重甚至灾难性的后果。
反熔丝FPGA由于其内部互连结构是防辐射的,不受电磁辐射的影响。目前一般通过反熔丝FPGA对SRAM型FPGA整芯片的配置数据进行全部回读,通过对配置数据的校验比对,确定发生“翻转”的数据,对数据进行修正。
发明人经过多次试验研究发现,反熔丝FPGA由于工艺限制,资源容量小,对SRAM型FPGA整芯片配置数据进行全部回读,会占用大量资源空间,造成数据处理缓慢。
发明内容
本发明所要解决的技术问题是提供一种帧序列处理方法及系统,能够对SRAM型FPGA的配置数据以帧序列的形式进行处理,数据处理速度快。
为了解决上述问题,本发明公开了一种帧序列处理方法,包括:
为保存至外部存储设备中的配置数据添加关键命令字;
依据预设的分段规则,对添加有关键命令字的配置数据进行数据帧分段;
当反熔丝FPGA检测到所述外部存储设备输出的配置数据的数据值不满足预设输出条件时,依照所述配置数据中的关键命令字,依次对每一段数据帧进行处理,确定异常数据帧。
上述的方法,优选的,所述关键命令字依据配置数据的数据结构进行添加;
每一个关键命令字具有与其相对应的时序操作方式;
所述反熔丝FPGA通过读取并更改所述关键命令字以实现对所述配置数据的时序更改。
上述的方法,优选的,所述对配置数据进行数据帧分段包括:
读取所述配置数据中的帧长度标识;
依据所述帧长度标识,从所述配置数据的数据帧头部开始,依次将所述配置数据划分为帧头段、帧数据段和帧尾段。
上述的方法,优选的,所述配置数据为将SRAM型FPGA的BIT流和MSK流合并后获得的流文件。
上述的方法,优选的,还包括:
为所述经过数据帧分段的配置数据中的每一帧数据添加首字节;所述首字节表示其所对应数据帧的存储地址。
上述的方法,优选的,所述预设输出条件为所述外部存储设备输出的配置数据的数据值为零;
所述依次对每一段数据帧进行处理,确定异常数据帧包括:
当所述外部存储设备输出的配置数据的数据值不为零时,判断所述外部存储设备当前的跳转状态,所述跳转状态包括:写操作、读操作、全局配置、刷新和回读;
当所述跳转状态对应全局配置、刷新或回读时,依照所述配置数据中的关键命令字,依次对所述配置数据的帧头段、帧数据段和帧尾段中的每一帧数据进行读取;
将读取的每一帧数据与其对应的初始帧数据进行比对,确定异常数据帧。
上述的方法,优选的,还包括:
依据所述配置数据对应的外部存储设备的三个备份地址,分别读出三个备份地址下的配置数据的帧头段、帧数据段和帧尾段中的每一帧数据。
一种帧序列处理系统,包括:
添加单元,用于为保存至外部存储设备中的配置数据添加关键命令字;
分段单元,用于依据预设的分段规则,对添加有关键命令字的配置数据进行数据帧分段;
处理单元,用于当反熔丝FPGA检测到所述外部存储设备输出的配置数据的数据值不满足预设输出条件时,依照所述配置数据中的关键命令字,依次对每一段数据帧进行处理,确定异常数据帧。
上述的系统,优选的,所述分段单元包括:
读取子单元,用于读取所述配置数据中的帧长度标识;
划分子单元,用于依据所述帧长度标识,从所述配置数据的数据帧头部开始,依次将所述配置数据划分为帧头段、帧数据段和帧尾段。
上述的系统,优选的,还包括:
合并单元,用于将SRAM型FPGA的BIT流和MSK流进行合并获得流文件。
与现有技术相比,本发明包括以下优点:
在本发明中公开了一种帧序列处理方法,主要针对SRAM型FPGA在空间电磁辐射影响下,发生数据“翻转”的配置数据的帧序列处理过程。本发明中,为存储至外部存储设备中的配置数据添加预先设计的关键命令字,对添加有关键命令字的配置数据进行数据帧分段;当反熔丝FPGA检测到所述外部存储设备输出的配置数据的数据值不满足预设输出条件时,依照所述配置数据中的关键命令字,依次对每一段数据帧进行处理,从而确定异常数据帧。应用本发明提供的帧序列处理方法,反熔丝FPGA以数据帧为单位,对存储在外部存储设备中的配置数据进行处理,相对于现有技术中整芯片配置数据的读取,在反熔丝FPGA资源容量有限的基础上,对资源容量的需求有很多大程度的降低,减少了资源空间的占用,数据处理速度有了很大的提升。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种帧序列处理方法的方法流程图;
图2是本发明的一种帧序列处理方法的一详细方法流程图;
图3是本发明的一种帧序列处理方法的一详细方法流程图;
图4是本发明的一种帧序列处理方法的一详细方法流程图;
图5是本发明的一种帧序列处理方法的一详细方法流程图;
图6是本发明的一种帧序列处理方法的一详细方法流程图;
图7是本发明的一种帧序列处理方法的对应的硬件架构图;
图8是本发明的一种帧序列处理方法的数据帧结构图;
图9是本发明的一种帧序列处理系统的系统结构图;
图10是本发明的一种帧序列处理系统的一详细系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种帧序列处理方法,具体的,是一种用于SRAM型FPGA在轨配置的帧序列处理方法,所述FPGA的在轨配置是指对SRAM型FPGA配置数据的基于帧的读出、比较、回写、全局加载和在轨重构加载。所述帧序列是指SRAM型FPGA的配置帧序列。以下对本发明提供的帧序列处理方法进行具体描述,所述方法流程图如图1所示,包括:
步骤S101:为保存至外部存储设备中的配置数据添加关键命令字;
本发明实施例中,设计一系列关键命令字,每一个命令字对应一个具体的时序操作方式,用于反熔丝FPGA产生SelectMAP的时序,实现配置时序的可编程。这些具有时序含义的命令字,通过软件手段合理的组织到整个配置数据流结构中。反熔丝FPGA在读取到这些命令字时即产生对应的时序动作。由此可见,本发明实施例中,所述关键命令字依据配置数据的数据结构进行添加;每一个关键命令字具有与其相对应的时序操作方式;所述反熔丝FPGA通过读取并更改所述关键命令字以实现对所述配置数据的时序更改。
步骤S102:依据预设的分段规则,对添加有关键命令字的配置数据进行数据帧分段;
参考图2,本发明中,所述对配置数据进行数据帧分段包括:
步骤S201:读取所述配置数据中的帧长度标识;
步骤S202:依据所述帧长度标识,从所述配置数据的数据帧头部开始,依次将所述配置数据划分为帧头段、帧数据段和帧尾段。
配置数据对应的数据帧中,具有表示数据帧长度的帧长度标识字节,在对数据帧进行分段的过程中,读取该字节,依据该字节及所述配置数据对应的外部存储设备类型,如寄存器类型,依次将所述配置数据划分为帧头段、帧数据段和帧尾段。
对于XilinxSRAM型FPGA,一个全局配置bit流文件如下:由于流文件较长,中间省略部分数据帧文件:
00000000h:00090FF00FF00FF00FF0000001610034;
00000001h:494F5F424F4152445F544F502E6E6364
.
.
.
00000070h:280F50FFFFFFFFAA9955662000000030;
.
.
.
00012e0h:000000300040005009FEA80000000000
本发明实施例中,数据帧00090FF0直到FFFFFFFF是工程以及时间信息,在bit流有这一段数据帧,而bin流没有这一段数据帧。本发明所定义的帧头段即是指从FFFFFFFFAA995566直到3000405009FEA8这一段数据帧。根据Xilinx的配置命令结构,09FEA8是整个有效配置帧的总长度(以字为单位)。从FFFFFFFFAA995566开始直到3000400050XXXXXX这一段数据就是本方法定义的帧头段。其中XXXXXX指具体的帧长度,根据不同的寄存器件是不同的。
在数据帧3000400050XXXXXX之后,数XXXXXX个字的距离后,中间的这一段数据就是本方法所定义的帧数据段。
Bit流还会剩下一段数据,剩下的这些称为帧尾段。
步骤S103:当反熔丝FPGA检测到所述外部存储设备输出的配置数据的数据值不满足预设输出条件时,依照所述配置数据中的关键命令字,依次对每一段数据帧进行处理,确定异常数据帧。
本发明中,反熔丝FPGA检测外部存储设备输出的配置数据的数据值,当所述数据值不满足预设输出条件时,结合配置数据中的关键命令字,对每一段数据帧进行处理,确定异常数据帧,具体实现过程参见本发明图3:
所述预设输出条件为所述外部存储设备输出的配置数据的数据值为零;
所述依次对每一段数据帧进行处理,确定异常数据帧包括:
步骤S301:当所述外部存储设备输出的配置数据的数据值不为零时,判断所述外部存储设备当前的跳转状态,所述跳转状态包括:写操作、读操作、全局配置、刷新和回读;
步骤S302:当所述跳转状态对应全局配置、刷新或回读时,依照所述配置数据中的关键命令字,依次对所述配置数据的帧头段、帧数据段和帧尾段中的每一帧数据进行读取;
步骤S303:将读取的每一帧数据与其对应的初始帧数据进行比对,确定异常数据帧。
本发明提供的帧序列处理方法,主要针对SRAM型FPGA在空间电磁辐射影响下,发生数据“翻转”的配置数据的帧序列处理过程。本发明中,为存储至外部存储设备中的配置数据添加预先设计的关键命令字,对添加有关键命令字的配置数据进行数据帧分段;当反熔丝FPGA检测到所述外部存储设备输出的配置数据的数据值不满足预设输出条件时,依照所述配置数据中的关键命令字,依次对每一段数据帧进行处理,从而确定异常数据帧。应用本发明提供的帧序列处理方法,反熔丝FPGA以数据帧为单位,对存储在外部存储设备中的配置数据进行处理,相对于现有技术中整芯片配置数据的读取,在反熔丝FPGA资源容量有限的基础上,对资源容量的需求有很多大程度的降低,减少了资源空间的占用,数据处理速度有了很大的提升。
本发明实施例中如图4所示,示出了时序处理的具体流程,经过处理后的帧序列在外部存储设备FLASH存储区和SRAM型FPGA之间的交互包括:回读、刷新、全局配置,结合图4及图7,其具体执行过程如下:
反熔丝FPGA中的状态机实时监测配置管理寄存器CONFIG_MANAGER的值,当其值不为零时,状态机进入判决状态ADJUDGE;
判决状态ADJUDGE根据配置管理寄存器CONFIG_MANAGER的值进行状态跳转。下级状态分为:写FLASH、读FLASH、全局配置、刷新、回读共五个状态;
对于写FLASH、读FLASH、全局配置、刷新、回读五个状态,写FLASH、读FLASH操作基本一致,直接跳到针对FLASH芯片的读写;基于FLASH中对配置数据帧及命令的排布,全局配置、刷新、回读三个状态操作一致,均历经帧头段、帧数据段、帧尾段后完成对配置数据的写入或读出;以下步骤按照全局配置为例进行描述,回读和刷新与此步骤类似;
进入全局配置状态FULL_CONFIG。在FULL_CONFIG状态下判断SMAP接口是否初始化完毕,如完成则进入FIRST_FRAME_HEAD状态机,否则等待。同时,在FULL_CONFIG状态下,Flash地址赋值Control_addr=Frame_Head_Addr(全局配置帧头段首地址);
FULL_CONFIG状态跳至FIRST_FRAME_HEAD(全局配置帧头段),在此状态下进行对FLASH三个基片地址Control_addr.的轮询累加(取3备份过程),数据读出后通过SelectMap接口写入FPGA。直到定位到Frame_Head_End_Addr(全局配置帧头段末地址),跳转至FRAME_HEAD_END全局配置帧头尾状态;
FIRST_FRAME_HEAD状态跳至FRAME_HEAD_END(全局配置帧头结束);地址赋值Control_addr=Frame_Data_Addr(全局配置数据帧首地址);
FRAME_HEAD_END状态跳至CONFIG_DATA(全局配置数据段),对FLASH三个基片地址Control_addr的轮询累加(取3备份过程),数据读出后通过SelectMap接口写入FPGA。直到定位到Frame_Data_End_Addr(全局配置数据段末地址);跳至下一状态CONFIG_DATA_END全局配置数据段结束;
CONFIG_DATA跳至CONFIG_DATA_END(全局配置帧数据段结束),并赋初值Control_addr=Frame_Terminal_Addr(全局配置帧尾段首地址);
CONFIG_DATA_END跳至FRAME_TERMINAL全局配置帧尾段,对FLASH三个基片地址Control_addr的轮询累加(取3备份过程),数据读出后通过SelectMap接口写入FPGA。直到定位到Frame_Terminal_End_Addr(全局配置帧尾段末地址);跳转至FRAME_END帧尾结束状态;
FRAME_END状态下等待最后一个数据操作结束,返回至IDEL(初始状态),否则等待。
由上可知,本发明实施例中,依据所述配置数据对应的外部存储设备的三个备份地址,分别读出三个备份地址下的配置数据的帧头段、帧数据段和帧尾段中的每一帧数据。依据所述三个备份数据及源数据进行校验对比,确定异常数据帧。
本发明实施例中,SelectMAP配置接口提供了一个和Virtex-4配置逻辑交互的8位双向数据总线接口,该接口能够实现配置和回读功能。用户对Virtex-4配置逻辑的操作,必须通过写入特定的命令序列实现。借鉴于这个概念,为了更通用的实现对配置回读时序的控制,本发明引用了若干扩展命令,用于反熔丝FPGA产生SelectMAP的时序,实现配置时序的可编程。
扩展命令集也是以32bit为单位,其中31:24bit为扩展命令的固定字,以CONTROL_CODE表示,23:04为保留字,默认为全0,03:00为扩展命令字。具体格式如下:
各字段的定义及解释如下:
固定字:CONTROL_CODE:用来指示该字是扩展命令8'hFE;
保留字:全0;
扩展命令字:
SMAP_IDEL4'h0
表示一个空操作,该命令允许SelectMAP接口出现时钟信号,但是数据线无意义,主要用于时序调整和回读时的排空占位或者刷新时的空闲帧操作;
CS_HIGH_TO_LOW4'h2
表示SelectMAP接口的CS片选信号由高变低;
CS_LOW_TO_HIGH4'h3
表示SelectMAP接口的CS片选信号由低变高;
CS_TOGGLE_HIGH4'h4
表示RDWR信号由低变高,为了避免RDWR信号在CS有效的情况下发生变化触发中止,设计了该命令;
CS_TOGGLE_LOW4'h5
表示RDWR信号由高变低,同上;
CONFIG_ADDR_SIG4'h7
该命令用来替换Xilinx的地址访问帧字。由于本发明是采用基于帧的算法,帧地址是由控制器FPGA内部实现,所以在回读和刷新过程中需要加载地址的地方由该命令替换,FPGA内部识别该命令重新加载正确的帧地址;
REALIGNED4'h9
由于需要频繁的对配置存储器进行操作,在每一帧之前首先需确保Virtex-4FPGA内部配置逻辑正常,该命令实现了重新同步配置逻辑的时序;
上述各个命令字的产生时序,如本发明实施例图5所示。
本发明实施例中,对于高级配置管理功能,下载流文件提供了帧头和帧尾信息,但是基于帧的回读和刷新功能没有提供相应的帧头和帧尾信息。基于扩展命令集,本发明对回读、刷新所用的命令操作及数据进行重组,将帧定义进行扩展化,即针对全局配置、回读和刷新,均有帧头、帧数据和帧尾的定义。这些帧头帧尾所定义的操作不使用反熔丝FPGA逻辑来实现,而是将其通过软件的手段生成类似下载流的流文件,存储在分配好的对应FLASH扇区中。反熔丝FPGA逻辑只需设计和FLASH器件的桥接通路,即可实时更新配置时序(通过更改时序命令字)和回读刷新命令字。由于不需要重新烧录反熔丝FPGA程序,在测试,调试,以及在线上注功能上具有极大的方便特性。
本发明实施例中,为所述经过数据帧分段的配置数据中的每一帧数据添加首字节;所述首字节表示其所对应数据帧的存储地址。
对于基于帧的配置回读校验功能来说,能够准确的定位帧地址是非常关键的。但如果将计算帧地址所需的各种参数全部缓存,用来计算帧地址,对于本就很紧张的反熔丝FPGA器件资源来说是得不偿失的。相比较而言,FLASH的空间足够大,本发明将每一帧对应的帧地址插入该帧之前,形成一个新的数据帧。此时的数据帧每帧的长度不再是41个字,而是42个字。在最后一帧的帧尾会插入第一帧的地址,使整个数据段形成一个环形地址链。
本发明实施例中,对于数据帧的重组及分割,基于全局配置的bit流帧头、帧数据和帧尾的概念及扩展命令集,本发明对回读、刷新所用的命令操作及数据进行重组,将帧定义进行扩展化,即针对全局配置、回读和刷新,均有帧头、帧数据和帧尾的定义。如图6所示,对原始的bit流文件、msk文件、高级配置管理操作回读和刷新所用到的专用命令字、以及自行设计的私有命令字进行糅合。通过软件的手段,最终生成利于存储的7个帧段,分别为:
全局配置帧头段:糅合了时序命令字和原始流文件配置帧头;
全局配置帧数据段:糅合了原始流文件配置数据和帧地址;
全局配置帧尾段:糅合了时序命令字和原始流文件配置帧尾;
回读帧头段:糅合了回读专用命令字和时序命令字;
回读帧尾段:糅合了回读专用命令字和时序命令字;
刷新帧头段:糅合了刷新专用命令字和时序命令字;
刷新帧尾段:糅合了刷新专用命令字和时序命令字;
对于这7个帧段的存储,并没用采用串行的方式,由于使用FLASH进行存储,所以以扇区为分段单位,这样利于添加新的命令字。
各帧段具体组成如下:
全局配置帧头段:
该段取自Bit流和Msk流合并拆分后的数据流,不添加任何扩展命令;
FRAME_HEAD_ADDR:用来指定该段的起始地址,默认为0x0;
FRAME_HEAD_END_ADDR:用来指定该段的结束地址;
全局配置帧数据段:
该段取自Bit流和Msk流合并拆分后的数据流,不添加任何扩展命令;
FRAME_DATA_ADDR:用来指定该段的起始地址,默认为0x10000;
FRAME_DATA_END_ADDR:用来指定该段的结束地址;
全局配置帧尾段:
该段取自Bit流和Msk流合并拆分后的数据流,不添加任何扩展命令;
FRAME_TERMINAL_ADDR:用来指定该段的起始地址,默认为0x3000;
FRAME_TERMINAL_END_ADDR:用来指定该段的结束地址;
局部回读帧头段:
该段根据扩展命令集生成回读时序的帧头段,其它采用Xilinx推荐的命令序列。
局部回读帧尾段:
在处理完局部回读帧头段之后,紧跟着会读出42个帧字,其中第一个必须弃掉,是缓存数据。回读数据和FLASH中存储的配置数据对齐后,可以进行三方比对。
局部刷新帧头段:
该段根据扩展命令集生成局部刷新时序的帧头段,其它采用Xilinx推荐的命令序列。
局部刷新帧尾段:
在配置逻辑处理完前面的局部刷新帧头段后,紧跟着会写入41个帧字的当前帧地址代表的配置数据,FLASH中的帧地址对应的时段无时钟。
该段根据扩展命令集生成局部刷新时序的帧尾段,其它采用Xilinx推荐的命令序列。
本发明实施例中,对于,数据帧地址的处理如下:
以Virtext-4FX60为例,其共有15976个配置帧,但是其地址位宽却有23位之多。根据其地址分配方式可知,这些帧地址并不连续,非线性地址。对于为了单粒子目的而设计的配置回读校验功能来说,能够准确的定位帧地址是非常关键的。但如果将计算帧地址所需的各种参数全部缓存,用来计算帧地址,对于本就很紧张的反熔丝FPGA器件资源来说是得不偿失的。相比较而言,FLASH的空间足够大,本发明将每一帧对应的帧地址插入该帧之前,形成一个新的数据帧。此时的数据帧每帧的长度不再是41个字,而是42个字。在最后一帧的帧尾会插入第一帧的地址,使整个数据段形成一个环形地址链。
如图8所示,左边每帧的帧长都为L,在每帧之前插入该帧的地址后,帧长变为L+1。这样每一帧的前后就分别对应了当前帧和下一帧的帧地址,需特别注意的是在最后一帧的末尾再插入首帧地址,这样就能构成一个环形地址链,利用此进行循环回读刷新操作。
本发明实施例中,所述配置数据为将SRAM型FPGA的BIT流和MSK流合并后获得的流文件。
在回读校验中,采取的方法是将原始BIT流和回读流在MSK的掩码下做3方比对,如果出错则说明发生了单粒子事件,此时就需要采取刷新或重加载措施。如果将BIT流和MSK流分别存放,势必会在设计实现中对数据寻址造成不必要的麻烦,本发明将BIT流和MSK流合并。具体方法如下:
本发明采用FLASH存储FPGA配置数据,合并的原则是:BIT流和MSK流各占位宽的一半,BIT字和MSK字对齐,以字为单位,按照从高位到低位的方式顺次排列。
举例如下,如果MSK字为0x12345678,BIT字为9ABCDEF0,
如果是8位宽的存储器位宽的话,排列方式如下。
0x0000----0x19
0x0001----0x2A
0x0002----0x3B
0x0003----0x4C
0x0004----0x5D
0x0005----0x6E
0x0006----0x7F
0x0007----0x80
按照上述步骤将Bit文件和Msk文件合并后会获得一个含有下载信息和掩码信息的流文件,为了存储以及回读刷新的需要,将这个混合流文件按照帧头段、帧数据段、帧尾段的概念拆分为3段。
对于回读,构建适合回读操作的帧头段和帧尾段,在回读操作中得到的回读数据最终会按照帧地址的MUX去和帧数据段的数据做比对。从而判断配置数据是否出错。
对于刷新,构建适合刷新的帧头段和帧尾段,在刷新过程中刷新的数据同样按照帧地址的MUX将帧数据段的数据下载进配置存储器中。
,与图1所示的帧序列处理方法相对应的,本发明实施例提供了一种帧序列处理系统,其结构示意图如图9所示,包括:
添加单元401,用于为保存至外部存储设备中的配置数据添加关键命令字;
分段单元402,用于依据预设的分段规则,对添加有关键命令字的配置数据进行数据帧分段;
处理单元403,用于当反熔丝FPGA检测到所述外部存储设备输出的配置数据的数据值不满足预设输出条件时,依照所述配置数据中的关键命令字,依次对每一段数据帧进行处理,确定异常数据帧。
参考图10,在图9的基础上,所述系统中,分段单元402包括:
读取子单元404,用于读取所述配置数据中的帧长度标识;
划分子单元405,用于依据所述帧长度标识,从所述配置数据的数据帧头部开始,依次将所述配置数据划分为帧头段、帧数据段和帧尾段。
所述系统中,还包括:
合并单元406,用于将SRAM型FPGA的BIT流和MSK流进行合并获得流文件。
本发明提供的帧序列处理系统,主要针对SRAM型FPGA在空间电磁辐射影响下,发生数据“翻转”的配置数据的帧序列处理过程。为存储至外部存储设备中的配置数据添加预先设计的关键命令字,对添加有关键命令字的配置数据进行数据帧分段;当反熔丝FPGA检测到所述外部存储设备输出的配置数据的数据值不满足预设输出条件时,依照所述配置数据中的关键命令字,依次对每一段数据帧进行处理,从而确定异常数据帧。应用本发明提供的帧序列处理系统,反熔丝FPGA以数据帧为单位,对存储在外部存储设备中的配置数据进行处理,相对于现有技术中整芯片配置数据的读取,在反熔丝FPGA资源容量有限的基础上,对资源容量的需求有很多大程度的降低,减少了资源空间的占用,数据处理速度有了很大的提升。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种帧序列处理方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种帧序列处理方法,其特征在于,包括:
为保存至外部存储设备中的配置数据添加关键命令字;
依据预设的分段规则,对添加有关键命令字的配置数据进行数据帧分段;
当反熔丝FPGA检测到所述外部存储设备输出的配置数据的数据值不满足预设输出条件时,依照所述配置数据中的关键命令字,依次对每一段数据帧进行处理,确定异常数据帧。
2.根据权利要求1所述的方法,其特征在于,所述关键命令字依据配置数据的数据结构进行添加;
每一个关键命令字具有与其相对应的时序操作方式;
所述反熔丝FPGA通过读取并更改所述关键命令字以实现对所述配置数据的时序更改。
3.根据权利要求1所述的方法,其特征在于,所述对配置数据进行数据帧分段包括:
读取所述配置数据中的帧长度标识;
依据所述帧长度标识,从所述配置数据的数据帧头部开始,依次将所述配置数据划分为帧头段、帧数据段和帧尾段。
4.根据权利要求3所述的方法,其特征在于,所述配置数据为将SRAM型FPGA的BIT流和MSK流合并后获得的流文件。
5.根据权利要求3所述的方法,其特征在于,还包括:
为所述经过数据帧分段的配置数据中的每一帧数据添加首字节;所述首字节表示其所对应数据帧的存储地址。
6.根据权利要求3所述的方法,其特征在于,所述预设输出条件为所述外部存储设备输出的配置数据的数据值为零;
所述依次对每一段数据帧进行处理,确定异常数据帧包括:
当所述外部存储设备输出的配置数据的数据值不为零时,判断所述外部存储设备当前的跳转状态,所述跳转状态包括:写操作、读操作、全局配置、刷新和回读;
当所述跳转状态对应全局配置、刷新或回读时,依照所述配置数据中的关键命令字,依次对所述配置数据的帧头段、帧数据段和帧尾段中的每一帧数据进行读取;
将读取的每一帧数据与其对应的初始帧数据进行比对,确定异常数据帧。
7.根据权利要求6所述的方法,其特征在于,还包括:
依据所述配置数据对应的外部存储设备的三个备份地址,分别读出三个备份地址下的配置数据的帧头段、帧数据段和帧尾段中的每一帧数据。
8.一种帧序列处理系统,其特征在于,包括:
添加单元,用于为保存至外部存储设备中的配置数据添加关键命令字;
分段单元,用于依据预设的分段规则,对添加有关键命令字的配置数据进行数据帧分段;
处理单元,用于当反熔丝FPGA检测到所述外部存储设备输出的配置数据的数据值不满足预设输出条件时,依照所述配置数据中的关键命令字,依次对每一段数据帧进行处理,确定异常数据帧。
9.根据权利要求8所述的系统,其特征在于,所述分段单元包括:
读取子单元,用于读取所述配置数据中的帧长度标识;
划分子单元,用于依据所述帧长度标识,从所述配置数据的数据帧头部开始,依次将所述配置数据划分为帧头段、帧数据段和帧尾段。
10.根据权利要求8所述的系统,其特征在于,还包括:
合并单元,用于将SRAM型FPGA的BIT流和MSK流进行合并获得流文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410844107.4A CN105630619A (zh) | 2014-12-30 | 2014-12-30 | 一种帧序列处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410844107.4A CN105630619A (zh) | 2014-12-30 | 2014-12-30 | 一种帧序列处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105630619A true CN105630619A (zh) | 2016-06-01 |
Family
ID=56045596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410844107.4A Pending CN105630619A (zh) | 2014-12-30 | 2014-12-30 | 一种帧序列处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105630619A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933303A (zh) * | 2019-02-28 | 2019-06-25 | 中国人民解放军陆军工程大学 | 一种多用户高速伪随机序列发生器电路及其工作方法 |
CN111950217A (zh) * | 2020-06-29 | 2020-11-17 | 北京理工大学 | Sram型fpga故障检测中关键帧地址范围定位方法 |
CN112732343A (zh) * | 2020-12-31 | 2021-04-30 | 中国电子科技网络信息安全有限公司 | 一种堆叠设备中业务子母板卡加载的方法 |
CN113592518A (zh) * | 2021-08-20 | 2021-11-02 | 杭州沃朴物联科技有限公司 | 基于编码规则的防伪溯源标签的生成和校验方法及应用 |
CN115314157A (zh) * | 2022-07-19 | 2022-11-08 | 烽火通信科技股份有限公司 | 一种以太网成帧方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814316A (zh) * | 2010-04-28 | 2010-08-25 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种静态存储型现场可编程逻辑门阵列的配置方法 |
CN101833513A (zh) * | 2010-04-22 | 2010-09-15 | 瑞斯康达科技发展股份有限公司 | 一种数据帧的存储方法、装置以及读取方法、装置 |
CN102508729A (zh) * | 2011-09-29 | 2012-06-20 | 中国航天科技集团公司第五研究院第五一三研究所 | Fpga内rom映射区动态刷新纠错方法 |
CN103500083A (zh) * | 2013-09-24 | 2014-01-08 | 航天恒星科技有限公司 | 一种基于命令字的fpga资源时序平衡方法 |
-
2014
- 2014-12-30 CN CN201410844107.4A patent/CN105630619A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833513A (zh) * | 2010-04-22 | 2010-09-15 | 瑞斯康达科技发展股份有限公司 | 一种数据帧的存储方法、装置以及读取方法、装置 |
CN101814316A (zh) * | 2010-04-28 | 2010-08-25 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种静态存储型现场可编程逻辑门阵列的配置方法 |
CN102508729A (zh) * | 2011-09-29 | 2012-06-20 | 中国航天科技集团公司第五研究院第五一三研究所 | Fpga内rom映射区动态刷新纠错方法 |
CN103500083A (zh) * | 2013-09-24 | 2014-01-08 | 航天恒星科技有限公司 | 一种基于命令字的fpga资源时序平衡方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933303A (zh) * | 2019-02-28 | 2019-06-25 | 中国人民解放军陆军工程大学 | 一种多用户高速伪随机序列发生器电路及其工作方法 |
CN109933303B (zh) * | 2019-02-28 | 2020-09-18 | 中国人民解放军陆军工程大学 | 一种多用户高速伪随机序列发生器电路及其工作方法 |
CN111950217A (zh) * | 2020-06-29 | 2020-11-17 | 北京理工大学 | Sram型fpga故障检测中关键帧地址范围定位方法 |
CN111950217B (zh) * | 2020-06-29 | 2022-10-14 | 北京理工大学 | Sram型fpga故障检测中关键帧地址范围定位方法 |
CN112732343A (zh) * | 2020-12-31 | 2021-04-30 | 中国电子科技网络信息安全有限公司 | 一种堆叠设备中业务子母板卡加载的方法 |
CN112732343B (zh) * | 2020-12-31 | 2022-04-22 | 中国电子科技网络信息安全有限公司 | 一种堆叠设备中业务子母板卡加载的方法 |
CN113592518A (zh) * | 2021-08-20 | 2021-11-02 | 杭州沃朴物联科技有限公司 | 基于编码规则的防伪溯源标签的生成和校验方法及应用 |
CN115314157A (zh) * | 2022-07-19 | 2022-11-08 | 烽火通信科技股份有限公司 | 一种以太网成帧方法及装置 |
CN115314157B (zh) * | 2022-07-19 | 2023-10-24 | 烽火通信科技股份有限公司 | 一种以太网成帧方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105630619A (zh) | 一种帧序列处理方法及系统 | |
US9367392B2 (en) | NAND flash memory having internal ECC processing and method of operation thereof | |
CN109085997A (zh) | 用于非易失性存储器的存储器高效持续键值储存 | |
US8862953B2 (en) | Memory testing with selective use of an error correction code decoder | |
WO2017080431A1 (zh) | 一种基于日志解析的数据库复制方法及装置 | |
US11232073B2 (en) | Method and apparatus for file compaction in key-value store system | |
CN115543871B (zh) | 数据存储方法及相关设备 | |
CN112307049A (zh) | 数据库的读写分离方法、装置、设备及可读存储介质 | |
US20150339424A1 (en) | Computing system automatically generating a transactor | |
CN104572917A (zh) | 数据锁定方法、装置及分布式存储系统 | |
CN112433777A (zh) | Sram型fpga的配置数据动态刷新方法及装置 | |
CN105868127A (zh) | 一种数据存储、读取方法及装置 | |
CN105528183A (zh) | 一种存储数据的方法及存储设备 | |
CN111752482A (zh) | 一种全闪存分布式存储系统中写数据的方法及系统 | |
CN105304128A (zh) | 储存数据数值在存储单元的方法及存储器 | |
CN106708445B (zh) | 链路选择方法及装置 | |
CN107515724A (zh) | 用于再现存储系统的输入输出的方法和设备 | |
CN108073709B (zh) | 一种数据记录的操作方法、装置、设备和存储介质 | |
CN115857811A (zh) | 一种数据处理方法、装置、固态硬盘及可读存储介质 | |
US8374040B2 (en) | Write bandwidth in a memory characterized by a variable write time | |
CN107562790A (zh) | 一种实现数据处理批量入库的方法和系统 | |
US20180314434A1 (en) | Nand flash storage device and methods using non-nand storage cache | |
CN114217744A (zh) | 使用影子寄存器的efuse储存内容分发方法及设备 | |
CN110389724A (zh) | 基于固态硬盘的parity page识别方法和装置 | |
CN112185455A (zh) | Sram通用测速电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160601 |