论文部分内容阅读
随着航天事业的迅猛发展,SRAM型FPGA(Field Programmable Gate Array)因其具有可重复编程、功耗低等众多优点得到广泛的应用。然而,太空环境中的高能粒子,如α粒子等,会使得敏感的SRAM单元发生单粒子翻转事件,进而导致软错误的发生,严重影响着航天系统的稳定性。软错误率作为衡量系统可靠性的重要指标,能够指导设计者进行有针对性地防护以提高系统整体可靠性。然而目前基于硬件的软错误率估计方法会消耗大量的财力,而蒙特卡洛法等基于软件的软错误率计算方法又不适合当前大规模的FPGA设计。为了降低成本,同时为了适应大规模的FPGA设计,本文系统地研究了FPGA的硬件设计方法,给出了基于XDL(Xilinx Design Language)文件的前向电路图生成算法,重点提出了一种轻量级的SRAM型FPGA软错误率计算方法。该方法可以同时模拟出地面实验和太空环境下FPGA设计的软错误率,能够满足我国对航天系统可靠性进行评估的迫切需求,对提高航天系统持续运行能力具有重大指导意义。本文的主要工作与贡献如下:(1)系统地分析了FPGA的优点及其基本结构,为后续的研究工作提供关键性的参考。然后归纳总结了FPGA的可编程技术,比较了各个编程技术间的优缺点,给出了SRAM型FPGA得到广泛应用的原因。然后,着重分析了FPGA的设计流程,指导后续XDL文件自动生成。最后,分析了基于VHDL(VHSIC Hardware Description Language)的设计划分方法,给出了具体的划分准则,得到了本文后续工作所需的功能模块。(2)提出了一套基于FPGA设计流程的XDL文件自动化生成系统。首先,将功能模块的VHD(VHSIC Hardware Description)文件及其附属文件作为系统输入进行分析。然后通过分析附属文件及当前功能模块的关系,自动生成PRJ文件和XST文件。最后通过在Linux下利用C++开辟进程,依次调用综合(xst)、翻译(ngdbuild)、映射(map)、布局布线(par)、xdl生成(xdl)命令执行自动化生成XDL文件的过程。(3)提出了一套基于XDL文件的前向电路图生成算法,结合XDL中的INST和NET两部分内容自动生成功能模块的前向电路图。首先,从XDL的INST部分分析出了功能模块的节点信息及节点内配置位的信息。然后从XDL的NET部分分析出了节点之间信号的传播流向信息。最后,利用节点配置信息和节点信号传播流向构建功能模块的前向电路图。该方法理论上可适用于所有型号的SRAM型FPGA器件。(4)给出了一套基于前向电路图分析的功能模块软错误率计算模型,从软错误的产生、传播两个方面分别阐述软错误率的计算机理。首先,分析了功能模块前向电路图中的各个节点的敏感配置位信息,并提出了模拟地面实验的单粒子翻转率计算方法,利用节点敏感配置位和单粒子翻转率计算功能模块的节点错误率(Node Error Rate,NER)。然后分析了软错误在前向电路图中的传播情况,提出了功能模块网表作用概率(Netlist Impact Probability,NIP)的计算方法。最后,结合NER和NIP计算得到了功能模块的软错误率,并通过实验结果验证了计算模型正确性。综上所述,本文的SRAM型FPGA的软错误率计算方法并未涉及到实际的硬件仿真,大大降低了财力消耗。另外,本文基于XDL文件的软错误率计算方法,对于不同规模的FPGA设计工程均可以进行简单、直接有效的分析,极大地提高了SRAM型FPGA软错误率计算的鲁棒性。最后,对本文进行了工作总结,并指出了后续的工作计划。