AR# 1644

8.1i PAR - MPPR (複数パスの配置配線)/ターン エンジン/ネットワーク PAR の設定およびデバッグ方法

説明

キーワード : PAR, multi, pass, turns, engine, implementation, place, route,インプリメンテーション,配置,配線,複数パス

MPPR (複数パスの配置配線) は、1 台のコンピュータ (シングル ノードの MPPR) または複数のワークステーション (マルチノードの MPPR) で配置配線 (PAR) を複数回実行することができる機能です。

これは、タイミング要件を間もなく満たすことができるデザインや、未配線が残り少なくなったデザインに対し配置配線のソリューションを提供する機能です。MPPR を実行すると、すべての信号は配線され、すべてのタイミング制約が満たされる配置が検出できるよう、配置が複数回実行されます。

ソリューション

入力ファイル :

シングルノード MPPR にはマップされた <design>.ncd のみが必要です。

マルチノード MPPR にはマップされた <design>.ncd および nodelist の 2 つのファイルが必要です。nodelist ファイルはユーザーが作成する ASCII ファイルでワークステーション名がリストされています。

同種/異種ネットワーク :

マルチノード MPPR は、すべての Solaris、またはすべての HP-UX で実行できます。

マルチノード MPPR は Solaris と HP-UX の混合 (異種) ネットワークでも実行することができます。ザイリンクス ソフトウェアおよびライセンス環境を実行する各プラットフォームの CSHRC ファイルで正しく設定する必要があります。使用するプラットフォームごとに異なる環境を設定するサンプルの CSHRC ファイルは以下を参照してください。リモート ノードは、起動ノードからでなはく、この CSHRC ファイルから環境変数を読み込むのでこの設定が必要です。

制限事項 :

MPPR はザイリンクス FPGA ファミリ (XC3000a、XC4000E、XC4000XL、Virtex) でのみ実行できます。CPLD (XC7000、XC9500) では実行できません。

シングル ノード MPPR は M1 リリースでサポートされているどのプラットフォームでも実行できますが、マルチノード MPPR は UNIX ワークステーションでのみ実行可能です。

実行中は各ノードでシングル ライセンスが使用されます。パラレルに実行できるノードの最大数は、使用可能なライセンス数に限られています。

各実行で同じパーツがターゲットになり、同じアルゴリズムおよびオプションが使用されます。起点またはコスト テーブルのエントリのみが変わります。

環境変数 :

- PAR_AUTOMNTPT - マルチノード MPPR では、ファイルにアクセスするためのネットワーク パス名が使用されます。デフォルトでは、指定入力ファイルへのネットワーク パスが PAR で作成されます。このとき自動マウントされているネットワークにはマウント点として「/net/<machine name>」が使用されているものと想定します。たとえば、ファイルへのローカル パス名は「/usr/ivan/designs/cpu.ncd」であるとします。PAR ではデフォルトで「/net/<machine name>/usr/ivan/designs/cpu.ncd」というネットワーク パス名が作成されます。

ネットワークが自動マウントされているが「/net/<machine name>」がマウント点として使用されていない場合、ネットワーク自動マウント点を設定するのに PAR_AUTOMNTPT 変数を使用することができます。ネットワーク自動マウント点に「/xyz/<machine name>」が使用されているネットワークの場合、PAR_AUTOMNTPT 変数を「xyz」に設定する必要があります。

ハードマウントされているネットワークの場合、PAR で生成されるデフォルト ネットワーク パスは有効ではありません。この場合、使用されているすべてのマシンで有効なディレクトリ パスから PAR を実行する必要があります。PAR_AUTOMNTPT 変数は「/」に設定する必要があります。これで、リモート マシンの自動マウント パスが PAR で生成されなくなり、代わりに「$PWD」が使用されます。または、PAR_AUTOMNTPT を 「""」に設定し、コマンド ラインで指定するすべてのファイルのフル パスを使用する方法もあります。

- PAR_AUTOMNTTMPPT - ほとんどのネットワークでは一時的なマウント点として「/tmp_mnt」が使用されます。ネットワークで一時的なマウント点に「/t_mnt」などの別の名前が使用される場合、PAR_AUTOMNTTMPPT 変数をこの名前に設定する必要があります。この例では、PAR_AUTOMNTTMPPT 変数を「/t_mnt」に設定します。PAR_AUTOMNTTMPPT のデフォルト値は「/tmp_mnt」です。この変数は、一時的なマウント点に「/tmp_mnt」を使用しない自動マウント ネットワークに対してのみ設定する必要があります。

- マルチノード MPPR はあるノードにログ オンしてから PAR を起動します。このノードの環境変数は CSHRC (または同等のもの) から読み出されます。ホストからノードには読み出されません。このため、すべてのザイリンクス環境変数を CSHRC に定義しておく必要があります。そうでないと、ノードの PAR プロセスでソフトウェアまたはライセンスを検出することができなくなります。

ISE 環境変数の設定方法は、(ザイリンクス アンサー 11630) を参照してください。

資料 :

MPPR の詳細はオンラインの資料を参照してください。dynatext ブラウザを起動するには、コマンド ラインに「dtext」と入力します。『開発システム リファレンス ガイド』の第 10 章「PAR」にあるターン エンジン (PAR マルチタスク オプション) のセクションを参照してください。

起動 :

- コマンド ライン => {次の 2 行で 1 コマンドを表します}
par -m <nodelist file> -n <# of iterations>
-s <# of iterations to save> <mapped design>.ncd <output directory>.dir

