zynq-7000 ap soc enea ose bsp - xilinx...xapp1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5....

26
XAPP1221 (v1.0) 2015 1 12 japan .xilinx.com 1 本資料は表記のバージ ョ ンの英語版を翻訳し たもので、内容に相違が生じ る場合には原文を優先し ます。 資料によっては英語版の更新に対応していないものがあります。 日本 語版は参考用 と し てご使用の上、 最新情報につき ま し ては、 必ず最新英語版を ご参照 く だ さ い。 概要 このアプリケーション ノ ー ト は、 Zynq®-7000 AP SoC ENEA OSE BSP の新規ユーザー向けの入門ガ イ ド です。 こ の文 書は、 次のセクシ ョ ンで構成されています。 Zynq-7000 AP SoC OSE の構築」 では、 OSE BSP のダウンロード、 コンフィギュレーション、 構築の手順を示し、 Zynq SoC デバイスのブート と ENEA Optima ツールを使用した リ モー ト デバッ グ機能のセ ッ ト ア ッ プについて説明し ます。 Zynq-7000 AP SoC OSE アプリケーションの構築とデバッグ」 では、 OSE 内で動作する簡単なアプ リ ケーシ ョ ンの 作成、 ENEA ツールのデバ ッ グ機能のセ ッ ト ア ッ プ、 Zynq-7000 AP SoC 上で動作する OSE の基本デバ ッ グの実行方法 について説明し ます。 「プログラマブル ロジック内のペリフェラルへのアクセス」 では、 Zynq-7000 SoC のプログラマブル ロジック内のペ リフェラルへのアクセスに必要なコンフィギュレーションについて説明し、 Zynq-7000 AP SoC プログラマブル ロジッ ク内にインスタンシエートされるカスタム IP コアをターゲッ ト とするアプリケーションおよびドライバーの開発に 使用される、 ENEA Optima ツールの機能の例を示し ます。 このアプリケーション ノートの リファレンス デザイン ファイル は、ザイリンクスのウェブサイトからダウンロードでき ます。 デザイン フ ァ イ ルの詳細は、 「リファレンス デザイン」 を参照してください。 必要なハードウェアおよびソフトウェア ソフトウェア要件 Vivado® Design Suite 2014.2 ザイリンクス SDK 2014.2 ENEA OSE5.7 TFTP サーバー アプ リ ケーシ ョ ン (tftpd64 など) ハードウェア要件 ザイリンクス ZC702 開発ボード アプリケーション ノート : Zynq-7000 AP SoC XAPP1221 (v1.0) 2015 1 12 Zynq-7000 AP SoC ENEA OSE BSP の使用 著者 : Kester Aernoudt

Upload: others

Post on 06-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 1

本資料は表記のバージ ョ ンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。 資料によっては英語版の更新に対応していないものがあります。 日本語版は参考用としてご使用の上、 最新情報につきましては、 必ず最新英語版をご参照く ださい。

概要このアプ リ ケーシ ョ ン ノートは、 Zynq®-7000 AP SoC 用 ENEA OSE BSP の新規ユーザー向けの入門ガイ ドです。 この文書は、 次のセクシ ョ ンで構成されています。

• 「Zynq-7000 AP SoC 用 OSE の構築」 では、 OSE BSP のダウンロード、 コンフ ィギュレーシ ョ ン、 構築の手順を示し、Zynq SoC デバイスのブート と ENEA Optima ツールを使用した リモート デバッグ機能のセッ ト アップについて説明します。

• 「Zynq-7000 AP SoC 用 OSE アプリ ケーシ ョ ンの構築とデバッグ」 では、 OSE 内で動作する簡単なアプリ ケーシ ョ ンの作成、ENEA ツールのデバッグ機能のセッ ト アップ、Zynq-7000 AP SoC 上で動作する OSE の基本デバッグの実行方法について説明します。

• 「プログラマブル ロジッ ク内のペリ フェラルへのアクセス」 では、 Zynq-7000 SoC のプログラマブル ロジッ ク内のペリ フェラルへのアクセスに必要なコンフ ィギュレーシ ョ ンについて説明し、Zynq-7000 AP SoC プログラマブル ロジック内にインスタンシエート されるカスタム IP コアをターゲッ ト とするアプ リ ケーシ ョ ンおよびド ラ イバーの開発に使用される、 ENEA Optima ツールの機能の例を示します。

このアプリ ケーシ ョ ン ノートの リ ファレンス デザイン ファ イルは、 ザイ リ ンクスのウェブサイ トからダウンロードできます。 デザイン ファ イルの詳細は、 「 リ ファレンス デザイン」 を参照して ください。

必要なハードウェアおよびソフ トウェア

ソフ トウェア要件

• Vivado® Design Suite 2014.2

• ザイ リ ンクス SDK 2014.2

• ENEA OSE5.7

• TFTP サーバー アプリ ケーシ ョ ン (tftpd64 など)

ハードウェア要件

• ザイ リ ンクス ZC702 開発ボード

アプリケーシ ョ ン ノート : Zynq-7000 AP SoC

XAPP1221 (v1.0) 2015 年 1 月 12 日

