FC2カウンター FPGAの部屋 Vivado
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製16(ハードウェアのデバック4)

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製15(ハードウェアのデバック3)”の続き。

AXI IICの出力がなくなっていたので、これを修正することにした。最初にiic_3state_buf IP のコードをIOBUFプリミティブを使用するように変更した。下にVerilog HDLファイルを示す。

`default_nettype none

module iic_3state_buf(
    output  wire    sda_i,
    input   wire    sda_o,
    input   wire    sda_t,
    output  wire    scl_i,
    input   wire    scl_o,
    input   wire    scl_t,
    inout   wire    sda,
    inout   wire    scl
);
    IOBUF scl_iobuf (
        .I(scl_o),
        .IO(scl),
        .O(scl_i),
        .T(scl_t)
    );
    IOBUF sda_iobuf (
        .I(sda_o),
        .IO(sda),
        .O(sda_i),
        .T(sda_t)
    );
endmodule

`default_nettype wire


これで、論理合成、インプリメントしてみたが、怪しいクリティカル・ワーニングが出てしまった。その後、iic_3state_buf IPを使用するのを止めて、ikwzm さんに教えてもらった手順でAXI IICのIOBUF をインスタンスしたが、いろいろといじりすぎてか?論理合成でエラーが出るようになってしまった。
Cam_VDMA_197_140203.png

PSが無いと言われては、完全におかしい。。。仕方が無いので、新しく 1日がかりでVivado 2013.4のプロジェクトを作りなおした。そして、ikwzm さんに教えてもらった手順でAXI IICのIOBUF をインスタンスした。それして、論理合成、インプリメントを行ったところ、AXI IICのIOBUFが実装されていた。下の図に hdmi_iic_scl_iobuf の様子を示す。きちんとIOピンに配線が行っているのが見えるはずだ。
Cam_VDMA_198_140203.png

下に新しく作りなおしたVivado 2013.4のプロジェクトを示す。
Cam_VDMA_199_140203.png

IP Integrator のBlock Design (CamD_VDMA.bd) を示す。
Cam_VDMA_200_140203.png

ハードウェアをエクスポートして、SDKを起動した。
Cam_VDMA_201_140203.png

Program FPGAして、ソフトウェアを作り直して、Run Configuration を作製し、Runを行ったが、ディスプレイには、ランダムパターンが表示されただけで、失敗した。
Cam_VDMA_202_140203.jpg

1歩前進したので、もう一度 Vivado Logic Analyzer をかけてデバックを行う。

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製17(ハードウェアのデバック5)”に続く。
  1. 2014年02月03日 04:53 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製15(ハードウェアのデバック3)

”Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製14(ハードウェアのデバック2)”の続き。

今回は、Hardware Manager を立ちあげて、実際の波形を観測する。

・ZedBoardの電源をONにしておく。

・Flow Navigator からOpen Hardware Manager を立ち上げる。
Cam_VDMA_178_140129.png

・Hardware Manager が立ち上がった。Open a new hardware target をクリックした。
Cam_VDMA_179_140131.png

・Open Hardware Target ダイアログが表示された。Next >ボタンをクリックした。
Cam_VDMA_180_140131.png

・Vivado CSE Server Name を設定する。localhost:60001 のデフォルトのまま、Next >ボタンをクリックした。
Cam_VDMA_181_140131.png

・Select Hardware Target でARM とZynq-7020 が見えた。Next >ボタンをクリックした。
Cam_VDMA_182_140131.png

・Set Hardware Properties で、FREQUENCYを 1500000Hz に設定した。
Cam_VDMA_183_140131.png

・Summary が表示された。Finishボタンをクリックした。
Cam_VDMA_184_140131.png

・Hardware Manager はこんな感じになった。
Cam_VDMA_185_140131.png

・xc7x020_1 を右クリックし、右クリックメニューからProgram Device... を選択した。
Cam_VDMA_186_140131.png

・コンフィグレーションするビットストリームがすでに表示されていた。OKボタンをクリックした。
Cam_VDMA_187_140131.png

・そうするとエラーになった。ZynqでPSからクロックをもらっているので、当然クロックは来ていないはず。PSをブートする必要があるね。。。
Cam_VDMA_188_140131.png

