系统与设计
的意见

疾病控制中心的问题

以及它如何影响DO-254项目

受欢迎程度

在DO-254中,规划过程的一部分是了解您需要并打算用于FPGA设计的适当FPGA工具和功能。特别是如果您的FPGA设备使用多个异步时钟,则需要使用高级验证技术来针对与时钟域交叉(cdc)相关的异常。

典型的用于功能模拟和静态时序分析的电子设计自动化(EDA)工具不足以揭示CDC效应,使系统在没有进一步专门分析的情况下面临故障风险。EDA工具通常集中于高效地实现和验证功能需求,但由于cdc是非功能性的,因此它们通常避开传统方法。

RTCA/DO-254指南对cdc有什么规定?简单的答案是什么都没有。该指南根本没有提到时钟域交叉。

但这意味着你不必担心吗?不,当然不是。

请记住DO-254是一个设计保证指南。RTCA/DO-254附录C第C-3页中“设计保证”的定义如下:

“所有这些有计划和系统的行动都被用于在足够的信心水平上证实设计错误已经被识别和纠正,从而使硬件满足应用认证基础。”

因此,作为将安装在通勤飞机上的FPGA设备的设计师,您肩负着巨大的责任,以确保您已经在足够的信心水平上消除了所有潜在的设计错误。如果FPGA设计有多个异步时钟,则应该考虑cdc的影响,并执行适当的缓解策略。当涉及到具有多个异步时钟的FPGA设计时,认证机构很可能会问您三个主要问题(见下文)。

在这篇博客中,我认为我可以帮助您学习一些重要的CDC概念,并概述CDC对FPGA设计的不良影响。

  • 你知道疾控中心的影响吗?
  • 你知道吗?标准的EDA模拟工具和静态分析工具(STA)不能检测CDC效果,因为它们是非功能性错误。
  • 你们计划如何减轻疾病控制与预防中心的影响?

cdc_012
图1:亚稳态的例子,由Altera提供

疾控中心的影响
cdc不可避免地出现在大型FPGA设计中。当逻辑跨越两个单独的时钟异步域之间的边界时,结果可能是不可预测的。如果时钟恰好校准正确,一切都好。当它们出现短暂的错位时,两种概率效应就会成为主要问题。

cdc是一种非功能性现象,由逻辑映射到FPGA的方式引起。与未缓解的cdc相关的两个问题是:亚稳态和数据不一致性。

亚稳度
亚稳态的原因是违反了寄存器的设置和保持时间,基于时钟信号到达寄存器的时间。根据半导体工艺和操作条件的不同,出现违规的寄存器可能会进入既不是二进制高也不是二进制低的不稳定状态,然后稳定后进入不正确状态。如图1所示,当时钟到达时,输入信号正在转换。输出不是像预期的那样输入一个坚定的逻辑,而是优柔寡断。在情况A中,经过时钟到输出的延迟后,它最终恢复到后时钟逻辑1。在情况B中,它恢复到时钟之前看到的逻辑0。在亚稳态寄存器恢复到正确或不正确的稳定水平之前,接收逻辑对输出的解释——在不同的目的地可能会看到不同的不稳定水平——可以在FPGA中快速传播坏结果。一个信号的不可预测性会导致安全风险。

cdc_021
图2 -数据不一致的例子,由弗吉尼亚理工大学提供

数据不一致
FPGA逻辑通常将几个信号组合在一起。当来自一个或多个源域的多个信号(甚至是单独同步的信号)同时发生变化时,就会发生数据不一致。在目标域中,一些数据在一个时钟上捕获,其余数据在下一个时钟上捕获。在图2中的简单示例中,Sig[1]和[2]都被正确捕获,而Sig[0]被遗漏。
其结果可能是无效的控制状态,从而导致系统范围的故障。

亚稳态和数据不一致性是cdc的两个主要影响,通常会导致数据向设计的其他部分传播不良。在航空电子系统中不发现缺陷的成本可能是巨大的,甚至会导致致命的故障。为了减少这种可能性,RTCA/DO-254《机载电子硬件设计保证指南》要求对设计进行彻底的验证和确认。

因此,在开始使用多个异步时钟的FPGA项目的DO-254规划过程之前,我强烈建议您阅读这篇关于cdc的白皮书,以及如何正确地减轻它们,在CDC问题找到你之前找到它们:DO-254合规性的高级CDC验证



留下回复


(注:此名称将公开显示)

Baidu