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

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

2.10.5. MATLAB* MEX関数を使用したSignal Tapデータのキャプチャ

MATLAB*をDSPデザインに対して使用する場合、データの取得は、Signal Tapロジック・アナライザーからMATLAB*環境のマトリックスに直接することができます。この方法を使用するには、 Quartus® Prime開発ソフトウェアに含まれるMATLAB* MEX関数 alt_signaltap_run を呼び出します。 MATLAB* MEX関数をループで使用する場合、実行できる取得数は、同じ時間内で Quartus® Prime開発ソフトウェア環境でSignal Tapを使用した場合と同じです。
注: Signal Tap用のMATLAB* MEX関数は、 Quartus® Prime開発ソフトウェアのWindows* バージョンおよびLinuxバージョンで使用できます。この関数と互換性があるのは、MATLAB* Release 14オリジナル・リリース・バージョン7およびそれ以降のバージョンです。

Quartus® Prime開発ソフトウェアおよびMATLAB*環境を設定してSignal Tapの取得を実行するには、次を実行します。

  1. Quartus® Prime開発ソフトウェアで .stp ファイルを作成します。
  2. Signal Tapロジック・アナライザーのEditorのDataタブにあるノードリストで、信号および信号グループを編成して、MATLAB*マトリックスで表示する順にします。

    インポートしたマトリクスの各カラムで表されるのは、単一のSignal Tap取得サンプルです。一方、各ロウで表されるのは信号または信号のグループで、その順序はDataタブで定義したとおりになっています。

    注: 信号グループは、Signal Tapロジック・アナライザーで取得して、MATLAB* MEX関数に転送する場合、幅の制限は信号32個です。MATLAB* MEX関数を使用する際、バスまたは信号グループに32を超える信号が含まれる場合、グループを小さなグループに分割して、この制限を超えないようにします。
  3. .stp ファイルを保存し、デザインをコンパイルします。デバイスをプログラミングし、Signal Tapロジック・アナライザーを実行して、トリガー条件と信号の取得が正しく機能することを確認します。
  4. MATLAB*環境では、 Quartus® Primeバイナリー・ディレクトリーをパスに追加するために、次のコマンドを使用します。
    addpath <Quartus install directory>\win

    MEX関数のヘルプファイルの表示には、次のコマンドをMATLAB*に入力します。演算子は付けません。

    alt_signaltap_run

  5. MATLAB* MEX関数を使用して、デバイスへのJTAG接続を開き、Signal Tapロジック・アナライザーを実行してデータを取得します。データの取得が終了したら、JTAG接続を閉じます。

    JTAG接続を開いて、キャプチャしたデータの取得を stp* と呼ばれるMATLABマトリックスに直接取得するには、次のコマンドを使用します。

    stp = alt_signaltap_run \
    ('<stp filename>'[,('signed'|'unsigned')[,'<instance names>'[, \
    '<signalset name>'[,'<trigger name>']]]]);

    データをキャプチャする場合はMATLAB* MEX関数の要件として、例えば、<stp filename>のようなファイル名を割り当てる必要があります。次の表では、MATLAB* MEX関数のその他のオプションについて説明しています。

    表 25.   Signal Tap MATLAB* MEX関数のオプション
    オプション 使用方法 説明
    signed

    unsigned

    'signed'

    'unsigned'

    signedオプションでは、信号のグループデータを32ビットの2の補数符号付き整数に変換します。そのグループのMSBは、Signal Tap Dataタブで定義されているとおり、符号ビットです。unsignedオプションは、データを符号なし整数として保持します。デフォルトはsignedです。
    <instance name> 'auto_signaltap_0' Signal Tapインスタンスを指定するのは、複数のインスタンスが定義されている場合です。デフォルトは、.stp の最初のインスタンス auto_signaltap_0です。
    <signal set name>

    <trigger name>

    'my_signalset'

    'my_trigger'

    Signal Tapデータログから信号のセットとトリガーを指定するのは、複数のコンフィグレーションが .stp に存在する場合です。デフォルトは、ファイル内のアクティブな信号セットとトリガーです。

    データ取得中、Verboseモードをイネーブル/ディスエーブルすると、ロジック・アナライザーのステータスが確認できます。Verboseモードをイネーブルまたはディスエーブルするには、次のコマンドを使用します。

    alt_signaltap_run('VERBOSE_ON');-alt_signaltap_run('VERBOSE_OFF');

    データ取得完了後、JTAG接続を閉じるには、次のコマンドを使用します。

    alt_signaltap_run('END_CONNECTION');

    MATLAB*でのMATLAB* MEX関数の使用の詳細については、MATLAB* Helpを参照してください。