《社区大讲堂》DO-254中的高设计可靠性的逻辑综合(四)--优化
[复制链接]
优化的目的是使设计能够用尽可能小的,速度等级尽可能低的FPGA来实现设计。
综合工具尽可能优化设计,以减少面积,提升性能。
在许多情况下,
综合器会进行边界优化,资源共享以及流水线优化。 在做资源共享时,设计中的一些逻辑会被分时复用,这可能会降低时序性能,但是对减少面积利用率有好处。
边界优化是把用户的一些模块进行整合后进行整体优化,以得到更好的性能。流水线优化是通过移动流水线上的寄存器,来找到最佳的平衡点,使设计性能最优化。
因为优化是在逻辑综合时把设计从非优化状态做了一些转换,对设计安全性来讲,跟踪这些优化性能就显得非常重要。
一般的逻辑综合会生成一些优化的状态机,只保留有效的状态和状态转移,去掉无用的和不可能到达的状态,得到更小的,更快的状态机逻辑。
但是对可靠性要求比较苛刻的设计,逻辑综合需要重视射线的影响,例如会产生单寄存器翻转等状况。这种状况可能会造成状态机的某一位发生变化,使系统进入非法的,没有定义的不正确的状态。
在对可靠性要求比较苛刻的系统中,状态机必须在下一个时钟周期内恢复到一个有效的状态。从设计可靠性的角度来看,状态机有2n种可能的状态值需要指定。
逻辑综合工具要能提供可预测状态机的能力。更好的做法是从根本上防止单比特错误对系统的影响。
采用汉明编码的能进行错误校正的状态机可以做到这一点。
那些需要避免失效的应用和需要一些额外的奇偶校验位来进行容错的应用都会从这种机制中得到一些设计可靠性的好处。 根据设计的目标,综合工具能够自动的指定合适的状态机编码方式。例如,设计的目标是减少设计面积,二进制编码方式需要的逻辑电路最少。
然而,采用二进制编码会产生一些潜在的问题。
例如,由于辐射,某个状态位翻转使状态机进入非法状态。这种转移非常难以检测到。 另外,如果设计的目标是提高设计的时序性能,onehot编码方式设计时序性能最高。
但是这增大了设计面积,并会生成许多的状态位。
这些状态位会使状态机在面临非法转移时更脆弱。 对DO-254的设计来讲,设计师可能更愿意为状态机指定编码方式,来确保状态机操作保持可预测性。不管采用哪种编码方式,有限状态机的恢复逻辑需要设计检测和响应非法状态转移的机制。错误回复的实现可以通过多种方式,例如把状态机复位到某个指定的状态,或者把错误状态传递给全局控制器,使全局控制器可以重新同步起来。
在任何情况下,有良好的错误检测和恢复机制都能提高设计可靠性,而这正是DO-254的目标。
|