ここで、ZedBoard.org の Reference Designs/Tutorials ページの”Zynq Concepts, Tools, and Techniques on ZedBoard, Vivado 2013.2 Version”をダンロードして、マニュアル、”ZedBoard: Zynq-7000 AP SoC Concepts, Tools, and Techniques A Hands-On Guide to Effective Embedded System Design ZedBoard (Vivado 2013.2)”の 47, 48ページを見ると、エラーダイアログが出たら、SDKでHello World を実行しろと書いてあった。そうか、Hello World を実行すれば、PSからクロックが来るね。。。

・SDKでHello World プロジェクトを作製した。
Cam_VDMA_189_140131.png

・Run Configuration を作って、Runした。
Cam_VDMA_190_140131.png

・ps7_init is completed. になった。
Cam_VDMA_191_140131.png

・Vivado に戻って、Refresh device をクリックし、xc7z020_1 を選択した。
Cam_VDMA_192_140131.png

・Hardware Manager に各ILAが見えた。成功。。。
Cam_VDMA_193_140131.png

・図のアイコンをクリックした。トリガ条件はまだ入れていない。
Cam_VDMA_194_140201.png

・現在のAXIバスの様子が波形で示された。
Cam_VDMA_195_140201.png

SDKで、cam_disp_vdmaソフトウェアを走らせて、Hardware Manager で波形を見たが、AXIバスが動作していない。SDKでRUNしているのに、cam_disp_vdmaソフトウェアは終了していなかった。おかしい。。。
SDKでデバックしてみると、HDMI用AXI IICのステータスレジスタのReadでTX FIFOがEmpty になっていなかった。

いろいろと調べてみると驚愕の事実が判明した。AXI IICのSDA, SCL の出力をつないだはずの hdmi_iic_Scl, hdmi_iic_Sda ピンがGNDにつながっていた。下に、hdmi_iic_Sda ピンを示す。
Cam_VDMA_196_140201.png

緑色のロジックに行く線が LOGIC0 になっていた。

自分で作ったiic_3state_buf_0, iic_3state_buf_1 IPがおかしいのか?
Cam_VDMA_99_140113.png

iic_3state_bufを何とかしてみることにする。

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製16(ハードウェアのデバック4)”に続く。
  1. 2014年02月02日 04:29 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Vivado Logic AnalyzerでTCP番号60001番を使用するソフトウェア

Vivado Logic Analyzerを使っていて、Vivadoが反応しなくなるので、vivado.exeをタスクマネージャーから落とすのだが、TCP番号60001を使用していて、60001番を開放されない時がある。

TCP番号60001番をどんなプロセスが使っているか調べるには、コマンドプロンプトで”netstat -ano”を実行する。そうすると、TCP番号60001番を使用しているPID (Process ID) がわかる。下の図の場合は、7080のPIDのプロセスがTCP番号60001番を使用している。
vcse_server_1_140201.png

タスクマネージャーを開いて、表示メニューから列の選択... を選んでPIDにチェックを入れて、PIDを表示させる。
PID順にソートすると、vcse_server.exe がPID番号が7080でこれが、TCP番号60001を使っていることがわかる。
vcse_server_2_140201.png

このプロセスを終了させて、”netstat -ano”を実行したところ、TCP番号60001は未使用になった。
vcse_server_3_140201.png

Vivado でLogic Analyzer を起動していて、どうにもキャンセルできなくて、vivado.exeを落とした時には、hw_server.exe も強制終了させないとダメなようです。
vcse_server_4_140201.png
  1. 2014年02月01日 05:08 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製14(ハードウェアのデバック2)

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製13(ハードウェアのデバック1)”の続き。

前回はデバックを行うネットを指定してILAコアを挿入し、インプリメントを行ったがタイミングエラーが発生した。
今回は、クロック間のタイミング制約を設定して、インプリメントを行い、ハードウェアをエクスポートしてSDKを立ち上げる。

・timing.xdc に pclk と clk_fpga_0 間の制約を無視するように、false_path 制約を追加した。
Cam_VDMA_172_140130.png

set_false_path -from [get_clocks pclk] -to [get_clocks clk_fpga_0]


・これでもう一度インプリメントを行ったところ、タイミングエラーは無くなった。
Cam_VDMA_173_140130.png

・timing.xdc には、ILAの制約が入っていた。ILAの制約を下に示す。

