...

シンプルな AMP : 2 つの Cortex-A9 プロセッサの両方で動作

by user

on
Category: Documents
86

views

Report

Comments

Transcript

シンプルな AMP : 2 つの Cortex-A9 プロセッサの両方で動作
9
ア プ リ ケーシ ョ ン ノ ー ト : Zynq-7000 AP SoC
シ ン プルな AMP : 2 つの Cortex-A9 プ ロ セ ッ サ
上で動作するベア メ タ ル シ ス テム
XAPP1079 (v1.0) 2013 年 4 月 3 日
著者 : John McDougall
概要
Zynq®-7000 All Programmable SoC は、 独立 し た ソ フ ト ウ ェ ア ス タ ッ ク ま たは実行フ ァ イ ルを同時に
実行で き る 2 つの Cortex®-A9 プ ロ セ ッ サを搭載 し てい ます。 こ のアプ リ ケーシ ョ ン ノ ー ト では、 両プ
ロ セ ッ サを起動 し て、 各々に独立 し たベア メ タ ル ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン を実行 さ せ る と 共に、
共有 メ モ リ を介 し て両者間の通信を可能にす る方法について説明 し ます。
含まれる シ ス テム
デザ イ ンは、 Xilinx Platform Studio (XPS) 14.3 に よ っ て作成お よ び構築 さ れてお り 、 ザ イ リ ン ク ス の
ソ フ ト ウ ェ ア開発キ ッ ト (SDK) を使用 し て構築 さ れた ソ フ ト ウ ェ ア を含みます。こ のアプ リ ケーシ ョ ン
ノ ー ト にはプ ロ ジ ェ ク ト フ ァ イ ルがすべて付属 し 、 こ れ ら をデザ イ ンの検討や再構築に活用 し た り 、 新
規デザ イ ン着手時のテ ンプ レー ト と し て使用 し た り で き ます。
Zynq-7000 ZC702 デモ プ ラ ッ ト フ ォーム を タ ーゲ ッ ト と し て事前に構築、 イ ンプ リ メ ン ト さ れた フ ァ
イ ル も 用意 さ れてい る ため、 ハー ド ウ ェ ア、 ソ フ ト ウ ェ ア、 ま たはブー ト フ ァ イ ルの タ ーゲ ッ ト を再作
成す る 手順を省略で き ます。
は じ めに
Zynq-7000 AP SoC は、同 じ メ モ リ お よ びペ リ フ ェ ラ ルを共用す る 2 つの Cortex-A9 プ ロ セ ッ サを搭載
し てい ます。非対称型マルチプ ロ セ ッ シ ン グ (AMP) と は、両方のプ ロ セ ッ サがそれぞれのオペレーテ ィ
ン グ シ ス テ ム ま たはベア メ タ ル アプ リ ケーシ ョ ン を実行で き る よ う にす る メ カ ニ ズ ム であ り 、 共有 リ
ソ ース を介 し て こ れ ら のアプ リ ケーシ ョ ン を緩やかに結合 さ せ る こ と も で き ます。
リ フ ァ レ ン ス デザ イ ンには、両方の Cortex-A9 プ ロ セ ッ サを AMP コ ン フ ィ ギ ュ レーシ ョ ン で動作 さ せ
る ために必要なハー ド ウ ェ ア と ソ フ ト ウ ェ アが含ま れ ます。 各 CPU は、 それぞれ独自の ス タ ン ド ア ロ
ン環境下でベア メ タ ル アプ リ ケーシ ョ ン を実行 し ます。 2 つの CPU が共有ハー ド ウ ェ ア リ ソ ース上で
競合 し ない よ う に対策が講 じ ら れてい ます。 こ のアプ リ ケーシ ョ ン ノ ー ト では、 ブー ト 可能な ソ リ ュ ー
シ ョ ンの作成方法 と 両 CPU のデバ ッ グ方法について も 説明 し ます。
デザイ ンの概要
リ フ ァ レ ン ス デザ イ ン では、 2 つの Cortex-A9 プ ロ セ ッ サ (CPU0 と CPU1) がそれぞれのベア メ タ ル
アプ リ ケーシ ョ ン を実行す る よ う に構成 し ます。 こ の AMP の例では、 CPU0 上で動作す る ベア メ タ ル
アプ リ ケーシ ョ ンがシ ス テ ムのマ ス タ ー と な り 、 次を実行 し ます。
•
シ ス テ ムの初期化
•
CPU1 起動の制御
•
CPU1 と の通信
•
CPU1 と の UART の共有
CPU1 上で動作す る ベア メ タ ル アプ リ ケーシ ョ ンは、 次を実行 し ます。
•
CPU0 と の通信
•
プ ロ グ ラ マブル ロ ジ ッ ク (PL) にあ る コ アか ら の割 り 込みの処理
•
CPU0 と の UART の共有
© Copyright 2013 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the
United States and other countries. ARM and Cortex are trademarks of ARM in the European Union and other countries. All other trademarks are the property of their respective
owners.
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
1
デザイ ンの概要
Zynq SoC プ ロ セ ッ シ ン グ シ ス テ ム (PS) には、各 CPU 専用の リ ソ ース と 両 CPU 間で共有 さ れ る リ ソ ー
ス があ り ます。 デザ イ ン を AMP コ ン フ ィ ギ ュ レーシ ョ ンで動作 さ せる 場合、 2 つの CPU が共有 リ ソ ー
ス上で競合 し ない よ う に注意す る 必要があ り ます。 共有 リ ソ ース と 専用 リ ソ ース の詳細は、 『Zynq-7000
All Programmable SoC テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 [参照 1] を参照 し て く だ さ い。 共有ま た
は専用 リ ソ ース の管理手法にはアプ リ ケーシ ョ ン固有の も の も あ り ますが、 こ の リ フ ァ レ ン ス デザ イ ン
で使用 し てい る 手法の多 く は、 基本的にその ま ま利用で き ます。
専用 リ ソ ース の例には、 次の も のがあ り ます。
•
L1 キ ャ ッ シ ュ
•
プ ラ イ ベー ト ペ リ フ ェ ラ ル割 り 込み (PPI)
•
メ モ リ 管理ユニ ッ ト (MMU)
•
プ ラ イ ベー ト タ イ マー
共有 リ ソ ース の例には、 次の も のがあ り ます。
•
割 り 込み制御デ ィ ス ト リ ビ ュー タ ー (ICD)
•
DDR メ モ リ
•
オンチ ッ プ メ モ リ (OCM)
•
グ ロ ーバル タ イ マー
•
ス ヌープ制御ユニ ッ ト (SCU) お よ び L2 キ ャ ッ シ ュ
•
UART0
こ の例では、 CPU0 を マ ス タ ー と し て扱い、 こ れが共有 リ ソ ース を制御 し ます。 CPU1 に よ っ て共有 リ
ソ ース を制御す る 必要が生 じ た場合 も 、 その要求を CPU0 に通知 し 、 CPU0 に リ ソ ース を制御 さ せ る 必
要があ り ます。 リ フ ァ レ ン ス デザ イ ンの複雑性を最小限に抑え る ために、 CPU1 上で動作す るベア メ タ
ル アプ リ ケーシ ョ ン を変更 し て、 共有 リ ソ ースへのア ク セ ス を制限 し てい ます。
両プ ロ セ ッ サ間の相互通信には OCM を使用 し ます。 OCM は DDR メ モ リ に比べて非常に高性能であ
り 、 2 つのプ ロ セ ッ サか ら 低レ イ テ ン シでア ク セ ス で き ます。 両方のプ ロ セ ッ サか ら OCM へのキ ャ ッ
シ ュ ア ク セ ス を無効にす る こ と で、 よ り 確実に確定的なア ク セ ス を保証で き ます。
共有 リ ソ ース に関す る 問題を防ぐ ために、 次の よ う な対策を講 じ てい ます。
•
DDR メ モ リ : CPU0 が認識で き る メ モ リ 範囲を 0x00100000 ~ 0x001FFFFF に限 り ます。CPU1 は、
ベア メ タ ル アプ リ ケーシ ョ ンの実行に 0x00200000 ~ 0x002FFFFF の メ モ リ 範囲を使用し ます。
•
L2 キ ャ ッ シ ュ : CPU1 は L2 キ ャ ッ シ ュ を使用 し ません。 L2 キ ャ ッ シ ュ は共有 リ ソ ース であ り 、
CPU0 が所有 し ます。 CPU1 が L2 キ ャ ッ シ ュ を使用 し た場合、 L2 キ ャ ッ シ ュ の フ ラ ッ シ ュ お よ び
無効化は CPU0 か ら 要求す る必要があ り 、CPU0 が こ の動作を実行 し ます。CPU1 が L2 キ ャ ッ シ ュ
へのア ク セ ス を要求で き る よ う にす る 通信チ ャ ネルの実装は、 こ のサンプル デザ イ ンには含まれて
い ません。
•
ICD : PL 内の コ アか ら の割 り 込みは、 CPU1 の PPI コ ン ト ロ ー ラ ーに転送 さ れます。 PPI を使用す
る こ と で、 CPU1 は ICD へのア ク セ ス を要求せずに、 割 り 込みを自由に処理で き ます。
•
タ イ マー : CPU1 は専用の タ イ マーを使用 し ます。
•
OCM : OCM へのア ク セ ス は、 競合が起 ら ない よ う に各 CPU が非常に注意深 く 処理 し ます。 OCM
のア ド レ ス位置の 1 つを、 2 つのプ ロ セ ッ サ間の通信用フ ラ グ と し て使用 し ます。 CPU1 を起動す
る 前に、 CPU0 が こ の フ ラ グ を 0 に初期化 し ます。 フ ラ グが 0 の場合、 CPU0 が UART を所有 し
ます。 フ ラ グが 0 以外の場合は、 CPU1 が UART を所有 し ます。 フ ラ グ を セ ッ ト で き る のは CPU0
のみ、 フ ラ グ を ク リ アで き る のは CPU1 のみです。
デモの目的でのみ、 こ のサンプル デザ イ ンに含まれ る カ ス タ ム エンベデ ッ ド コ ア を使用 し て簡単な割
り 込み要因を作成で き ます。 こ の コ アに ChipScope™ Analyzer Virtual Input/Output (VIO) コ アの出力
を接続すれば、 ユーザーは PS に対す る 割 り 込みをいつで も 生成可能です。 ま た、 ChipScope Analyzer
VIO コ ア を使用す る と 、 割 り 込みがいつ発生す る か を よ り 正確に制御で き る ため、 割 り 込みレ イ テ ン シ
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
2
デザイ ンの概要
の測定が容易にな り ます。 ただ し 、 こ の コ アはデザ イ ン では現実的には使用 さ れません。 実用的な割 り
込みは、 ダ イ レ ク ト メ モ リ ア ク セ ス (DMA) エン ジ ン な ど PL 内で実際に機能を果たす ロ ジ ッ ク か ら 生
成 さ れます。
ハー ド ウ ェ ア
PL には、 ChipScope Analyzer VIO コ アの同期出力に接続 さ れた カ ス タ ム エンベデ ッ ド コ アが含まれ
ます (図 1)。 VIO コ アは、 ユーザーが ChipScope Analyzer か ら ハー ド ウ ェ ア を制御す る メ カ ニズ ム を
提供 し ます。
X-Ref Target - Figure 1
ILA
Irq_gen
pcore
VIO
Core1_nIRQ
PS
AXI Interconnect
M_AXI_GP0
X1079_01_020613
図 1 : PL のブ ロ ッ ク図
こ のデザ イ ンでは、 VIO がパルス を生成する と 、 カ ス タ ム コ アは割 り 込みを PS の Core1_nIRQ ピ ンに
転送 し ます。カ ス タ ム コ アは AXI イ ン タ ー コ ネ ク ト を介 し て PS のマ ス タ ー汎用ポー ト (M_AXI_GP0)
に も 接続 さ れ る ため、 CPU0 と CPU1 の両方が コ ア内の制御レ ジ ス タ にア ク セ ス で き ます。 CPU1 は割
り 込みサービ ス ルーチン内で割 り 込み要求 (IRQ) を ク リ アす る ために制御レ ジ ス タ にア ク セ ス し ます。
CPU0 はオプ シ ョ ン と し て、 こ の制御 レ ジ ス タ を 使用 し て CPU1 に対す る 割 り 込み を 作成で き ま す。
Core1_nIRQ ピ ンは CPU1 の PPI ブ ロ ッ ク に直接接続 さ れ る ため、 共有 ICD の コ ン フ ィ ギ ュ レーシ ョ
ン を変更す る 必要はあ り ません。デザ イ ンには ChipScope Analyzer の AXI モニ タ ー コ ア も 含まれてい
る ため、 ユーザーは処理中の IRQ の レ イ テ ン シ を測定で き ます。
ア ド レス マ ッ プ
PL には、 制御レ ジ ス タ を 1 つ備え た irq_gen エ ンベデ ッ ド コ アが 1 つあ り ます。 レ ジ ス タ の位置は、
BASE + 0 (0x78600000) です。 表 1 に、 レ ジ ス タ の説明を示 し ます。
表 1 : IRQ_GEN 制御レ ジ ス タ
ビッ ト
ア ク セス
説明
[31:1]
R/W
未使用。 書 き込まれた値を読み出 し 可能です。
[0]
R/W
IRQ のアサー ト
0 : PS に対 し て IRQ はアサー ト さ れてい ません。
1 : PS に対 し て IRQ がアサー ト さ れてい ます。 VIO に よ っ て
VIO_IRQ_TICK ピ ンがアサー ト さ れ る と 、 こ のビ ッ ト がセ ッ ト さ れま
す。 CPU に よ っ てセ ッ ト さ れ る こ と も あ り ます。 こ の ビ ッ ト への書き
込みでビ ッ ト を ク リ アで き る のは CPU のみです。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
3
デザイ ンの概要
ソフ ト ウェア
ソ フ ト ウ ェ アは、 次の 3 つの部分に分割で き ます。
•
フ ァ ース ト ス テージ ブー ト ロ ーダー (FSBL)
•
CPU0 のベア メ タ ル アプ リ ケーシ ョ ン
•
CPU1 のベア メ タ ル アプ リ ケーシ ョ ン
FSBL
FSBL は常に CPU0 上で動作 し 、 PS のパ ワ ーオン リ セ ッ ト 後に最初に実行 さ れ る ソ フ ト ウ ェ ア アプ リ
ケーシ ョ ン です。 FSBL は PL を プ ロ グ ラ ム し 、 両アプ リ ケーシ ョ ン の ELF (Executable and Linkable
Format) フ ァ イ ルを DDR メ モ リ に コ ピー し ます。 アプ リ ケーシ ョ ン を DDR メ モ リ に ロ ー ド 後、 FSBL
は最初に ロ ー ド さ れた アプ リ ケーシ ョ ンの実行を開始 し ます。
ISE® Design Suite 14.3 に含まれ る FSBL は、 複数のデー タ フ ァ イ ルま たは ELF フ ァ イ ルをサポー ト
し てい ません。 現在の FSBL は、 まず BIT フ ァ イ ルを探 し ます。 BIT フ ァ イ ルが見つか っ た場合は PL
に書 き 込みます。 次に、 BIT フ ァ イ ルが見つか っ たか ど う かにかかわ ら ず、 アプ リ ケーシ ョ ン ELF を 1
つ メ モ リ に ロ ー ド し 、 実行 し ます。 こ の動作シーケ ン ス は AMP コ ン フ ィ ギ ュ レーシ ョ ン をサポー ト し
ていないため、 FSBL を変更す る必要があ り ます。
こ の AMP のサンプル プ ロ ジ ェ ク ト フ ァ イ ルの FSBL は、 ロ ー ド 先のア ド レ ス が 0xFFFFFFF0 の フ ァ
イ ルを検出す る ま で フ ァ イ ル検索 と メ モ リ への ロ ー ド を継続す る よ う に変更が加え ら れてい ます。 フ ァ
イ ルを検出す る と 、 FSBL は こ の最後の フ ァ イ ルを ダ ウ ン ロ ー ド し た う えで、 最初に見つかっ た非 BIT
フ ァ イ ルま たは非ブー ト フ ァ イ ル ( こ れは CPU0 用アプ リ ケーシ ョ ン ) の実行可能な ア ド レ ス にジ ャ ン
プ し ます。 CPU1 起動の詳細は、 『Zynq-7000 All Programmable SoC テ ク ニ カル リ フ ァ レ ン ス マニ ュ
アル』 [参照 1] を参照 し て く だ さ い。
ベア メ タ ル ア プ リ ケーシ ョ ンの コ ー ド
リ フ ァ レ ン ス デザ イ ン では、 CPU0 と CPU1 が各々独立 し たベア メ タ ル アプ リ ケーシ ョ ン コ ー ド を実
行 し ます。 CPU0 が共有 リ ソ ース を初期化 し 、 CPU1 を起動 し ます。
EDK 14.3 イ ン ス ト ールの一部で あ る standalone_v3_07_a と い う 名前のベア メ タ ル ボー ド サポー ト
パ ッ ケージ (BSP) は、プ リ プ ロ セ ッ サの定義済み定数 USE_AMP をサポー ト し ます。こ の定数は、CPU0
に よ っ て 既に初期化 さ れ て い る PS SCU が BSP に よ っ て 再度初期化 さ れ る こ と を 防 ぎ ま す。 定数
USE_AMP の使用に伴 う 注意点の 1 つ と し て、 メ モ リ のエ イ リ ア ス を作成す る ための MMU のマ ッ ピ
ン グ 調整が あ り ま す。 こ の調整に よ り 、 ア ド レ ス 0x20000000 に位置す る 物理 メ モ リ は、 仮想的に
0x00000000 にマ ッ ピ ン グ さ れます。 こ の再マ ッ ピ ン グは、 BSP ブー ト フ ァ イ ル boot.S 内で実行 さ
れます。 こ のデザ イ ンでは、再マ ッ ピ ン グの必要はあ り ません。 リ フ ァ レ ン ス デザ イ ンには、USE_AMP
が設定 さ れた場合に再マ ッ ピ ン グ を削除す る、 BSP の改訂バージ ョ ンが含まれてい ます。
CPU0 用ア プ リ ケーシ ョ ン
CPU0 用のアプ リ ケーシ ョ ンは、 ア ド レ ス 0x00100000 か ら 始 ま る メ モ リ 位置に配置 さ れ ま す。 開始
ア ド レ ス の設定には リ ン カー ス ク リ プ ト を使用 し ます。
CPU0 用のアプ リ ケーシ ョ ンは次を実行 し ます。
1. ア ド レ ス範囲 0xFFFF0000 ~ 0xFFFFFFFF の OCM ア ク セ ス に対 し てはキ ャ ッ シ ュ が無効にな る
よ う に MMU を設定 し ます。 OCM のア ド レ ス マ ッ プは変更 し ません。 し たがっ て、 OCM の位置
はア ド レ ス 0x00000000 ~ 0x0002FFFF お よ び 0xFFFF0000 ~ 0xFFFFFFFF にな り ます。 デザ
イ ンは OCM の上位 64KB のみを使用する ため、ア ド レ ス 0xFFFF0000 ~ 0xFFFFFFFF に対 し て
キ ャ ッ シ ュ を無効に し ます。
2. ICD を初期化 し ます。
3. CPU1 を起動 し ます。
4. UART に出力 し ます (print)。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
4
リ フ ァ レ ン ス デザイ ン
5. セマ フ ォ フ ラ グ と し て使用す る OCM 内の メ モ リ 位置を設定 し ます。
6. セマ フ ォ フ ラ グ と し て使用す る OCM 内の メ モ リ 位置が ク リ ア さ れ る ま で待機 し ます。
CPU0 用アプ リ ケーシ ョ ンは、 手順 3 ~手順 6 を無限に繰 り 返 し ます。
PS に電源が投入 さ れ、 内部ブー ト ROM の実行が完了する と 、 CPU1 は OCM の 0xFFFFFE00 にあ る
短い コ ー ド に リ ダ イ レ ク ト さ れます。 こ の コー ド は イ ベン ト を待機す る継続的なループで、 ア ド レ ス位
置 0xFFFFFFF0 に 0 以外の値が格納 さ れていないか を確認 し てループを継続 し ます。 0xFFFFFFF0 に
0 以外の値があ る と 、 CPU1 はフ ェ ッ チ さ れた ア ド レ ス にジ ャ ンプ し ます。
CPU0 はア ド レ ス 0xFFFFFFF0 に値 0x00200000 を書 き 込み、 つづいて Set Event (SEV) コ マ ン ド を
実行す る こ と で CPU1 を起動 し ます (CPU0 お よ び CPU1 はいずれ も ベア メ タ ルを実行)。SEV に よ っ て
CPU1 は ウ ェ ー ク ア ッ プ し 、 ア ド レ ス 0xFFFFFFF0 か ら 値 0x00200000 を 読み出 し 、 ア ド レ ス
0x00200000 にジ ャ ンプ し ます。 CPU1 の ELF は、 FSBL に よ っ て 0x00200000 に置かれます。
CPU1 用ア プ リ ケーシ ョ ン
CPU1 用のアプ リ ケーシ ョ ンは、 ア ド レ ス 0x00200000 か ら 始 ま る メ モ リ 位置に配置 さ れ ま す。 開始
ア ド レ ス の設定には リ ン カー ス ク リ プ ト を使用 し ます。
CPU1 用のアプ リ ケーシ ョ ンは、 次を実行 し ます。
1. ア ド レ ス範囲 0xFFFF0000 ~ 0xFFFFFFFF の OCM ア ク セ ス に対 し てはキ ャ ッ シ ュ が無効にな る
よ う に MMU を設定 し ます。 OCM のア ド レ ス マ ッ プは変更 し ません。 し たがっ て、 OCM の位置
はア ド レ ス 0x00000000 ~ 0x0002FFFF お よ び 0xFFFF0000 ~ 0xFFFFFFFF にな り ます。 こ の
アプ リ ケーシ ョ ン ノ ー ト では OCM の上位 64KB のみを使用す る ため、 ア ド レ ス 0xFFFF0000 ~
0xFFFFFFFF に対 し て キ ャ ッ シ ュ を無効に し ます。
2. PPI 割 り 込み コ ン ト ロ ー ラ ーお よ び割 り 込みサブシ ス テ ム を初期化 し ます。
3. セマ フ ォ フ ラ グ と し て使用す る OCM 内の メ モ リ 位置が設定 さ れ る ま で待機 し ます。
4. UART に出力 し ます (print)。 出力する 文字列の選択は割 り 込みサービ ス ルーチンがグ ロ ーバル変
数を イ ン ク リ メ ン ト し たか ど う かに よ っ て決ま り ます。グ ロ ーバル変数 irq_count が 0 以外の場合、
CPU1 は値を 0 に設定 し ます。
5. セマ フ ォ フ ラ グ と し て使用す る OCM 内の メ モ リ 位置を ク リ ア し ます。
CPU1 用アプ リ ケーシ ョ ンは、 手順 3 ~手順 5 を無限に繰 り 返 し ます。
プ ロ セ ッ サ間の通信
サ ン プル デザ イ ン ではプ ロ セ ッ サ間の通信にセマ フ ォ フ ラ グ を使用 し ます。 セマ フ ォ が設定 さ れてい
る 場合、 CPU1 が UART を所有 し 、 CPU1 がセマ フ ォ を ク リ アすれば、 CPU0 は UART を自由に使用
で き ます。 こ れは、 リ ソ ース を共有する 簡単な メ カ ニズ ムです。 セマ フ ォ フ ラ グの格納先 と し て OCM
メ モ リ を選択 し たのは、 共有 リ ソ ース であ り 、 かつレ イ テ ン シが短いためです。 さ ら に、 OCM の こ の
領域はキ ャ ッ シ ュ さ れないため、 メ モ リ へのア ク セ ス が確定的にな り ます。
DDR メ モ リ を セマ フ ォ に使用す る と 、 キ ャ ッ シ ュ ミ ス の場合にア ク セ ス レ イ テ ン シが大 き く な る と 共
に、 バ ッ ク グ ラ ウ ン ド の リ フ レ ッ シ ュ サ イ ク ルが原因でア ク セ ス確定的でな く な り ます。 さ ら に、 DDR
メ モ リ ア ク セ ス には 「バース ト 的」 な性質があ る ため、 32 ビ ッ ト の値 1 つにア ク セ スす る 場合に も 、 書
き 込みま たは読み出 し バース ト が発生 し 、 時間を浪費す る可能性があ り ます。
リ フ ァ レンス
デザイ ン
リ フ ァ レ ン ス デザ イ ン フ ァ イ ルは、 次のサ イ ト か ら ダ ウ ン ロ ー ド で き ます。
https://secure.xilinx.com/webreg/clickthrough.do?cid=203247
表 2 に、 リ フ ァ レ ン ス デザ イ ンの詳細を示 し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
5
リ フ ァ レ ン ス デザイ ン
表 2 : リ フ ァ レ ン ス デザイ ンの詳細
パラ メ ー タ ー
説明
全般
John McDougall
開発者
タ ーゲ ッ ト デバ イ ス ( ス テ ッ ピ ン グ レベル、 ES、 プ ロ ダ XC7Z020-CLG484-1
ク シ ョ ン、 ス ピー ド グ レー ド )
ソ ース コ ー ド の提供
あり
ソ ース コ ー ド の形式
VHDL お よ び Verilog
既存のザ イ リ ン ク ス アプ リ ケーシ ョ ン ノ ー ト / リ フ ァ レ な し
ン ス デザ イ ン、 CORE Generator ツ ール、 サー ド パー
テ ィ か ら デザ イ ンへの コー ド /IP の使用
シ ミ ュ レーシ ョ ン
論理シ ミ ュ レーシ ョ ンの実施
なし
タ イ ミ ン グ シ ミ ュ レーシ ョ ンの実施
なし
論理お よ び タ イ ミ ン グ シ ミ ュ レ ーシ ョ ン での テ ス ト ベ な し
ンチの利用
テ ス ト ベンチの形式
N/A
使用 し た シ ミ ュ レー タ /バージ ョ ン
N/A
SPICE/IBIS シ ミ ュ レーシ ョ ンの実施
なし
イ ン プ リ メ ン テーシ ョ ン
使用 し た合成ツール/バージ ョ ン
XST 14.3
使用 し た イ ンプ リ メ ン テーシ ョ ン ツール/バージ ョ ン
EDK 14.3
ス タ テ ィ ッ ク タ イ ミ ン グ解析の実施
あり
ハー ド ウ ェ ア検証
ハー ド ウ ェ ア検証の実施
あり
検証に使用 し たハー ド ウ ェ ア プ ラ ッ ト フ ォーム
ZC702 ボー ド
リ フ ァ レ ン ス デザ イ ンには、 次の フ ァ イ ルが含まれてい ます。
•
XPS プ ロ ジ ェ ク ト
•
CPU0 お よ び CPU1 用アプ リ ケーシ ョ ンの SDK ソ ース フ ァ イ ル
•
生成済みフ ァ イ ル
•
BIT フ ァ イ ル
•
SD カー ド 用の全フ ァ イ ル
•
CPU0 お よ び CPU1 用アプ リ ケーシ ョ ンの ELF フ ァ イ ル
•
BOOT.BIN ビル ド ス ク リ プ ト
•
変更済みのベア メ タ ル BSP
•
変更済みの sw_apps FSBL
表 3 と 表 4 にデバ イ ス使用率の詳細を示 し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
6
イ ン プ リ メ ン テーシ ョ ンの説明
表 3 : デバイ ス使用率 (1)
パラ メ ー タ ー
仕様/詳細
デバ イ ス使用率 ( テ ス ト ベンチな し )
ス ラ イ ス数
251
GCLK バ ッ フ ァ ー数
PS7
1
RAMB36
1
HDL 言語のサポー ト
2
Verilog、 VHDL
表 4 : デバイ ス使用率 (2)
イ ン プ リ メ ン テー
シ ョ ンの説明
デバイ ス
ス ピー ド
グ レー ド
パ ッ ケージ
XC7Z020
-1
CLG484
マ ッ プ前
(合成制約)
240MHz
配線後
ス ラ イ ス数
146MHz
251 (1%)
こ こ では、 リ フ ァ レ ン ス デザ イ ンの イ ンプ リ メ ン テーシ ョ ンについて説明 し ます。
デザ イ ン フ ァ イ ルは design と い う デ ィ レ ク ト リ に解凍 し ます。 フ ァ イ ルの解凍後、 design\work と
い う 名前の新規デ ィ レ ク ト リ を作成 し ます。 フ ァ イ ルは、 次の よ う に コ ピー し ます。
•
design\src\bootgen か ら design\work\bootgen
•
design\src\edk_system か ら design\work\edk_system
リ フ ァ レ ン ス デ ザ イ ン に は 生成済 み の フ ァ イ ル も す べ て 付属 し て お り 、 そ れ ら は デ ィ レ ク ト リ
design\generated_files に格納 さ れてい ます。
ハー ド ウ ェ アの生成
こ のセ ク シ ョ ンでは、 ハー ド ウ ェ ア デザ イ ンの生成方法を説明 し ます。
design\generated_files\fpga\download.bit に あ る コ ン パ イ ル済みデザ イ ン も 使用で き ま す
が、ハー ド ウ ェ ア プ ラ ッ ト フ ォーム を SDK にエ ク ス ポー ト す る には、次の手順に従 う 必要があ り ます。
1. XPS を起動 し て、 次の場所にあ る エンベデ ッ ド プ ロ ジ ェ ク ト を開き ます。
design\work\edk_system\system.xmp
2. [device_configuration] → [update_bitstream] を ク リ ッ ク し ます。
完了す る と 、 次の場所にダ ウ ン ロ ー ド 可能な FPGA BIT フ ァ イ ルが生成 さ れます。
design\work\edk_system\implementation\download.bit
次の場所には コ ンパ イ ル済みの BIT フ ァ イ ルがあ り ます。
design\generated_files\fpga\download.bit'
3. [Project] → [export_hardware_design_to_SDK] を ク リ ッ ク し て、 ハー ド ウ ェ ア プ ロ ジ ェ ク ト を
SDK にエ ク ス ポー ト し ます。
4. [Export & Launch SDK] を オンに し ます。
こ こ で、 XPS は system.xml フ ァ イ ルを使用 し てエンベデ ッ ド シ ス テ ムの コ ン フ ィ ギ ュ レーシ ョ
ン をエ ク ス ポー ト し ます。 SDK は、 こ の フ ァ イ ルに よ っ てデザ イ ンに含まれ る ペ リ フ ェ ラ ル と ベー
ス ア ド レ ス を把握 し ます。 こ の フ ァ イ ルは、 デ ィ レ ク ト リ
design\work\edk_system\SDK\SDK_Export\hw に自動的にエ ク ス ポー ト さ れます。
5. SDK で ワ ー ク スペース の場所を尋ねる ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。 参照ボ タ ン を ク リ ッ
ク し て、 デ ィ レ ク ト リ design\work\edk_system\SDK を選択 し ます。
6. [OK] を ク リ ッ ク し ます (1 回)。
7. 選択 し たデ ィ レ ク ト リ の最後に \Workspace を追加 し ます (図 2)。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
7
イ ン プ リ メ ン テーシ ョ ンの説明
X-Ref Target - Figure 2
X1079_02_020613
図 2 : ワー ク スペース デ ィ レ ク ト リ の選択
8. [OK] を ク リ ッ ク し ます。
SDK に よ っ てサブデ ィ レ ク ト リ \Workspace が自動的に作成 さ れます。
ア プ リ ケーシ ョ ンの生成
SDK の設定
こ のアプ リ ケーシ ョ ン ノ ー ト には、 ス タ ン ド ア ロ ン BSP フ ァ イ ル (ベア メ タ ル アプ リ ケーシ ョ ンが使
用) と 変更済みの FSBL ソ ース フ ァ イ ルが付属 し てい ます。 こ れ ら の フ ァ イ ルの情報を使用す る には、
新 し い リ ポジ ト リ を認識す る よ う に SDK を設定す る必要があ り ます。
SDK を設定す る には、 次の手順に従い ます。
1. SDK を起動 し 、 ワ ー ク スペース の design\work\edk_system\SDK\Workspace を開 き ます。
注記 : エ ク ス ポー ト お よ び SDK の起動に XPS を使用 し た場合は、 こ の手順は不要です。
2. 変更済みス タ ン ド ア ロ ン BSP お よ び変更済み FSBL を含む付属の リ ポジ ト リ を SDK が参照で き
る よ う に し ます。
a. [Xilinx_tools] → [Repositories] を ク リ ッ ク し ます。
b. [Local Repositories] の横にあ る [New] を ク リ ッ ク し ます。
c. 参照ボ タ ン を ク リ ッ ク し 、 デ ィ レ ク ト リ design\src\sdk_repo を選択 し ます。
d. [OK] を ク リ ッ ク し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
8
イ ン プ リ メ ン テーシ ョ ンの説明
[Preferences] ウ ィ ン ド ウ が表示 さ れます (図 3)。
X-Ref Target - Figure 3
X1079_03_020613
図 3 : リ ポジ ト リ の選択
カ ス タ ム FSBL ア プ リ ケーシ ョ ンの作成
カ ス タ ム FSBL は リ ポジ ト リ の新規テ ンプ レー ト を使用 し て作成 し ます。
注記 : 次に進む前に、 「SDK の設定」 で説明 し た手順に従い SDK を設定 し てお く 必要があ り ます。
カ ス タ ム FSBL アプ リ ケーシ ョ ン を作成す る には、 次の手順に従い ます。
1. [File] → [New] → [Application_Project] を ク リ ッ ク し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
9
イ ン プ リ メ ン テーシ ョ ンの説明
2. [Project Name] に 「amp_fsbl」 と 入力 し ます (図 4)。
X-Ref Target - Figure 4
X1079_04_020713
図 4 : カ ス タ ム FSBL の作成
3. [Next] を ク リ ッ ク し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
10
イ ン プ リ メ ン テーシ ョ ンの説明
4. [Available Templates] か ら [Zynq FSBL for AMP] を選択 し ます (図 5)。
X-Ref Target - Figure 5
X1079_05_020613
図 5 : カ ス タ ム FSBL テ ン プ レー ト の選択
注記 : リ ス ト に上記のテ ンプ レー ト が表示 さ れない場合は、 リ ポジ ト リ が正 し く 設定 さ れてい る こ と を
確認 し て く だ さ い。
5. [Finish] を ク リ ッ ク し ます。
SDK が新 し い amp_fsbl_bsp お よ び amp_fsbl アプ リ ケーシ ョ ンの コ ンパ イ ルを完了す る と 、 次の場所
に FSBL ELF が生成 さ れます。
design\work\edk_system\SDK\Workspace\amp_fsbl\Debug\amp_fsbl.elf
次の場所には コ ンパ イ ル済みの ELF があ り ます。
design\generated_files\SDK_apps\amp_fsbl.elf
CPU0 用ベア メ タ ル ア プ リ ケーシ ョ ンの作成
こ のセ ク シ ョ ン では、 FSBL に よ っ て DDR メ モ リ に コ ピ ー さ れた後に CPU0 上で実行 さ れ る ア プ リ
ケーシ ョ ン ELF の作成方法について説明 し ます。
注記 : アプ リ ケーシ ョ ンは コ ンパ イ ル済みであ り 、
design\generated_files\SDK_apps\app_cpu0.elf にあ り ます。
CPU0 用アプ リ ケーシ ョ ン を作成す る には、 次の手順に従い ます。
1. SDK を起動 し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
11
イ ン プ リ メ ン テーシ ョ ンの説明
2. [File] → [New] → [Application _project] を ク リ ッ ク し ます。
3. [Project name] を 「app_cpu0」 に変更 し ます (図 6)。
X-Ref Target - Figure 6
X1079_06_020613
図 6 : app_cpu0 の作成
4. [Next] を ク リ ッ ク し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
12
イ ン プ リ メ ン テーシ ョ ンの説明
5. [Empty Application] テ ンプ レー ト を選択 し ます (図 7)。
X-Ref Target - Figure 7
X1079_07_030113
図 7 : CPU0 用の空のア プ リ ケーシ ョ ン
6. [Finish] を ク リ ッ ク し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
13
イ ン プ リ メ ン テーシ ョ ンの説明
7. [Project Explorer] タ ブで [app_cpu0] を展開 し 、 [src] フ ォ ルダーを右 ク リ ッ ク し ます (図 8)。
X-Ref Target - Figure 8
X1079_08_020613
図 8 : CPU0 のイ ンポー ト
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
14
イ ン プ リ メ ン テーシ ョ ンの説明
8. [General] → [File System] を ク リ ッ ク し ます (図 9)。
X-Ref Target - Figure 9
X1079_09_020613
図 9 : CPU0 の [General] - [File System]
9. [Next] を ク リ ッ ク し ます。
10. 参照ボ タ ン を ク リ ッ ク し 、 デ ィ レ ク ト リ design\src\apps\app_cpu0 を選択 し ます (図 10)。
X-Ref Target - Figure 10
X1079_10_020613
図 10 : CPU0 のイ ンポー ト 元デ ィ レ ク ト リ の選択
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
15
イ ン プ リ メ ン テーシ ョ ンの説明
11. [OK] を ク リ ッ ク し ます。
12. 左側のペ イ ンで [app_cpu0] を選択 し ますが、 チ ェ ッ ク ボ ッ ク ス はオンに し ないで く だ さ い。
13. 右側のペ イ ンですべての フ ァ イ ルを選択 し ます (図 11)。
X-Ref Target - Figure 11
X1079_11_020613
図 11 : CPU0 のイ ンポー ト 対象フ ァ イルの選択
14. [Finish] を ク リ ッ ク し ます。
15. ポ ッ プア ッ プ ウ ィ ン ド ウ で [Yes] を ク リ ッ ク し 、 lscript.ld を上書 き し ます。
SDK が新規アプ リ ケーシ ョ ンの コ ンパ イ ルを完了す る と 、 次の場所に ELF が生成 さ れます。
design\work\edk_system\SDK\Workspace\app_cpu0\Debug\app_cpu0.elf
CPU1 用ベア メ タ ル ア プ リ ケーシ ョ ンの作成
こ のセ ク シ ョ ン では、 FSBL に よ っ て DDR メ モ リ に コ ピ ー さ れた後に CPU1 上で実行 さ れ る ア プ リ
ケーシ ョ ン ELF の作成方法について説明 し ます。 CPU1 はカ ス タ マ イ ズ さ れた BSP を使用す る ため、
こ の手順は CPU0 用アプ リ ケーシ ョ ンの作成方法 と は若干異な り ます。 こ のデザ イ ンに関 し て重要な点
は、 CPU1 は ICD や SCU な ど の共有 リ ソ ース にはア ク セ ス で き ない こ と です。 デザ イ ン付属の リ ポジ
ト リ にあ る 、 カ ス タ マ イ ズ さ れた ス タ ン ド ア ロ ン BSP を使用 し 、 SDK に よ っ て BSP を作成 し ます。
注記 : アプ リ ケーシ ョ ンは コ ンパ イ ル済みであ り 、
design\generated_files\SDK_apps\app_cpu1.elf にあ り ます。
アプ リ ケーシ ョ ン作成の準備 と し て、 次の手順に従い ます。
1. [File] → [New] → [board_support_package] を ク リ ッ ク し ます。
2. [Project name] を 「app_cpu1_bsp」 に変更 し ます。
3. [CPU] を [ps7_cortexa9_1] に変更 し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
16
イ ン プ リ メ ン テーシ ョ ンの説明
4. [Board Supprot Package] を [standalone_amp] に変更 し ます (図 12)。
X-Ref Target - Figure 12
X1079_12_020613
図 12 : CPU1 の BSP
5. [Finish] を ク リ ッ ク し ます。
6. [Overview] → [Drivers] → [cpu_cortexa9] を ク リ ッ ク し ます。
7. [extra_compiler_flags] に -DUSE_AMP=1 を追加 し ます (図 13)。
X-Ref Target - Figure 13
X1079_13_020613
図 13 : CPU1 BSP への USE_AMP の追加
8. [OK] を ク リ ッ ク し ます。
CPU1 上で実行 さ れ る ベア メ タ ル アプ リ ケーシ ョ ン を作成 し 、 付属の ソ フ ト ウ ェ ア を イ ン ポー ト す る に
は、 次の手順に従い ます。
1. [File] → [New] → [application_project] を ク リ ッ ク し ます。
2. [Project name] に 「app_cpu1」 と 入力 し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
17
イ ン プ リ メ ン テーシ ョ ンの説明
3. [Processor] を [ps7_cortexa9_1] に変更 し ます。
4. [Board Support Package] を [Use existing] に変更 し ます。
5. [app_cpu1_bsp] を選択 し ます (図 14)。
X-Ref Target - Figure 14
X1079_14_020613
図 14 : CPU1 用ア プ リ ケーシ ョ ンの作成
6. [Next] を ク リ ッ ク し ます。
7. [Empty Application] テ ンプ レー ト を選択 し ます。
8. [Finish] を ク リ ッ ク し ます。
9. [Project Explorer] タ ブで [app_cpu1] を展開 し ます。
10. [src] を右 ク リ ッ ク し て、 ポ ッ プア ッ プ メ ニ ュ ーか ら [Import] を ク リ ッ ク し ます。
11. [General] → [File_System] を ク リ ッ ク し ます。
12. [Next] を ク リ ッ ク し ます。
13. 参照ボ タ ン を ク リ ッ ク し 、 デ ィ レ ク ト リ design\src\apps\app_cpu1 を選択 し ます。
14. 左側のペ イ ンで [app_cpu1] を選択 し ますが、 チ ェ ッ ク ボ ッ ク ス はオンに し ないで く だ さ い。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
18
イ ン プ リ メ ン テーシ ョ ンの説明
15. 右側のペ イ ンですべての フ ァ イ ルを選択 し ます (図 15)。
X-Ref Target - Figure 15
X1079_15_020613
図 15 : CPU1 のイ ンポー ト 対象フ ァ イルの選択
16. [Finish] を ク リ ッ ク し ます。
17. ポ ッ プア ッ プ ウ ィ ン ド ウ で [Yes] を ク リ ッ ク し て、 lscript.ld を上書 き し ます。
SDK が新規アプ リ ケーシ ョ ンの コ ンパ イ ルを完了す る と 、 次の場所に ELF フ ァ イ ルが生成 さ れます。
design\work\edk_system\SDK\Workspace\app_cpu1\Debug\app_cpu1.elf
ブー ト フ ァ イルの生成
ブー ト フ ァ イ ル (BOOT.BIN) には通常、 FSBL、 FPGA の BIT フ ァ イ ル、 お よ び CPU0 上で動作す る
アプ リ ケーシ ョ ン用の ELF が含ま れてい ます。 こ のサンプル デザ イ ンでは、 複数のアプ リ ケーシ ョ ン
を ダ ウ ン ロ ー ド す る よ う に FSBL が変更 さ れてい る ため、 CPU1 上で動作す る 2 番目のアプ リ ケーシ ョ
ンの ELF も BOOT.BIN に含まれます。
デザ イ ン フ ァ イ ルには、 バ ッ チ フ ァ イ ル、 BootGen コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル、 お よ びデー タ
ELF
フ ァ イ ル の ダ ウ ン ロ ー ド を 停止す る よ う に
FSBL
を ト リ ガ ーす る た め の
ま たは
cpu1_bootvec.bin と 呼ばれ る フ ァ イ ルがあ り ます。
コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルには、 DDR メ モ リ に コ ピー さ れ る フ ァ イ ルの名前が記述 さ れてい ま
す。 こ れ ら の フ ァ イ ルの順序は重要です。 こ のデザ イ ン での順序は次の よ う にな り ます。
1. FSBL ELF
2. CPU0 用アプ リ ケーシ ョ ン
3. CPU1 用アプ リ ケーシ ョ ン
4. ダ ミ ーの cpu1_bootvec.bin フ ァ イ ル
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
19
イ ン プ リ メ ン テーシ ョ ンの説明
コ ン パ イ ル済みの BOOT.BIN は、 design\generated_files\boot\BOOT.BIN に あ り ま す。 次の
手順で参照 し てい る フ ァ イ ルはすべて コ ンパ イ ル済みであ り 、design\generated_files に格納 さ れ
てい ます。
注記 : ブー ト フ ァ イ ルの名前は BOOT.BIN にす る 必要があ り ます。
ブー ト フ ァ イ ルを生成す る には、 次の手順に従い ます。
1. 付属のデ ィ レ ク ト リ design\src\bootgen を design\work\bootgen に コ ピー し ます。
こ のデ ィ レ ク ト リ には、 BootGen バ ッ チ フ ァ イ ル (createBoot.bat)、 .bif フ ァ イ ル
(bootimage.bif)、 そ し て 16 進数の値 0xFFFFFF00 ( リ ト ル エンデ ィ ア ン用に ス ワ ッ プする場合
は 0x00、 0xFF、 0xFF、 0xFF) のみを含むバ イ ナ リ フ ァ イ ル (cpu1_bootvec.bin) が格納 さ れて
い ます 。FSBL は、こ のフ ァ イ ルの ロー ド ア ド レ ス を bootimage.bif で設定 さ れた 0xFFFFFFF0
と 認識し 、 FSBL を ト リ ガーする こ と で ELF ま たはバ イ ナ リ フ ァ イ ルの ロー ド を停止し て、 最初に
ダ ウ ン ロー ド し た ELF の実行を開始 し ます。
2. コ ンパ イ ル済みの FSBL ELF を、
design\work\edk_system\SDK\Workspace\amp_fsbl\Debug\amp_fsbl.elf か ら
design\work\bootgen に コ ピー し ます。
注記 : SDK 内 で FSBL を コ ン パ イ ル す る 手 順 を 実行 し な か っ た 場合 は、 付属 の デ ザ イ ン の
design\generated_files\SDK_apps\amp_fsbl.elf に コ ピーがあ り ます。
3. BIT フ ァ イ ルを design\work\edk_system\implementation\download.bit か ら
design\work\bootgen に コ ピー し ます。
注記 : FPGA BIT フ ァ イ ル を コ ン パ イ ルす る 手順 を 実行 し な か っ た 場合は、 付属のデザ イ ン の
design\generated_files\fpga\download.bit に コ ピーがあ り ます。
4. 生成 さ れた CPU0 用ベア メ タ ル アプ リ ケーシ ョ ン を
design\work\edk_system\SDK\Workspace\app_cpu0\Debug\app_cpu0.elf か ら
design\work\bootgen に コ ピー し ます。
注記 : ア プ リ ケ ー シ ョ ン を コ ン パ イ ルす る 手順 を 実行 し な か っ た 場合 は、 付属 の デザ イ ン の
design\generated_files\SDK_apps\app_cpu0.elf に コ ピーがあ り ます。
5. 生成 さ れた CPU1 用ベア メ タ ル アプ リ ケーシ ョ ン を
design\work\edk_system\SDK\Workspace\app_cpu1\Debug\app_cpu1.elf か ら
design\work\bootgen に コ ピー し ます。
注記 : ア プ リ ケ ー シ ョ ン を コ ン パ イ ルす る 手順 を 実行 し な か っ た 場合 は、 付属 の デザ イ ン の
design\generated_files\SDK_apps\app_cpu1.elf に コ ピーがあ り ます。
6. ISE Design Suite の コ マ ン ド プ ロ ンプ ト を開き ます。
こ の コ マ ン ド プ ロ ンプ ト では、 ザ イ リ ン ク ス ツール向けの環境設定が可能です。
7. コ マ ン ド プ ロ ンプ ト で、 デ ィ レ ク ト リ を design\work\bootgen に変更 し ます。
8. createBoot.bat フ ァ イ ルを実行 し ます。
こ れで、 現在のデ ィ レ ク ト リ (bootgen) に BOOT.BIN が作成 さ れます。
ブー ト フ ァ イルの SD カ ー ド への コ ピー
SD カー ド に design\work\bootgen\BOOT.BIN フ ァ イ ルを コ ピー し ます。
注記 : BOOT.BIN を生成する 前述の手順を実行 し なか っ た場合は、
design\generated_files\boot\BOOT.BIN に コ ンパ イ ル済みの フ ァ イ ルがあ り ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
20
イ ン プ リ メ ン テーシ ョ ンの説明
デザイ ンの実行
ハー ド ウ ェ ア要件
•
ZC702 評価ボー ド
•
12V AC ア ダプ タ ー電源
•
USB type-A/mini-B ケーブル (UART 通信用)
•
TeraTerm Pro ( ま たは同等の) 端末プ ロ グ ラ ム
•
Silicon Labs 社の USB-UART ド ラ イ バー [参照 2]
ハー ド ウ ェ アのセ ッ ト ア ッ プ
『Zynq-7000 All Programmable SoC : ZC702 評価 キ ッ ト お よ び ビ デ オ / 画像処理 キ ッ ト (ISE Design
Suite 14.3) ス タ ー ト ア ッ プ ガ イ ド 』 [参照 2] の 「TRD Demonstration Procedure」 に記載 さ れたボー ド
のセ ッ ト ア ッ プ手順を実行 し ます。 こ のデザ イ ンには、 マ ウ ス、 キーボー ド 、 USB ハブ、 モニ タ ー、 モ
ニ タ ー ケーブルは不要です。
ハー ド ウ ェ アのセ ッ ト ア ッ プでは、ZC702 デモ ボー ド を SD カー ド か ら ブー ト す る よ う に設定 し ます。
端末プ ロ グ ラ ムは、 ボー レー ト 115200 で適切な COM ポー ト を待ち受け る よ う に設定 し ます。
デザ イ ンに電源を投入す る と 、 ボー ド が SD カー ド か ら ブー ト し ます。 UART にシ ス テ ムの出力が現れ
は じ め る ま で最大 18 秒かか り ます。 こ の UART はサー ド パーテ ィ 提供の ド ラ イ バーを使用 し ます。 詳
細 は、 『Zynq-7000 All Programmable SoC : ZC702 評価 キ ッ ト お よ び ビ デ オ/ 画像処 理 キ ッ ト (ISE
Design Suite 14.3) ス タ ー ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。
フ ァ イ ルが適切に作成 さ れていれば、 シ リ アル ポー ト に交互に出力 さ れ る 「CPU0: Hello World CPU0」
と 「CPU1: Hello World CPU1」 と い う 文字列が表示 さ れます (図 16)。
X-Ref Target - Figure 16
X1079_16_020713
図 16 : 端末出力
ブー ト 時に PS ブー ト ロ ーダーは、 SD カー ド か ら ブー ト さ れ る よ う にモー ド ピ ンが設定 さ れてい る こ
と を検出 し ます。 つづいて PS ブー ト ロ ーダーは BOOT.BIN フ ァ イ ルを開き 、 ブー ト ロ ーダーの フ ラ グ
が付 け ら れ た デー タ
ブ ロ ッ ク を 探 し ま す。 bootimage.bif
フ ァ イ ル に 見 ら れ る よ う に、
amp_fsbl.elf に こ の フ ラ グがあ り ます。 ブー ト ロ ーダーは こ の フ ァ イ ルを DDR メ モ リ に ロ ー ド し 、
そ の実行 を 開始 し ま す。 FSBL は BIT フ ァ イ ル、 CPU0 と CPU1 の ELF、 そ し て ダ ミ ー フ ァ イ ル
cpu1_bootvec.bin を ロ ー ド し ます。 こ こ で、 CPU0 上で動作中の FSBL は、 FSBL の次に最初に ロ ー
ド さ れた アプ リ ケーシ ョ ン の実行ア ド レ ス にジ ャ ン プ し ます。 CPU0 は app_cpu0.elf の実行を開始
す る と 、 CPU1 アプ リ ケーシ ョ ンの開始ア ド レ ス (0x00200000) を OCM の 0xFFFFFFF0 に書 き 込み
ます。次に、 アセ ンブ リ 命令 SEV を実行 し て CPU1 を ウ ェー ク ア ッ プす る イ ベン ト を設定 し ます。ブー
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
21
イ ン プ リ メ ン テーシ ョ ンの説明
ト ロ ーダーは FSBL の実行を開始す る 前に、0xFFFFFF00 に小 さ な アプ リ ケーシ ョ ン を生成 し て CPU1
のプ ロ グ ラ ム カ ウ ン タ ーを こ の位置に設定済みです。 こ のアプ リ ケーシ ョ ンは 0xFFFFFFF0 の内容を
確認 し 、 0 の場合は Wait For Event (WFE) 命令を実行 し ます。 イ ベン ト の発生ご と に CPU1 は ウ ェ ー
ク ア ッ プ し て 0xFFFFFFF0 に 0 以外の値が格納 さ れていないか を確認す る ループ を再実行 し ます。0 以
外の値が検出 さ れ る と CPU1 はただちに 0xFFFFFFF0 か ら 読み出 さ れた ア ド レ ス位置にジ ャ ンプ し ま
す。 こ の例の場合の値は 0x00200000 です。 こ れは app_cpu1 アプ リ ケーシ ョ ンの リ ン カー ス ク リ プ
ト lscript.ld に定義 さ れた、 CPU1 アプ リ ケーシ ョ ンの開始ア ド レ ス です。
CPU1 への割 り 込み生成には ChipScope Analyzer の VIO コ ア を使用 し ます。 デザ イ ンには、 IRQ 信号
をモニ タ ーす る ために ChipScope ILA (Integrated Logic Analyzer) コ ア も 含まれてい ます。
次の手順では、 ILA コ ア を使用 し て IRQ 信号のア ク テ ィ ブ状態の時間 (IRQ の レ イ テ ン シ を示す) を測
定 し 、 ChipScope Analyzer VIO コ ン ソ ールを使用 し て割 り 込みを生成 し ます。
1. デザ イ ンの実行中に ChipScope Analyzer を起動 し ます。
2. JTAG チ ェ ーンに接続 し ます。
ChipScope Analyzer はチ ェ ーン内の 2 つのデバ イ ス (ARM_DAP と XC7Z020) を表示 し ます。
3. [OK] を ク リ ッ ク し ます。
4. [File] → [open_project] を ク リ ッ ク し て、 付属の ChipScope Analyzer の コ ン フ ィ ギ ュ レーシ ョ ン
フ ァ イ ルを開 き ます。
5. 変更内容の保存に対 し て [No] を ク リ ッ ク し ます。
6. design\src\chipscope\csdefaultproj.cpj にあ る ChipScope Analyzer の コ ン フ ィ ギ ュ
レーシ ョ ン フ ァ イ ルを参照 し ます。
注記 : ILA は、 IRQ が High にな っ た と き に ト リ ガーす る よ う 設定済みです。
7. [UNIT:1 Trigger Setup] を選択 し て ト リ ガーを作動可能に し ます。
8. ChipScope Analyzer の [VIO Console] を選択 し ます。
9. [SyncOut[0]] ボ タ ン を ク リ ッ ク し ます (図 17)。 図 17 には、 SyncOut[0] ボ タ ン を ク リ ッ ク す る こ
と で生成 さ れた割 り 込みの波形 も 示 さ れてい ます。
X-Ref Target - Figure 17
X1079_17_020613
図 17 : ChipScope Analyzer によ る最初の IRQ のキ ャ プ チ ャ
CPU1 は割 り 込みを処理 し 、グ ロ ーバル フ ラ グ を セ ッ ト し ます。CPU1 の main() は 「CPU1: Hello
World With Interrupt CPU 1」 を出力 し ます (図 18)。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
22
イ ン プ リ メ ン テーシ ョ ンの説明
X-Ref Target - Figure 18
X1079_18_020713
図 18 : ChipScope Analyzer の ト リ ガー後の コ ン ソ ール出力
仮想ボ タ ンの ク リ ッ ク ご と に割 り 込みが生成 さ れ、 CPU1 の IRQ サービ ス ルーチンはグ ロ ーバル変数
を設定 し ます。 こ の変数は、 CPU1 の main() 関数が CPU1 か ら の print 出力を変更す る ために使用 し
ます。図 19 に示す よ う に、 IRQ サービ ス ルーチンは最初の割 り 込みの処理後にキ ャ ッ シ ュ さ れ る ため、
後続の IRQ では割 り 込みレ イ テ ン シが大幅に短 く な り ます。
X-Ref Target - Figure 19
X1079_19_020713
図 19 : ChipScope Analyzer によ る後続の IRQ のキ ャ プ チ ャ
割 り 込みを処理す る ベア メ タ ル アプ リ ケーシ ョ ンは、 DDR メ モ リ 内に置かれてい ます。 最初の割 り 込
みが発生す る と 、 CPU1 はサービ ス ルーチンにジ ャ ンプする よ う に指示 さ れます。 こ のジ ャ ンプに よ っ
て DDR メ モ リ に置かれた命令がキ ャ ッ シ ュ に読み出 さ れ、 実行 さ れます。 実行中、 エンベデ ッ ド コ ア
に よ っ て生成 さ れてい る 割 り 込み信号を ク リ アす る と 、 サービ ス ルーチ ン が終了 し ます。 図 17 では、
割 り 込みのアサー ト か ら サービ ス ルーチンに よ る 制御ビ ッ ト の ク リ ア ま でに 65 ク ロ ッ ク を上回 る遅延
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
23
イ ン プ リ メ ン テーシ ョ ンの説明
があ り ます。 最初の割 り 込みの遅延は、 サービ ス ルーチンの フ ェ ッ チ と 同時に DDR メ モ リ が リ フ レ ッ
シ ュ さ れ る か ど う かに よ っ て変わ る可能性があ り ます。
最初の IRQ の発生後、 サービ ス ルーチンはキ ャ ッ シ ュ に保存 さ れ る ため、 2 番目以降の割 り 込みに対
す る ルーチンの命令は、 処理が よ り 低速で確定的でない DDR メ モ リ ではな く 、 キ ャ ッ シ ュ か ら フ ェ ッ
チ さ れます。 図 19 に示す よ う に、 割 り 込み処理は 25 ク ロ ッ ク で完了 し てい ます。 こ の遅延は、 最初の
キ ャ ッ シ ュ さ れない割 り 込み処理の約 1/3 です。
最初の割 り 込み処理 と 後続の割 り 込み処理の時間差を小 さ く す る には、 割 り 込みサービ ス ルーチ ン を
キ ャ ッ シ ュ さ れない OCM に移動 し ます。
デザイ ンのデバ ッ グ
両方の CPU で タ ンデム に実行 さ れてい る アプ リ ケーシ ョ ン の接続 と デバ ッ グには SDK を使用で き ま
す。 XMD は、 コ マ ン ド シ ェ ルお よ び JTAG ケーブルを介 し て CPU に接続する GDB サーバーを提供
し ます。 通常、 アプ リ ケーシ ョ ン のデバ ッ グ を開始す る と 、 SDK が自動的に XMD をバ ッ ク グ ラ ウ ン
ド で起動 し ます。 こ のサ ン プル デザ イ ン では、 XMD を手動で起動 し て CPU0 と CPU1 の両方に接続
し ます。 その後、 デバ ッ グ中に各 XMD の GDB サーバーに接続す る よ う に SDK に指示 し ます。
FSBL を使用 し てデザ イ ン をブー ト し たため、 PS レ ジ ス タ の再初期化は不要です。 両方の CPU を同時
にデバ ッ グす る ため、 PS 全体を リ セ ッ ト し ない よ う に注意 し ます。
デザ イ ンのデバ ッ グ を準備す る手順は次の と お り です。
1. プ ラ ッ ト フ ォーム ケーブルを ZC702 ボー ド に接続 し 、 ジ ャ ンパー オプシ ョ ンが使用す るデバ ッ グ
ケーブルに合わせて正 し く 設定 さ れてい る こ と を確認 し ます。
2. SDK で [Xilinx_Tools] → [Launch_shell] を ク リ ッ ク し て、ザ イ リ ン ク ス コ マ ン ド シ ェ ルを開 き ま
す。
3. コ マ ン ド シ ェ ルのプ ロ ンプ ト で 「xmd」 と 入力 し ます。
4. XMD のプ ロ ンプ ト で、 コ マ ン ド connect arm hw を入力 し ます。
XMD は TCP ポー ト 番号 1234 を介 し て応答 し ます (図 20)。
X-Ref Target - Figure 20
X1079_20_0120713
図 20 : XMD の CPU0 への接続
5. connect arm hw -debugdevice cpunr 2 コ マ ン ド を入力 し ます。
XMD は TCP ポー ト 番号 1235 を介 し て応答 し ます (図 21)。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
24
イ ン プ リ メ ン テーシ ョ ンの説明
X-Ref Target - Figure 21
X1079_21_020713
図 21 : SMD の CPU1 への接続
現在 2 つの GDB サーバーが動作中であ り 、 TCP ポー ト 1234 と 1235 を待ち受けてい ます。 XMD が
接続 さ れ る と CPU が停止 し 、 端末への出力が停止 し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
25
イ ン プ リ メ ン テーシ ョ ンの説明
CPU0 のデバ ッ グ を開始す る には、 次の手順に従い ます。
1. SDK の [Project Explorer] ウ ィ ン ド ウ で [app_cpu0] を右 ク リ ッ ク し 、 [Debug As] →
[debug_configurations] を ク リ ッ ク し ます (図 22)。
X-Ref Target - Figure 22
X1079_22_012413
図 22 : CPU0 のデバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ン
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
26
イ ン プ リ メ ン テーシ ョ ンの説明
2. [Xilinx C/C++ ELF] を ク リ ッ ク し てか ら 、 左上の [New launch configuration] ア イ コ ン を ク リ ッ ク
し ます (図 23)。
X-Ref Target - Figure 23
X1079_23_020713
図 23 : CPU0 のデバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ン
コ ン フ ィ ギ ュ レーシ ョ ン名は自動的に 「app_cpu0 Debug」 に設定 さ れます (図 24)。
X-Ref Target - Figure 24
X1079_24_012413
図 24 : CPU0 のデバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ン名
3. [Device Initialization] タ ブ を ク リ ッ ク し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
27
イ ン プ リ メ ン テーシ ョ ンの説明
4. [Path to initialization TCL file] の内容を削除 し ます (FSBL に よ っ て初期化は既に完了 し てい る た
め) (図 25)。
X-Ref Target - Figure 25
X1079_25_012413
図 25 : CPU0 のデバ ッ グの初期化
5. [Remote Debug] タ ブ を ク リ ッ ク し ます。
6. [Connect to gdbserver on a different machine] を オンに し て、外部で生成 さ れた GDB サーバーに接
続す る よ う に SDK に指示 し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
28
イ ン プ リ メ ン テーシ ョ ンの説明
IP ア ド レ ス はデフ ォ ル ト の loclahost に、 ポー ト は 1234 に設定す る必要があ り ます (図 26)。
X-Ref Target - Figure 26
X1079_26_012413
図 26 : CPU0 の リ モー ト デバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ン
7. [Apply] を ク リ ッ ク し ます。
8. [Debug] を ク リ ッ ク し ます。
9. [Yes] を ク リ ッ ク し てパースペ ク テ ィ ブ オプシ ョ ン を確定 し ます。
アプ リ ケーシ ョ ンがダ ウ ン ロ ー ド さ れ、実行 さ れます (ELF のダ ウ ン ロ ー ド は [Device Initialization]
タ ブで無効に さ れてい る 場合があ る )。 main() 関数の最初の実行可能行に設定 さ れたブ レー ク ポ イ
ン ト でアプ リ ケーシ ョ ンが停止 し ます。 場合に よ っ ては main() の先頭でアプ リ ケーシ ョ ンが自動
的に停止 し ません。 その場合は、 [Pause] (サ スペン ド ) を ク リ ッ ク す る 必要があ り ます。 SDK に よ っ
て main() の 先頭 に 手動 で ブ レ ー ク ポ イ ン ト を 設 定 し 、 PC ( プ ロ グ ラ ム カ ウ ン タ ー ) を
0x00100000 に変更 し た う えで [Resume] を ク リ ッ ク すれば CPU0 上のアプ リ ケーシ ョ ン を再開で
き ます。
10. アプ リ ケーシ ョ ンの実行を再開す る には、 [Resume]、 [Single Step]、 その他のデバ ッ グ ボ タ ン を ク
リ ッ ク し ます。
CPU0 のデバ ッ グ中に CPU1 のデバ ッ グ を開始する には、 次の手順に従い ます。
1. [SDK] ウ ィ ン ド ウ の [C/C+ View] を選択 し ます。
2. [Project Explorer] ウ ィ ン ド ウ で [app_cpu1] を右 ク リ ッ ク し 、 [Debug As] → [debug_configurations]
を ク リ ッ ク し ます。
3. [Xilinx C/C++ ELF] を ク リ ッ ク し てか ら 、 左上の [New launch configuration] ア イ コ ン を ク リ ッ ク
し ます。 コ ン フ ィ ギ ュ レーシ ョ ン名は自動的に 「app_cpu1 Debug」 に設定 さ れます。
4. [DeXvice Initialization] タ ブ を ク リ ッ ク し ます。
5. [Path to initialization TCL file] の内容を削除し ます (CPU0 と FSBL に よ って初期化は既に完了し てい
る ため)。
6. [Remote Debug] タ ブ を ク リ ッ ク し ます。
7. [Connect to gdbserver on a different machine] を オンに し て、外部で生成 さ れた GDB サーバーに接
続す る よ う に SDK に指示 し ます。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
29
ま とめ
IP ア ド レ ス はデフ ォ ル ト の loclahost に、 ポー ト は 1235 に設定す る必要があ り ます。
8. [Apply] を ク リ ッ ク し ます。
9. [Debug] を ク リ ッ ク し ます。
アプ リ ケーシ ョ ンがダ ウ ン ロ ー ド さ れ、 実行 さ れ ます。 main() 関数の最初の実行可能行に設定 さ
れたブ レー ク ポ イ ン ト でアプ リ ケーシ ョ ンが停止 し ます。
10. アプ リ ケーシ ョ ンの実行を再開す る には、 [Resume]、 [Single Step]、 その他のデバ ッ グ ボ タ ン を ク
リ ッ ク し ます。
[Debug] ビ ュ ーの [Thread] の下に一覧表示 さ れた関数を選択す る こ と で、 任意の箇所で CPU0 お よ び
CPU1 のデバ ッ グに対する フ ォーカ ス を切 り 換え る こ と がで き ます。 各関数を選択する と 、 表示 さ れ る
ソ ース が変化 し ます (図 27)。
X-Ref Target - Figure 27
X1079_27_012413
図 27 : [Debug] ビ ュ ー
ま とめ
こ のサ ン プル デザ イ ンは、 Zynq-7000 AP SoC を ブー ト し 、 それぞれ独立 し たベア メ タ ル アプ リ ケー
シ ョ ン を実行す る 2 つの Cortex-A9 プ ロ セ ッ サの起動方法を示す も のです。 CPU1 上で動作す る オー
バーヘ ッ ド が少な いベア メ タ ル ア プ リ ケーシ ョ ン を 使用 し て PL か ら 生成 さ れ る 割 り 込み を 処理 し 、
CPU0 上で動作す る ベア メ タ ル アプ リ ケーシ ョ ンに通知 し ます。
参考資料
こ のアプ リ ケーシ ョ ン ノ ー ト では、 次の参考資料が使用 さ れてい ます。
1.
2.
XAPP1079 (v1.0) 2013 年 4 月 3 日
UG585 : 『Zynq-7000 All Programmable SoC テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』
UG926 : 『Zynq-7000 All Programmable SoC : ZC702 評価キ ッ ト 、 ビデオお よ び画像処理キ ッ ト
(ISE Design Suite 14.3) ス タ ー ト ア ッ プ ガ イ ド 』
japan.xilinx.com
30
改訂履歴
改訂履歴
3.
4.
UG873 : 『Zynq-7000 All Programmable SoC : コ ン セプ ト 、 ツール、 テ ク ニ ッ ク ガ (CTT) ガ イ ド 』
AMBA AXI4 プ ロ ト コ ル仕様
http://www.arm.com/products/system-ip/amba/amba-open-specifications.php
5.
6.
7.
8.
9.
10.
11.
UG683 : 『EDK コ ンセプ ト 、 ツール、 テ ク ニ ッ ク 』
DS768 : 『LogiCORE IP AXI イ ン タ ー コ ネ ク ト 』
UG111 : 『エンベデ ッ ド シ ス テ ム ツール リ フ ァ レ ン ス マニ ュ アル』
UG761 : 『AXI リ フ ァ レ ン ス ガ イ ド 』
UG642 : 『プ ラ ッ ト フ ォーム仕様フ ォーマ ッ ト リ フ ァ レ ン ス マニ ュ アル』
UG029 : 『ChipScope Pro ソ フ ト ウ ェ アお よ び コ ア ユーザー ガ イ ド 』
Zynq-7000 ベース タ ーゲ ッ ト リ フ ァ レ ン ス デザ イ ン 14.3
http://wiki.xilinx.com/zynq-base-trd-14-3
次の表に、 こ の文書の改訂履歴を示 し ます。
日付
バージ ョ ン
2013 年 4 月 3 日
1.0
内容
初版
Notice of
Disclaimer
The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use
of Xilinx products. To the maximum extent permitted by applicable law: (1) Materials are made available
"AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS,
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, including negligence, 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, the Materials (including your use of the Materials), including for any direct, indirect, special,
incidental, or consequential loss or damage (including loss of data, 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
reasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes no
obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or
to product specifications. You may not reproduce, modify, distribute, or publicly display the Materials
without prior written consent. Certain products are subject to the terms and conditions of the Limited
Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to
warranty and support terms contained in a license issued to you by Xilinx. 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 and liability for use of Xilinx products in Critical Applications:
http://www.xilinx.com/warranty.htm#critapps.
Automotive
Applications
Disclaimer
XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN
ANY APPLICATION REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS APPLICATIONS
RELATED TO: (I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESS
THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF
SOFTWARE IN THE XILINX DEVICE TO IMPLEMENT THE REDUNDANCY) AND A WARNING
SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD TO DEATH
OR PERSONAL INJURY. CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE
OF XILINX PRODUCTS IN SUCH APPLICATIONS.
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
31
Automotive Applications Disclaimer
本資料は英語版 (v1.0) を翻訳 し た も ので、 内容に相違が生 じ る 場合には原文を優先 し ます。
資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。
日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。
こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、
[email protected] ま でお知 ら せ く だ さ い。 いただ き ま し た ご意見を参考に早急に対応 さ
せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受け付けてお り ません。 あ ら か じ め
ご了承 く だ さ い。
XAPP1079 (v1.0) 2013 年 4 月 3 日
japan.xilinx.com
32
Fly UP