FC2カウンター FPGAの部屋 ZYBO_0 を変更2(インプリメント)
FC2ブログ

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

FPGAの部屋

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

ZYBO_0 を変更2(インプリメント)

ZYBO_0 を変更1(ブロックデザインの修正)”の続き。

前回はZYBO_0 のDigilent 社のrgb2dvi IP を使用したブロックデザインが完成した。今回は、それをインプリメントして、ビットストリームを生成し、SDKでZYBO をコンフィギュレーションしてみよう。

ZYBO_0 ブロックデザインからZYBO_0_wrapper.v のトップVerilog HDL ファイルを生成した。
TMDS信号の名前が変更されている。
Change_of_ZYBO0_22_160102.png

トップHDL のTMDS 信号名が変更されているので、制約ファイル (ZYBO_0.xdc) を修正する必要がある。
下図のように制約ファイルを修正した。
Change_of_ZYBO0_23_160102.png

set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_p[0]}]
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_p[1]}]
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_p[2]}]
set_property IOSTANDARD TMDS_33 [get_ports TMDS_Clk_p]
set_property PACKAGE_PIN D19 [get_ports {TMDS_Data_p[0]}]
set_property PACKAGE_PIN C20 [get_ports {TMDS_Data_p[1]}]
set_property PACKAGE_PIN B19 [get_ports {TMDS_Data_p[2]}]
set_property PACKAGE_PIN H16 [get_ports TMDS_Clk_p]


アドレス・マップは下図の様になった。Address Editor ウインドウを示す。
Change_of_ZYBO0_24_160102.png

これで、論理合成、インプリメント、ビットストリームの生成を行った所、Timing がエラーになった。
Change_of_ZYBO0_25_160102.png

Implemented Design を開いて、Timing Summary を見たところ、Inter-Clock Paths にエラーがあった。
Change_of_ZYBO0_26_160103.png

Inter-Clock Paths を開くと、clk_fpga_0 と clk_fpga_3 の間にエラーが発生していた。
Change_of_ZYBO0_27_160103.png

Vivado のImplemented Design で Report CDC を確認する”を参照して、、clk_fpga_0 と clk_fpga_3 の間の Clock Domain Crossing を見た。
Change_of_ZYBO0_28_160103.png

clk_fpga_3 から clk_fpga_0 への CDC はWarning のみだったが、clk_fpga_0 から clk_fpga_3 への CDC は Unknown が 1 個あった。
Unknown の 1 をクリックして、状況を確認した。
Change_of_ZYBO0_29_160103.png

リセット回路だった。このリセットも2段のFFで受けているところだったので、無視することにした。

Implemented Design から Edit Timing Constraints をクリックして、制約を追加する。
Timing Constraints タブで Set Clock Groups をクリックし、Double click to create a Set Clock Groups constraint をダブルクリックする。
Set Clock Groups ダイアログが表示される。
Group 1 に clk_fpga_0、Group 2 に clk_fpga_3 を指定して、OKボタンをクリックした。
Change_of_ZYBO0_30_160103.png

set_clock_groups -name FCLK_CLK0_FCLK_CLK3 -asynchronous -group [get_clocks clk_fpga_0] -group [get_clocks clk_fpga_3]

制約が追加された。
Change_of_ZYBO0_31_160103.png

これでもう一度、ビットストリーム生成をやり直すとTiming エラーは無くなった。
Change_of_ZYBO0_32_160103.png
  1. 2016年01月06日 06:39 |
  2. ZYBO
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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