create_debug_core u_ila_0 labtools_ila_v3
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
set_property ALL_PROBE_SAME_MU_CNT 4 [get_debug_cores u_ila_0]
set_property C_ADV_TRIGGER true [get_debug_cores u_ila_0]
set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]
set_property C_EN_STRG_QUAL true [get_debug_cores u_ila_0]
set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
set_property port_width 1 [get_debug_ports u_ila_0/clk]
connect_debug_port u_ila_0/clk [get_nets [list CamD_VDMA_i/processing_system7_0/FCLK_CLK0]]
set_property port_width 4 [get_debug_ports u_ila_0/probe0]
connect_debug_port u_ila_0/probe0 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARCACHE[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARCACHE[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARCACHE[2]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARCACHE[3]}]]
create_debug_core u_ila_1 labtools_ila_v3
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_1]
set_property ALL_PROBE_SAME_MU_CNT 4 [get_debug_cores u_ila_1]
set_property C_ADV_TRIGGER true [get_debug_cores u_ila_1]
set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_1]
set_property C_EN_STRG_QUAL true [get_debug_cores u_ila_1]
set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_1]
set_property C_TRIGIN_EN false [get_debug_cores u_ila_1]
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_1]
set_property port_width 1 [get_debug_ports u_ila_1/clk]
connect_debug_port u_ila_1/clk [get_nets [list CamD_VDMA_i/processing_system7_0_FCLK_CLK0]]
set_property port_width 32 [get_debug_ports u_ila_1/probe0]
connect_debug_port u_ila_1/probe0 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[2]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[3]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[4]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[5]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[6]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[7]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[8]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[9]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[10]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[11]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[12]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[13]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[14]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[15]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[16]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[17]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[18]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[19]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[20]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[21]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[22]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[23]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[24]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[25]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[26]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[27]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[28]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[29]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[30]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARADDR[31]}]]
create_debug_core u_ila_2 labtools_ila_v3
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_2]
set_property ALL_PROBE_SAME_MU_CNT 4 [get_debug_cores u_ila_2]
set_property C_ADV_TRIGGER true [get_debug_cores u_ila_2]
set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_2]
set_property C_EN_STRG_QUAL true [get_debug_cores u_ila_2]
set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_2]
set_property C_TRIGIN_EN false [get_debug_cores u_ila_2]
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_2]
set_property port_width 1 [get_debug_ports u_ila_2/clk]
connect_debug_port u_ila_2/clk [get_nets [list CamD_VDMA_i/processing_system7_0_FCLK_CLK2]]
set_property port_width 32 [get_debug_ports u_ila_2/probe0]
connect_debug_port u_ila_2/probe0 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[0]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[1]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[2]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[3]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[4]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[5]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[6]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[7]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[8]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[9]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[10]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[11]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[12]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[13]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[14]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[15]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[16]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[17]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[18]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[19]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[20]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[21]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[22]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[23]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[24]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[25]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[26]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[27]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[28]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[29]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[30]} {CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TDATA[31]}]]
create_debug_core u_ila_3 labtools_ila_v3
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_3]
set_property ALL_PROBE_SAME_MU_CNT 4 [get_debug_cores u_ila_3]
set_property C_ADV_TRIGGER true [get_debug_cores u_ila_3]
set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_3]
set_property C_EN_STRG_QUAL true [get_debug_cores u_ila_3]
set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_3]
set_property C_TRIGIN_EN false [get_debug_cores u_ila_3]
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_3]
set_property port_width 1 [get_debug_ports u_ila_3/clk]
connect_debug_port u_ila_3/clk [get_nets [list mt9d111_pclk_IBUF_BUFG]]
set_property port_width 24 [get_debug_ports u_ila_3/probe0]
connect_debug_port u_ila_3/probe0 [get_nets [list {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[0]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[1]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[2]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[3]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[4]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[5]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[6]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[7]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[8]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[9]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[10]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[11]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[12]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[13]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[14]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[15]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[16]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[17]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[18]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[19]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[20]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[21]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[22]} {CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TDATA[23]}]]
create_debug_port u_ila_0 probe
set_property port_width 3 [get_debug_ports u_ila_0/probe1]
connect_debug_port u_ila_0/probe1 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARPROT[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARPROT[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARPROT[2]}]]
create_debug_port u_ila_0 probe
set_property port_width 4 [get_debug_ports u_ila_0/probe2]
connect_debug_port u_ila_0/probe2 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWCACHE[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWCACHE[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWCACHE[2]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWCACHE[3]}]]
create_debug_port u_ila_0 probe
set_property port_width 3 [get_debug_ports u_ila_0/probe3]
connect_debug_port u_ila_0/probe3 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWPROT[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWPROT[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWPROT[2]}]]
create_debug_port u_ila_0 probe
set_property port_width 2 [get_debug_ports u_ila_0/probe4]
connect_debug_port u_ila_0/probe4 [get_nets [list {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_BRESP[0]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_BRESP[1]}]]
create_debug_port u_ila_0 probe
set_property port_width 2 [get_debug_ports u_ila_0/probe5]
connect_debug_port u_ila_0/probe5 [get_nets [list {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RRESP[0]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RRESP[1]}]]
create_debug_port u_ila_1 probe
set_property port_width 2 [get_debug_ports u_ila_1/probe1]
connect_debug_port u_ila_1/probe1 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARBURST[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARBURST[1]}]]
create_debug_port u_ila_1 probe
set_property port_width 8 [get_debug_ports u_ila_1/probe2]
connect_debug_port u_ila_1/probe2 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARLEN[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARLEN[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARLEN[2]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARLEN[3]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARLEN[4]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARLEN[5]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARLEN[6]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARLEN[7]}]]
create_debug_port u_ila_1 probe
set_property port_width 3 [get_debug_ports u_ila_1/probe3]
connect_debug_port u_ila_1/probe3 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARSIZE[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARSIZE[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARSIZE[2]}]]
create_debug_port u_ila_1 probe
set_property port_width 64 [get_debug_ports u_ila_1/probe4]
connect_debug_port u_ila_1/probe4 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[2]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[3]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[4]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[5]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[6]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[7]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[8]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[9]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[10]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[11]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[12]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[13]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[14]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[15]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[16]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[17]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[18]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[19]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[20]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[21]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[22]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[23]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[24]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[25]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[26]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[27]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[28]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[29]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[30]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[31]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[32]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[33]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[34]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[35]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[36]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[37]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[38]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[39]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[40]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[41]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[42]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[43]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[44]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[45]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[46]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[47]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[48]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[49]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[50]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[51]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[52]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[53]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[54]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[55]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[56]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[57]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[58]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[59]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[60]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[61]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[62]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RDATA[63]}]]
create_debug_port u_ila_1 probe
set_property port_width 2 [get_debug_ports u_ila_1/probe5]
connect_debug_port u_ila_1/probe5 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RRESP[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RRESP[1]}]]
create_debug_port u_ila_1 probe
set_property port_width 32 [get_debug_ports u_ila_1/probe6]
connect_debug_port u_ila_1/probe6 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[2]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[3]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[4]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[5]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[6]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[7]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[8]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[9]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[10]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[11]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[12]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[13]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[14]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[15]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[16]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[17]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[18]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[19]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[20]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[21]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[22]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[23]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[24]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[25]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[26]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[27]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[28]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[29]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[30]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWADDR[31]}]]
create_debug_port u_ila_1 probe
set_property port_width 2 [get_debug_ports u_ila_1/probe7]
connect_debug_port u_ila_1/probe7 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWBURST[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWBURST[1]}]]
create_debug_port u_ila_1 probe
set_property port_width 8 [get_debug_ports u_ila_1/probe8]
connect_debug_port u_ila_1/probe8 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWLEN[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWLEN[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWLEN[2]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWLEN[3]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWLEN[4]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWLEN[5]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWLEN[6]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWLEN[7]}]]
create_debug_port u_ila_1 probe
set_property port_width 3 [get_debug_ports u_ila_1/probe9]
connect_debug_port u_ila_1/probe9 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWSIZE[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWSIZE[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWSIZE[2]}]]
create_debug_port u_ila_1 probe
set_property port_width 2 [get_debug_ports u_ila_1/probe10]
connect_debug_port u_ila_1/probe10 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_BRESP[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_BRESP[1]}]]
create_debug_port u_ila_1 probe
set_property port_width 32 [get_debug_ports u_ila_1/probe11]
connect_debug_port u_ila_1/probe11 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[2]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[3]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[4]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[5]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[6]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[7]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[8]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[9]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[10]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[11]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[12]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[13]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[14]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[15]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[16]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[17]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[18]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[19]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[20]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[21]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[22]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[23]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[24]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[25]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[26]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[27]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[28]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[29]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[30]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WDATA[31]}]]
create_debug_port u_ila_1 probe
set_property port_width 4 [get_debug_ports u_ila_1/probe12]
connect_debug_port u_ila_1/probe12 [get_nets [list {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WSTRB[0]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WSTRB[1]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WSTRB[2]} {CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WSTRB[3]}]]
create_debug_port u_ila_1 probe
set_property port_width 9 [get_debug_ports u_ila_1/probe13]
connect_debug_port u_ila_1/probe13 [get_nets [list {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWADDR[0]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWADDR[1]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWADDR[2]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWADDR[3]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWADDR[4]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWADDR[5]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWADDR[6]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWADDR[7]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWADDR[8]}]]
create_debug_port u_ila_1 probe
set_property port_width 32 [get_debug_ports u_ila_1/probe14]
connect_debug_port u_ila_1/probe14 [get_nets [list {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[0]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[1]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[2]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[3]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[4]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[5]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[6]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[7]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[8]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[9]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[10]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[11]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[12]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[13]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[14]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[15]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[16]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[17]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[18]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[19]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[20]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[21]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[22]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[23]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[24]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[25]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[26]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[27]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[28]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[29]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[30]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WDATA[31]}]]
create_debug_port u_ila_1 probe
set_property port_width 9 [get_debug_ports u_ila_1/probe15]
connect_debug_port u_ila_1/probe15 [get_nets [list {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARADDR[0]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARADDR[1]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARADDR[2]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARADDR[3]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARADDR[4]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARADDR[5]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARADDR[6]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARADDR[7]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARADDR[8]}]]
create_debug_port u_ila_1 probe
set_property port_width 32 [get_debug_ports u_ila_1/probe16]
connect_debug_port u_ila_1/probe16 [get_nets [list {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[0]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[1]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[2]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[3]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[4]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[5]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[6]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[7]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[8]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[9]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[10]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[11]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[12]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[13]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[14]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[15]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[16]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[17]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[18]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[19]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[20]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[21]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[22]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[23]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[24]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[25]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[26]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[27]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[28]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[29]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[30]} {CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RDATA[31]}]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe17]
connect_debug_port u_ila_1/probe17 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARREADY]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe18]
connect_debug_port u_ila_1/probe18 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_ARVALID]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe19]
connect_debug_port u_ila_1/probe19 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RLAST]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe20]
connect_debug_port u_ila_1/probe20 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RREADY]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe21]
connect_debug_port u_ila_1/probe21 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_MM2S_RVALID]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe22]
connect_debug_port u_ila_1/probe22 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWREADY]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe23]
connect_debug_port u_ila_1/probe23 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_AWVALID]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe24]
connect_debug_port u_ila_1/probe24 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_BREADY]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe25]
connect_debug_port u_ila_1/probe25 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_BVALID]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe26]
connect_debug_port u_ila_1/probe26 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WLAST]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe27]
connect_debug_port u_ila_1/probe27 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WREADY]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe28]
connect_debug_port u_ila_1/probe28 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXI_S2MM_WVALID]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe29]
connect_debug_port u_ila_1/probe29 [get_nets [list CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARREADY]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe30]
connect_debug_port u_ila_1/probe30 [get_nets [list CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_ARVALID]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe31]
connect_debug_port u_ila_1/probe31 [get_nets [list CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWREADY]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe32]
connect_debug_port u_ila_1/probe32 [get_nets [list CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_AWVALID]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe33]
connect_debug_port u_ila_1/probe33 [get_nets [list CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_BREADY]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe34]
connect_debug_port u_ila_1/probe34 [get_nets [list CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_BVALID]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe35]
connect_debug_port u_ila_1/probe35 [get_nets [list CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RREADY]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe36]
connect_debug_port u_ila_1/probe36 [get_nets [list CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_RVALID]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe37]
connect_debug_port u_ila_1/probe37 [get_nets [list CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WREADY]]
create_debug_port u_ila_1 probe
set_property port_width 1 [get_debug_ports u_ila_1/probe38]
connect_debug_port u_ila_1/probe38 [get_nets [list CamD_VDMA_i/processing_system7_0_axi_periph_M00_AXI_WVALID]]
create_debug_port u_ila_2 probe
set_property port_width 1 [get_debug_ports u_ila_2/probe1]
connect_debug_port u_ila_2/probe1 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TLAST]]
create_debug_port u_ila_2 probe
set_property port_width 1 [get_debug_ports u_ila_2/probe2]
connect_debug_port u_ila_2/probe2 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TREADY]]
create_debug_port u_ila_2 probe
set_property port_width 1 [get_debug_ports u_ila_2/probe3]
connect_debug_port u_ila_2/probe3 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TUSER]]
create_debug_port u_ila_2 probe
set_property port_width 1 [get_debug_ports u_ila_2/probe4]
connect_debug_port u_ila_2/probe4 [get_nets [list CamD_VDMA_i/axi_vdma_0_M_AXIS_MM2S_TVALID]]
create_debug_port u_ila_2 probe
set_property port_width 1 [get_debug_ports u_ila_2/probe5]
connect_debug_port u_ila_2/probe5 [get_nets [list CamD_VDMA_i/custom_vtc_0_vtg_sync]]
create_debug_port u_ila_3 probe
set_property port_width 1 [get_debug_ports u_ila_3/probe1]
connect_debug_port u_ila_3/probe1 [get_nets [list CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TLAST]]
create_debug_port u_ila_3 probe
set_property port_width 1 [get_debug_ports u_ila_3/probe2]
connect_debug_port u_ila_3/probe2 [get_nets [list CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TREADY]]
create_debug_port u_ila_3 probe
set_property port_width 1 [get_debug_ports u_ila_3/probe3]
connect_debug_port u_ila_3/probe3 [get_nets [list CamD_VDMA_i/mt9d111_inf_axi_stream_0_m_axis_TVALID]]
create_debug_port u_ila_3 probe
set_property port_width 1 [get_debug_ports u_ila_3/probe4]
connect_debug_port u_ila_3/probe4 [get_nets [list CamD_VDMA_i/mt9d111_inf_axi_stream_0_s2mm_fsync]]
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]