Zynq-7000 AP SoC 用 ENEA OSE BSP の使用著者 : Kester Aernoudt

Page 2: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE の構築

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 2

Zynq-7000 AP SoC 用 OSE の構築

OSE のインストール

Zynq-7000 AP SoC 用 OSE をインス トールするには、 各種コンポーネン ト を別々にインス トールする必要があ り ます。 必要なコンポーネン トは次のとおりです。

• OSE カーネル

• Zynq-7000 AP SoC デバイス用 BSP

オプシ ョ ンによ り、 ENEA 開発環境 Optima もインス トールできます。 このアプリ ケーシ ョ ン ノートでは Optima を使用します。 Optima は Eclipse ベースの環境であ り、 イーサネッ ト を介して、 OSE カーネルおよびモジュールの作成、 構築、 デバッグと、 実行中のターゲッ トのモニターおよび解析が可能です。

OSE カーネル

このイ メージには、通常は ose5_7_arm-BLXXXXXX_BLXXXXXX-image.zip のよ うな名前が付いています。 これは OSE5.7 バージ ョ ンのメンテナンス ビルド という意味です。 インス トール ウ ィザードに従って 2、 3 の手順を実行し、 指示に従ってライセンス キーと インス トール パスを入力します。 デフォルトのインス トール パスを使用し、 インス トールするパッケージの選択では [Typical installation] を選択するこ とを推奨します。

この BSP のすべてのマニュアルは、 <OSE installation path>/doc フォルダーにあ り ます。

Zynq-7000 AP SoC デバイス用 BSP

OSE カーネルと同様に、 Zynq-7000 BSP も インス トール ウ ィザードを使用してインス トールする必要があ り ます。 BSP のイ メージは、 bsp_zynq7020_refsys_OSE5.7.1_BLXXXXXX_BLXXXXXX.zip のよ う なアーカイブと して提供されます。 このアプリ ケーシ ョ ン ノートでは、 バージ ョ ン BL770298 を使用します。

Zynq-7000 BSP のデフォルトのインス トール フォルダーは、C:\Enea\BSP_Zynq7020_OSE5.7 です。[Typical Installation]を選択すれば、 すべての必要なパッケージとマニュアルがインス トールされます。

Optima

後の手順と して、ENEA Optima IDE をインス トールします。この環境によ り、実行中のカーネルおよびカーネル モジュールのデバッグが可能にな り ます。 こ こでも、 デフォル ト のインス トール フォルダー (C:\Enea\Optima2.8) と [TypicalInstallation] を選択すれば、 Zynq-7000 デバイスをターゲッ ト とするデバッグ作業に必要なすべてのコンポーネン トがインス トールされます。

インス トールが完了する と、 図 1 に示すよ うに、 スタート メニューにメンバー要素が表示されます。

X-Ref Target - Figure 1

図 1 : スタート メニュー

Page 3: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE の構築

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 3

OSE ビルド環境のコンフ ィギュレーシ ョ ン

インス トールの完了後、 カーネルの構築およびツールの実行用の環境をコンフ ィギュレーシ ョ ンする必要があ り ます。 これを行うには、 いくつかの makefile を変更し、 ツールの起動前に環境を変更するためのスク リプ ト を作成します。

makefile の変更

OSE のリ ファレンス BSP には、 makefile ベースのビルド環境が付属しています。 この環境を既存のビルド環境に統合するこ と も可能ですが、 このアプリ ケーシ ョ ン ノートでは、 提供されるシステムを使用します。 そのためには、 使用される環境と インス トール パラ メーターに応じて、 makefile を若干変更する必要があ り ます。

ZC702 ボード用に作成された リ ファレンス BSP が、 <Zynq BSP install path>/refsys フォルダーにあ り ます。 このフォルダー内の environment.mk ファ イルは、プロジェク ト構築用のグローバル コンフ ィギュレーシ ョ ン ファ イルです。このファイルには、インクルード パスおよびライブラ リ パスなどの設定と、ホス トおよびターゲッ ト プラ ッ ト フォームのコンフ ィギュレーシ ョ ンの詳細などが含まれています。

このファ イル内で 2 つの項目を変更する必要があ り ます。 したがって、 <Zynq BSP install path>/refsys フォルダーから environment.mk ファ イルを開き、 次のよ うに変更します。

1. OSEROOT 変数を正し く設定する必要があ り ます。Zynq-7000 BSP を OSE ベース ディ レク ト リにインス トールする場合はこの変更は不要ですが、複数のプラ ッ ト フォームの BSP をインス トールする場合や、(このアプリ ケーシ ョ ン ノートのよ うに) OSE ベース フォルダー以外に BSP をインス トールする場合は、OSE カーネルのソースへの適切なパスを設定する必要があ り ます。 OSEROOT 変数を検索し、 インス トール環境を反映するよ うに次のよ うにパスを変更します。

OSEROOT ?= ../../../../OSE5.7.2_ARM

OSEROOT 変数は、現在のプロジェク トのビルド フォルダー (デフォルトのインス トールでは <Zynq BSP InstallPath>\refsys\rtose\zynq7020) を基準と して、OSE カーネルのインス トール フォルダーを指す必要があ り ます。

