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

4.1i Virtex-II PAR - Virtex-II デザイン時の PC のメモリの使われ方

説明

キーワード : memory, out, leak,メモリ,不足,リーク

重要度 : 標準

概要 :
4.1i のタイミング アルゴリズムでメモリ リークがあり、実際より大きなメモリが使用されます。 MPPR を実行時に、メモリの使用量が増加し、PAR を何度か実行した後、「メモリ不足エラー」が発生し処理が停止します。

ソリューション

1

4.1i のサービス パック 3 でこの問題はほとんど解決されています。さらに 4.2i では、少量のリークに関しても解決される予定です。

サービス パックは次のサイトから入手できます。
http://support.xilinx.co.jp/support/techsup/sw_updates

2

サービス パックでの修正に加え、次の方法で PAR 時のメモリの使用量を減らすことができます。

現在の 32 ビット OS (Windows2000、NT、XP) では各プロセスで 2GB を超えるメモリは処理できません。 デザインで 2GB を超えるメモリを使用しようとすると、メモリ不足エラーが発生します。 これは普通、最初にタイミング分析を実行したとき、または PAR の配線時に発生します。
次にメモリの使用量を減らし、デザインで使用されるメモリの量が上限である 2GB を超えないようにする方法を示します。

1. タイミング制約に注目する
デザイン内のパスの分析量を減らすと、使用されるメモリの量が減ります。またランタイムも短縮されます。 制約を個別に分析せずに、タイム グループを作成し、それに対して 1 つの制約を付けます。 パスに対して必要以上に厳しい制約を付けないようにします。たとえば、PERIOD 制約ではなく FROM(THRU)TO 制約を使用します。

2. TIG ステートメントを使用する
パスの分析量を減らすと、使用されるメモリの量が減ります。また、Reset 行で TIG を指定してランタイムも短縮できます。 ただ、これには注意が必要です。 制約が付けられていないパスに TIG を指定すると、メモリの使用量やランタイムで効果が得られないだけでなく、制約されていないリストからパスが除外されてしまいます。 関連のないクロック間のパスでこのことがよく発生します。 さらに、制約が付けられているパス (PERIOD 内) に TIG を指定すると、メモリの使用量やランタイムで逆効果になる場合があります。 小さい TIG を多く指定すると、大きな TIG を少なく指定したときと比べて、ランタイムが長くなりメモリの使用量が多くなってしまいます。このことからも、タイム グループをどう作成するかが重要になります。

複数サイクル パスまたは TIG に対してタイム グループ パスを作成するときは、クロック信号またはクロック イネーブル信号ごとにグループ化してください。 1 つのタイム グループには、クロックが同じ同期エレメントのみを含めるようにしてください。 クロックが異なる FFS を同じタイミング グループに含めないでください。

3. 良いタイム グループを作成する
たとえば、FFA、FFB、FFC すべてが FFD に出力され、これらの 3 つすべてに同じクロックが入力される場合は、FFA、FFB および FFC をソース タイム グループに含めます。

4. エフォート レベルを下げる
-xe 0 のように指定し、エフォート レベルを下げます。

あるデザインをで基本的なテストを行ったところ、エフォート レベルが 2 と 5 の時の差は 2% ととても小さいものでした。 エフォート レベルを 5 にすると、追加エフォート レベル (-xe1) が自動的に使用されます。これをなくすことで、テスト デザインのメモリの使用量は 6% 下がりました。20% 下がったという報告もあります。 MPPR では、別のコスト テーブルが使用され、デザインの配置、配線、タイミングはそれぞれ異なります。メモリの使用量もそれぞれ多少異なり、コスト テーブルにより、改善されるタイミングとランタイムも異なります。 配置プログラムでエラーが発生するため、現在 MPPR は使用しないことをお勧めしますが、配置プログラムを単独で実行し、手動で -t オプションを設定すると問題を回避できます。


5. 配置、配線処理を別に実行する

配置と配線処理を同時に実行すると、大きなメモリが使用される場合があります。これはルータが実行される前に、配置プログラムで使用されたメモリの一部が解放されないいことが原因と考えられます。

デフォルトの PAR を実行し、配置と配線を同時に実行した場合

par -w -ol 2 map.ncd <design>.ncd <design>.pcf

配置と配線を別に実行した場合

par -w -pl 2 -r map.ncd <design>.ncd <design>.pcf
par -w -rl 2 -p <design>.ncd <design>.ncd <design>.pcf

説明 :

-pl : 配置プログラムのエフォート レベル
-r : ルータを実行しない
-rl : ルータのエフォート レベル
-p : 配置プログラムを実行しない

6. Solaris を使用する Solaris では 4GB のメモリをサポートしています (要確認)


7. ガイド ファイルを使用する 必要があれば Solaris を使用してガイド ファイルを作成し、PC フローで作成したガイド ファイルを使用します。 小さなテスト デザインではメモリの使用量が 12% 減少しました。

8. デザインを見直しロジックの数を減らす。 たとえば、集積度を小さくするようなデザイン手法を模索してください。
AR# 13270
日付 10/20/2008
ステータス アーカイブ
種類 一般
このページをブックマークに追加