次にハードウェアをエクスポートして、SDKを立ち上げる。

必ず Sourcesウインドウから、CamD_VDMA_i(IP Integrator の Diagramファイル)を開いてから、CamD_VDMA_i を右クリックし、右クリックメニューから Export Hardware for SDK... を選択した。
Cam_VDMA_174_140129.png

・Export Hardware for SDKダイアログが表示された。Launch SDKにチェックを入れて、OKボタンをクリックした。
Cam_VDMA_175_140129.png

・SDKが立ち上がった。
Cam_VDMA_177_140129.png

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製15(ハードウェアのデバック3)”に続く。
  1. 2014年01月31日 04:32 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製13(ハードウェアのデバック1)

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製12(実機でテスト)”の続き。

前回、ディスプレイが真っ暗だったので、Vivado Logic Analyzer でデバックしてみることにした。
なお、”IP インテグレーターを使用した IP サブシステムの設計 UG994 (v2013.4) 2013 年 12 月 18 日”の61ページからの”第 4 章 IP インテグレーター デザインのデバッグ"を参考にした。

・Sourcesウインドウから、CamD_VDMA_wrapper を展開して、CamD_VDMA_iのDiagramを表示させた。

・axi_vdma_0 の S_AXIS_S2MM からのネットをクリックして、右クリックし、右クリックメニューからMark Debugを選択する。
Cam_VDMA_144_140128.png

