0

specman の実行でプロファイルを実行すると、90% が外部コードであることがわかります。私の実行環境には SystemVerilog コードも含まれています。この「外部コード」とは何か、また誰がそれを呼び出しているのかを特定するにはどうすればよいですか?

4

3 に答える 3

0

プロファイラーが Specman に対してのみ有効になっている場合、「外部コード」には Cadence 以外のシミュレーターや IUS も含まれる場合があります。「コード ブロック」テーブルの「外部コード」をクリックすると、Specman が外部コードと通信する原因となった e コード内のエンティティ (ポート、動的 C ルーチンなど) の「呼び出し元」が表示される場合があります。これらの 90% のほとんどが、Specman ティック間のシミュレーター、またはシミュレーターから呼び出された C/C++ コードで費やされている場合、「呼び出し元」に重要な %s が表示されない可能性があります。しかし、この場合、ほとんどの CPU 時間は Specman に実際には関係のないコードに費やされており、プロファイラーはそれを助けることができません。

于 2014-05-26T19:39:19.287 に答える
0

System Verilog シミュレーターがシミュレーションのマスターである可能性が高いため、「外部コード」を分析する場合は、システム Verilog プロファイリングを有効にする方法について、シミュレーターのドキュメントを参照してください。

System Verilog シミュレーターでシミュレーション時間がそれほど消費されていないと表示された場合は、Google Profilerなどの C/C++ プロファイラーを起動すると、どの C/C++ 関数が実行されているかがわかります。参考までに、シミュレーション環境で問題が発生し/proc/<pid>/exeている場合は、すべてのシンボルを表示するために、プロセスがまだ実行されている間に後処理ツールを実行することをお勧めします。dlopen'd

于 2014-06-04T13:00:29.027 に答える
0

「外部コード」は、通常、c/c++ コード、Cadence 以外のシミュレーターなどの非 specman および非シミュレーター コードを説明します。特に、C インターフェイス (C-specman インターフェイス) を使用していて、 c ルーチンを外部動的として使用し、シミュレーション構成 "-ignore_dyn_c_routine_signals" を TRUE (デフォルト値) に設定している場合、すべての外部動的 c ルーチンは、spacman コードではなく外部コードと見なされます。

specman シミュレーション構成を表示するには、specman プロンプトで次のコマンドを発行します。

specman > show config シミュレーション

プロファイラー レポートの分析についてサポートが必要な場合は、ここからいつでもケイデンス サポートに連絡して、関連するレポートを送信できます。

于 2014-05-26T15:27:14.237 に答える