2. 適切なプラ ッ ト フォームを選択する必要があり ます。OSE 5.7.2 パッケージのデフォルト プラッ ト フォームは PowerPC®プロセッサなので、 これを arm-gcc に変更する必要があり ます。 ARCH 仕様を含む行を探し (図 2 参照)、 次のよ うに変更するか、 その下に次の行を追加します。

ARCH ?= arm-gcc

ARCH 変数は、 適切なクロス コンパイル ツールチェーンを使用するよ うにビルド システムを設定します。 コマンド ラインの make ユーティ リ ティ を使用する際は、 この変更は必ずしも必要ではあ り ませんが、 Optima 開発環境を使用する際には必須です。

X-Ref Target - Figure 2

図 2 : environment.mk の変更

Page 4: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE の構築

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 4

環境のセッ トアップ

すべてのツールが正常に動作するよ うに、 環境を設定する必要があ り ます。 LM_LICENSE_FILE 環境変数を設定し、 適切なラ イセンス ファ イルを指定する必要があ り ます。 また、 ENEA Cygwin パスがグローバルに設定されていない場合は、PATH 環境変数に ENEA Cygwin パスを追加する必要があ り ます。

次の内容のバッチ ファ イルをデスク ト ップ上に作成します。

set LM_LICENSE_FILE=C:\Enea\License_keys_SFK_TOOLSEVAL.TXTset PATH=%PATH%;C:\Enea\OSE5.7.2_ARM\cygwin\bin\C:\Enea\Optima2.8\optima_win32\eclipse.exe

このスク リプ トは、 環境内の適切なパスおよびライセンス ファ イルを使用して Optima を起動します。

Zynq-7000 AP SoC デバイス用 OSE カーネルの構築

ENEA OSE のインス トールには、 カーネルおよびモジュールのコンパイルに使用できる Cygwin 環境が組み込まれています。 また、 Optima IDE も使用できます。 このアプリ ケーシ ョ ン ノートでは、 Optima IDE ベースの手法を使用します。

1. 初の手順では、 図 3 に示すよ うに新しいワークスペースを作成します。

2. こ こで、 OSE カーネル ソースを参照する、 新しい makefile ベースのプロジェク ト をワークスペース内に作成します。

a. [Select File] → [New] → [Project]

b. 図 4 に示すよ うに、 [Makefile Project with Existing Code] テンプレート をク リ ッ ク します。

X-Ref Target - Figure 3

図 3 : Workspace Launcher

Page 5: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE の構築

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 5

3. [Project Name] を OSE_ZC702 に設定します。

4. [Existing Code Location] を <Zynq BSP Install Path>/refsys/rtose/zynq7020 に設定します。

X-Ref Target - Figure 4

図 4 : New Project Wizard

Page 6: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE の構築

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6

5. 図 5 に示すよ うに、 [OSE C/C++ Toolchain] を選択します。

X-Ref Target - Figure 5

図 5 : [New Project] ダイアログ ボックス

Page 7: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE の構築

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 7

これで OSE_ZC702 プロジェク トが作成され、 図 6 に示すよ うに [Project Explorer] タブに表示されます。

6. OSE_ZC702 プロジェク ト を右ク リ ッ ク して、 図 7 に示すよ うに [Build Project] をク リ ッ ク し、 このプロジェク ト を構築します。

X-Ref Target - Figure 6

図 6 : [Project Explorer]

X-Ref Target - Figure 7

図 7 : [Build Project]

Page 8: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE の構築

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 8

これで OSE カーネルのリ リース バージ ョ ンとデバッグ バージョ ンの両方が構築され (これらは [Project Explorer] の [Binaries]セクシ ョ ンの下に GUI 表示される)、<Zynq BSP Install Path>/refsys/rtose/zynq7020/obj/rtose_debug フォルダーと <Zynq BSP Install Path>/refsys/rtose/zynq7020/obj/rtose_release フォルダーに置かれます。詳細は、 図 8 を参照してください。

Zynq-7000 AP SoC デバイス上での OSE の実行

『Zynq-7000 All Programmable SoC テ ク ニカル リ フ ァ レン ス マニュアル』 (UG585) [参照 1] で説明されている よ う に、Zynq-7000 AP SoC は、 Zynq-7000 AP SoC BootROM の初期制御の下で、 ハードマクロ と して用意されている一連のペリ フェラルをプライマ リ ブート インターフェイス と して使用できます。 ただし、各ペリ フェラル内でブート プロセスの一貫性は維持されます。 また、 ブート ヘッダー、 ファース ト ステージ ブート ローダー (FSBL)、 ビッ ト ス ト リーム (オプシ ョ ン)、 およびセカンド ステージ ブート ローダー (SSBL)/アプリケーシ ョ ンを含むブート イ メージは常に必要と されます。

このアプ リ ケーシ ョ ン ノー ト では、 FSBL を含むあ らかじめ作成された boot.bin イ メ ージ と コ ンパイル済みのu-boot.elf が既にダウンロード され、開発者が利用できる状態となっています。ザイ リ ンクスの Embedded Wiki [参照 2]にある boot.bin イ メージは、 tftp ブート機能を提供します。 こ こでは、 Vivado Design Suite 2014.2 バージ ョ ンが示されます。

