Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

トリガー

トリガー条件とは何ですか?

トリガー条件は、FPGA からデータをいつキャプチャするかを定義する論理ステートメントです。トリガー条件を使用して、FPGA 上の対象イベントに関するデータをキャプチャします。[キャプチャ ウィンドウの数] を目的の値に設定して、イベントの複数の発生をキャプチャします。トリガー条件は、1 つ以上の FPGA 信号の値比較テストで構成されます。以下に例を示します。

counter == 100

すべてのトリガー比較は同期的に行われます。ブール信号のエッジ条件を指定すると、IP コアは現在のサンプリング値と前のクロック サイクルのサンプリング値を比較します。

fifo_full == 'Rising edge' 

トリガー条件は、条件のすべての項が同じクロック サイクルで真である場合に満たされます。信号ごとに 1 つの値比較のみを使用できます。

receiver_state == 3 OR message_detected == 'High'
fifo_cnt == 0 AND fifo_pop == 'High'

トリガー条件で使用できる論理演算子は 1 種類のみです。AND条件とOR条件を混合することはできません。

fifo_empty == 'Rising edge' OR fifo_full == 'Rising edge' OR memctrl_state == 2
receiver_state == 3 AND message_addr == 148 AND pkt_type == 5

トリガー条件では複数の比較演算子を使用できます。

fifo_empty == 'Rising edge' OR fifo_full != 'LOW' OR memctrl_state == 2
receiver_state == 3 AND message_addr > 148 AND pkt_type >= 5

トリガー条件にはXまたはx (ドントケア値) を使用できます。比較中、トリガー条件はXの位の値を無視します。トリガー条件が0b1X1の場合、可能なトリガー条件値は0b101または0b111です。

receiver_state == 3 AND message_addr == 148 AND pkt_type == 0b1X1

シーケンシャルトリガー

シーケンシャル トリガを使用すると、FPGA から指定されたデータをキャプチャするために複数の段階で一連のトリガ条件を与えることができます。シーケンシャル トリガを使用すると、指定したすべてのトリガ条件が順番に発生した後でのみ、 MATLAB®またはSimulink®にデータを読み取ることができます。複数のトリガー ステージの場合は、FPGA データ キャプチャ コンポーネント ジェネレーター ツールの [最大トリガー ステージ]パラメーターを 1 より大きい値に設定します。 Max trigger stages は、トリガー条件を提供するためのトリガー ステージの最大数を設定します。たとえば、 Max trigger stagesが 3 の場合、FPGA データ キャプチャ ツールのTriggerタブまたはFPGA Data Readerブロックの最大値は次のとおりです。トリガーステージは3段階。

FPGA Data Capture screen with 3 trigger stages

各ステージの 1 つ以上の信号に一致する特定の値によってトリガー条件を定義します。例えば、トリガ段数が 3 で、信号が 10 個ある場合、このようなトリガ条件を設定できます。

  • ステージ 1 のトリガー条件:

    ((signal1 > 10) and (signal3 == true) and (signal7 < 5));
  • ステージ 2 のトリガー条件:

    ((signal1 == 0b0110) or (signal4 == 0XXX) or (signal8 < 5));
  • ステージ 3 のトリガー条件:

    ((signal2 != 5) and (signal6 == true) and (signal8 == 8));

トリガー条件を設定する

生成時に、トリガー条件で使用できるようにする信号を指定します。信号は、データをキャプチャせずにトリガーにすることも、トリガーとキャプチャされた信号の両方にすることもできます。トリガーとして指定した信号を使用して、キャプチャ時にトリガー条件を変更できます。FPGA 上のデータ キャプチャ IP コアは、MATLABからトリガー定義を受け取り、イベントを検出するようにオンチップ マルチプレクサを構成します。

FPGA データ キャプチャ ツールまたはFPGA Data Readerブロックを使用する場合は、 Triggerタブでトリガー条件を設定します。表の各行は、1 つの信号の値の比較です。信号値を結合するには、トリガー結合演算子を使用します。このタブに信号を表示するには、生成時に信号をトリガーとして指定する必要があります。

FPGA Data Capture screen showing trigger condition on counter signal

hdlverifier.FPGADataReader System object™の場合、 setTriggerConditionsetTriggerComparisonOperator、およびを使用してトリガー条件を構成します。 $setTriggerCombinationOperatorオブジェクト関数。構成を確認するには、 displayTriggerConditionオブジェクト関数を呼び出します。

どの信号でもトリガー条件を有効にしない場合、データ キャプチャ IP コアはすぐにデータをキャプチャします。

トリガー位置

キャプチャ バッファ内でのトリガ検出サイクルの相対位置を変更できます。この機能を使用して、トリガー イベントの前後に関係なく、関連データをキャプチャします。

FIFO 設計へのプッシュおよびポップのレートをデバッグするとします。信号High fifo_emptyfifo_full 値にトリガーを設定できます。

デフォルトでは、トリガが検出されたときのクロック サイクルはキャプチャ バッファの最初のサンプルです。IP コアは、fifo_fullが High に変化するサイクルからバッファをキャプチャします。

fifo_full条件をデバッグするには、トリガー条件が発生する前に信号を観察します。キャプチャ設定で、スライダーの目盛りを使用して、 Trigger positionをウィンドウの深さの 3/4 に変更します。たとえば、 Sample depthが 128、 Number of capture windowsが 1、 Number of trigger stagesが 1 の場合、ウィンドウの深さ は 128 になります。トリガー イベントはそのウィンドウのサンプル 96 にあります。IP コアは、トリガー イベントの前に 96 サンプル、トリガー イベント後に 36 サンプルを含むバッファをキャプチャします。この設定では、トリガー イベントに至るまでの過程とその後を示すデータが収集されます。トリガー イベントの位置は、 fifo_fullの垂直カーソルで表示されます。

Trigger position は、 0 からwindow depth-1 までのサンプル数に設定できます。トリガー位置をwindow depth-1 に設定すると、最後のサンプルはトリガーが発生するサイクルに対応します。

トリガー イベントの複数の発生を観察するには、 Number of capture windowsを目的の数値に変更します。

この例では、 Number of capture windowsは 4、 Number of trigger stagesは 1、 Sample depthは 128、 Trigger position。は0です。HDL IP は 4 つのウィンドウをキャプチャします。各window depth は32 サンプルで、 fifo_fullが High に変化した時点から始まります。

参考

ツール

  • |

オブジェクト

ブロック

関連する例

詳細