・axi_vdma_0 の S_AXIS_S2MM からのネットに緑色のデバックマークが付いた。
Cam_VDMA_145_140128.png

・axi_vdma_0 の M_AXI_MM2S, M_AXI_S2MM, M_AXIS_MM2S, mm2s_fsync, 2smm_fsync のネットにMark Debug を行った。
Cam_VDMA_146_140128.png

・Flow Navigator のIP Integrator -> Generate Block Design をクリックした。
Cam_VDMA_147_140128.png

・Generte Output Products ダイアログが表示された。Generate ボタンをクリックした。
Cam_VDMA_148_140128.png

・IP Integrator の生成が終了した。

・Flow Navigator の Synthesis -> Run Synthesis をクリックして、論理合成をスタートした。
Cam_VDMA_69_140115.png

・論理合成が終了し、ダイアログが表示された。Open Synthesized Design のラジオボタンをクリックして、OKボタンをクリックした。
Cam_VDMA_70_140115.png

・Synthesized Design が表示された。Schematic をクリックした。
Cam_VDMA_149_140129.png

・Schematic が表示された。
Cam_VDMA_150_140129.png

・Window メニューからDebug を選択した。
Cam_VDMA_151_140129.png

・Debug は左上のウインドウに表示されたが、下のウインドウに移動した。
Cam_VDMA_152_140129.png

