F为一个布尔函数,假定合 成后次关系时就变成了另一种形式 Q[n+1] = G( Q[n], x[n] )。 FV只证明了F函数和G函数相等,但是在实际电路上G( Q[n], x[n] )的计算是需要时间的, 这个时间必须小于一个系统时钟周期(再加上DFF的setup时间),而且这个时间必须大于DFF的 hold时间。如果这个不满足了那么前面的差分方程就不成立了。 假定硬件计算G( Q[n], x[n] )要花一个系统时钟多一点 (小于两个系而统时钟) 在DFF load , 新的值实际是:G( Q[n-1], x[n-1] ),有可能是G( Q[n-1], x[n] ),因为不同路径delay不同, 这样更糟糕} 所以在 RTL时关系式是: F( Q[n], x[n] )。 而实际电路为 G( Q[n-1], x[n-1] ), FV只证明了: F( Q[n], x[n] ) = G( Q[n], x[n] ) 而往往F( Q[n], x[n] ) != G( Q[n-1], x[n-1] ) 最后结论, Formal verification和static timing analysis 一个都不能少。做STA比做带 时序的门级仿真要省时省力多啦。