1. boot.bin イ メージをダウンロード し、 フォーマッ ト済みの SD カードに保存します。

2. SD カードをボードに挿入します。

3. 必要なケーブルをすべて接続し、 プラ ッ ト フォームをブート します。

4. 適切な COM ポート上のシ リ アル コンソールを開き、 ターミナルを設定します。

a. [Baud rate] を 115200 に設定します。

b. [Data] を 8-bit に設定します。

c. [Parity] を none に設定します。

d. [Stop] を 1 bit に設定します。

e. [Flow control] を none に設定します。

ブート中に U-Boot ブート メ ッセージが表示され、 自動ブート を開始するダウンロード カウンターを示します。

X-Ref Target - Figure 8

図 8 : [Binaries]

Page 9: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE の構築

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 9

f. 任意のキーを押すと、 自動ブートが停止します。 デフォルト コンフ ィギュレーシ ョ ンでは Linux が起動します (図 9 参照)。

これで U-Boot プロンプ トが表示され、 さまざまな方法で実際の OSE カーネル イ メージをロードできます。 このアプリ ケーシ ョ ン ノートでは、 ホス ト マシン上の TFTP サーバーを使用し、 TFTP 経由でカーネルをフェッチするよ うにU-Boot を設定します。

5. tftp64 アプリ ケーシ ョ ンを起動し、 tftp 共有フォルダーのルートに rtose.bin (<Zynq BSP install path>\refsys\rtose\zynq7020\obj\rtose_debug\rtose.bin) ファ イルを保存します。

6. tftp ホス ト マシンの固定 IP アドレス (192.168.1.1 など) を設定し、tftp サーバーを起動します。ご使用のマシン上で tftpが使用できるよ うにローカル ファ イアウォール が設定されているこ とを確認します (または、 ファ イアウォールを一時的に無効にする )。

7. こ こで、 U-Boot プロンプ トから次のコマンドを発行して OSE カーネルをフェッチし、 Zynq-7000 AP SoC 上でブートします。

setenv ipaddr 192.168.1.111; setenv serverip 192.168.1.1; setenv tftpblocksize 512; tftpboot 0x00050000 rtose.bingo 0x00050000

X-Ref Target - Figure 9

図 9 : U-Boot コンソール

Page 10: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE の構築

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 10

OSE カーネルがブート し、 ブート プロセスの 後に、 図 10 に示すよ うな OSE プロンプ トが表示されます。

これは、 OSE カーネルが稼働中であ り、 OSE シェルを使用してコマンドを発行できるこ とを示しています。

X-Ref Target - Figure 10

図 10 : OSE プロンプ ト

Page 11: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE の構築

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 11

8. 「help」 と入力する と、 このカーネルがサポート している利用可能なコマンドの概要 (図 11 参照) が表示されます。

9. ネッ ト ワーク内に DHCP サーバーがある場合、 これ以上のコンフ ィギュレーシ ョ ンは必要あ り ません。 DHCP サーバーがない場合は、 次のコマンドを使用してターゲッ トの IP アドレスを設定します。

ifconfig eth0 192.168.1.111

X-Ref Target - Figure 11

図 11 : OSE のヘルプ

Page 12: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 12

実際の IP アドレスを表示するには、 次のコマンドを入力します (図 12 参照)。

ifconfig eth0

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

OSE モジュールの構築

Zynq-7000 AP SoC デバイス用 OSE BSP には、 OSE カーネル イ メージに追加可能または実行時にロード可能な、 各種モジュールが付属しています。 詳細は、 『ENEA OSE デバイス ド ラ イバー ユーザー ガイ ド』 [参照 3] を参照して ください。モジュールはそのまま使用できます。 一部のモジュールは、 OSE 内でのモジュールの作成および使用の例と して使用されます。 これらのモジュールは、 BSP のインス トール フォルダー <Zynq BSP install path>/refsys/modules にあり ます。 詳細は、 図 13 を参照して ください。

X-Ref Target - Figure 12

図 12 : DHCP 使用時のネッ トワーク コンフ ィギュレーシ ョ ン

Page 13: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 13

このアプ リ ケーシ ョ ン ノートで使用するサンプル モジュールは、 pingpong モジュールです。 これは非常に簡単なデモ用モジュールであ り、 相互に信号を送信する 2 つのプロセスで構成されます。 OSE 内の信号を使用して、 プロセス間でメ ッセージを渡すこ とができます。 この信号には ID が含まれ、 オプシ ョ ンによってほかの情報も含めるこ とができます。pingpong モジュールは、 このよ う な信号を用いて整数値を送信および返信します。 信号とその使用の詳細は、 『ENEAOSE デバイス ド ラ イバー ユーザー ガイ ド』 [参照 3] を参照してください。

ping プロセスは信号を作成し、 pong プロセスに送信します。 pong プロセスは信号を受信し、 信号内のカウンター変数をインク リ メン ト して ping プロセスに返信します。

X-Ref Target - Figure 13

図 13 : OSE BSP モジュール

Page 14: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 14

