一种基于码流预处理的智能刷新控制方法与流程

文档序号:13767425阅读:147来源:国知局

本发明涉及一种基于码流预处理的智能刷新控制方法,特别适用于恢复宇航用SRAM型FPGA发生的空间单粒子翻转故障,属于集成电路技术领域。



背景技术:

SRAM型FPGA的基本结构如图5,其中主要的功能模块包括:四周一圈的输入输出模块(IOB)、边沿两列块存储器(BRAM)、内部的可编程逻辑块阵列(CLB),除此以外,还有遍布整个电路连接各个模块的互联资源。上述逻辑资源和互联资源都由下层SRAM配置位控制。大量的遍布FPGA电路的SRAM配置位决定了FPGA电路的具体功能,这些配置位的码流集合即被称为码流(bitstream)。在进行配置后,FPGA内部分资源用于构建用户所需的功能,而其他资源处于闲置状态,此时对应这些闲置资源的配置位处于空闲状态,因此生成的码流中有一定量的无用冗余数据。

空间辐射环境对空间飞行器的电子产品有着严重的影响,当SRAM型FPGA在空间环境应用时,空间高能粒子会穿透FPGA器件内部并在路径上产生电离,从而引起电路节点上瞬时电流干扰而导致电路错误,这种效应就是空间单粒子翻转效应,配置位状态的翻转可能导致SRAM型FPGA信息丢失和功能失效,引发系统故障。目前系统级用于避免数字电路单粒子翻转效应的技术主要为刷新技术,其思路为在发生翻转后恢复最初的编程信息,刷新的效果由刷新的频率决定,当刷新的频率越高,其纠正单粒子翻转的能力也就越强。目前主流的刷新方法有:逐帧刷新以及回读刷新两种。逐帧刷新是将完整码流逐帧刷入到待刷新FPGA中,该刷新方法实现简单,但由于码流中有大量的无意义数据,导致刷新效率较低;回读刷新的原理是通过回读待刷新FPGA中的码流,将回读得到的码流与正确码流进行逐帧比对,检测出其中错误的码流数据帧,通过刷新的方法,仅对错误的码流数据帧进行纠正,该方法由于需要对待刷FPGA进行回读操作,实现复杂,且实际刷新频率与逐帧刷新的频率接近,因此实用性不强。



技术实现要素:

本发明的目的在于克服现有技术的上述缺陷,提供一种基于码流预处理的智能刷新控制方法,该方法能够在不增加额外功耗和不提高刷新主频时钟的基础上,提高实际刷新频率,从而提高待刷SRAM型FPGA器件的抗单粒子翻转能力。

本发明的上述目的主要是通过如下技术方案予以实现的:

一种基于码流预处理的智能刷新控制方法,将码流存储器中的码流读出,对所述码流的数据帧进行实时筛选,剔除其中的无效码流数据帧,将剩余的有效码流数据帧实时写入码流存储器的剩余空间,在需要刷新时读取码流存储器中的所述有效码流数据帧,对FPGA进行刷新。

在上述基于码流预处理的智能刷新控制方法中,对所述码流的数据帧进行实时筛选,剔除其中的无效码流数据帧,将剩余的有效码流数据帧实时写入码流存储器的剩余空间的具体实现方法包括如下步骤:

(1)、获取待刷新FPGA的码流规模和最小码流单位的长度;

(2)、检测从码流存储器读出的全部码流,当检测到码流中待刷新FPGA的配置起点时,从配置起点之后的所有码流作为完整码流;

(3)、根据FPGA的最小码流单位长度对所述完整码流实时进行逐帧筛选,具体方法为:

(a)判断从码流存储器中读出的一帧数据是否为无效码流数据帧,若是,则将其剔除,否则记录当前有效码流数据帧的帧地址,并将所述帧地址与所述有效码流数据帧写入码流存储器的剩余空间中,并进入步骤(b);

(b)、根据FPGA的码流规模判断是否所述完整码流全部处理完毕,若处理完毕则在向码流存储器中写入最后一帧有效码流数据帧后,继续向码流存储器中写入结束标志,并结束码流处理,否则,重复步骤(a)。

在上述基于码流预处理的智能刷新控制方法中,步骤(3)的(a)中判断从码流存储器中读出的一帧数据是否为无效码流数据帧的方法为:判断该码流数据帧是否全为0,若是,则为无效码流数据帧,否则,则为有效码流数据帧。

