■Vivadoのロジアナ
- 2016/10/29
- 06:14
■Vivadoのロジアナ
2016/10/26 新規作成
2016/10/29 最終更新
■開発環境1: Vivado 2015.4
■プロジェクトのフォルダ: Xilinx\ZYBO\design\video_pj
■基板: digilent社 ZYBO
■ZYBOのOS:無し。ベアメタル。
■ソース:本に付属のHDLとプログラムを使用。
■参照: FPGAパソコンZYBOで作るLinux I/Oミニコンピュータ 第3部 1.2節(p.119)
・本書サポートページ http://www.cqpub.co.jp/toragi/ZYBO/
・2版 作成中らしいです。(2016/9/8現在)
・ロジアナ関連
http://fpga.kice.tokyo/fpga/vivado-la-bd ・・・Block Design内の信号を観測する場合
http://fpga.kice.tokyo/fpga/vivado-la ・・・観測したい信号がHDL中に記載されている場合
■概要: Vivadoのロジアナ機能を使ってみた。前回作成したプロジェクト(CPUからSDRAMに色をライトしてモニタへ表示するプロジェクト)にロジアナを追加しました。bit生成し、SDKでbit書き込みとプログラムを実行した状態で、同時にロジアナ機能も使えました。
■期待値:ロジアナで波形モニタ出来る。
■結果:OK。
■その他:
・ロジアナ機能の解除の方法は解りません。*.xdcの記述を削除すればよいのでしょうか?
・FPGAマガジンNo.7に、ロジアナの記事がある様です。買ってないので読んではないです。
・HDLにプローブする方法は、http://fpga.kice.tokyo/fpga/vivado-la に書かれておりました。
■内容:
はじめに:
・このページより、上記参照先URLのほうが、全然、詳しいです。
・流れとしては、モニタしたい信号を指示し、合成し、合成した回路で、Set Up debug指定して、クロックドメインとか指定して、その後に、インプリし、bit生成します。
・ブロックデザインを開き、モニタしたい信号の場所で右クリックし、下図のMark Debugを選びます。すると、デバッグ用のてんとう虫が表示されます。
・合成(Run Synthesis)します。(インプリはまだしません)
・下図ウィンドウがでたら、キャンセルします。
・Open Synthesized Designをクリックすると、実行され、下図デザインが開きます。
回路図を見ると、下図の通り、モニタ用回路が追加されています。
・下図の通り、Set Up Debugを選択します。
ドメインが指定されてない場合、下図の通り、Select Clock Domainで指定する。
・インプリメントしbit生成します。
・*.xdcに下記が追記されてました。
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0]
set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0]
set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]
set_property C_EN_STRG_QUAL false [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 video_sys_wrapper_i/video_sys_i/clk_wiz_0/inst/clk_out1]]
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe0]
set_property port_width 1 [get_debug_ports u_ila_0/probe0]
connect_debug_port u_ila_0/probe0 [get_nets [list video_sys_wrapper_i/video_sys_i/v_tc_0_vtiming_out_ACTIVE_VIDEO]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe1]
set_property port_width 1 [get_debug_ports u_ila_0/probe1]
connect_debug_port u_ila_0/probe1 [get_nets [list video_sys_wrapper_i/video_sys_i/v_tc_0_vtiming_out_HBLANK]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe2]
set_property port_width 1 [get_debug_ports u_ila_0/probe2]
connect_debug_port u_ila_0/probe2 [get_nets [list video_sys_wrapper_i/video_sys_i/v_tc_0_vtiming_out_HSYNC]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe3]
set_property port_width 1 [get_debug_ports u_ila_0/probe3]
connect_debug_port u_ila_0/probe3 [get_nets [list video_sys_wrapper_i/video_sys_i/v_tc_0_vtiming_out_VBLANK]]
create_debug_port u_ila_0 probe
set_property PROBE_TYPE DATA_AND_TRIGGER [get_debug_ports u_ila_0/probe4]
set_property port_width 1 [get_debug_ports u_ila_0/probe4]
connect_debug_port u_ila_0/probe4 [get_nets [list video_sys_wrapper_i/video_sys_i/v_tc_0_vtiming_out_VSYNC]]
set_property C_CLK_INPUT_FREQ_HZ 300000000 [get_debug_cores dbg_hub]
set_property C_ENABLE_CLK_DIVIDER false [get_debug_cores dbg_hub]
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]
connect_debug_port dbg_hub/clk [get_nets u_ila_0_clk_out1]
・SDK立ち上げて、bit書き込みし、*.elfで右クリックで、Debug As ... で、プログラム起動して行きます。詳細は以前の記事参照。
・Vivadoで、下図の通り、Open targetをクリックし、Auto Connectします。
・下図の通り、ロジアナ画面が表示されますので、トリガを追加して、Run Triggerします。
今日は、これにて。