モジュールの起動および使用には複数のメカニズムを利用できますが、 この例では、 起動時にモジュールが起動されるように、 カーネル内でモジュールをコンパイルします。 これを行う 1 つの方法は、 カーネルのビルド システム環境を変更してモジュールを追加するこ とです。 ビルド システムの詳細は、 『ENEA OSE Refsys ユーザー ガイ ド』 [参照 4] を参照してください。 このモジュールを追加するために変更する必要があるファ イルは、 カーネル ソース フォルダー OSE_ZC702/rtose.mk にあ り ます (図 14 参照)。

1. pingpong モジュールを追加するには、 ファ イル内のどこかに次の文字列を追加します (図 15 参照)。

override MODS += pingpong

2. OSE カーネル全体を再コンパイルする と、 pingpong モジュールがコンパイルされます。

X-Ref Target - Figure 14

図 14 : [OSE_ZC702] → [rtose.mk]

X-Ref Target - Figure 15

図 15 : rtose.mk への pingpong モジュールの追加

Page 15: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 15

3. OSE カーネル内の pingpong モジュールを リ ンク します。 これを行うには、 図 16 に示すよ うに、 [OSE_ZC702] プロジェク ト を右ク リ ッ ク して、 [Build Project] をク リ ッ ク します。

4. Zynq-7000 デバイス上での OSE の実行のガイ ド ラインに従って、 pingpong モジュールを含むこの新しいカーネルをブート します。 ブート後、 図 17 に示すよ うに、 bl コマンドを発行する と、 カーネルによってロード されたブロ ッ クが表示されます。

5. 同様に、 図 18 に示すよ うに、 ps コマンドを使用して (ping および pong プロセスを含む) 実行中のプロセスを表示します。

X-Ref Target - Figure 16

図 16 : [CDT Build Console]

X-Ref Target - Figure 17

図 17 : ロード されたブロック

X-Ref Target - Figure 18

図 18 : 実行中のプロセス

Page 16: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 16

Optima を使用したアプリケーシ ョ ンのデバッグ

OSE カーネルを実行している ZC702 ボード と Optima IDE 間の接続をセッ ト アップするには、 Optima 内で新しいハードウェア ターゲッ ト をコンフ ィギュレーシ ョ ンする必要があ り ます。

1. このよ うなターゲッ ト を追加するには、 図 19 に示すよ うに、 [System Browsing] パースペクティブの [System Browser]タブで [Add new Gate] をク リ ッ ク します。

2. OSE を実行している Zynq-7000 AP SoC ターゲッ トの IP アドレスを入力します。 例に示したデフォルト値が使用されている場合は、 IP アドレスは 192.168.1.111 になり ます (図 20 参照)。

X-Ref Target - Figure 19

図 19 : [System Browser]

X-Ref Target - Figure 20

図 20 : ゲートのコンフ ィギュレーシ ョ ン

Page 17: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 17

OSE カーネルを実行しているターゲッ トへの接続に成功する と、 図 21 に示すよ うに、 [System Browser] タブを使用してターゲッ ト と対話できます。

Optima の [System Browser] タブで可能な操作の詳細は、 ENEA Optima のマニュアルに記載されています。 このセクシ ョ ンでは、 デバッグ機能の例を示します。

3. Optima を使用してアプリ ケーシ ョ ンをデバッグする前に、現在のワークスペースにそのアプリ ケーシ ョ ンを追加します。カーネル プロジェク ト を作成して pingpong プロジェク ト (<Zynq BSP Install Path>\refsys\modules\pingpong) をワークスペースに追加したと き と同じ手順に従います。 図 22 に示すよ うに、 追加したプロジェク トは[Project Explorer] にも表示されます。

OSE カーネルと pingpong モジュール プロジェク トは、いずれも Optima 環境内から構築できます。たとえば、[Project]→ [Build All] をク リ ッ クする と、 現在のプロジェク トのデバッグ バージ ョ ンと リ リース バージ ョ ンが構築されます。

X-Ref Target - Figure 21

図 21 : [System Browser]

X-Ref Target - Figure 22

図 22 : [Project Explorer]

Page 18: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 18

4. 次の手順では、デバッグ コンフ ィギュレーシ ョ ンを作成します。図 23 に示すよ うに、[Run] → [Debug Configurations…]をク リ ッ ク します。

5. 表示されるウ ィザードで [OSE C/C++ Core Module] エン ト リ をダブルク リ ッ クする と、 新しいデバッグ コンフ ィギュレーシ ョ ンが作成されます (図 24 参照)。

X-Ref Target - Figure 23

図 23 : [Debug Configurations...]

X-Ref Target - Figure 24

図 24 : 新しいデバッグ コンフ ィギュレーシ ョ ン

Page 19: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 19

6. [Search Project…] をク リ ッ ク して [C/C++ Application] に入力し、OSE カーネルの U-Boot イ メージ (rtose.bin) の作成に使用した .elf を選択します (<Zynq BSP install path>\refsys\rtose\zynq7020\obj\rtose_debug\rtose.elf) (図 25 参照)。

7. [Connection] タブでターゲッ トの IP アドレスを設定し、 [Gate Port] はデフォルト (21768) のままにします。

8. [Debugger] タブで [GDB debugger] の右側にある [Find] をク リ ッ ク し、 [GDB debugger] を設定します (図 26 参照)。