・Debugウインドウの Set up Debug アイコンをクリックしてDebug ウィザートを実行する。
Cam_VDMA_153_140129.png

・Set up Debugダイアログが表示された。Next >ボタンをクリックした。
Cam_VDMA_154_140129.png

・Debug を行うネットが出てくるが、ところどころClock Domain がundefined になっているので、FCLK_CLK0を指定する。GNDやVCCへ接続されている信号なのだが一応クロックを指定しておく。
Cam_VDMA_155_140129.png

・undefined のネットをすべて選択し、右クリックメニューからSelect Clock Domain を選択した。
Cam_VDMA_156_140129.png

・Select Clock Domain ダイアログが表示された。FCLK_CLK0 を選択して、OKボタンをクリックした。
Cam_VDMA_157_140129.png

・undefined のネットに、FCLK_CLK0を割り当てた。次の2つの undefined のネットもやってしまっているので、エラーが無くなっている。
Cam_VDMA_158_140129.png

・あと2つ、undefined のネットがあったので、FCLK_CLK0 を割り当てた。Next >ボタンをクリックした。
Cam_VDMA_159_140129.png

・Enable advanced trigger mode と Enable basic capture mode のチェックボックにチェックを入れた。
Cam_VDMA_160_140129.png

・Summary が表示されたので、Finish ボタンをクリックした。
Cam_VDMA_161_140129.png

