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# 63740

Vivado タイミング クロージャ – Vivado で見られるタイミング問題の解決方法提案

説明

このアンサーでは、Vivado で発生する タイミング違反の解決方法に関する提案を示します。

ソリューション

ファンアウトが多いことが原因で発生するタイミング違反 :

  • ファンアウトの多い信号の元の位置とグローバル バッファーをフロアプランして、LOC 制約を付けます。
  • ドライバーを複製し、合成ツールでその複製ロジックを削除されないように指定します。
  • リセット、セット、クロック イネーブルなど、制御信号以外の信号に対しては、合成に max_fanout を使用します。
  • ファンアウトで最適化を実行できる phys_opt_design を使用します。詳細は (Xilinx Answer 53986) を参照してください。

ステート マシン最適化が原因で発生するタイミング違反 :

  • ステートにワンホット エンコーディングを使用します。スピードを最適化するにはよい選択肢です。
  • 合成ステート マシン コーディング ツールを可能であれば使用します。
  • 入力信号の数を減らし、入力信号をプリデコードしておきます。
  • 入力および出力信号にレジスタを付けます。
  • カウンター値をプレデコードおよび保存します。
  • ステート マシンからデータ フローを削除し、制御信号を作成して、データ フローを制御します。
  • 多くのステート遷移の行われる箇所にステートを複製し、ステート等式のステート数を減らします。
  • IF-ELSE 文ではなく、CASE 文を使用します。

キャリー チェーンが長い場合の提案 :

  • 小型カウンターを使用してほかのカウンターを駆動し、最初のカウンターが 2 つ目のカウンターをイネーブルにするように、それらをカスケード接続します。

ロジック レベルに関する提案 :

これは、タイミング エンドポイント間にロジックが多すぎることを示唆する、合計パス遅延のある割合をロジックが超えてしまうケースを対象にしています。タイミング要件を満たすには、ロジックを低減する必要があります。

ロジック レベル数を低減するには、ソースに戻り次の方法を試してみてください。

  1. ステート マシン最適化の提案を考慮します。
  2. IF-ELSE 文ではなく CASE 文を使用します。
  3. 大型マルチプレクサではなく (入力が 7 以上の)、トライステートを使用します。
  4. 2 で乗算するのではなくシフトを使用します。
  5. コンパレータではなくデコーダを使用します。
  6. レジスタ周辺のロジックのバランスを取ってみます。
  7. シリアル インプリメンテーションではなく、括弧を使用しロジックをピラミッド化してみます。
  8. パイプライン レジスタを追加。
  9. IF-THEN-ELSE 文を次の目的にのみに使用します。
  • カウンター値のプレデコードおよび保存
  • 入力信号をプレデコードおよび保存するためのパイプライン段を追加
AR# 63740
日付 05/23/2016
ステータス アクティブ
種類 一般
ツール
このページをブックマークに追加