プロジェクトへのデバッグ ネットの追加 - 2022.1 日本語

Vivado Design Suite チュートリアル: プログラムおよびデバッグ (UG936)

Document ID
UG936
Release Date
2022-05-20
Version
2022.1 日本語
Vivado IDE を使用しデバッグ ネットを追加するには、次の方法があります。
  • HDL ファイルに MARK_DEBUG 属性を追加する。
    VHDL
    attribute mark_debug : string; 
    attribute mark_debug of sine     : signal is "true";
    attribute mark_debug of sineSel  : signal is "true";
    Verilog
    (* mark_debug = "true" *) wire sine;
    (* mark_debug = "true" *) wire sineSel;

    この方法であれば、HDL デザイン レベルで信号をプローブできます。これで信号の最適化を防ぐことが可能です。また、合成後用に指定されている信号をデバッグ コアに挿入し、FPGA 操作中にその信号の値を確認することもできます。この方法なら、HDL 信号名が合成後に保持される可能性が最も高くなります。

  • 合成済みネットリストで信号を右クリックし、Mark Debug または Unmark Debug を選択する。

    この方法なら、Vivado IDE で合成済みネットリストをプローブできるだけでなく、デザインの任意の階層で MARK_DEBUG 属性を追加/削除できるので、柔軟性があります。また、HDL ソースを変更する必要がありません。ただし、ネットリストの最適化によりデザイン構造が吸収または統合されると、合成で信号が保持されない場合があります。

  • Tcl プロンプトを使用し、合成済みネットリストに MARK_DEBUG 属性を設定する。
    set_property mark_debug true [get_nets -hier [list {sine[*]}]]

    現在開いているネットリストに MARK_DEBUG 属性が適用されます。

    この方法は、Tcl コマンドで MARK_DEBUG のオン/オフを切り替えることができるので柔軟性があります。また、HDL ソースを変更する必要がありません。ただし、ネットリストの最適化によりデザイン構造が吸収または統合されると、合成で信号が保持されない場合があります。

次の手順では、Vivado IDE を使用して、デバッグ ネットを HDL および合成済みデザインに追加する方法を学びます。

ヒント: 作業を進める前に、左側にある Flow Navigator がイネーブルになっていることを確認してください。

このオン/オフを切り替えるには、Ctrl + Q キーを押します。

  1. 次の図のように、Flow Navigator の Synthesis ドロップダウン リストから Open Synthesized Design をクリックします。

  2. WindowDebug をクリックします。Debug ウィンドウが開いたら、ウィンドウがまだ選択されていない場合は、そのウィンドウをクリックします。
  3. Unassigned Debug Nets フォルダーを展開します。次の図は、sinegen_demo.vhd で MARK_DEBUG 属性が設定されているデバッグ ネットを示しています。

  4. Netlist ウィンドウの Netlist タブを選択し、Nets を展開表示します。次の図のように、デバッグするネットを選択します。
    GPIO_BUTTONS_IBUF[0] および GPIO_BUTTONS_IBUF[1]
    最上位にある Nets フォルダー
    sel(2)
    U_SINEGEN 階層にある Nets フォルダー
    sine(20)
    U_SINEGEN 階層にある Nets フォルダー


    注記: これらの信号は、このデザインの重要な動作を表すもので、後の手順でデザインの検証およびデバッグに使用されます。
  5. 次の図のように、選択したネットを右クリックし Mark Debug を選択します。

  6. Tcl Console でデバッグするネットをマークします。次の Tcl コマンドを実行し、U_SINEGEN 階層の下にある sine(20) というネットをデバッグ用にマークします。
    set_property mark_debug true [get_nets -hier [list {sine[*]}]]
    ヒント: Debug ウィンドウに、先ほど選択した、割り当てられていないネットが表示されます。次の 2 つの図のように、Netlist ウィンドウには、各スカラーまたはバスの横に緑色の虫の形をしたアイコンも表示されます。このアイコンは、ネットに mark_debug = true と属性が設定されていることを示します。