● 摘要
随着航天领域FPGA的广泛应用,为抗单粒子翻转效应使用三模冗余设计必不可少。在一次测试工作中,偶然发现由三模工具进行设计的FPGA软件发生了计数器失效的现象,本是为了提高安全性和可靠性的三模冗余可能沦为错误放大的机制,故针对三模冗余的错误分析、研究与测试方法具有实际应用意义。
本文先从自动三模冗余工具的设计机制出发,研究不同模式下的设计结构,并与传统三模冗余技术进行对比。
针对上述现象及结论,本文又提出了一种错误注入的动态测试方法,其中主要包括模判别算法、仿真算法及分解算法。其主要思想是将三模冗余设计后生成的网表中所有元件都转化为有向图中的节点,通过回溯路径并遍历节点的配置输入值来判断节点间关系是否功能相同,对驱动较多的节点采用分解算法将有向图拆分成子图进行分析,对子图中寄存器的配置输入进行组合遍历计算寄存器的值,从而确定寄存器是否对SEU敏感。这种测试方法将动态测试中的错误注入方法和静态测试中的网表功能点比对结合起来,并采用数学方法进行处理,大大降低了算法复杂度与测试时间成本。
对于提出的算法,使用自动三模冗余工具致计数器失效的网表对算法进行验证。继而分析出现自动三模工具致计数器计数使能及清零置位失效的现象,从而得出由于时钟抖动、三模校正机制及生成交叉网表等原因导致计数器失效的结论。并人工分析验证本文提出的算法可以对上述问题网表进行测试且可行。为了测试该算法的可行性与理论正确性,本文的最后还使用了Formality逻辑等效性分析工具进行静态测试及VCS仿真工具进行动态测试。
相关内容
相关标签