ブレークポイントの使用 - 2023.2 日本語

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

Document ID
UG937
Release Date
2023-11-01
Version
2023.2 日本語
ブレークポイントは、ユーザーの指定するソース コード内の停止地点のことで、デザインをデバッグする際に使用します。ブレークポイントが設定されたデザインをシミュレーションすると、各ブレークポイントでシミュレーションが停止し、デザインの動作を確認できます。シミュレーションが停止すると、テキスト エディターでブレークポイントが設定されている行の横にマークが表示されるので、その HDL ソースの特定イベントと波形ウィンドウの結果を比較できます。

先ほど確認した低周波数信号出力のエラーをデバッグするため、ブレークポイントを使用します。この問題のある sine[19:0] 出力は sineGen VHDL ブロックから駆動されています。このブロックのデバッグを開始します。

  1. Scope ウィンドウで U_SINEGEN スコープを選択し、Objects ウィンドウにそのスコープのオブジェクトをリストさせます。
  2. Objects ウィンドウで sine[19:0] を右クリックし、Go to Source Code を選択して、テキスト エディターで sinegen.vhd ソース ファイルを開きます。
    ヒント: Objects ウィンドウで sine[19:0] 信号を確認できない場合は、Objects ウィンドウ上部のフィルターが出力オブジェクトを含めるように正しく設定されていることを確認します。

    HDL コードをざっと確認すると、clkreset、および sel 入力が予期どおりで、正しいことがわかります。この reset が 137 行目で Low にアサートされた後に最初のブレークポイントを設定します。

  3. ファイルの 137 行目までスクロールします。

    sinegen.vhd の 137 行目にブレークポイントを追加します。ブレークポイントは実行可能な行にのみ設定できます。AMD Vivado™ シミュレータでは、実行可能な行には、テキスト エディターの左端の行番号の横に中が白抜きの赤い丸 が付いています。

    このコードがシミュレータで処理されるたび、または、カウンターがカウントされて 1 増えるたびに、シミュレータはこのブレークポイントで停止します。

  4. テキスト エディターの左端の赤い丸 をクリックして、次の図のようにブレークポイントを設定します。

    この白抜きの赤い丸が赤く塗りつぶされた丸 になると、この行にブレークポイントが設定されたことを示します。この赤い丸 をクリックすると、ブレークポイントが削除され、白抜きの赤い丸 に戻ります。



    注記: ファイル内のすべてのブレークポイントを削除するには、設定されているブレークポイントの 1 つを右クリックし、Delete All Breakpoints を選択します。

    Vivado シミュレータでブレークポイントを設定し、ステップごとにデバッグしていくときは、次の図のように、Tcl Console ウィンドウ、波形ウィンドウ、HDL ソース ファイルを同時に確認しながら実行するのがベストです。

  5. これらのウィンドウのサイズを調整し、ウィンドウの Float コマンド または New Vertical Group コマンドを使用して、これらのウィンドウをすべて一度に確認できるように並べます。
  6. Restart ボタン をクリックして、時間 0 からシミュレーションを再開します。
  7. Run All button ボタン をクリックしてシミュレーションを開始します。

    シミュレーションは時間 102.5 ns まで、または最初のカウントの開始地点あたりまで実行し、137 行目のブレークポイントで停止します。Vivado IDE 内のテキスト エディターで、ブレークポイントのマーク が表示され、その行がハイライトされています。

    Tcl Console ウィンドウにはメッセージも表示され、シミュレータが停止した時間 (ピコ秒で表示) およびシミュレータで実行されたソース コードの行が表示されます。



    ヒント: 特定のタスク (この場合はシミュレーション デバッグ) を実行するためにウィンドウを並べ替えたときは、その表示レイアウトを保存しておくと、次にまた使用できます。メイン メニューから Layout > Save Layout As コマンドをクリックし、レイアウトを保存します。ウィンドウの並べ替えおよび表示レイアウトについての詳細は、 『Vivado Design Suite ユーザー ガイド: Vivado IDE の使用』 (UG893) を参照してください。
  8. [Run All] ボタン をクリックしてシミュレーションを続けます。

    ブレークポイントでシミュレーションがまた停止します。波形ウィンドウの値を確認します。Internal Signals グループの sine_l[15:0] 信号と同様、Outputs グループの sine[19:0] 信号も初期化されていません。

  9. テキスト エディターで、sinegen.vhd ソース ファイルの 144 行目に別のブレークポイントを追加します。

    この行は sel が 0 のときに実行します。このコードは、ビット拡張を使用して、低周波数信号 sine_l を出力のサインに割り当てます。

  10. 波形ウィンドウで、Internal Signals グループの sine_l[15:0] を選択し、Ctrl キーを押しながら Outputs グループの sine[19:0] 信号を選択します。

    選択された信号は波形ウィンドウでハイライトされており、確認しやすくなっています。

  11. Run All ボタン をクリックしてシミュレーションを開始します。

    再びシミュレーションがブレークポイントで停止しますが、今度は 144 行目で停止します。