最も多くのリソースと領域を使用するFPGAデザインの領域を識別する方法


11

私は大規模なFPGAデザインに取り組んでおり、現在使用しているFPGAのリソース制限であるCSG225パッケージのザイリンクスLX16に非常に近づいています。

設計もほぼ完了していますが、現時点ではFPGAに収まりません。部品をオフにしてフィットさせることはできますが、デザインを完了し、タイミングとサイズの要件を満たすために、リソースの使用量を減らす必要があります。

設計のどの部分が最もリソースを消費しているかを特定するのに役立つレポートがツールにあるかどうかを知りたいです。私のデザインはパーティション分割されておらず、約12個以上のVHDLモジュールに分割されています。

ザイリンクスのタイミングレポートは素晴らしいものですが、スペース節約の観点から見れば、最高の価値をどこで得ることができるかを知る必要があります。

また、どのタイプのリソースが不足しているか、またはそれらのリソースにどのような影響があるのか​​を判断するのも困難です。

もう1つの面倒な点は、デザインが大きくなると、タイミングを満たすために使用されていたコンポーネントが配置が理想的ではなくなったために失敗し始めていることです。

現在、配置配線後のスタティックタイミングレポートを使用し、SmartXplorerを使用しています。タイミングを最適化するために設計戦略を使用しています。

デザインの一部をオフにしてフィットさせると、次のような結果が得られます。

スライスレジスタ使用率:42%スライスLUT使用率:96%完全に使用されたLUT-FFペアの数:38%これは、レジスターは軽いが、ゲート使用率が高いということですか?

開発者がエリアを最適化するのに役立つツールはありますか、少なくともコードについてより多くの洞察を与えることができますか?

更新: モジュールレベルの使用率を確認したところ、LUT全体の約30%を占める小さな接着剤非同期fifoがいたるところにあることがわかりました。高速バスのクロスクロックドメインの接着剤として使用しています。クロックは密接に関連しているため、これらを削除できるはずです。(120 MHz入力、DCMで100 MHzおよび200 MHzを生成)


信号間に多くの相互接続があるように見えますが、最適化、リソース共有などのレベルを変更することでそれを修正できると確信しています。どのツールを使用していますか?ISEまたはVivado
FarhadA

1
私はISEを使用しています(VivadoはSpartan-6をサポートしません)ザイリンクスフォーラムでこれをクロスポストし、詳細マップレポートを有効にするように言われました。これを行ったところ、*。mrpファイルにはセクション13-使用率の階層が含まれるようになりました。データをより適切にフォーマットしたら投稿します。
Marcus10110

回答:


5

この質問をザイリンクスフォーラムにクロス投稿しました:http : //forums.xilinx.com/t5/Implementation/How-to-determine-what-part-of-the-design-consumes-the-most/td-p / 393247

この回答は、主にそこのコメントに基づいています。Deepika、Sikta、Gaborに感謝します。

まず、マッププロセスのプロパティで[詳細なMAPレポートを生成]を有効にします(-detail)。

次に、設計概要を開き、モジュールレベルの使用率に移動します。これは完全な階層で、排他的および包括的設計の使用率を示しています。

各行には、0/5392のような数字のペアが表示されます。つまり、そのモジュールにはその特定の要素がゼロですが、そのモジュールとそのすべてのサブモジュールには合計で5392個の要素が含まれています。

これが私の出力です(部分的に展開されています) 使用率レポート

サイズの縮小に取り組む場合、Gaborはシンセツールでより大きなFPGAに切り替えることをお勧めします。これにより、現在のFPGAに収まるには大きすぎる場合でも完全にマッピングでき、ツールの実行が速くなります。


3

レジスタの半分のみを使用しながら、ほとんどすべてのロジックリソースを使用しているように見えます。すべてのLUTを使い果たしているものを把握する必要があるようです。特定のコンポーネントを最適化し、RAM、シフトレジスタ、ステートマシンなどのスペース効率を少し高める方法があります。シンセサイザーからの結果の.logファイルを見てください。どのようなコンポーネントが推測されているかがわかります。コンポーネントが正しく推論されていることを確認してください。そうでない場合、特に効率的なネットリストを生成していない可能性があります。合成ログファイルを見るだけで多くのことがわかります。コードにいくつかの小さな変更を加えると、シンセサイザーがさまざまなコンポーネントを推測できるようになる可能性があるため、テンプレートのシンセサイザーマニュアルを参照してください。速度ではなく面積を最適化するために、シンセサイザーを切り替える必要がある場合があります。また、推論設定がオフになっていないことを確認してください。Virtex 6 HXT 565(354,240 6入力LUT /デュアルFFペア、32、32 MBブロックRAM)。ザイリンクスパーが完了するまでに7時間かかり、チップの約40%を占めました。?!?!?!?推論ブロックRAMがオフになり、シンセサイザーが数KBのRAMをLUTに変えたことがわかりました。これまでで最も効率的な決定ではありません。設定を変更した後、チップの1%程度を占めました。図を移動します。Virtex 6 HXT 565用の312 4入力LUT / FFペア、5.6 KBブロックRAM)(354,240 6入力LUT /デュアルFFペア、32 MBブロックRAM)。ザイリンクスパーが完了するまでに7時間かかり、チップの約40%を占めました。?!?!?!?推論ブロックRAMがオフになり、シンセサイザーが数KBのRAMをLUTに変えたことがわかりました。これまでで最も効率的な決定ではありません。設定を変更した後、チップの1%程度を占めました。図を移動します。Virtex 6 HXT 565用の312 4入力LUT / FFペア、5.6 KBブロックRAM)(354,240 6入力LUT /デュアルFFペア、32 MBブロックRAM)。ザイリンクスパーが完了するまでに7時間かかり、チップの約40%を占めました。?!?!?!?推論ブロックRAMがオフになり、シンセサイザーが数KBのRAMをLUTに変えたことがわかりました。これまでで最も効率的な決定ではありません。設定を変更した後、チップの1%程度を占めました。図を移動します。


3

ツールの出力から「リソース使用量」セクション全体を投稿する価値があります。

すべてのブロックRAMを使用していますか?ドメインが十分に制限されており、事前計算に値するほど複雑な場合、ロジック/数学関数を同等のRAMルックアップテーブルに置き換えることができるのが一般的です。

メモリの推論だけでなく、乗算器にも同じことが当てはまります。推奨されるインスタンシエーションテンプレートからわずかに逸脱すると、DSP48Aユニットに推論される乗数が失われることがあります。

PCIeコントローラーを使用している場合、TLPペイロード用に予約されている合計バッファースペース、または最大TLPパケットサイズを削減できますか?これにより、スループット/総帯域幅を犠牲にして、IPコアのRAM /ロジック使用量を削減できます。

(Altera)Quartusを使用すると、デザイン階層ビューでアイテムを複数選択し、色分け/クラスター化された事後領域使用状況を確認できます。これにより、設計モジュールの相対的な使用状況を視覚的に把握できます。


ありがとう。乗算器にハードIPマクロを使用し、CoreGenを使用してFIFOを作成しましたが、(ブロックRAMの代わりに)分散RAMを使用するためにいくつかの小さなfifoを選択しました。それらの使用法を調べます。
Marcus10110
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.