AR# 55165

MIG 7 Series DDR3、Vivado インプリメンテーション - MAX_FANOUT 属性の信号が重複しているため MIG コアのデバイス使用率が高くなり、MAX_FANOUT 属性の設定されている信号でタイミング違反が発生する

説明

問題の発生したバージョン : MIG 7 Series v1.9
修正バージョン : (ザイリンクス アンサー 54025) を参照

MIG 7 Series DDR3 デザインを Vivado デザイン ツールでインプリメントすると、デバイス使用率が異常に高くなり (ISE でインプリメントした場合よりも高い)、次のようなエラー メッセージが表示されタイミングを満たすことができません。

OUT_FIFO_X0Y9        OUT_FIFO (Prop_out_fifo_WRCLK_FULL)
                                     0.391     3.548 r  u_mig_7series_v1_9_a_0/u_memc_ui_top_std/mem_intfc0/ddr_phy_top0/u_ddr_mc_phy_wrapper/u_ddr_mc_phy/ddr_phy_4lanes_1.u_ddr_phy_4lanes/ddr_byte_lane_B.ddr_byte_lane_B/out_fifo/FULL
        net (fo=1817, routed)        5.267     8.815    u_mig_7series_v1_9_a_0/u_memc_ui_top_std/mem_intfc0/ddr_phy_top0/u_ddr_mc_phy_wrapper/u_ddr_mc_phy/ddr_phy_4lanes_1.u_ddr_phy_4lanes/ddr_byte_lane_B.ddr_byte_lane_B/of_pre_fifo_gen.u_ddr_of_pre_fifo/I1

この高いデバイス使用率およびタイミング違反は、MIG で生成された RTL 内の max_fanout 制約が原因です。max_fanout 制約は、ISE インプリメンテーションでは必要ですが、Vivado 合成ではタイミング違反およびフリップフロップの使用率が増加する原因となります。

ソリューション

Vivado ツールで MIG 7 Series デザインをインプリメントする場合、RTL の max_fanout 制約は削除できます。MIG で生成される多数の RTL モジュールに、多数の max_fanout 制約が含まれています。

このアンサーには、RTL デザインに含まれるすべての max_fanout 制約を検索し、RTL の max_fanout 制約に置き換わる XDC 制約を作成する Tcl スクリプトが添付されています。これを使用すると、RTL を手動でアップデートする必要がなくなります。

このアンサーの最後にある Tcl スクリプトをダウンロードし、次に説明する手順に従ってスクリプトを実行し、デザインをアップデートしてください。

  1. ダウンロードした mig_gen_max_fanout_xdc.tcl ファイルを Vivado プロジェクト ディレクトリ (プロジェクト ファイル .xpr が存在するディレクトリ) に保存します。
  2. 次のコマンドを実行します。かっこ内はコメントです。
    1. vivado project_name.xpr (Vivado プロジェクトを開く)
    2. open_run synth_1 name netlist_1 (合成済みデザインを開く)
    3. source ./mig_gen_max_fanout_xdc.tcl (Tcl プロシージャを読み込む)
    4. mig_gen_max_fanout_xdc (Tcl プロシージャをデフォルト設定で実行)


上記の手順を終了すると、max_fanout.xdc ファイルが作成されます。次の手順に従って、この制約ファイルを制約セットに追加し、デザインを再合成します。

  1. add_files fileset constrs_1 norecurse ./max_fanout.xdc (新しい制約ファイルをプロジェクト制約に追加)
  2. close_design (更新が必要となった合成済みデザインを閉じる)
  3. reset_run synth_1 (合成 run をリセット)
  4. launch_runs synth_1 jobs 4 (RTL の max_fanout 設定に置き換わる XDC の新しい max_fanout 制約を使用して合成を実行)
  5. launch_runs impl_1 jobs 4 (インプリメンテーションを実行)


上記の手順を実行した後に、2 回目の合成で削除されたネットに対してクリティカル警告が生成されることがあります。この警告は、存在しないネットに割り当てられている max_fanout に関するものなので、無視しても問題ありません。クリティカル警告が生成されたネットは、XDC ファイルから削除できます。

注記 : この Tcl スクリプトは、MIGcellFilter 引数に基づいて MIG で重複されたセルを検索します。デフォルトの MIG が MIA パスに含まれていない場合は、スクリプトを実行するため次のコマンドを実行します (手順 2.4 のかわり)。
mig_gen_max_fanout_xdc 30 XlnxMemoryController max_fanout.xdc

添付ファイル

関連添付ファイル

タイトル サイズ ファイルタイプ
55165.zip 953 Bytes ZIP

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
54025 MIG 7 Series - Vivado の IP リリース ノートおよび既知の問題 N/A N/A
AR# 55165
日付 10/28/2013
ステータス アクティブ
種類 既知の問題
デバイス
IP