先ほど確認した低周波数信号出力のエラーをデバッグするため、ブレークポイントを使用します。この問題のある sine[19:0]
出力は sineGen
VHDL ブロックから駆動されています。このブロックのデバッグを開始します。
- Scope ウィンドウで U_SINEGEN スコープを選択し、Objects ウィンドウにそのスコープのオブジェクトをリストさせます。
-
Objects ウィンドウで sine[19:0] を右クリックし、Go to Source Code を選択して、テキスト エディターで sinegen.vhd ソース ファイルを開きます。ヒント: Objects ウィンドウで
sine[19:0]
信号を確認できない場合は、Objects ウィンドウ上部のフィルターが出力オブジェクトを含めるように正しく設定されていることを確認します。HDL コードをざっと確認すると、
clk
、reset
、およびsel
入力が予期どおりで、正しいことがわかります。このreset
が 137 行目で Low にアサートされた後に最初のブレークポイントを設定します。 - ファイルの 137 行目までスクロールします。
sinegen.vhd の 137 行目にブレークポイントを追加します。ブレークポイントは実行可能な行にのみ設定できます。AMD Vivado™ シミュレータでは、実行可能な行には、テキスト エディターの左端の行番号の横に中が白抜きの赤い丸 が付いています。
このコードがシミュレータで処理されるたび、または、カウンターがカウントされて 1 増えるたびに、シミュレータはこのブレークポイントで停止します。
- テキスト エディターの左端の赤い丸 をクリックして、次の図のようにブレークポイントを設定します。
この白抜きの赤い丸が赤く塗りつぶされた丸 になると、この行にブレークポイントが設定されたことを示します。この赤い丸 をクリックすると、ブレークポイントが削除され、白抜きの赤い丸 に戻ります。
注記: ファイル内のすべてのブレークポイントを削除するには、設定されているブレークポイントの 1 つを右クリックし、Delete All Breakpoints を選択します。Vivado シミュレータでブレークポイントを設定し、ステップごとにデバッグしていくときは、次の図のように、Tcl Console ウィンドウ、波形ウィンドウ、HDL ソース ファイルを同時に確認しながら実行するのがベストです。
- これらのウィンドウのサイズを調整し、ウィンドウの Float コマンド または New Vertical Group コマンドを使用して、これらのウィンドウをすべて一度に確認できるように並べます。
- Restart ボタン をクリックして、時間 0 からシミュレーションを再開します。
-
Run All
button ボタン をクリックしてシミュレーションを開始します。
シミュレーションは時間 102.5 ns まで、または最初のカウントの開始地点あたりまで実行し、137 行目のブレークポイントで停止します。Vivado IDE 内のテキスト エディターで、ブレークポイントのマーク が表示され、その行がハイライトされています。
Tcl Console ウィンドウにはメッセージも表示され、シミュレータが停止した時間 (ピコ秒で表示) およびシミュレータで実行されたソース コードの行が表示されます。
ヒント: 特定のタスク (この場合はシミュレーション デバッグ) を実行するためにウィンドウを並べ替えたときは、その表示レイアウトを保存しておくと、次にまた使用できます。メイン メニューから コマンドをクリックし、レイアウトを保存します。ウィンドウの並べ替えおよび表示レイアウトについての詳細は、 『Vivado Design Suite ユーザー ガイド: Vivado IDE の使用』 (UG893) を参照してください。 - [Run All] ボタン をクリックしてシミュレーションを続けます。
ブレークポイントでシミュレーションがまた停止します。波形ウィンドウの値を確認します。Internal Signals グループの
sine_l[15:0]
信号と同様、Outputs グループのsine[19:0]
信号も初期化されていません。 - テキスト エディターで、
sinegen.vhd
ソース ファイルの 144 行目に別のブレークポイントを追加します。この行は
sel
が 0 のときに実行します。このコードは、ビット拡張を使用して、低周波数信号sine_l
を出力のサインに割り当てます。 - 波形ウィンドウで、Internal Signals グループの
sine_l[15:0]
を選択し、Ctrl キーを押しながら Outputs グループのsine[19:0]
信号を選択します。選択された信号は波形ウィンドウでハイライトされており、確認しやすくなっています。
-
Run All ボタン をクリックしてシミュレーションを開始します。
再びシミュレーションがブレークポイントで停止しますが、今度は 144 行目で停止します。