X-Ref Target - Figure 25

図 25 : EFL ファイルの選択

X-Ref Target - Figure 26

図 26 : GDB デバッガーのコンフ ィギュレーシ ョ ン

Page 20: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 20

9. 後に、[Debug] タブで、図 27 に示すよ うに、[Debug scope] の範囲を [Block] に変更して、[Block] の名前を pingpongに設定し、 [Process] を ping に設定します。

10. デバッグ セッシ ョ ンを開始するには、 [Debug] をク リ ッ ク してウ ィザードを閉じます。 Eclipse は、 [System Browsing]パースペクティブから [Debug] パースペクティブへと切り替えるプロンプ ト を表示します。プロンプ ト を確定します。

デバッグ接続が確立される と、 pingpong プロセスの 2 つのスレッ ドは停止します。 プロセスは [Debug] タブに表示されます (図 28 参照)。

たとえば、 ping プロセスをク リ ッ クする と、 ping.c ソース ファ イルを開こ う と しますが、 実際には OSE カーネルプロジェク ト全体をデバッグしているため、 これらのソース ファ イルを自動的に見つけるこ とはできません。 この問題を解決するには、 [Edit Source Lookup Path…] をク リ ッ ク して、 これらファ イルの適切なソース パスを選択します。

X-Ref Target - Figure 27

図 27 : [Debug] タブ

X-Ref Target - Figure 28

図 28 : pingpong プロセス

Page 21: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

Zynq-7000 AP SoC 用 OSE アプリケーシ ョ ンの構築とデバッグ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 21

11. [Add Source] をク リ ッ ク し、 次に [Project] をク リ ッ ク します (図 29 参照)。

12. 後に、 pingpong プロジェク ト を選択します (図 30 参照)。

これによ り、 Optima は、 このモジュールによって使用されるソース ファ イルを検出できます。

これでデバッガーが接続されたので、 Eclipse の標準機能を使用して、 デバッグ、 ブレーク、 変数の表示などが可能になります。

X-Ref Target - Figure 29

図 29 : [Add Source] → [Project]

X-Ref Target - Figure 30

図 30 : プロジェク トの選択

Page 22: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

プログラマブル ロジック内のペリフェラルへのアクセス

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 22

プログラマブル ロジック内のペリフェラルへのアクセスPS とプログラマブル ロジッ ク間に 2 つの汎用 AXI マスター インターフェースがあるため、プログラマブル ロジッ ク内のユーザー IP コアは、 プロセ ッ シング システム内の各ペ リ フ ェ ラル と同じ方法で メ モ リ マップされます。 詳細は、『Zynq-7000 All Programmable SoC テクニカル リ ファレンス マニュアル』 (UG585) [参照 1] を参照して ください。 この共通のメモ リ マップ手法によ り、ペリ フェラルへのアクセスは (プロセッシング システム内かプログラマブル ロジッ ク内かを問わず) デバイス固有のメモ リ領域にアクセスする操作となり ます。

このセクシ ョ ンでは、 pingpong サンプル アプ リ ケーシ ョ ンを変更して、 プログラマブル ロジッ ク内のペリ フェラルにアクセスする方法を示します。

Vivado IP インテグレーターのハードウェア デザイン

このセクシ ョ ンで使用するハード ウェア デザインは、 Vivado IP インテグレーター ツールで作成されます。 このよ うなデザインの作成方法の詳細は、 このアプリ ケーシ ョ ン ノートの対象範囲外ですが、『Vivado Design Suite ユーザー ガイ ド : エンベデッ ド プロセッサ ハードウェア デザイン』 (UG898) [参照 5] および『Vivado Design Suite チュート リ アル : エンベデッド プロセッサ ハード ウェア デザイン』 (UG940) [参照 6] に記載されています。 こ こで使用するプロジェ ク ト は、 2014.2Vivado リ リースで入手可能な Zynq サンプル デザインです。 このデザインは、 プロセッシング システム、 ブロ ッ ク RAMコン ト ローラー、 プログラマブル ロジッ ク内の AXI GPIO ペリ フェラルのみを含み、 ボード上の 4 つの LED を駆動します。 詳細は、 図 31 を参照して ください。

このデザインのメモ リ マップは、 図 32 に示すよ うに、 IP インテグレーター環境でもコンフ ィギュレーシ ョ ンされます。

X-Ref Target - Figure 31

図 31 : サンプル デザインのブロック図

X-Ref Target - Figure 32

図 32 : アドレス マップ

Page 23: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

プログラマブル ロジック内のペリフェラルへのアクセス

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 23

このアプ リ ケーシ ョ ン ノート と共に、 インプリ メン ト済みのビッ ト ス ト リームをダウンロードできます ( 「 リ ファレンスデザイン」 参照)。

このデザインのインプ リ メン ト後、 ファース ト ステージ ブート ローダーを生成して、 IP インテグレーター プロジェク トの定義に従ってプロセッシング サブシステムをコンフ ィギュレーシ ョ ンする必要があ り ます。 このファース ト ステージブート ローダーの作成には、 XSDK の使用など、 複数の方法があ り ます ([参照 7] 参照)。 付属のリ ファレンス デザインには、 コンパイル済みの FSBL も含まれています。

