Edited at

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

More than 3 years have passed since last update.

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実行まで普通に動きます。