UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 5255

SIMPRIM、タイミング シミュレーション - 「$setup」 および 「$hold」 違反について (VHDL, Verilog)

説明

キーワード : SIMPRIM, SIMPRIMS, timing, simulation, violations, $setup, setup, $hold, hold, errors, VHDL, Verilog, back-annotated, simulation, タイミング, シミュレーション, 違反, 設定, ホールド, エラー, バックアノテート

重要度 : 標準

概要 :
シミュレーションでのセットアップタイム違反またはホールドタイム違反が出ます。 どうすればよいですか。

ソリューション

セットアップ/ホールド タイム

特定のレジスタのセットアップまたはホールド タイム内でのレジスタ入力 (データまたはクロック イネーブル) での時間データに変更があった場合に、セットアップ タイムまたはホールド タイム違反がシミュレータで発生します。 セットアップ タイムまたはホールド タイム違反の典型的な原因は次のようになっています。

- このレジスタへのパスに制約が設定されていない。
- 使用しているテストベンチのスティミュラスで、デバイスのセットアップおよびホールド タイムが考慮されていない
- このレジスタに対するパスに制約は設定されているが、指定されたタイミング制約を満たしていない。
- パスに制約は設定されタイミングを満たすようにレポートされているが、クロック スキューは考慮されていない
- このレジスタに対するデータ パスが、非同期である。 (Xilinx Answer 15969) を参照。

タイミング制約の詳細については、http://support.xilinx.co.jp/xlnx/xil_tt_product.jsp?sProduct=Timing/Constraints より、テクニカル ヒント : タイミングと制約を参照してください。


セットアップ タイムまたはホールド タイム違反のデバッグにあたり考慮すべき点

制約が正しく設定されているか。
各デザインには、最低限 PERIOD、OFFSET IN、および OFFSET OUT 制約を設定する必要があります。

レジスタに入力されるすべてのパスに、デザインで追加したタイミング制約が設定されているか。
セットアップまたはホールド タイム違反が発生した場合のエラー メッセージで、レジスタのインスタンス名が表示されます。 このレジスタをデザインで見つけ出し、このレジスタから出力されるパスに制約が正しく設定されているかを確認してください。

シミュレーションでのクロック スピードが、タイミング制約が設定された場合のクロック スピードと一致しているか。

このパスはデバイスへの入力パスか。 入力パスである場合、クロックおよびデータ間の外部のセットアップ タイムが OFFSET IN 制約が設定された場合のセットアップ タイムと一致しているか。

クロック スキューは、解析されるか。
6.1i では、クロック スキューは自動解析されます。 6.1i 以前のバージョンでは、クロック スキューを解析するにはスキュー オプションを使用して TRCE を実行してください。 スキューは、シミュレーションでモデル化されます。

データ パスはクロック境界 (あるクロック周波数から別のクロック周波数へ) を超えるか。 これらのクロックは互いに同期しているか。 これらのクロック間に認識可能なクロック スキューはあるか。
セットアップ タイムの違反がさけられず、このパスが非同期な場合は、(Xilinx Answer 15969) を参照してください。

上記の質問への答えを考慮すれば、セットアップ/ホールド タイム違反の原因を断定できるきっかけとなります。 また、シミュレーションがうまくいくようにデザインに変更を加える必要が出てきます。

上記の答えを考慮しても原因がわからない場合は、シミュレーションでパスをさかのぼって調べ、原因を究明する必要があります。
1. デザインの階層を参照し、セットアップ違反が発生したレジスタに接続された信号を追加します。
2. セットアップ違反が発生した信号を検出し、そのパスに戻って調べます。
3. セットアップ タイムの違反の原因となったパッドまたは同期エレメントを指定できるまでパスをさかのぼって調べます。 コンポーネントに入力が、1 つ以上含まれている場合は、アクティブなドライバ (例 最後に変更した入力) をさかのぼって調べます。
4. これで、違反の原因を検出し、指定したソースおよびデスティネーション間のタイミングを解析できるようになります。 これで、問題は解決できるはずです。
AR# 5255
作成日 08/21/2007
最終更新日 02/18/2013
ステータス アクティブ
タイプ 一般