-m <nodelist file> = マルチノード MPPR のみで使用します(シングル ノード MPPR では割愛) 絶対ローカル パス名を使用します。

-n <# of iterations> = 配置配線パスの回数を指定します。

-s <# of iterations to save> = 最良結果のみが保存されます。

<mapped design>.ncd = 入力.ncd ファイル

<output directory>.dir = 最良結果が保存されているディレクトリ。配置配線された NCD ファイル、サマリ タイミング レポート (.dly)、ピン配置ファイル (.pad)、ログ ファイル (.par) を含むファイルです。

グラフィカル ユーザー インターフェイス :
1. Design Manager (dsgnmgr) を開きます。
2. Design Manager でプロジェクトを開きます。
3. バージョンを指定します。MPPR はリビジョンが選択されていると使用できません。
4. [Implement] → [FPGA Multi-Pass Place and Route] をクリックします。
5. ダイアログ ボックスで、実行回数を入力して保存します。開始ストラテジはアルゴリズムの起点を決定します。各 PAR プロセスが開始すると、開始ストラテジは 1 つずつ増えていきます。開始ストラテジによって配線およびタイミング結果は異なります。どの開始ストラテジが最良の結果を出すかを予測するのは不可能です。いろいろと試す必要があります。

シングル ノード MPPR の場合、nodelist フィールドは空白のままにしておきます。マルチノード MPPR の場合は、nodelist ファイルへのフル パスを入力します。

デバッグ :

マルチノード MPPR の場合、実行中にログ ウィンドウにメッセージが表示される場合があります。エラーはネットワークまたは環境変数に関連したものです。

ネットワーク :
nodelist ファイルにリストされているマシンにログオンできない場合があります。

- ping <machine name> を実行してみてください。「machine is alive」というメッセージが表示されるはずです。ping コマンドはパスでも実行できます (UNIX cmd: which ping)。パケット情報が返されたら、オプションなしに ping が実行されています。MPPR が機能するためには ping で「machine is alive」というメッセージが返される必要があります。

- rsh <machine name> でノードにログオンしてみてください。マシンにログオンできるはずです。できない場合は、rsh がパスにあることを確認します (UNIX cmd: which rsh)。rsh がパスにあるけれどログオンできない場合は、ネットワーク管理者に連絡してください。

- rsh <machine name> /bin/sh -c par でノードで PAR を起動してみてください。
これは PAR を起動するためマルチノード MPPR で使用するコマンドと同じです。このコマンドでうまくいった場合は、すべてが正しく <machine name> ノードに対し設定されています。

環境 :
ノードの環境を確認します。 - 問題のあるノードにログオンします (UNIX cmd: rsh <machine name>)。$XILINX, $LD_LIBRARY_PATH および $path 変数を確認します (UNIX cmd: echo $<variable name>)。これらの変数が正しく設定されていない場合は .cshrc ファイルでこれらが定義されていることを確認します。(メモ : .cshrc を読み込むときにエラーがありファイルの内容がすべて読み込まれない場合があります。.cshrc にある XILINX 環境変数が読み出される前にこれらのエラーを修正する必要があります。 )

「/bin/sh: par not found」 - このエラーは、.cshrc にある環境変数がノードにより正しく読み出されていないことを示しています。

サンプル ファイル:
-------------------------- .cshrc ファイルの一部 -------------------------------

# This is a comment.
# This setup enables the use of multi-node MPPR with homogeneous and heterogeneous networks: Solaris, SunOS, and HP-UX. When a login occurs, the bin type variable is set to the node platform, which then points the Xilinx environment variables to the platform-specific software and libraries.

if (!($?bintype)) then
set hosttype = `uname -s -r`
if ("$hosttype" =~ SunOS\ 4.1.[34]*) then
set bintype = sun
else if ("$hosttype" =~ SunOS\ 5.[45]*) then
set bintype = sol
else if ("$hosttype" =~ HP-UX\ [AB.0-9]*) then
set bintype = hp
else
echo "Unknown Hostype"
set bintype = unknown
endif
endif

setenv XILINX /products/xilinx/m1
setenv LD_LIBRARY_PATH ${XILINX}/bin/${bintype}:${LD_LIBRARY_PATH}
setenv LM_LICENSE_FILE /products/license/combined.flexlm:/xilinx/flex/license.dat
setenv XILINX_SERVER "license_server1;license_server2"
set path=($path ${XILINX}/bin/${bintype})

メモ : .cshrc ファイルには非インタラクティブなシェルに対し実行が終了された行が含まれていることがよくあります。たとえば次のような行が含まれています。

if ($?USER == 0 || $?prompt == 0) exit

ザイリンクス環境がこの行の前に設定されていない場合、リモート シェルに正しい環境が設定されていないため、すべてのマルチノード MPPR ジョブにはエラーが発生します。

.cshrc ファイルのこの行の後にすべての stty コマンドを記述する必要があります。そうでないと、ターン エンジンを実行中に「stty: Invalid Argument」というエラー メッセージが表示されます。

------------------------- nodelist file below --------------------------------
# This is a comment
# Note: machines are accessed by multi-node MPPR from top to bottom

# Sparc 20 machines running Solaris (SunOS 5.5)
kirk
spock
mccoy
krusher
janeway
picard

# Sparc 10 machines running SunOs (4.1.4)
michael
jermaine
marlon
tito
jackie

# HP's running HP-UX 9.05
william
george
ronald
jimmy
gerald
AR# 1644
日付 12/15/2012
ステータス アクティブ
種類 一般