ソース コードのステップ実行 - 2023.2 日本語

Vivado Design Suite チュートリアル: ロジック シミュレーション (UG937)

Document ID
UG937
Release Date
2023-11-01
Version
2023.2 日本語
AMD Vivado™ シミュレータのデバッグ ツールには、行ステップという便利な機能もあります。この機能を利用すると、シミュレータを 1 つのシミュレーション単位ごと (行、プロセス、タスク) に実行できます。これは、ソース コードの各行がシミュレーション結果にどのように影響するかを調べる場合に便利です。

ソース コードを行ごとにステップ実行し、低周波数の波形がどのように選択されているか、DDC Compiler 出力が正しいかどうかを確認します。

  1. Vivado シミュレータのツールバー メニューで Step ボタン をクリックします。

    シミュレーションは次の実行可能な行まで進みます。この場合は、別のソース ファイルに進みます。fsm.vdh ファイルはテキスト エディターで開きます。前回と同じ配置ですべてのウィンドウを表示させるため、テキスト エディターのウィンドウを別の場所に移動させる必要がある場合があります。

    注記: Tcl プロンプトで step コマンドを入力することもできます。
  2. sinegen.vhd の 144 行目にコードが戻るまで、ステップ実行を続けます。

    これで回路全体をステップ実行できました。波形ウィンドウで、sel は 0 ですが、sine_l は低周波数の正弦波として出力の sine に割り当てられている点に注目してください。また、sine_l は初期化されていないままの状態です。

  3. 次のように、デバッグ目的で [Tcl Console] ウィンドウに add_force コマンドを入力し、sine_l の値を初期化します。
    add_force /testbench/dut/U_SINEGEN/sine_l 0110011011001010

    このコマンドにより、sine_l の値が特定の既知のコンディションになります。必要であれば、さらに徹底して信号を実行するため、値の繰り返しセットを作成することも可能です。add_force の詳細は、 『Vivado Design Suite ユーザー ガイド: ロジック シミュレーション』 (UG900) を参照してください。

  4. Run All ボタン をクリックしてシミュレーションを続けます。

    波形ウィンドウで、sine_l[15:0] の値が add_force コマンドで指定されている値に設定されていること、また、sel の値が 0 のままなので、sine_l[15:0] の値が出力信号 sine[19:0] に割り当てられていることに注目してください。

    HDL ソース ファイルで sine_l 信号をトレースし、sine_l の入力を特定します。

  5. テキスト エディターで右クリックして Find in files を選択し、sine_l を検索します。
  6. 次の図のように、Match whole word および Enabled design sources チェック ボックスをオンにし、Find をクリックします。

    [Find in Files] の検索結果は Vivado IDE の下部に表示され、sinegen.vhd ファイルで検出された sine_l がすべて表示されます。

  7. sinegen.vhd ファイルでの検索結果を表示させるため、表示スペースを広げます。

    111 行目にある 2 番目の検索結果を見ると、デザインに問題があることがわかります。sinegen.vhd ファイルの 111 行目で、m_axis_data_tdata_sine_low 信号が sine_l に割り当てられています。111 行目はコメントアウトされているので、sine_l 信号は低周波数の DDS Compiler 出力には接続されていないか、または、ほかのどの入力にも接続されていません。

  8. sinegen.vhd ファイルの 111 行目のコメントアウトを取り消し、Save File ボタン をクリックします。
  9. [Tcl Console] ウィンドウで sine_l: remove_forces -all を実行して、強制を解除します。