ロジック アナライザー
時間の経過に沿った遷移と状態の可視化、測定および解析
ロジック アナライザー アプリを開く
Simulink エディター メニューの [シミュレーション] タブでロジック アナライザーのアプリ ボタンをクリックします。ボタンが表示されない場合は、[結果の確認] ギャラリーを展開すると、[信号ログの結果] にロジック アナライザー アプリが見つかります。Simulink セッションを切り替えた後も最後に選択したデータの可視化が保たれます。
参照モデルを可視化するには、参照モデルからロジック アナライザーを開かなければなりません。ロジック アナライザーのツール バーに参照モデルの名前が表示されます。
例
解析する信号の選択
ロジック アナライザーでは、可視化するデータを選択する方法がいくつかサポートされています。
モデル内の信号を選択します。信号を選択すると、信号線の上に省略記号が表示されます。省略記号の上にカーソルを合わせてオプションを表示し、[データ ログを有効化] オプションを選択します。
モデル内の信号を右クリックしてオプション ダイアログ ボックスを開きます。[選択した信号のログ] オプションを選択します。
任意の方法を使用してモデル内の複数の信号線を選択します。たとえば、Shift キーを押しながらクリックして複数の線を個別に選択したり、Ctrl+A キーを押して一度にすべての線を選択したりします。[信号] タブで、[信号のログ] ボタンを選択します。
ロジック アナライザーでデータを可視化するには、モデルの信号のログ記録を有効にしなければなりません (既定でログ記録はオン)。信号のログ記録を有効にするには、ツールストリップから [モデル設定] を開き、[データのインポート/エクスポート] ペインに移動し、[信号のログ] を選択します。
ロジック アナライザーを開くと、ログ記録用にマークが付けられたすべての信号がリストされます。開いているロジック アナライザーから波形の追加および削除を実行できます。信号を追加または削除しても、ログ記録は無効にならず、ロジック アナライザーから信号が削除されるだけです。
個々の波形設定の変更
ロジック アナライザーを開いて、波形名をダブルクリックして波形を選択します。[波形] タブから、選択した個々の波形に固有のパラメーターを設定します。グローバル設定よりも、個々の信号に対する設定の方が優先されます。個々の波形パラメーターをグローバル設定に戻すには、[リセット] をクリックします。
波形の削除と復元
ロジック アナライザーを開いて、波形名をクリックして波形を選択します。
ロジック アナライザーのツールストリップで、
をクリックします。ロジック アナライザーから波形が削除されます。
波形を復元するには、ロジック アナライザーのツールストリップで
をクリックします。
[復元済み波形] という名前のデバイダーがチャネルの下部に追加され、削除したすべての波形がその下に配置されます。
ビューの保存と復元
ロジック アナライザーの現在のビューを MLDATX ファイルとして保存し、後で開くことができます。ロジック アナライザー ビューは、データを保存せず、信号のレイアウトと外観特性を保存します。具体的には、信号名、信号グループ、デバイダー、およびそれらの設定 (順序を含む) がビューに保存されます。
このモデル例には、Sine Wave ブロックと Constant ブロックが含まれており、その出力は Add ブロックに接続されています。
ロジック アナライザー ビューの保存
現在のビューを保存するには、次の手順に従います。
ロジック アナライザーで可視化する信号をモデルで選択します。
選択した信号を記録し、ロジック アナライザー アプリを開きます。
この例では、Sine Wave ブロック、Constant ブロック、および Add ブロックからの出力信号を記録します。
[ロジック アナライザー] ツールストリップから、[ビューの保存] をクリックするか、Ctrl+S を押します。
開いたウィンドウで、ファイルを保存するフォルダーを参照します。次に、ファイルに名前を付け、[保存] をクリックします。
ロジック アナライザー ビューの起動
保存したビュー ファイルを開くには、次の手順に従います。
ロジック アナライザー アプリを開きます。
[ロジック アナライザー] ツールストリップから、[ビューを開く] をクリックするか、Ctrl+O を押します。
開いたウィンドウで、ビュー ファイルを保存したフォルダーを参照します。次に、ファイルを選択し、[開く] をクリックします。ロジック アナライザーによって、ビュー ファイルに由来する名前が付けられたデバイダーと、ビュー ファイルからの信号が現在のビューに追加されます。
Simulink モデル内のブロックまたはサブシステムの名前を変更し、保存したロジック アナライザー ビュー ファイルを開くと、更新された信号名がファイルに表示されます。たとえば、この例のモデルでは次のようになります。
Sine Wave ブロックの名前を
Sine Signal
に、Constant ブロックの名前をConstant Signal
に変更します。モデルをコンパイルまたはシミュレートし、保存したビュー ファイルを開きます。更新された信号名が表示されます。
トリガーの追加
ロジック アナライザーのトリガーを使用すると、特定の条件に基づいてデータ点を検出できます。この機能は、特定の信号の変化を検出する必要がある場合、デバッグやテストに便利です。
ロジック アナライザーを開いて、[トリガー] タブを選択します。
信号をトリガーに接続するには、[信号を接続] を選択し、トリガーをオンにする信号を選択します。最大 20 の信号をトリガーに接続できます。各信号はトリガー条件を 1 つのみもつことができます。
既定の設定では、トリガーは接続された信号の立ち上がりエッジを探します。立ち上がりエッジ、立ち下がりエッジ、ビット シーケンスまたは比較値を探すようにトリガーを設定できます。トリガー条件を変更するには、[条件設定] を選択します。
複数の信号をトリガーに追加した場合、[演算子] オプションを使用してトリガー ロジックを制御できます。
AND
- すべての条件に一致。OR
- いずれかの条件に一致。
サンプルをいくつ表示した後でトリガーするかを制御するには、[表示サンプル] オプションを設定します。たとえば、このオプションを
500
に設定すると、ロジック アナライザーは 500 サンプル後にトリガーしようとします。シミュレーションによっては、ロジック アナライザーがトリガー前に表示するサンプルは 500 より多かったり少なかったりします。ただし、500 番目のサンプルの前にこのトリガーが検出された場合でも、ロジック アナライザーはトリガーを表示します。[表示モード] を使用してトリガー モードを制御します。
1 回のみ
- ロジック アナライザーはトリガー条件に一致する最初の場所のみをマークし、ロジック アナライザーへの更新の表示を停止します。トリガーをリセットする場合は、[トリガーをリセット] を選択します。現在のシミュレーション時間に対して、ロジック アナライザーは一致する次のトリガー イベントを表示します。自動
- ロジック アナライザーはトリガー条件に一致するすべての場所をマークします。
シミュレーションを実行する前に、[トリガーを有効にする] を選択します。青いカーソルが時間 0 として表示されます。次にシミュレーションを実行します。トリガーが検出されると、ロジック アナライザーはその場所をロックされた青いカーソルでマークします。
マルチ参照 Model ブロックの表示インスタンスの選択
ロジック アナライザーでは、マルチインスタンスの Model ブロックの単一インスタンスのみをストリーミングできます。同じモデルを複数の異なるウィンドウで開くと、それらのモデルで同じロジック アナライザーが共有されます。この例では、ロジック アナライザーでのログ記録用にマルチインスタンス Model ブロックのインスタンスを選択する方法を示します。
multipleModelInstances
モデルを開きます。
open_system('multipleModelInstances')
このモデルには、referencedModel
モデルの 3 つのインスタンスが含まれています。
いずれかの Model ブロックをダブルクリックして、3 つすべての Model ブロックが参照するモデルを開きます。
open_system('referencedModel')
参照モデルで、Simulink エディター メニューの [シミュレーション] タブの [結果の確認] ギャラリーを展開し、[ロジック アナライザー] を開きます。ロジック アナライザーのツール バーに referencedModel - [multipleModelInstances]
と表示されます。
[ロジック アナライザー] ウィンドウからモデルを実行します。referencedModel
の参照バージョンからシミュレーションを実行すると、Simulink で最上位モデル (multipleModelInstances
) と参照モデル (referencedModel
) が実行されます。ロジック アナライザーに、マルチインスタンス Model ブロックの単一インスタンスが表示されます。
シミュレーションを実行すると、ロジック アナライザーのツール バーに表示されているモデルが実行されます。このモデルが参照モデルである場合、ツール バーには最上位モデルもリストされ、最上位モデルを実行した結果が表示されます。参照モデルの結果を分離して表示するには、参照モデルを最上位モデルとして開かなければなりません。
インスタンスを切り替えるには、Simulink エディター メニューの [シミュレーション] タブから [準備] ギャラリーを展開します。[信号の監視] で [ノーマル モードの可視性] を選択し、[Model ブロックのノーマル モードの可視性] を開きます。multipleModelInstances
を展開し、[Model Instance 3] を選択して [OK] をクリックします。
multipleModelInstances
モデルを再実行します。ロジック アナライザーに Model Instance 3
のデータが表示されます。
ビット拡張される波形の表示とビットの表示順序の反転
ロジック アナライザーでは、固定小数点と整数の波形をビット拡張できます。
ロジック アナライザーでビットを表示するには、固定小数点または整数の波形の隣にある矢印をクリックします。
最下位ビットと最上位ビットは、波形名の隣に lsb および msb の表示によってマークされます。
表示されるビットの順序を反対にするには、[設定] をクリックし、[最初に最下位ビットを表示] を選択します。
トリガーを追加して書き込み処理を検証する
この例では、トリガーを使用して信号が設計と一致していることを検証する方法を示します。
プログラミング可能 FIR フィルター モデル (
dspprogfirhdl
) を開きます。ロジック アナライザーを開いて、[トリガー] タブを選択します。
トリガーを追加するために、ツールストリップの [信号を接続] を選択して、
Write En
書き込みイネーブル信号を接続します。信号名の前にアイコンが表示され、信号がトリガーに接続されたことが示されます。アイコンはトリガーの種類に応じて変化します。[条件設定] を選択し、
Write En
信号のトリガー条件を [立ち下がりエッジ] に変更します。書き込みイネーブル信号が送信されるとトリガーが表示されます。Write Done
信号をトリガーに接続します。この信号のトリガー条件を既定の設定である[立ち上がりエッジ]
のままにします。これで書き込みが完了したときにもトリガーが表示されます。[条件設定] ドロップ ダウンを開くと、[演算子] フィールドが表示されます。このフィールドは、複数の信号がトリガーに接続されている場合に表示されます。演算子を
[OR]
に変更して、書き込みの開始時または完了時にトリガーによってインスタンスが表示されるようにします。[表示モード] を
[自動]
に設定します。この設定により、ロジック アナライザーはトリガー条件が満たされるすべての場所をマークします。[トリガーを有効にする] を選択してシミュレーションを実行します。
トリガー条件が満たされるたび、ロジック アナライザーはその時間をロックされた青いカーソルでマークします。マークされたそれぞれの場所で、
Write En
は0
、Write Done
は1
です。トリガーによってマークされたそれぞれの場所を調べると、書き込みが送信されるたびに完了もしていることを確認できます。
ロジック アナライザーによる Stateflow の状態の表示
ロジック アナライザーを使用して、時間の経過に伴う遷移と状態の変化を可視化および測定します。ロジック アナライザーを使用すると、次のものを可視化できます。
チャートからの出力データ
チャートの子ステートとリーフ ステートのアクティビティ
状態の自己ステート、子ステート、およびリーフ ステートのアクティビティ
時間の経過に伴う出力の変化を測定して、トリガーを追加し、指定したイベントにおける出力値を特定することができます。
ログ記録用の信号と状態の追加
この例では、ロジック アナライザーを使用して、モデル sf_car
におけるエンジン RPM、トランスミッションと車両速度、およびギア状態の挙動を可視化します。
モデル
sf_car
を開きます。openExample("sf_car")
Simulink エディターで、
engine RPM
信号をクリックします。次に、[シミュレーション] タブで [信号のログ] を選択します。ログ記録バッジ
が信号の上に表示されます。これは、モデルの実行時に信号のデータがログに記録されることを示しています。
transmission speed
信号とvehicle speed
信号に対し、前の手順を繰り返します。ブロックの左下隅にある矢印をクリックして、
shift_logic
チャートを開きます。状態
gear_state
を選択します。次に、[シミュレーション] タブで [子アクティビティのログ記録] をクリックします。ログ記録バッジが状態の隅に表示されます。
ロジック アナライザーによるログ出力の表示
モデルをシミュレートします。
[シミュレーション] タブの [結果の確認] で、ロジック アナライザー
を選択します。モデルをシミュレートすると、アイコンが強調表示されます。これは、ロジック アナライザーに新しいシミュレーション データがあることを示しています。
[ロジック アナライザー] ウィンドウで黄色のカーソルをドラッグし、シミュレーションのさまざまなポイントでの信号値を確認します。たとえば、車のギアが変わるとエンジン RPM がどう反応するかを見ることができます。詳細については、Inspect and Measure Transitions Using the Logic Analyzerを参照してください。
関連する例
- Inspect and Measure Transitions Using the Logic Analyzer
- Visualize Multiple Signals Using Logic Analyzer
- Partly Serial Systolic FIR Filter Implementation (DSP HDL Toolbox)
- Fully Parallel Systolic FIR Filter Implementation (DSP HDL Toolbox)
- ロジック アナライザーの構成
- FPGA 用のプログラム可能な FIR フィルター (HDL Coder)
- Log Simulation Output for States and Data (Stateflow)
制限
ログ設定
コンフィギュレーション パラメーター [データのログを作成] (Simulink) を有効にすると、ログ データをロジック アナライザーにストリーミングできません。
Simulink.sdi.markSignalForStreaming
(Simulink) を使用してログ記録用のマークが付けられた信号と、Dashboard Scope (Simulink) で可視化された信号は、ロジック アナライザーには表示されません。[データ ストア データのログ] パラメーターをオンに設定した場合、ロジック アナライザーでは Data Store Memory (Simulink) ブロックの信号を可視化できません。
入力信号の制限
ロジック アナライザーでのログ記録用のマークが付けられた信号では、シミュレーション ステップあたりのサンプル数が 8000 未満でなければなりません。
ロジック アナライザーではフレームベースの処理はサポートされません。
64 ビット整数および 53 ビットを超える 固定小数点数については、数値が倍精度の最大値より大きい場合、数値間の遷移が正しく表示されない可能性があります。結果を確認するには、信号のログを有効にするか、Display ブロックを使用します。
大きい行列 (500 を超える要素) の場合と 1000 を超える信号があるバスの場合、ロジック アナライザーのパフォーマンスが低下する可能性があります。
ロジック アナライザー アプリでは Stateflow® データ出力はサポートされません。
ロジック アナライザー アプリでは
Inf
およびNaN
の値に対する波形は表示されません。
グラフィカル設定
シミュレーションの実行中は、トリガーのズーム、パン、変更を行うことはできません。
定数信号を可視化するには、設定で [形式] を
[デジタル]
に設定しなければなりません。ログ記録用のマークが付けられた定数は、連続遷移として可視化されます。
Mode | サポートあり | 注意と制限 |
---|---|---|
ノーマル | あり | |
アクセラレータ | あり | ロジック アナライザーを使用して、[シミュレーション モード] が |
ラピッド アクセラレータ | あり | シミュレーション中にロジック アナライザーでデータは利用できません。 シミュレーション モードがラピッド アクセラレータに設定されたモデルをシミュレートする場合、以下の信号はシミュレーション後にロジック アナライザーで可視化できません。
|
プロセッサインザループ (PIL) | なし | |
ソフトウェアインザループ (SIL) | なし | |
エクスターナル | なし |
これらのモードの詳細については、アクセラレータ モードの動作 (Simulink)を参照してください。
バージョン履歴
R2016b で導入