サンプル アプリケーシ ョ ンの変更

簡単なハード ウェア デザイン サンプルと して、 pingpong のサンプル アプ リ ケーシ ョ ンを変更し、 プログラマブル ロジッ ク内の GPIO ペリ フェラルにアクセスします。 この変更は pong.c ファ イル内で行います。 このプロセスは、 ping プロセス と pong プロセス間で送信される信号のカウンター値を取得し、 この値を用いて LED を駆動します。 この目的に必要な変更は、 次のよ うに、 すべての GPIO 出力を作成するよ うに AXI GPIO ペリ フェラルを設定するこ とだけです。

Xil_Out32(GPIO_TRI_ADDR, 0x0);

信号を受信したら、 この値を使用して LED を駆動する必要があ り ます。

Xil_Out32(GPIO_DATA_ADDR, new_value);

I/O は適切なメモ リ ロケーシ ョ ンからの読み出しおよび書き込みによって機能し、 次のよ うに定義されます。

void Xil_Out32(u32 OutAddress, u32 Value){*(volatile u32 *) OutAddress = Value;

}

u32 Xil_In32(u32 Addr){return *(volatile u32 *) Addr;

}

pong.c プロセスのソース コード全体は、 付属のリ ファレンス デザインに含まれています ( 「 リ ファレンス デザイン」 参照)。

OSE カーネルの変更

OSE は MMU を使用してメモ リ領域へのアクセス と保護を実行するため、 MMU のコンフ ィギュレーシ ョ ンを変更してプログラマブル ロジッ ク内のペリ フェラルにアクセスできるよ うにする必要があ り ます。 デフォルトでは、 MMU は 2 つのマスター AXI インターフェースによって使用される メモリ領域にアクセスできるよ うに設定されていません。OSE は、 このよ うな MMU のコンフ ィギュレーシ ョ ンを動的および静的に変更できる、 複数の方法を備えています。 詳細は、 『ENEAOSE アーキテクチャ ユーザー ガイ ド』 [参照 8] を参照してください。 この例では、 静的なコンフ ィギュレーシ ョ ンを選択しました。

MMU の静的コンフ ィギュレーシ ョ ンは、 ファ イル <Zynq BSP install path>/refsys/rtose/zynq7020/rtose5.conf 内で実行します。 MMU にメモ リ領域を追加するには、 図 33 に示すよ うに、 このファ イルに次の行を追加します。

krn/region/axi_gpio=base:0x41200000 size:64M perm:su_rw_usr_rw cache:inhibited mem:ordered_access

X-Ref Target - Figure 33

図 33 : rtose.conf

Page 24: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

まとめ

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 24

これによ り、 OSE は、 キャ ッシュを使用せずに、 プログラマブル ロジッ ク内にある AXI GPIO ペリ フェラルのメモ リ領域にアクセスできます。

これで、 「Zynq-7000 AP SoC デバイス用 OSE カーネルの構築」 の手順に従って OSE カーネルを再構築できます。

BIT ファイルと更新されたカーネルを使用した Zynq-7000 AP SoC デバイスのブート

更新されたカーネル イ メージを ZC702 ボード上で実行する前に、プログラマブル ロジッ クがカスタム ハードウェア デザインでコンフ ィギュレーシ ョ ンされているこ とを確認する必要があ り ます。 これを行う 1 つの方法は、ブート イ メージを更新してこの BIT ファ イルを含めるこ とです。 ブート プロセス中に (U-Boot がロード されて実行される前に) ファース トステージ ブート ローダーはこの BIT ファ イルを使用してプログラマブル ロジッ クをコンフ ィギュレーシ ョ ンします。 新しいブート イ メージを作成するには、 bootgen ツールを使用します。 このツールは、 ブート イ メージ内のさまざまなパーテ ィ シ ョ ンを含む .bif フ ァ イル (ose.bif) によってコンフ ィ ギュ レーシ ョ ン されます。 ブー ト イ メージの作成とbootgen アプ リ ケーシ ョ ンの使用の詳細は、 『Zynq-7000 AP SoC ソ フ ト ウ ェア開発者向けガイ ド』 (UG821) の 「付録 A :Bootgen の使用」 [参照 9] を参照してください。

必要な .bif ファ イルは次のよ うになり ます。

//ZC702_bif_for_OSE:{[bootloader]fsbl.elfzynq_1_wrapper.bitu-boot.elf

}

説明 :

• fsbl.elf は、 前のセクシ ョ ン 「Vivado IP インテグレーターのハードウェア デザイン」 で作成した FSBL です。

• zynq_1_wrapper.bit は、 このセクシ ョ ンで作成した BIT ファ イルです。

• u-boot.elf は、 「Zynq-7000 AP SoC デバイス上での OSE の実行」 で使用したものと同じ U-Boot です。

新しいブート イ メージを生成するには、 SDK コマンド プロンプ ト を開き、 次のコマンドを実行します。

bootgen -image ose.bif -o boot.bin

これで新しい boot.bin ファ イルが作成されます。 ボードのブートに使用する SD カードに、 このファ イルをコピーします。 付属のリ ファレンス ファ イルには、 すべてのソース と、 ボードのブートに使用可能な生成済みの boot.bin ファ イルが含まれます。