・ILAコアが挿入されて、Debug画面が変わった。
Cam_VDMA_162_140129.png

・ビットストリームを生成する。
Cam_VDMA_163_140129.png

・Save Project ダイアログが表示された。Save ボタンをクリックした。
Cam_VDMA_164_140129.png

・インプリメントをやるかどうか聞いてきた。Yesボタンをクリックした。
Cam_VDMA_165_140129.png

・約3時間かかって、インプリメントが終了した。クリティカル・ワーニングが出ていた。
Cam_VDMA_166_140129.png

・クリティカル・ワーニングはタイミングなので、Timing Summary を表示させる。Report Timing Summary をクリックした。
Cam_VDMA_167_140129.png

・Report Timing Summary ダイアログが表示された。そのままOKボタンをクリックした。
Cam_VDMA_168_140129.png

・Timing Summary が表示された。やはりエラーが出ていた。
Cam_VDMA_169_140129.png

・clk_fpga_0 のタイミングエラーは ILAコアでのタイミングエラーだった。
Cam_VDMA_170_140129.png

・pclk to clk_fpga_0 のタイミングエラーも ILAコアでのタイミングエラーだった。
Cam_VDMA_171_140129.png

タイミングエラーはすべて、ILAコアでのタイミングエラーなので、無視することにした。

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製14(ハードウェアのデバック2)”に続く。
  1. 2014年01月29日 05:33 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製12(実機でテスト)

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製11(ハードウェアのエクスポート)”の続き。

・SDKで cam_disp_vdma プロジェクトを作り、cam_disp_vdma.c を作製した。作製時のAXI VDMAのレジスタ設定は、”AXI VDMAのレジスタ設定(Triple Frame Buffer)”の通りに行った。
Cam_VDMA_137_140127.png

ビットストリームをZedBoardにダウンロードする。

・ZedBoardの電源をONにする。

・ダウンロード・ケーブルをZedBoard に接続した。

・Xilinx Tools メニューからProgram FPGA を選択した。
Cam_VDMA_138_140127.png

・Program FPGA ダイアログが開く。Bitstream: の右側の Browse... ボタンをクリックし、CamD_VDMA\CamD_VDMA.runs\impl_1フォルダの CamD_VDMA_wrapper.bit を選択した。

・Program FPGA ボタンをクリックする。
Cam_VDMA_139_140127.png

Run Configuration を作製する。

・Project Exprlor から cam_disp_vdma を右クリックし、右クリックメニューから Run As -> Run Configuration を選択する。
Cam_VDMA_140_140127.png

