Quartus® Primeプロ・エディションのユーザーガイド: デバッグツール

ID 683819
日付 7/08/2024
Public
ドキュメント目次

7.5.1. 使用可能なサービスの検索

System Consoleでは、仮想ファイルシステムを使用し、使用可能なサービスを編成します。これは、Linuxシステムの /dev location に似ています。 ボード接続、デバイスタイプ、およびIP名はすべて、サービスパスの一部です。サービスのインスタンスは、ファイルシステム内の固有のサービスパスによって参照されます。特定のサービスへのサービスパスを取得するには、get_service_paths <service-type> を使用します。

サービスパスの検索

#We are interested in master services.
set service_type "master"

#Get all the paths as a list.
set master_service_paths [get_service_paths $service_type]

#We are interested in the first service in the list.
set master_index 0

#The path of the first master.
set master_path [lindex $master_service_paths $master_index]

#Or condense the above statements into one statement:
set master_path [lindex [get_service_paths master] 0]

System Consoleコマンドでは、アクセスするサービス・インスタンスを識別するためのサービスパスが必要です。さまざまなコンポーネントのパスとインデックスは、System Consoleの実行間やバージョン間で変わる可能性があります。サービスパスを取得するには、get_service_paths コマンドを使用します。

サービスパスの文字列の値は、ツールのリリースごとに異なります。marker_node_info コマンドを使用して、パスから情報を取得します。

System Consoleでは、ほとんどのサービスを起動時に自動検出し、すべてのJTAGおよびUSBベースのサービス・インスタンスを自動スキャンしてサービスパスを取得しますが、TCP/IPなどの一部のサービスは自動検出しません。add_service コマンドを使用して、System Consoleにこれらのサービスを通知します。

Marker_node_info

指定されたサービスに関連付けられているSLDノードに関する情報を取得するには、marker_node_info コマンドを使用します。

set slave_path [get_service_paths -type altera_avalon_uart.slave slave]
array set uart_info [marker_node_info $slave_path]
echo $uart_info(full_hpath)

正しいサービスパスの検索

デザインに同じサービスのインスタンスが複数含まれている場合は、完全な階層パスを使用してサービスパスを正しく識別する必要があります。

次の例では、master_0 というデバッグ・エンドポイントの正しいサービスパスを識別するために、次の手順を実行します。

  1. デザイン内のエンドポイントの完全な階層名を検索します。
  2. master_0 を右クリックし、コンテキスト依存メニューでCopyを選択します。これにより、完全な階層パス (ed_synth_top|master_0) がコピーされます。
  3. 次のように、この階層パスをTcl変数に保存して、後から簡単に参照できるようにします。
    set desired_hpath ed_synth_inst|master_0
  4. get_service_paths コマンドを –hpath フラグと階層パスとともに使用して、目的のエンドポイントの特定のサービス パスを取得します。このコマンドは、サービスパスを含むリストを返します。
    #Return a list of one element with the desired element
    set service_paths [get_service_paths -hpath $desired_hpath master]
  5. 後から簡単にアクセスできるように、サービスパスを変数として保存します。
    #Extract and store the element in a variable
    set master_0_spath [lindex $service_paths 0]