在上述基于码流预处理的智能刷新控制方法中,步骤(3)的(a)中,将所述帧地址与所述有效码流数据帧写入码流存储器的剩余空间中的格式为{32位帧地址,有效码流数据帧}。

在上述基于码流预处理的智能刷新控制方法中,在需要刷新时读取码流存储器中的所述有效码流数据帧,对FPGA进行刷新的具体方法如下:

(1)、读取码流存储器中存储的两个有效码流数据帧;

(2)、向待刷新FPGA中打入刷新开始命令;

(3)、检测所述读取的两个有效码流数据帧的帧地址是否相邻,若相邻,则进入步骤(4),若不相邻,则进入步骤(5);

(4)、向待刷新FPGA中打入帧地址较小的有效码流数据帧,同时从码流存储器中读取下一个有效码流数据帧,并判断所述读取的有效码流数据帧是否为结束标志,若是,则进入步骤(6),若不是,则返回步骤(3);

(5)、向待刷新FPGA中打入帧地址较小的有效码流数据帧,并打入刷新结束命令和刷新开始命令,同时从码流存储器中读取下一个有效码流数据帧,并判断所述读取的有效码流数据帧是否为结束标志,若是,则进入步骤(6),若不是,则返回步骤(3);

(6)、向待刷新FPGA中打入结束标志之前的最后一帧有效码流数据帧,并打入刷新结束命令,结束整个刷新过程。

在上述基于码流预处理的智能刷新控制方法中,通过刷新控制系统实现,所述刷新控制系统包括码流存储器、刷新模块和FPGA,所述刷新模块将码流存储器中的码流读出,对所述码流的数据帧进行实时筛选,剔除其中的无效码流数据帧,将剩余的有效码流数据帧实时写入码流存储器的剩余空间,在需要刷新时,刷新模块读取码流存储器中的所述有效码流数据帧,对FPGA进行刷新。

在上述基于码流预处理的智能刷新控制方法中,刷新模块包括读写模块、码流预处理模块和刷新控制模块,其中读写模块将码流存储器中的码流读出,并发送给码流预处理模块,码流预处理模块对所述码流的数据帧进行实时筛选,剔除其中的无效码流数据帧,将剩余的有效码流数据帧实时发送给读写模块,读写模块将所述有效码流数据帧写入码流存储器的剩余空间,在需要刷新时,读写模块读取码流存储器中的所述有效码流数据帧,并发送给刷新控制模块,刷新控制模块对FPGA进行刷新。

在上述基于码流预处理的智能刷新控制方法中,读写模块将码流存储器中的码流读出,并发送给码流预处理模块,码流预处理模块对所述码流的数据帧进行实时筛选,剔除其中的无效码流数据帧,将剩余的有效码流数据帧实时发送给读写模块,读写模块将所述有效码流数据帧写入码流存储器的剩余空间的具体实现方法包括如下步骤:

(1)、码流预处理模块获取待刷新FPGA的码流规模和最小码流单位的长度;

(2)、读写模块将码流存储器中的全部码流读出,并发送给码流预处理模块,码流预处理模块检测读入的全部码流,当检测到码流中待刷新FPGA的配置起点时,从配置起点之后的所有码流作为完整码流。

(3)、码流预处理模块根据FPGA的最小码流单位长度对所述完整码流实时进行逐帧筛选,具体方法为:

(a)码流预处理模块判断从码流存储器中读出的一帧数据是否为无效码流数据帧,若是,则将其剔除,否则记录当前有效码流数据帧的帧地址,并将所述帧地址与所述有效码流数据帧发送给读写模块,读写模块将所述帧地址与所述有效码流数据帧写入码流存储器的剩余空间中,并进入步骤(b);

(b)、码流预处理模块根据FPGA的码流规模判断是否所述完整码流全部处理完毕,若处理完毕则在向码流存储器中写入最后一帧有效码流数据帧后,继续向码流存储器中写入结束标志,并结束码流处理,否则,重复步骤(a)。

在上述基于码流预处理的智能刷新控制方法中,步骤(3)的(a)中判断从码流存储器中读出的一帧数据是否为无效码流数据帧的方法为:判断该码流数据帧是否全为0,若是,则为无效码流数据帧,否则,则为有效码流数据帧。

在上述基于码流预处理的智能刷新控制方法中,在需要刷新时,读写模块读取码流存储器中的所述有效码流数据帧,并发送给刷新控制模块,刷新控制模块对FPGA进行刷新的具体方法如下:

(1)、读写模块读取码流存储器中存储的两个有效码流数据帧,并发送给刷新控制模块;

