FC2カウンター FPGAの部屋 2017年10月01日

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

FPGAの部屋

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

ZYBO_Z7_0 のVivado 2017.2 プロジェクトでBOOT.bin を作成

白線追従走行用畳み込みニューラルネットワーク・システムの製作1
白線追従走行用畳み込みニューラルネットワーク・システムの製作2
で作った ZYBO_0_172_8 を ZYBO_Z7_0 プロジェクトとしてVivado 2017.2 で作ってみた。

まずは、ZYBO_0_172_8 フォルダのZYBO_0 プロジェクトで、File メニューからExport -> Export Block Design... を選択して、ブロックデザインをTCL ファイルにエクスポートする。

Export Block Design ダイアログが表示される。ZYBO_0.tcl と名前を付けてエクスポートする。
ZYBO_Z7_38_170929.png

ZYBO_Z7_0 プロジェクトを作成する。
ZYBO_Z7_39_170929.png

ZYBO Z7-20 のボードファイルをVivado 2017.2 にインストールする”でボードファイルをインストールしているので、Zybo Z7-20 がBoards の選択肢の中に出てくるので、それを選択する。
ZYBO_Z7_40_170929.png

ZYBO_Z7_0 プロジェクトが生成された。
ZYBO_Z7_41_170929.png

先ほどZYBO_0_172_8 フォルダで生成して、ブロックデザインの生成TCL ファイルのZYBO_0.tcl をZYBO_Z7_0 プロジェクトにコピー&ペーストした。
ZYBO_Z7_42_170929.png

ZYBO_0_172_8 フォルダのIP をZYBO_Z7_0 にコピー&ペーストした。
ZYBO_Z7_43_170929.png

ZYBO_0.tcl を編集して、ZYBO_0 をZYBO_Z7_0 に置換する。
ZYBO_Z7_44_170929.png

ZYBO_Z7_0 に置換後。
ZYBO_Z7_45_170929.png

ZYBO_Z7_0 で、IP Catalog を開く。
ZYBO_Z7_46_170929.png

IP Catalog で、右クリックし、右クリックメニューから、Add Repository... を選択して、IP をすべてリポジトリに追加する。
ZYBO_Z7_47_170929.png

リポジトリに追加するところ。
ZYBO_Z7_48_170929.png

IP にリポジトリに追加された。
ZYBO_Z7_49_170929.png

ZYBO_0.tcl を実行して、ブロックデザインを生成しよう。
TCL コンソールで cd でZYBO_0.tcl のあるフォルダまで移動して、source ZYBO_0.tcl を実行した。
ZYBO_Z7_50_170929.png

ブロックデザインが再生された。
ZYBO_Z7_51_170929.png

Zybo Z7-20 にはVGAポートが無いので、ビットマップ・ディスプレイ・コントローラを1つ削除した。
また、HDMI もIN, OUT と2つあるので、ZYBO の時にあったHMDI の入力、出力を切り替える信号を削除した。
ブロックデザインを示す。
ZYBO_Z7_54_171001.png

ラッパーHDL を作成した。
ZYBO_Z7_52_170929.png

次に制約ファイル(ZYBO_Z7_0.xdc)を作った。
ZYBO とZybo Z7-20 のピン番号の違いを示す。

ZYBO Z7-20とZYBOのPMODのピンアサインはJBだけアサインされたピン番号が違っているが他のPMODは同じピンにアサインされている。
ZYBO Z7-20とZYBOのスライドSWのピンアサインは同一、LEDsも同じ、プッシュボタンSWはピンアサインが違う。BTN2とBTN0が違う。BTN3、BTN1は同じ。 MIOのプッシュボタンSWとLEDは同一。



ハードウェアをエクスポートして、SDK を起動した。
ハードウエアプラットフォームが生成された。
FSBL を作成した。FSBL とビットファイル、それに”ZYBO Z7-20 の u-boot.elf と devicetree.dtb を作る”で作成した u-boot.elf を使用して、BOOT.bin を作成した。
ZYBO_Z7_55_171001.png

