FC2カウンター FPGAの部屋 Vitis Vision Library L1 の AXI4-Stream 入出力版 medianblur を 実機で動作を確認する 2
fc2ブログ

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

FPGAの部屋

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

Vitis Vision Library L1 の AXI4-Stream 入出力版 medianblur を 実機で動作を確認する 2

Vitis Vision Library L1 の AXI4-Stream 入出力版 medianblur を 実機で動作を確認する 1”の続き。

今まで積み上げてきた IP を使用して、Vitis Vision Library L1 の AXI4-Stream 入出力版 medianblur を 実機で動作を確認してみようとうことで、前回は、各 IP を IP Catalog に追加して、ブロック・デザインを作成し、回路を完成させた。制約ファイルを追加して、論理合成、インプリメンテーション、ビットストリームの生成を行ったが、タイミングエラーが出てしまった。今回は、そのタイミングエラーを解消しよう。

Open Synthesized Design をクリックする。
Synthesized Design が開いた。
Timing タブをクリックし、Intra-Clock Paths -> pclk_buf to clk_fpga_0 をクリックして、エラー内容を見た。
最初の 1 項目だけスラックがマイナスだった。
Vitis_Vision2_116_220127.png

Other Path Groups -> **async_default** -> clk_fpga_0 to pclk_buf もスラックがマイナスだった。
Vitis_Vision2_117_220127.png

つまり、pclk_buf to clk_fpga_0 と clk_fpga_0 to pclk_buf がダメなようだ。

次に、Clock Domain Crossing のレポートを見てみよう。
Vivado の Reports メニューから Timing -> Report CDC... を選択する。
Report CDC ダイアログが開く。
Clocks の From に pclk_buf を To に clk_fpga_0 を入れて OK ボタンをクリックした。
Unsafe は無いようだ。
Vitis_Vision2_118_220127.png

clk_fpga_0 to pclk_buf を見た。
こちらも Unsafe は無かった。
Vitis_Vision2_119_220127.png

大丈夫そうなので、pclk_buf to clk_fpga_0 と clk_fpga_0 to pclk_buf に false path の設定を行った。
Vitis_Vision2_120_220127.png

変更された制約ファイル median_filter.xdc の内容を示す。

set_property IOSTANDARD TMDS_33 [get_ports TMDS_tx_0_B_p_0]
set_property IOSTANDARD TMDS_33 [get_ports TMDS_tx_1_R_p_0]
set_property IOSTANDARD TMDS_33 [get_ports TMDS_tx_2_G_p_0]
set_property IOSTANDARD TMDS_33 [get_ports TMDS_tx_clk_p_0]
set_property PACKAGE_PIN H16 [get_ports TMDS_tx_clk_p_0]
set_property PACKAGE_PIN D19 [get_ports TMDS_tx_0_B_p_0]
set_property PACKAGE_PIN C20 [get_ports TMDS_tx_1_R_p_0]
set_property PACKAGE_PIN B19 [get_ports TMDS_tx_2_G_p_0]

set_false_path -from [get_clocks clk_fpga_0] -to [get_clocks -of_objects [get_pins median_filter_i/bitmap_disp_cntrler_0/inst/dvi_disp_i/BUFR_pixel_clk_io/O]]
set_false_path -from [get_clocks -of_objects [get_pins median_filter_i/bitmap_disp_cntrler_0/inst/dvi_disp_i/BUFR_pixel_clk_io/O]] -to [get_clocks clk_fpga_0]


これで、もう一度、論理合成、インプリメンテーション、ビットストリームの生成を行ったところ、成功した。
Project Summary を示す。
Vitis_Vision2_122_220127.png

ハードウェアをエクスポートして、median_filter_wrapper.xsa ファイルを生成した。
Vitis_Vision2_123_220128.png
  1. 2022年01月28日 04:21 |
  2. Vitis_Vision
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/5484-d68b4af9
この記事にトラックバックする(FC2ブログユーザー)