(2)、刷新控制模块向待刷新FPGA中打入刷新开始命令;

(3)、刷新控制模块检测从读写模块接收的两个有效码流数据帧的帧地址是否相邻,若相邻,则进入步骤(4),若不相邻,则进入步骤(5);

(4)、刷新控制模块向待刷新FPGA中打入帧地址较小的有效码流数据帧,同时读写模块从码流存储器中读取下一个有效码流数据帧,并发送给刷新控制模块,刷新控制模块判断所述读取的有效码流数据帧是否为结束标志,若是,则进入步骤(6),否则返回步骤(3);

(5)、刷新控制模块向待刷新FPGA中打入帧地址较小的有效码流数据帧,并打入刷新结束命令和刷新开始命令,同时读写模块从码流存储器中读取下一个有效码流数据帧,并发送给刷新控制模块,刷新控制模块判断读取的有效码流数据帧是否为结束标志,若是,则进入步骤(6),若不是,则返回步骤(3);

(6)、刷新控制模块向待刷新FPGA中打入结束标志之前的最后一帧有效码流数据帧,并打入刷新结束命令,结束整个刷新过程。

本发明与现有技术相比具有如下有益效果:

(1)、本发明创新性地提出一种基于码流预处理的智能刷新控制方法,通过将无效数据在对FPGA进行刷新前全部剔除,仅进行有效数据的刷新,显著压缩了刷新时传输的数据量,从而能够在不提升刷新主频时钟的前提下有效缩短实际刷新周期,提高实际刷新频率,从而提高待刷SRAM型FPGA器件的抗单粒子翻转能力;

(2)、本发明方法相对于其他外部刷新方案,无任何额外功耗,且无其他额外硬件开销,能够在不增加额外功耗的基础上,显著提高实际刷新频率,从而提高待刷新SRAM型FPGA器件的抗单粒子翻转能力。

(3)、本发明实现方法简单方便、易于实现,具有较强的实用性。

附图说明

图1为本发明基于码流预处理的智能刷新控制方法流程图;

图2为本发明刷新控制系统结构示意图;

图3为本发明码流预处理方法流程图;

图4为本发明码流控制方法流程图;

图5为SRAM型FPGA的基本结构图.

具体实施方式

下面结合附图和具体实施例子对本发明作进一步详细的描述:

如图2所示为本发明刷新控制系统结构示意图,本发明刷新控制方法通过刷新控制系统实现,由图可知刷新控制系统包括码流存储器、刷新模块和FPGA,其中刷新模块将码流存储器中的码流读出,对所述码流的数据帧进行实时筛选,剔除其中的无效码流数据帧,将剩余的有效码流数据帧实时写入码流存储器的剩余空间,在需要刷新时,刷新模块读取码流存储器中的所述有效码流数据帧,对FPGA进行刷新。

其中刷新模块包括读写模块、码流预处理模块和刷新控制模块,其中读写模块将码流存储器中的码流读出,并发送给码流预处理模块,码流预处理模块对所述码流的数据帧进行实时筛选,剔除其中的无效码流数据帧,将剩余的有效码流数据帧实时发送给读写模块,读写模块将所述有效码流数据帧写入码流存储器的剩余空间,在需要刷新时,读写模块读取码流存储器中的所述有效码流数据帧,并发送给刷新控制模块,刷新控制模块对FPGA进行刷新。

读写模块主要用于:在系统上电和进行刷新时提供FPGA配置和刷新所需的连续不断的码流数据,并将码流预处理模块处理发送过来的有效码流数据帧存入码流存储器中;在刷新模块对待刷新FPGA进行刷新时,读写模块读取码流存储器中的帧地址及有效码流数据帧,并能够根据需求暂停或继续读取码流存储器中的有效码流数据帧。

如图1所示为本发明基于码流预处理的智能刷新控制方法流程图,本发明基于码流预处理的智能刷新控制方法具体包括如下步骤,

(1)、码流预处理模块获取待刷新FPGA的码流规模和最小码流单位(帧)的长度;

(2)、读写模块将码流存储器中的全部码流读出,并发送给码流预处理模块,码流预处理模块实时检测读入的全部码流,当检测到码流中待刷新FPGA的配置起点时,从配置起点之后的所有码流(不包括配置起点)作为完整码流。

(3)、码流预处理模块根据FPGA的最小码流单位长度对所述完整码流进行逐帧实时筛选,具体方法为:

