« Prev | Next » アドバンスドデータフローの使用方法 アドバンスドデータフローウィンドウは、設計者がアクティブなデザインの接続を調べ、シミュレーション中にインスタンス、コンカレント文、信号、ネットおよびレジスタ間のデータフローを解析できる強力なツールです。データフロー・ビューワで表示するデータフロー・ダイアグラムには階層、フラット、およびグレーの3種類があり、プロジェクト全体を伝搬するイベントを追跡し、予期しない出力値の原因となっている部分を特定するのに力を発揮します。 本ドキュメントでは、サンプルデザイン Freq_meter を使って、アドバンスドデータフローの使用方法を紹介します。 アドバンスドデータフロー デザインを開くには、メニューの File | Open workspace/design Explorer を選択し、Active-HDL/samples/VHDL_Designs の下の Freq_meter を開きます。開いたデザインのテストベンチフォルダに移動して、下図1に示すように testbench (entity/architecture) をデザイントップレベルに指定します。 図 1 イニシャライズシミュレーションを実行しアドバンスドデータフローへ信号を追加する前に、必要な設定があります。メニューの Tools | Preferences | Simulation | Advanced Dataflow を選択し、下図2に示すように設定します。アドバンスドデータフローが正常に動作するように、Generate data for Advanced Dataflow にチェックを入れます。 図 2 イニシャライズシミュレーション実行後、Design Browser の Structuresタブにて freq_topを選択し 、下のウィンドウにてGATE 信号を右クリックして、図3に示すように Add to Advanced Dataflowを選びます。 図 3 アドバンスドデータフローウィンドウが開いて、図4のようにフラットモードで GATE 信号が追加されます。 図 4 アドバンスドデータフローには3つのモードがあります。 階層 フラット グレー Hierarchy modeアイコンを使って、フラットモードと階層モードを切り替えることができます。アドバンスドデータフローで選択したGATE信号に対して階層モードに切り替えると、下図5が表示されGATE信号を使って UUT/U0 と cnt_bcd が繋がっていることが分かります。 図 5 グレーモードは特定信号を詳細にトレースするのに有効で、特に複雑なデザインの大きなデータフロー図におけるトレースが容易になります。グレーモードはアイコンを使って切り替え可能です。グレーモードに切り替えた後、LED_A を右クリックして X-wayを選択します。これにより、他の全てのブロックがグレーアウトとなり、図6のようにトレースされるブロックだけが青色でハイライト表示されます。 図 6 アドバンスドデータフローウィンドウで特定の信号を右クリックすると、図7のコンテキストメニューからオプションを選択でき、シミュレーションモデルの接続を調べ、デザイン全体を伝搬するイベントをトレースすることができます。 図 7 Expand Net 選択したネットに繋がるオブジェクトやリードするオブジェクト、アップデートするオブジェクトを表示します。Preferencesでのアドバンスドデータフローの設定に応じて、選択したネットは現在の階層内または全階層を通してかのいずれかで展開表示されます。選択したネットをダブルクリックすることでも代用できます。 Expand Net to Readers 選択したネットをリードするオブジェクトを表示します。本オプションを選択すると、指定したネットは下位階層を通して展開表示され、指定ネットによりアップデートされるすべての構文が表示されます。 Expand Net to Drivers 選択したネットをアップデートするオブジェクトを表示します。本オプションを選択すると、指定したネットは下位階層を通して展開表示され、指定ネットをアップデートするすべての構文が表示されます。 List Drivers コンソールに特定信号のすべてのドライバをリストするには、list drivers を使用します。例えばLED_C信号を右クリックしlist driversを選択すると、図8に示すように、コンソールにドライバがリストされます。本オプションはマルチドライバ問題の解析に有効です。 図 8 X way シミュレーション実行中にXやUを観測した場合、アドバンスドデータフローウィンドウにてコンテキストメニューからX Wayを選択することにより、そのソースを検出します。本オプションは予期せぬ値の発生源である構文が見つかるまで接続を調べます。 アドバンスドデータフローウィンドウは、ストラクチャタブや波形ウィンドウ、HDLエディタのような他のウィンドウとも強固に統合されています。特定オブジェクトのソースコードを表示するには、view source を使います。アドバンスドデータフローから波形ウィンドウへオブジェクトを追加するには、add to waveform windowを使用します。 HDLエディタ、ブロック/ステートダイアグラムエディタ、以前の波形ビューワ/エディタ、およびプロセス/ウォッチウィンドウでのオブジェクトの指定も同様で、コンテキストメニューから Add to Advanced Dataflow を選択します。Add to Advanced Dataflow や Add to Advanced Dataflow Recursively コマンドはツールバーからも利用できます。 アドバンスドデータフロートレース 選択された作業モードに関わらず、アドバンスドデータフローウィンドウはドック可能なツールボックスadvanced Dataflow Traceと常に同期しています。アドバンスドデータフロートレースオプションは、次の目的で用意されています。 アドバンスドデータフローウィンドウで選択された設計オブジェクト(信号/ネット、タイプ、値、階層、インスタンス、構文、ポートマップ等)の詳細情報を表示します。 現在データフローウィンドウに表示されている信号/ネット、インスタンスおよびHDL構文を検索します。 アドバンスドデータフロートレースツールボックスを開くには、メニューのadvanced Dataflow | View Trace またはツールバーのView Trace ボタンを使います。図9では LED_C信号の情報をadvanced Dataflow Trace ツールボックスで表示しています。 図 9 上記2つのウィンドウは同期しており、アドバンスドデータフローウィンドウで選択した信号の詳細情報(名前、タイプ、値、デザイン階層パス)が、アドバンスドデータフロートレースツールボックスに表示されます。 ユーザは一定時間シミュレーションを実行し、アドバンスドデータフローでダイナミックに値の変化を観測することができます。図10では、コンソールウィンドウにrun 20usとタイプし、アドバンスドデータフローウィンドウでGATE信号の値の変化を観測しています。本機能はデザインのデバッグに大変有効で、シミュレーション実行時に生成される値を観測することができます。 図 10 Previous article Next article