タイミング シミュレーション中にタイミング エラーが発生すると、デフォルトではラッチ、レジスタ、RAM またはその他の同期エレメントから X が出力されます。これは、実際の出力値が不明であるからです。この場合、レジスタの出力は次のいずれかになります。
- 前の値を保持
- 新しい値にアップデート
- メタステーブル状態 (同期エレメントにクロックが供給された後しばらく経たないと値が確定しない)
この値は決定できず、正確なシミュレーション結果は得られないので、エレメントから不明の値を示す X が出力されます。X 出力は次のクロック サイクルまで保持され、ほかに違反がなければ、次のクロック サイクルで供給された値により出力がアップデートされます。
X が出力されると、シミュレーションに大きく影響することがあります。たとえば、1 つのレジスタで X が生成されると、続くクロック サイクルで、その X がほかに伝搬され、テスト中のデザインの大部分が不明のステートになる可能性があります。
X が生成されないようにするには、次を実行します。
- 同期パスを解析し、このパスまたはほかのパスに関連したタイミング問題を修正して、回路が正しく動作するようにします。
- 非同期パスでタイミング違反を回避できない場合は、
ASYNC_REG
プロパティを使用して、タイミング違反が発生したときの同期エレメントによる X 伝搬をディスエーブルにします。
X 伝搬をディスエーブルにすると、レジスタの出力には前の値が保持されます。実際のシリコンでは、レジスタの値が新しい値に変更されることもあります。X 伝搬をディスエーブルにすると、シミュレーション結果がシリコンの動作とは一致しない可能性があります。
注意:
このオプションを使用する場合は注意が必要です。タイミング違反をこれ以外の方法で回避できない場合にのみ使用してください。