(a)码流预处理模块判断从码流存储器中读出的一帧数据是否为无效码流数据帧,若是,则将其剔除,否则记录当前有效码流数据帧的帧地址,并将所述帧地址与所述有效码流数据帧发送给读写模块,读写模块将所述帧地址与所述有效码流数据帧写入码流存储器的剩余空间中,并进入步骤(b);

判断从码流存储器中读出的一帧数据是否为无效码流数据帧的方法为:判断该码流数据帧是否全为0,若是,则为无效码流数据帧,否则,则为有效码流数据帧。

将所述帧地址与所述有效码流数据帧写入码流存储器的剩余空间中的格式为{32位帧地址,有效码流数据帧}。

(b)、码流预处理模块根据FPGA的码流规模判断是否所述完整码流全部处理完毕,若处理完毕则在写入最后一帧有效码流数据后,写入结束标志,并结束码流处理,否则,重复步骤(a)。如图3所示为本发明码流预处理方法流程图。

(4)、在需要刷新时,读写模块读取码流存储器中的所述有效码流数据帧,并发送给刷新控制模块,刷新控制模块对FPGA进行刷新,如图4所示为本发明码流控制方法流程图;具体方法包括如下步骤:

(4.1)、读写模块读取码流存储器中存储的两个有效码流数据帧,例如码流数据帧A、B,并发送给刷新控制模块。

(4.2)、刷新控制模块向待刷新FPGA中打入刷新开始命令;

(4.3)、刷新控制模块检测从读写模块接收的两个有效码流数据帧的帧地址是否相邻,例如码流数据帧A、B,若相邻,则进入步骤(4.4),否则进入步骤(4.5);

(4.4)、刷新控制模块向待刷新FPGA中打入帧地址较小的有效码流数据帧,例如有效码流数据帧A,同时读写模块从码流存储器中读取下一个有效码流数据帧,例如码流数据帧C,并发送给刷新控制模块,刷新控制模块判断所述读取的有效码流数据帧C是否为结束标志,若是,则进入步骤(4.6),否则返回步骤(4.3),由刷新控制模块检测两个有效码流数据帧B、C的帧地址是否相邻。

(4.5)、刷新控制模块向待刷新FPGA中打入帧地址较小的有效码流数据帧,例如有效码流数据帧A,并打入刷新结束命令和刷新开始命令,同时读写模块从码流存储器中读取下一个有效码流数据帧C,并发送给刷新控制模块,刷新控制模块判断读取的有效码流数据帧C是否为结束标志,若是,则进入步骤(4.6),否则返回步骤(4.3),由刷新控制模块检测两个有效码流数据帧B、C的帧地址是否相邻。

(4.6)、刷新控制模块向待刷新FPGA打入结束标志C之前的最后一帧有效码流数据帧B,并打入刷新结束命令,结束整个刷新过程。

步骤(4.6)在实际处理时,需要判断是否进行FPGA的完整码流刷新,若否,则跳转到步骤(4.1)继续进行刷新,若是,则从码流存储器中读取完整码流进行完整码流刷新后跳转到步骤(4.1)。

实施例

以刷新Xilinx公司生产的XC2V1000型FPGA为例,当使用本发明方法进行刷新时,先通过JTAG端口或者SelectMAP回读IDcode,识别出为XC2V1000型FPGA,并确定一帧的数据长度为32*106bits,完整码流长度为4089504bits;从存储器中读取完整码流,对XC2V1000进行配置,同时对码流进行处理,得到有效码流数据为:第i帧数据{0011……0110},第i+1帧数据{1001……0100},第i+5帧数据{0000……1000},将这些数据以{i,0011……0110},{i+1,1001……0100},{i+5,0000……1000}的格式依次存入存储器4089504bits之后的位置,并写入标志结束的特殊数据{0,665599AA……};在刷新时,读取存储器中4089504之后的位置中的数据,首先读取的是{i,0011……0110},{i+1,1001……0100},校验帧地址后,由于i与i+1相邻,因此先向XC2V1000中打入部分可重配开始命令,并打入帧地址较小的第i帧数据,此时读入{i+5,0000……1000}到寄存器中;检查寄存器中的数据地址,因i+1与i+5不相邻,此时打入i+1帧数据,并打入部分可重配结束命令;读入下一帧数据,为{0,665599AA……},检测为标志结束的数据,此时打入部分可重配开始命令,并打入第i+5帧数据,打入部分可重配结束命令,并结束刷新;重复以上过程,直到需要进行一次完整码流刷新;进行一次完整码流刷新后,继续进入刷新流程。

以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1