《社区大讲堂》DO-254中的高设计可靠性的逻辑综合(五)--冗余逻辑
[复制链接]
缺省的逻辑综合目标都是减小面积,提高性能,而冗余电路和这一目标刚好相反。设计中的任何冗余都使设计面积增加,性能降低。 因此,逻辑综合工具缺省的设置都是寻找优化的方法来减少冗余,而不会自动的认识到冗余对设计可靠性的好处。 之前提到过,有些应用是在太空中或是高空中,这里的射线能量比较强。
这都会产生电子噪声,信号产生跳变,以及一些信号值非正常的变化。高可靠性要求的设计应用必须重视这些情况,并采取一些技术来确保设计可靠性。
这些方法中包括加入冗余逻辑,而逻辑综合工具支持这种方法。 有一种冗余设计技术叫做三值冗余(TMR),TMR把一个信号,寄存器或者一个模块复制三份,然后比较三部分电路的输出,如果两个输出结果一致就判定为正确。这种做法会极大的增加面积,但是在真实系统中提供了失效时的高可靠性操作能力。
逻辑综合工具应该具备支持这种技术的能力。通过提供这种控制实现信号,寄存器,设计模块冗余逻辑的能力,使设计师在做性能需求和可靠性的平衡时更加灵活。
上电后初始化操作
FPGA通常被用在大系统上,作为一个部件来使用。在上电后,板上所有的器件都应该在正确的工作状态。这个过程可以通过一些初始化的程序来控制。每个元件的初始化状态应该在HDL中有所描述。
然而,HDL代码的初始化值是在综合时候需要处理还是只是为了仿真而做的初始化时很困难的。因为缺省的方法是为了优化时序和面积。
这样做的结果使HDL代码中寄存器的初始化过程被优化掉了。没有初始化电路有可能会导致功能上的错误。因此,需要逻辑综合的时候有一个选项能进行选择,使用户能够根据功能在设计中进行指定。这些都能引导综合工具对初始化的值进行处理,即使影响到设计的面积和性能也确保其不会被优化掉。
|