”
並列ステレオカメラによる距離の測定3(ZYBO 0 のハードウェア2)”の続き。
前回は、bitmap_disp_cntrler_axi_master_1 をブロックデザインに追加し、制約ファイルをコピーして論理合成、インプリメント、ビットストリームの生成を行ったが、タイミング違反が出てしまった。
今回は、タイミング違反を確認して、タイミング違反がInter-Clock Path だったら、False Path を設定して、もう一度、インプリメント、ビットストリームの生成を行う。
まずは、Vivado 2015.3 の左端、Flow Navigator のImplementation -> Implemented Desgin をクリックして、Implemented Desgin 画面を起動する。
Flow Navigator のImplementation -> Implemented Desgin -> Report Timing Summary をクリックしてタイミング・レポートを出した。

Inter-Clock Paths の BUFR_pixel_clk_io_0 、BUFR_pixel_clk_io_0_1 と clk_fpga_0 の間にタイミング違反があるとのことだ。

このクロックは独立していて、依存関係は無いはずなので、Flow Navigator のImplementation -> Implemented Desgin -> Edit Timing Constraints をクリックしてタイミング制約を編集した。
Edit Timing Constraints ウインドウのException -> Set False Path を選択して、4つの制約を追加した。

セーブはZYBO_0.xdc にセーブした。

下に新たに作製した制約を貼っておく。
set_false_path -from [get_clocks [list [get_clocks -of_objects [get_pins ZYBO_0_i/bitmap_disp_cntrler_axi_master_0/inst/dvi_disp_i/BUFR_pixel_clk_io/O]]]] -to [get_clocks clk_fpga_0]
set_false_path -from [get_clocks [list [get_clocks -of_objects [get_pins ZYBO_0_i/bitmap_disp_cntrler_axi_master_1/inst/dvi_disp_i/BUFR_pixel_clk_io/O]]]] -to [get_clocks clk_fpga_0]
set_false_path -from [get_clocks clk_fpga_0] -to [get_clocks [list [get_clocks -of_objects [get_pins ZYBO_0_i/bitmap_disp_cntrler_axi_master_0/inst/dvi_disp_i/BUFR_pixel_clk_io/O]]]]
set_false_path -from [get_clocks clk_fpga_0] -to [get_clocks [list [get_clocks -of_objects [get_pins ZYBO_0_i/bitmap_disp_cntrler_axi_master_1/inst/dvi_disp_i/BUFR_pixel_clk_io/O]]]]
これで、もう一度、論理合成、インプリメント、ビットストリームの生成を行った。下の図は現在、論理合成中のVivado 2015.3 を示す。

ビットストリームの生成まで終了した。

Summary を表示した。タイミング違反は無くなった。

ハードウェアをエクスポートして、SDKを立ち上げよう。
File メニューから Exprot -> Export Hardware... を選択した。
Export Hardware ダイアログが表示される。Include bitstream にチェックを入れて、OKボタンをクリックした。
File メニューから Launch SDKを選択した。
SDKが立ち上がった。bitmap_disp_cntrler_axi_master_1 も入っていた。
- 2015年11月18日 04:35 |
- ZYBO
-
| トラックバック:0
-
| コメント:0