アプ リ ケーシ ョ ン ノートの 「Zynq-7000 AP SoC デバイス上での OSE の実行」 の手順に従って、 この更新されたイ メージを使用して ZC702 ボードをブート します。 これによ り、 FSBL ステージでプログラマブル ロジッ クがコンフ ィギュレーシ ョ ンされます。 OSE カーネルの実行後、 更新された pingpong モジュールが実行され、 ボード上の LED を ト グルで切り替えます。 イーサネッ ト を用いて接続し、 「Optima を使用したアプリ ケーシ ョ ンのデバッグ」 の説明に従って Optima を使用してカーネルをデバッグする と き、 pong プロセスがデバッグされます。

まとめこのアプリ ケーシ ョ ン ノートでは、Zynq-7000 SoC All Programmable デバイス プラ ッ ト フォーム上で OSE BSP を実行する具体的な方法について説明し、プロセッシング システムおよびプログラマブル ロジッ ク内のペリ フェラルにアクセスするサンプル アプリ ケーシ ョ ンの構築とデバッグの方法を示しました。

Page 25: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

リファレンス デザイン

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 25

リファレンス デザインこのアプリ ケーシ ョ ン ノートの リ ファレンス デザイン ファ イルは、 ザイ リ ンクスのウェブサイ トからダウンロードできます。

表 1 に、 リ ファレンス デザインの詳細を示します。

参考資料1. 『Zynq-7000 All Programmable SoC テクニカル リ ファレンス マニュアル』 (UG585)

2. Embedded Wiki http://www.wiki.xilinx.com/Zynq+Releases

3. 『Enea OSE デバイス ド ラ イバー ユーザー ガイ ド』 (BSP と共にインス トール)

4. 『Enea OSE Refsys ユーザー ガイ ド』 (BSP と共にインス トール)

5. 『Vivado Design Suite ユーザー ガイ ド : エンベデッ ド プロセッサ ハードウェア デザイン』 (UG898)

6. 『Vivado Design Suite チュート リ アル : エンベデッ ド プロセッサ ハードウェア デザイン』 (UG940)

7. 『Zynq-7000 AP SoC ソフ ト ウェア開発者向けガイ ド』 の 「第 3 章 : ブートおよびコンフ ィギュレーシ ョ ン」 (UG821)

8. 『Enea OSE アーキテクチャ ユーザー ガイ ド』 (OSE と共にインス トール)

9. 『Zynq-7000 AP SoC ソフ ト ウェア開発者向けガイ ド』 の 「付録 A : Bootgen の使用」 (UG821)

改訂履歴次の表に、 この文書の改訂履歴を示します。

表 1 : リファレンス デザインの詳細

パラメーター 説明

全般

開発者 Kester Aernoudt

ターゲッ ト デバイス Zynq-7000 AP SoC

ソース コードの提供 あ り

ソース コードの形式 (提供される場合) ブロッ ク図/C

既存のザイ リ ン ク ス リ フ ァ レンス デザイン/アプ リ ケーシ ョ ン ノー ト、 サードパーティ、 Vivado ツールからデザインへのコード /IP の使用。

Vivado IP カタログから生成される IP コア

ハードウェア検証

ハードウェア検証の実施 あ り

使用したプラ ッ ト フォーム ZC702 開発ボード

日付 バージョ ン 内容

2015 年 1 月 12 日 1.0 初版

Page 26: Zynq-7000 AP SoC ENEA OSE BSP - Xilinx...XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 6 5. 図5 に示すように、[OSE C/C++ Toolchain] を選択します。X-Ref Target

法的通知

XAPP1221 (v1.0) 2015 年 1 月 12 日 japan.xilinx.com 26

法的通知The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products. To the maximum extentpermitted by applicable law: (1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES ANDCONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, includingnegligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, theMaterials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss ofdata, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonablyforeseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes no obligation to correct any errors contained in the Materials or tonotify you of updates to the Materials or to product specifications. You may not reproduce, modify, distribute, or publicly display the Materials withoutprior written consent. Certain products are subject to the terms and conditions of Xilinx’s limited warranty, please refer to Xilinx’s Terms of Sale whichcan be viewed at http://www.xilinx.com/legal.htm#tos; IP cores may be subject to warranty and support terms contained in a license issued to you byXilinx. Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk andliability for use of Xilinx products in such critical applications, please refer to Xilinx’s Terms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos.

Automotive Applications Disclaimer

XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN ANY APPLICATION REQUIRING FAIL-SAFEPERFORMANCE, SUCH AS APPLICATIONS RELATED TO: (I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESSTHERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX DEVICE TOIMPLEMENT THE REDUNDANCY) AND A WARNING SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEADTO DEATH OR PERSONAL INJURY. CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE OF XILINX PRODUCTS INSUCH APPLICATIONS.

© Copyright 2015 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein aretrademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners.

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、 [email protected] まで、 または各ページの右下

にある [フ ィードバッ ク送信] ボタンをク リ ッ クする と表示されるフォームからお知らせください。いただきましたご意見を参考に早急に

対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。