LoginSignup
9
5

More than 5 years have passed since last update.

Getting started with TE0720 - ミニサイズZynqボードTE0720を試す - PSでHello World

Last updated at Posted at 2015-12-30

TE0720という、ドイツのTrenz Electronicsなる会社が作っているZynqボードを入手したので使ってみます。
5x4cmサイズでZ7020が動くというなかなかイケてるっぽいデバイスです。
http://www.trenz-electronic.de/products/fpga-boards/trenz-electronic/te0720-zynq.html
TE0702

ちゃんとXilinxのパートナーらしいです。
日本の代理店はこちら:http://www.trenz.jp/
このサイトにPLだけでLチカさせるチュートリアル( http://www.trenz.jp/tutorial/led0/ )があるので、
ここではPSを使ってHello Worldしてみたいと思います。

環境・ハードウェア

  • xubuntu 14.04
  • Vivado 2015.2
  • TE0720-02-1CF
  • TE0703-04 (Carrier Card)

Board Part File のインストール

最初にTE0720のハードウェア情報が記されたファイルをVivadoに読み込ませます。
https://wiki.trenz-electronic.de/display/PD/Installation
のとおりです。

まず、
http://www.trenz-electronic.de/de/download/d0/Trenz_Electronic/d1/TE0720-GigaZee/d2/board_part_files.html
から
TE0720-BoardFiles-2014.4_V02.zipをダウンロードし、
(直リンク: http://www.trenz-electronic.de/fileadmin/docs/Trenz_Electronic/TE0720-GigaZee/board_part_files/TE0720-BoardFiles-2014.4_V02.zip
適当な場所に解凍します。

次にVivadoにこのフィアルの場所を登録します。

  1. tclコマンドで解凍場所をVivadoに登録する方法
  2. Vivadoのインストールディレクトリ下に直接解凍する方法

の2つがあります。

tclコマンドで解凍場所をVivadoに登録する方法

これのやり方がさらに2つあります。

  1. Vivado起動後にtclコマンドで入力する方法
  2. 初期化スクリプトinit.tclに書いておく方法

結局どちらも同じことですが…

Vivado起動後にtclコマンドで入力する方法

vivado起動後、tclコンソールに
set_param board.repoPaths {/path/to/TE0720-BoardFiles-2014.4-V02/}
(/path/toの部分は解凍した場所に合わせて変えてください)
と入力します。
te0720_board_setting.png

(Vivadoのバージョンが古いと
set_param project.boardPartRepoPaths /path/to/TE0720-BoardFiles-2014.4-V02/
となるらしいです。)

これで、Create New Projectの設定画面では、BoardsにTE0720が現れます。
te0720_board_select.png

初期化スクリプトinit.tclに書いておく方法

Vivadoのインストールディレクトリ以下のscriptsディレクトリにinit.tclを作成し、上記コマンドを書いておきます。
私の環境では、
/opt/Xilinx/Vivado/2015.2/scripts/init.tcl
になりました。

Vivadoのインストールディレクトリ下に直接解凍する方法

例えば
/opt/Xilinx/Vivado/2015.2/
にVivadoがインストールされているとき、
/opt/Xilinx/Vivado/2015.2/data/boards/以下にファイルを解凍してしまいます。

つまり、最終的に、
/opt/Xilinx/Vivado/2015.2/data/boards/board_parts/zynq/TE0720-1CF
/opt/Xilinx/Vivado/2015.2/data/boards/board_parts/zynq/TE0720-1CR
/opt/Xilinx/Vivado/2015.2/data/boards/board_parts/zynq/TE0720-1QF
/opt/Xilinx/Vivado/2015.2/data/boards/board_parts/zynq/TE0720-2EF
/opt/Xilinx/Vivado/2015.2/data/boards/board_parts/zynq/TE0720-2IF
ができます。
これで完了です。

しかし、この方法はXilinx非推奨らしく、ユーザーの責任で行うようにとのことらしいです。

Hello World

プロジェクト作成

Create New Projectで新規プロジェクトを作ります。
上の設定のとおり、TE0720がdefault boardに追加されているはずなので、自分のボードに合わせて選択します。
te0720_board_select.png

ハードウェアデザイン

Create Block Design -> Add IP -> ZYNQ7 Processing SystemでPSを追加します。

次に、tclコンソールで

source path/to/TE0720-BoardFiles-2014.4_V02/board_parts/zynq/TE0720-1CF/0.2/ps7.tcl
apply_ps7_board_setting processing_system7_0

を実行します。path/to/TE0720-BoardFiles-2014.4_V02の部分はBoard Part Fileをインストールした場所に合わせて変えてください。
ps7.tclを実行することでapply_ps7_board_setting関数が定義され、それをprocessing_system7_0に対して使う…って感じなんでしょうか。
ちなみにprocessing_system7_0はPSのインスタンス名(?)です。

これでPSが設定されました。
(Zedboardとかだと、設定画面を開いてPresetsから選べばよかったのですが、TE0720はこのようになっています。
なんとかPresetsに追加できないものだろうか…)

次はRun Block Automationを実行します。Apply Board Presetのチェックを外すよう注意します。

最後にFCLK_CLK0をM_AXI_GP0_ACLKにつないでハードウェアデザイン完成です。
こんな感じになります:
te0720_hello_world_design.png

Validate Designでエラーがないことを確認し、Generate Output Products, Create HDL Wrapperと普通に進めます。

Generate Bitstreamして、SDKにエクスポートまでやってしまいます。

SDK

普通にHello Worldプロジェクトを作って実行します。
この時、TE0703 (Carrier card)のトグルスイッチはすべてONにしておきます。
本来これはSDブートを示すのらしいですが、JTAGを使ったbitstream書き込みからHello world実行まで普通に動きます。

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5