AR# 53988

Vivado - 階層を検索すると「Sorry, this operation is not available due to the large number of nodes in this tree」というメッセージが表示される

説明

大きなプロジェクトがあり、[Sources] ウィンドウの階層ビューで特定のファイルを検索しています。

検索をしようとすると、次のようなポップアップ メッセージが表示されます。

Sorry, this operation is not available due to the large number of nodes in this tree

この理由を教えてください。

この「large number」は何を基準に決められるのですか。

回避策はありますか。

この制限値を無効にするか、または変更することはできますか。

ソリューション

階層ビューはインスタンスごとのビューです。モジュール名およびファイル名は使いやすさのため相互関連していますが、ツリーの各ノードはモジュールのインスタンスをぞれぞれ表します (VHDL ではエンティティとアーキテクチャのペア)。

つまり、ファイル数が比較的少なくても、同じモジュールのインスタンスが複数あると、非常に大きなツリーが生成されます。

ツリーのノード数が 500 あたりになると、検索速度が低下し始めます。 

ノード数がこれよりもかなり大きい場合 (ノード数が数百万、または数十億にもなる有効デザインを確認)、メモリ使用率および検索のランタイムに問題が発生します。 

これを防ぐため、Vivado でツリーのノード数が指定数を超えると、ツリー全体があらかじめビルドされなくなります。まずトップ レベルだけがビルドされ、ユーザーがその下位を展開表示させるときに下位ノードがビルドされるようになっています。 

これを行うときは、検索およびすべてを展開表示する機能を無効にしておく必要があります。

ノードの制限数は 50000 に設定されていて、循環参照を含むデザインでは、この値を超えてしまうのが一般的です。

この制限値を増加するには、gui.sourceHierarchyLimit パラメーターを使用します。

set_param gui.sourceHierarchyLimit <value>

循環依存がないか、または予想を上回る数のノードがないかを確認するため、Vivado のデザイン ツリーを解析したい場合は、階層ツリーの基本となるデータ構造を表すデザイン グラフのダンプのテキスト ビューをエクスポートできます。

この作業を行うには、Tcl コンソールで次のコマンドを実行します。

debug::design_graph -dump_graph
AR# 53988
日付 09/07/2017
ステータス アクティブ
種類 一般
ツール