・Run Configurations ダイアログが表示される。Xilinx C/C++ application (GDB) を右クリックし、右クリックメニューからNew を選択する。
Cam_VDMA_141_140127.png

・Run Configurations ダイアログに cam_disp_vdma Debug が作製されて、Runボタンをクリックする。
Cam_VDMA_142_140127.png

・プログラムが起動されたが、ディスプレイは真っ暗だった。ダメだ。動作しない
Cam_VDMA_143_140128.jpg

ホコリだらけのディスプレイで申し訳ない。次は、ChipScope AXI Monitor を入れてデバックすることにする。

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製13(ハードウェアのデバック1)”に続く。
  1. 2014年01月28日 05:58 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Vivado 2013.4でAXI IIC v2.0 を使用した時のIOBUF

今回は、一時今やっているシリーズを離れて、”Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製3”で使用した iic_3state_buf について書いておこうと思う。更に、ikwzm さんに教えてもらった方法についてもやってみることにする。

AXI IICは、Xilinx社のI2CインターフェースのAXIバス用のIPである。このIPのI2Cの出力がIICバス出力で、トライステート・バッファが付いていない状態になっている。詳しくは、”LogiCORE IP AXI IIC Bus Interface v2.0 Product Guide for Vivado Design Suite PG090 December 18, 2013”を参照のこと。今回は、AXI IIC v2.0 のIICバス出力にインターフェース出来るIICバス入力のトライステート・バッファを作る。

iic_3state_bufプロジェクトをVivado 2013.4で作製して、iic_3state_buf.v を書いた。下に、Vivado 2013.4のプロジェクトを示す。
iic_3state_buf_1_140124.png

iic_3state_buf.v を示す。

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2014/01/18 20:31:13
// Design Name:
// Module Name: iic_3state_buf
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////

`default_nettype none

module iic_3state_buf(
    output  wire    sda_i,
    input   wire    sda_o,
    input   wire    sda_t,
    output  wire    scl_i,
    input   wire    scl_o,
    input   wire    scl_t,
    inout   wire    sda,
    inout   wire    scl
);
    assign sda = (sda_t==1'b1) ? 1'bz : sda_o;
    assign sda_i = sda;
    assign scl = (scl_t==1'b1) ? 1'bz : scl_o;
    assign scl_i = scl;
endmodule

`default_nettype wire


簡単なコードだ。

これを、IP化した。入力は、interface_iic として定義した。
iic_3state_buf_2_140124.png

ワーニングが10個出ているが、大丈夫のようだ?
これで、CamD_VDMA で使用している iic_3state_buf が出来た。(IPとして生成しています)

(2014/02/03:追記 上のiic_3state_buf IPでは、AXI IICの外部ポートがうまくインプリメントできなかったです。下のikwzm さんに教えてもらった手順を行うことを強くお勧めします)詳しくは、”Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製15(ハードウェアのデバック3)”参照。

次に、ikwzm さんに教えてもらった手順を以下に示す。

1) Open Block Design で該当するデザインを開く.

2) AXI_IICのインスタンスのIICポートを右クリックして、Make Externalをクリックして IIC を外部端子とする

3)Souces窓の .bd ファイルを右クリックして Create HDL Wrapper...をクリック.

4) Let Vivado manager wrapper and auto-update を選択.

こうして生成したラッパーファイルには IIC の入出力ポートに 双方向のIOBUF が追加されています。

追記)Project Setting で Top module name を生成したラッパーファイルに変更するのを忘れずに.


ikwzmさん、度々教えて頂いて、ありがとうございます。

さて、新規プロジェクトを作製してやってみよう。
iic_3state_buf_3_140124.png

因みに、S_AXIポートやIICポートを作製する際には、右クリックメニューから、Create Interface Port... を選択して、インターフェース・ポートを作製した。

design_1_i の右クリックメニューから、Create HDL Wrapper...を行って、ラッパーファイルを作ったら、IOBUFがインスタンスされていた。
iic_3state_buf_4_140124.png

見事に、IOBUFがインスタンスされていた。

この方法がオフィシャルな方法なのかもしれないが、やはり自分でIOBUFのIPを作ったほうが、IP Integrator で完結しているので、自分の好みにあっている。自作IOBUF IPを使用しようと思う。

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製12(実機でテスト)”に続く。
  1. 2014年01月24日 04:27 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0