Arty Z7のHDMIデモをやってみた


#はじめに
[Digilent](https://reference.digilentinc.com/reference/programmable-logic/arty-z7/start)が公開しているArty Z7のHDMIデモが動作したので記事にしました。
その際に少しハマるポイントがあったのでまとめます。
基本的には[ここ](https://reference.digilentinc.com/learn/programmable-logic/tutorials/arty-z7-hdmi-demo/start)に書いてある通りに進めれば大丈夫です。
以下にサイトでは分かりにくい**ハマりポイントのみ**を記載しているので基本的にはサイトを見てください。

#環境
##Vivado関連

- 環境はサイト通り**Vivado2016.4**を使用します。

インストールの際**Devicesのチェック**が足りないとエラーになる可能性があるので注意してください。

<img width="600" alt="ファイル名" src="https://qiita-image-store.s3.amazonaws.com/0/97833/67fd875e-7cd6-4baa-47cd-ad42e1d91360.png">

- **arty-z7-20のボードファイル**をサイト通り指定のフォルダに入れたか確認してください。([ここ](https://reference.digilentinc.com/reference/software/vivado/board-files?redirect=1)で入手)

インストール時に何も指定しなかった人は`C:\Xilinx\Vivado\2016.4\data\boards\`に**board_files**のフォルダがあると思います。
##プロジェクト入手
- Example ProjectsはZIPじゃなく**git clone**のコマンドで入手してください。

ZIPで入手するとプロジェクトファイルの一部が欠損するらしいです。([ここ](https://github.com/Digilent/Arty-Z7-20-hdmi-out/issues/1)に記載あり)
GitHubでforkして自分のリポジトリに追加してからcloneすると確実です。(普通にcloneすると失敗する？)
#作成

- tclを走らせる時は**proj**のディレクトリで実行してください。

C直下に置いた場合
<img width="700" alt="ファイル名" src="https://qiita-image-store.s3.amazonaws.com/0/97833/bf3d7b02-e2a1-9ebe-2ec8-3eee8078d425.png">

- ジャンパPinが**QSPI-JTAG**になってるか確認してください。
- Export Hardwareする際に**チェック**を入れてください。

![スクリーンショット 2017-05-09 22.48.09.png](https://qiita-image-store.s3.amazonaws.com/0/97833/4a901b60-bd44-1ba2-2667-ebe3af319e73.png)

- SDKは以下のように実行します。

<img width="500" alt="ファイル名" src="https://qiita-image-store.s3.amazonaws.com/0/97833/101b545b-898c-006a-1aa2-ff186b3d7d22.png">

- Run Asが表示されてなかったりおかしい時は**Clean Project**してみてください。

#動作確認

- Tera Termの設定は確認して接続してください。(ポートは環境で異なる可能性あり)



<img width="300" alt="ファイル名" src="https://qiita-image-store.s3.amazonaws.com/0/97833/8ad06a6d-9f05-c570-7b78-d64d9e6e5cfe.png">

以上に気をつけてサイト通り実行すればこんな感じでうまく行くと思います。

<img width="500" alt="ファイル名" src="https://qiita-image-store.s3.amazonaws.com/0/97833/2d628a0d-f786-b36b-8a56-19e8bc1e8589.png">

<img width="500" alt="ファイル名" src="https://qiita-image-store.s3.amazonaws.com/0/97833/796862ee-e896-927c-1ad2-7b9543f7dee5.jpeg">

上の画像はHDMI_Outのデモ画像ですが、Inのデモもちゃんと動作しました。

# その他

## Verilogベースでプロジェクト作成

**create_project.tcl**の**target_language**を**VHDL**から**Verilog**へ変更した状態でtclを走らせるとVerilogベースでプロジェクトが立ち上がります。

``` tcl
# Set project properties
set obj [get_projects $proj_name]
set_property "default_lib" "xil_defaultlib" $obj
set_property "part" $part $obj
set_property "board_part" $brd_part $obj
set_property "simulator_language" "Mixed" $obj
set_property "target_language" "Verilog" $obj
```

#おわりに
今回、[Arty Z7](http://akizukidenshi.com/catalog/g/gM-11921/)が秋月で買えるようになったのでユーザー増えると考えてハマらないために記事を書きました。
個人的にはFPGAの画像処理をしている研究室の学生に積極的に使ってもらいたいボードだと思っています。
理由としては

- Xilinx(Vivado)の資料が充実してる([FPGAプログラミング大全 Xilinx編](https://www.amazon.co.jp/s/ref=nb_sb_ss_ime_c_2_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Dstripbooks&field-keywords=fpga%E5%A4%A7%E5%85%A8&sprefix=fpga%E3%81%9F%E3%81%84%2Caps%2C261&crid=4OFVHKSOHDDY)や[FPGAマガジン](http://fpga.cqpub.co.jp/)など...)
- 2万5000円とリーズナブルな価格
- HDMIのデモプロジェクトを理解することで画像処理システム設計の勉強になる
- HDMI_INのデモをベースに画像処理システムが容易に組める(**デジカメのHDMI OUT1280x720 60FPSで確認済**)
- ~~PYNQボードと同等のことが出来る~~(**一部異なるらしい...**)

ぜひ研究室の先生に宣伝して買って貰いましょう。