ZYBO_Z7_0.xdc を貼っておく。

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 K17 [get_ports {TMDS_Data_p[0]}]
set_property PACKAGE_PIN K19 [get_ports {TMDS_Data_p[1]}]
set_property PACKAGE_PIN J18 [get_ports {TMDS_Data_p[2]}]
set_property PACKAGE_PIN L16 [get_ports TMDS_Clk_p]

set_property PACKAGE_PIN T14 [get_ports {cam_data[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[0]}]
set_property PACKAGE_PIN U14 [get_ports {cam_data[6]}]
set_property PACKAGE_PIN T15 [get_ports {cam_data[5]}]
set_property PACKAGE_PIN U15 [get_ports {cam_data[4]}]
set_property PACKAGE_PIN P14 [get_ports {cam_data[3]}]
set_property PACKAGE_PIN V17 [get_ports {cam_data[2]}]
set_property PACKAGE_PIN R14 [get_ports {cam_data[1]}]
set_property PACKAGE_PIN V18 [get_ports {cam_data[0]}]

set_property IOSTANDARD LVCMOS33 [get_ports mt9d111_iic_scl_io]
set_property IOSTANDARD LVCMOS33 [get_ports mt9d111_iic_sda_io]
set_property IOSTANDARD LVCMOS33 [get_ports href]
set_property IOSTANDARD LVCMOS33 [get_ports pclk]
set_property IOSTANDARD LVCMOS33 [get_ports standby]
set_property IOSTANDARD LVCMOS33 [get_ports vsync]
set_property IOSTANDARD LVCMOS33 [get_ports xck]
set_property PACKAGE_PIN V15 [get_ports mt9d111_iic_scl_io]
set_property PACKAGE_PIN W14 [get_ports mt9d111_iic_sda_io]
set_property PACKAGE_PIN W15 [get_ports vsync]
set_property PACKAGE_PIN Y14 [get_ports href]
set_property PACKAGE_PIN T11 [get_ports standby]
set_property PACKAGE_PIN T10 [get_ports pclk]
set_property PACKAGE_PIN U12 [get_ports xck]

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets pclk_IBUF]

create_clock -period 27.780 -name pclk -waveform {0.000 13.890} [get_ports pclk]
set_input_delay -clock [get_clocks pclk] 10.800 [get_ports {{cam_data[0]} {cam_data[1]} {cam_data[2]} {cam_data[3]} {cam_data[4]} {cam_data[5]} {cam_data[6]} {cam_data[7]} href pclk vsync}]

set_property PULLUP true [get_ports mt9d111_iic_scl_io]
set_property PULLUP true [get_ports mt9d111_iic_sda_io]


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


set_property PACKAGE_PIN G15 [get_ports {sw_tri_i[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[0]}]

set_property IOSTANDARD LVCMOS33 [get_ports {pwm_out_left[0]}]
set_property PACKAGE_PIN W16 [get_ports {pwm_out_left[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {pwm_out_right[0]}]
set_property PACKAGE_PIN U17 [get_ports {pwm_out_right[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {dir_out_left[0]}]
set_property PACKAGE_PIN V12 [get_ports {dir_out_left[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {dir_out_right[0]}]
set_property PACKAGE_PIN V13 [get_ports {dir_out_right[0]}]

set_property IOSTANDARD LVCMOS33 [get_ports {sa_left[0]}]
set_property PACKAGE_PIN J15 [get_ports {sa_left[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sa_right[0]}]
set_property PACKAGE_PIN H15 [get_ports {sa_right[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sb_left[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {sb_right[0]}]
set_property PACKAGE_PIN T17 [get_ports {sb_left[0]}]
set_property PACKAGE_PIN Y17 [get_ports {sb_right[0]}]

set_property IOSTANDARD LVCMOS33 [get_ports ussensor_inout]
set_property PACKAGE_PIN Y7 [get_ports ussensor_inout]

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

  1. 2017年10月01日 07:53 |
  2. ZYBO Z7
  3. | トラックバック:0
  4. | コメント:0