ispLEVER 7.2で新しいトリガ機能が追加されたRevealを提供
新しいトリガ機能は、より大きい柔軟性とパワーをRevealロジックアナライザにもたらします。
新しい ispLEVER 7.2 デザイン・ソフトウェアのRevealハードウェア・デバッガ(Hardware Debugger)は、非常に複雑なトリガと同様に、簡易なトリガ条件を定義する機能も提供します。トリガはロジックアナライザのトレースバッファにストアするデータをいつ取得し始めるかを定義するもので、その後このデータがFPGAに実装する機能のデバッグに用いられます。Revealソフトウェアのトリガはトリガユニット(trigger unit)とトリガ表記(trigger expression)に基づいています。トリガユニットは信号を値と比較するために用いられ、そしてトリガ表記は、トリガを形成するためのトリガユニットを組み合わせる目的で用いられます。
トリガユニットとトリガ表記
トリガユニットは複数の入力信号を値と比較するために用いられます。多くの異なる演算子(operator)が比較の目的に用意されており、解析の間に比較値やトリガユニット名を含めて動的に変えることができます。
トリガ表記はトリガユニットの組合せです。トリガユニットを組み合わせることができるのは、組合せトリガ、シーケンス・トリガ、そして組合せとシーケンスの複合パターンです。トリガ表記はいつでも動的に変えることができます。各コアは最大16のトリガ表記まで対応し、Revealロジックアナライザ・ソフトウェアで動的にイネーブル、又はディセーブルすることができます。トリガ表記としてはAND、OR、XOR、NOT、括弧(グループ化のため)、及びTHEN(シーケンス動作のため)の各演算子に対応します。シーケンスと呼ばれるトリガ表記の各部分は、トリガ表記内で修飾語 “#(カウント)” を用いることによって “次に続くシーケンスに移る前に何回有効になることが必要か” を記述することができます。
新しいトリガ表記の機能
ispLEVER7.2では、Revealは2つの新しいトリガ表記機能、NEXT演算子と修飾語 "##” を加えています。これらの新しい機能は既存のTHEN演算子と修飾語 “#” に密接に関連します。違いを以下にリストアップします。
- THEN~ 待ち条件のシーケンスを生成します。例えば以下の記述が意味するのは "wait for TU1 to be true(TU1が真になるまで待つ)" と、その後に "wait for TU2 to be true(TU2が真になるまで待つ)" です。Revealは、それぞれのトリガ表記で最大16シーケンス・レベルに対応します。
TU1 THEN TU2
- NEXT~ THENのように待ち条件のシーケンスを生成しますが、第二のトリガユニットが第一のトリガユニットの直後に来なければならない点が異なります。例えば以下の記述が意味するのは "wait for TU1 to be true(TU1が真になるまで待つ)" と、その後 "on the next sample clock look for TU2 to be true(次のサンプルクロックでTU2が真かどうかをみる)" です。一部分でもシーケンスが真でないと、トリガ表記全体がリセットされ、再びトリガを探し始めます。ビデオ・データパケットのヘッダなどのように、連続したシーケンスを探す際にこれは非常に有用です。
TU1 NEXT TU2
- # (カウント) ~ カウンタをシーケンスに挿入します。例えば以下の記述が意味するのは "wait for TU1 to be true(TU1が真になるまで待つ)" と、その後 "wait for TU2 to be true five times(TU2が5回真になるまで待つ)" です。このカウンタは非連続であることに留意してください。すなわちTU2が5回生起する期間に制限はありません。
TU1 THEN TU2#5
- ## (連続カウント) ~ カウンタをシーケンスに挿入します。“#(カウント)” と同様ですが、トリガユニットが連続したサンプルクロック周期で入らなければなりません。すなわち、トリガユニットは前のサンプルクロックで真になった直後のサンプルクロックでも真でなければなら、カウント値を満たすまで偽(false)になってはいけません。カウントが成立しないとトリガ表記全体がリセットされ、再びトリガを探し始めます。
例
これらの違いをより良く理解するために、いくつかの例を見ましょう。以下の図はサンプルクロック、トリガユニット1(TU1)の信号、及びトリガユニット2(TU2)の信号を示します。
 図 1. TU1 THEN TU2
この例ではトリガオプションをTU1=01とTU2=FFにしています。図1はトリガ表記 "TU1 THEN TU2" にマッチして、トリガを生成するでしょう。それはTU2=FFがTU1=01の2サンプルクロック後に起こるため、表記 "TU1 NEXT TU2" にマッチではありません。マッチさせるためには、TU1シーケンスが真になった後の次のサンプルクロックでTU2が生起しなければなりません。
図2はわずかに異なる条件を示しています。TU1とTU2は同じ設定(TU1=01とTU2=FF)を用いますが、これらは異なるクロックで起こります。
 図2. TU1 NEXT TU2
図2はTU1がマッチした直後のサンプルクロックでTU2が起こるため、表記 "TU1 NEXT TU2"にマッチです。図2はTU1がマッチした直後かそれ以上のサンプルクロックでTU2が起こるため、表記 "TU1 THEN TU2" にもマッチすることに留意してください。
図3はカウントを用いる例を示します。この例ではTU1とTU2は前と同じ設定を用いています。
 図3. TU1 THEN TU2#2
図3はTU1が生起した後にTU2が二度生起しているため、表記 "TU1 THEN TU2#2" にマッチです。図3はTU2の2回の生起が連続していないので、表記 "TU1 THEN TU2##2" にマッチではありません。
図4は連続カウントを用いる例を示します。この例のTU1とTU2は前と同じ設定を用います。
 図4. TU1 THEN TU2##2
図4はTU1がマッチした直後のサンプルクロックで2回連続してTU2が起こるため、表記"TU1 THEN TU2##2" にマッチです。これはTU1が生起した後にTU2が2回マッチするため、表記 "TU1 THEN TU2#2" にもマッチすることに留意してください。しかし図4はTU1が生起した直後の第一サンプルクロックでTU2が生起しないため、表記 "TU1 NEXT TU2##2" とはマッチしません。マッチさせるためには、データが図5に示すように存在していなければならないでしょう。この図ではTU1が生起したサンプルクロックに続いて、直ちにTU2が2つの連続するサンプルクロックでマッチしています。
 図5. TU1 NEXT TU2##2
前の例は、Revealソフトウェアのトリガ機能に追加された最も新しい機能を用いる、最も簡単な条件を示します。RevealソフトウェアのようなFPGA内蔵のロジックアナライザは、外部ロジックアナライザと比べていくつかの顕著な利点を示しますが、しかしFPGA内のリソースに含まれます。内蔵ロジックアナライザにとって、少量のデータをその正確なイベントの近傍で捕捉するためには、所望のイベントを正確に指摘する機能が極めて重要です。Revealソフトウェアにおけるトリガオプションは、特にこれらの要件のために設計されており、今日入手できる同様なツールのなかでも最も先進の機能を提供します。
より詳しい情報
ispLEVERデザインツールとispLEVER7.2の新機能に関する詳しい情報については、ラティスセミコンダクターのウェブサイトを参照するか、又は ラティスセミコンダクター担当営業 に連絡してください。
|