zynq ultrascale+ デバイスへの ਠlogicore sem ip …...ultrascale+ architecture sem controller...

53
XAPP1298 (v1.0.2) 2017 2 27 1 japan .xilinx.com この資料は表記のバージ ョ ンの英語版を翻訳し たもので、 内容に相違が生じ る場合には原文を優先し ます。 資料によっては英語版の更新に対応していないものがあります。 日本語版は参考用 と し てご使用の上、 最新情報につき ま し ては、 必ず最新英語版を ご参照 く だ さ い。 概要 このアプリケーション ノ ー ト では、 Zynq® UltraScale+™ MPSoC LogiCORE™ IP UltraScale Architecture Soft Error Mitigation (SEM) Controller (以下、 SEM コントローラー ) を統合して使用する方法について説明し ます。 SEM コントロー ラーをプロセッシング システム (PS) に統合する方法を例として示したリファレンス デザインが付属します。 このリファ レンス デザインはザイリンクス ZCU102 ボード をターゲッ ト と していますが、 若干の変更を加えればその他のデバイ ス、 ファミリ アーキテクチャ、 およびボードにも使用できます。 コンフィギュレーション メモリのソフト エラーは次の方法 で検出および訂正し ます。 PS を使用して SEM コン ト ローラーが初期化を実行し、 プログラマブル ロジック (PL) 内のエラーをスキャンできる よ うにする。 Zynq MPSoC プロセッサの EMIO (Extended Multiplexed I/O) か ら最小限の汎用 I/O (GPIO) ピンを使用し、 SEM コント ローラーのクロック、 ICAP (Internal Configuration Access Port) アービ ト レーシ ョ ン インターフェイス、 およびボード LED を制御する。 SEM コン ト ローラーからのステータス信号を読み出し、 マルチブート を実行する。 このアプリケーション ノ ー ト と は別に、 Zynq UltraScale+ MPSoC AXI4-Lite インターフェイスと LogiCORE IP UltraScale+ Architecture SEM Controller を統合して使用する方法は 『AXI を使用した Zynq UltraScale+ デバイスへの LogiCORE SEM IP の統合』 (XAPP1303) [参照 1] で説明しています。 この場合、 SEM コント ローラーとの通信および SEM コン ト ローラーの管理には AXI4-Lite インターフェイスを使用します。 リファレンス デザイン リファレンス デザインは Vivado® Design Suite 2016.2 IP インテグレーターを使用して作成されています。 このアプリケーション ノートの は、ザイリンクスのウェブサイトからダウンロードでき ます。 リファレンス デザインは SEM コン ト ローラー、 モニター インターフェイス、 UART を使用して情報をユーザーに伝えま す。 マルチブー ト の方法を示すために、 こ の リ フ ァ レ ン ス デザインは 2 つのデザインで構成されています。 これらをデ ザイン 1、 デザ イ ン 2 と呼びます。 12、 および3 にこれらデザインのブロック図を示します。 どちらのデザイ ン も、 次に示す Vivado IP インテグレーター ブロックで構成されます。 Zynq UltraScale+ MPSoC Utility Buffer - BUFGCE として設定したバッファー UltraScale Architecture Soft Error Mitigation Controller SEM UART - Tera Term などの外部デバイスに接続するための UART モジュール Constant - 信号またはバスに定数値を駆動するために使用 Concat - 複数の信号または幅の狭い複数のバスを連結して 1 つの幅の広いバスを作成するために使用 Slice - バスから一部のビッ ト を除去するために使用 どちらのデザインも、 MPSoC EMIO GPIO インターフェイスを BUFGCE のチップ イ ネーブル、 ICAP アービ ト レーシ ョ インターフェイス、および LED に接続します。 また、 SEM コン ト ローラーからのステータス情報の受信および SEM コント ローラーへのコマンド送信に SEM UART を使用します。 SEM コン ト ローラーで UART インターフェイスを使用す る方法の詳細は、 『UltraScale Architecture Soft Error Mitigation Controller LogiCORE IP 製品ガ イ ド 』 (PG187) [参照 2] を参照 してください。 アプリケーション ノート : Zynq UltraScale+ デバイス XAPP1298 (v1.0.2) 2017 2 27 Zynq UltraScale+ デバイスへの LogiCORE SEM IP の統合 著者: Michael Welter

Upload: others

Post on 24-Jan-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 1japan.xilinx.com

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

概要

このアプリ ケーシ ョ ン ノートでは、 Zynq® UltraScale+™ MPSoC に LogiCORE™ IP UltraScale Architecture Soft Error Mitigation (SEM) Controller (以下、 SEM コン ト ローラー ) を統合して使用する方法について説明します。 SEM コン ト ローラーをプロセッシング システム (PS) に統合する方法を例と して示した リ ファレンス デザインが付属します。 この リ ファレンス デザインはザイ リ ンクス ZCU102 ボードをターゲッ ト と していますが、 若干の変更を加えればその他のデバイス、ファ ミ リ アーキテクチャ、 およびボードにも使用できます。 コンフ ィギュレーシ ョ ン メモ リのソフ ト エラーは次の方法で検出および訂正します。

• PS を使用して SEM コン ト ローラーが初期化を実行し、 プログラマブル ロジッ ク (PL) 内のエラーをスキャンできるよ うにする。

• Zynq MPSoC プロセッサの EMIO (Extended Multiplexed I/O) から最小限の汎用 I/O (GPIO) ピンを使用し、 SEM コン トローラーのクロ ッ ク、 ICAP (Internal Configuration Access Port) アービ ト レーシ ョ ン インターフェイス、 およびボード LED を制御する。

• SEM コン ト ローラーからのステータス信号を読み出し、 マルチブート を実行する。

このアプリ ケーシ ョ ン ノート とは別に、 Zynq UltraScale+ MPSoC に AXI4-Lite インターフェイス と LogiCORE IP UltraScale+ Architecture SEM Controller を統合して使用する方法は 『AXI を使用した Zynq UltraScale+ デバイスへの LogiCORE SEM IP の統合』 (XAPP1303) [参照 1] で説明しています。 この場合、 SEM コン ト ローラーとの通信および SEM コン ト ローラーの管理には AXI4-Lite インターフェイスを使用します。

リファレンス デザイン

リ ファレンス デザインは Vivado® Design Suite 2016.2 IP インテグレーターを使用して作成されています。

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

リ ファレンス デザインは SEM コン ト ローラー、 モニター インターフェイス、 UART を使用して情報をユーザーに伝えます。 マルチブートの方法を示すために、 このリ ファレンス デザインは 2 つのデザインで構成されています。 これらをデザイン 1、 デザイン 2 と呼びます。 図 1、 図 2、 および図 3 にこれらデザインのブロッ ク図を示します。 どちらのデザインも、 次に示す Vivado IP インテグレーター ブロ ッ クで構成されます。

• Zynq UltraScale+ MPSoC

• Utility Buffer - BUFGCE と して設定したバッファー

• UltraScale Architecture Soft Error Mitigation Controller

• SEM UART - Tera Term などの外部デバイスに接続するための UART モジュール

• Constant - 信号またはバスに定数値を駆動するために使用

• Concat - 複数の信号または幅の狭い複数のバスを連結して 1 つの幅の広いバスを作成するために使用

• Slice - バスから一部のビッ ト を除去するために使用

どちらのデザインも、 MPSoC の EMIO GPIO インターフェイスを BUFGCE のチップ イネーブル、 ICAP アービ ト レーシ ョン インターフェイス、 および LED に接続します。 また、 SEM コン ト ローラーからのステータス情報の受信および SEM コン ト ローラーへのコマンド送信に SEM UART を使用します。 SEM コン ト ローラーで UART インターフェイスを使用する方法の詳細は、 『UltraScale Architecture Soft Error Mitigation Controller LogiCORE IP 製品ガイ ド』 (PG187) [参照 2] を参照して ください。

アプリケーシ ョ ン ノート : Zynq UltraScale+ デバイス

XAPP1298 (v1.0.2) 2017 年 2 月 27 日

Zynq UltraScale+ デバイスへの LogiCORE SEM IP の統合著者: Michael Welter

Page 2: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザイン

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 2japan.xilinx.com

2 つのデザインの主な違いは LED の動作 (後述) にあ り ます。 QSPI (Quad Serial Peripheral Interface) フラ ッシュ メモ リ を使用したマルチブートは、 LED の動作の違いによって確認できます。 デザイン 1 のソフ ト ウェア アプリ ケーシ ョ ンが動作を完了する と、 デバイスがデザイン 2 の BIT ファ イルでコンフ ィギュレーシ ョ ンされます。 デザイン 2 のソフ ト ウェア アプリ ケーシ ョ ンが動作を完了する と、 デバイスがデザイン 1 の BIT ファ イルでコンフ ィギュレーシ ョ ンされます。 ユーザーが停止するまでデザイン 1 とデザイン 2 のループが続きます。

デザイン 1 では、 PS で BUFGCE からの ICAP ク ロ ッ クを有効にした後、 gpio_led_1 および gpio_led_2 LED を点灯させます。 次に、 PS は Zynq UltraScale+ MPSoC ブロ ッ クの EMIO GPIO インターフェイスを使用して SEM コン ト ローラーが ICAP のアービ ト レーシ ョ ンを実行できるよ うにします。 SEM コン ト ローラーが初期化を実行した後、 デザイン 1 は PS で status_correction および status_uncorrectable 信号をポーリ ングします。 これらのエラーをそれぞれ検出する と、 ソフ ト ウェア アプリ ケーシ ョ ンの実行が次の段階へ進みます。 訂正不能エラーを挿入して検出したら、 PS は SEM コン ト ローラーをアイ ドル ステートに移行させ、 ク ロ ッ クを無効にし、 デザイン 2 のブート イ メージを使用してブートします。 デザインが正し く動作しているかど うかは GPIO LED で確認できます。 LED には次の信号を接続します。

bufgce_enabled、 cap_gnt、 cap_re、 cap_req、 gpio_led_1、 gpio_led_、 status_correction、status_uncorrectable

これらの信号が High にアサート される と、 その信号に接続した LED が点灯します。

デザイン 2 では、 PS で BUFGCE からの ICAP ク ロ ッ クを有効にした後ユーザーが DIP スイ ッチ 1 をオンにするのを待ちます。 DIP スイ ッチ 1 がオンになる と LED 1 が点滅します。ユーザーが DIP スイ ッチ 1 をオフにして DIP スイ ッチ 2 をオンにする と、4 つの LED が順番に点滅します。ユーザーが DIP スイ ッチ 2 をオフにする と、PS は Zynq UltraScale+ MPSoC ブロ ッ クの EMIO GPIO インターフェイスを使用して SEM コン ト ローラーが ICAP のアービ ト レーシ ョ ンを実行できるようにします。 次に、 SEM コン ト ローラーが初期化を実行します。 こ こで、 画面の指示に従って SEM コン ト ローラーが正し く動作しているこ とをユーザーが確認します。 次に、 PS が SEM コン ト ローラーをアイ ドル ステートに移行させ、 クロ ッ クを無効にし、 デザイン 1 のブート イ メージを使用してブート します。

デザインが正し く動作しているかど うかは GPIO LED で確認できます。 LED には次の信号を接続します。

bufgce_enabled, cap_gnt, cap_rel, cap_req, gpio_led_1, gpio_led_2, gpio_led_3, gpio_led_4

これらの信号が High にアサート される と、 その信号に接続した LED が点灯します。

重要: このアプリ ケーシ ョ ンとすべての付属ファイルは、 デモンス ト レーシ ョ ンのみを目的と して提供されています。 また、 すべてのファイルは現状有姿で提供されています。 リ ファレンス デザインは、 ド ロ ップイン ソ リ ューシ ョ ンと しての使用を意図しているものではあ り ません。 新しいデザインにリ ファレンス デザインを統合する場合、 統合後のソリ ューシ ョ ンが機能および信頼性の目標を満たしているかを検証する必要があ り ます。

Page 3: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザイン

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 3japan.xilinx.com

ハードウェア

図 1 に、 リ ファレンス デザインの概略ブロッ ク図を示します。 評価ボードの JTAG ポート と UART ポート を PC に接続します。図 2 と図 3 に、各デザインの LED および DIP スイ ッチへの接続を含む Vivado IP インテグレーターの詳細図を示します。

デザイン 1 では、 表 1 に示した信号を評価ボードの GPIO LED に接続してステータス情報を示します。

デザイン 1 では DIP スイ ッチを使用しません。

X-Ref Target - Figure 1

図 1: デザイン 1 およびデザイン 2 の概略ブロック図

表 1: デザイン 1 の GPIO LED の接続

信号名 GPIO LED

bufgce_enabled GPIO LED[0]

gpio_led_1 GPIO LED[1]

gpio_led_2 GPIO LED[2]

status_correction GPIO LED[3]

status_uncorrectable GPIO LED[4]

cap_req GPIO LED[5]

cap_gnt GPIO LED[6]

cap_rel GPIO LED[7]

(100MHz)

Processing System (PS) Programmable Logic (PL)

pl_clk0

emio gpio iemio gpio o

LED

s

SEM UARTUltraScaleSEM IP

DIP

Sw

itche

s

TerminalTerminal

Evaluation Board

JTAG

PC

100MHz

BUFGCE

Existing Core or Module

Page 4: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザイン

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 4japan.xilinx.com

デザイン 2 では、 表 2 に示した信号を評価ボードの GPIO LED に接続してステータス情報を示します。

デザイン 2 では、 DIP スイ ッチ 1 を使用して GPIO LED 1 を点滅させます。 また、 DIP スイ ッチ 2 をオンにする と GPIO LED 1 ~ 4 が順番に点滅します。

図 2 および図 3 に、 各デザインを Vivado IP インテグレーターで表示した詳細図を示します。

表 2: デザイン 2 の GPIO LED の接続

信号名 GPIO LED

bufgce_enabled GPIO LED[0]

gpio_led_1 GPIO LED[1]

gpio_led_2 GPIO LED[2]

gpio_led_3 GPIO LED[3]

gpio_led_4 GPIO LED[4]

cap_req GPIO LED[5]

cap_gnt GPIO LED[6]

cap_rel GPIO LED[7]

Page 5: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザイン

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 5japan.xilinx.com

X-Ref Target - Figure 2

図 2: デザイン 1 の Vivado IP インテグレーター詳細図

Page 6: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザイン

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 6japan.xilinx.com

X-Ref Target - Figure 3

図 3: デザイン 2 の Vivado IP インテグレーター詳細図

X18114-022217

Page 7: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザイン

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 7japan.xilinx.com

ソフ トウェア アプリケーシ ョ ン

このアプリ ケーシ ョ ン ノートでは、 各ハード ウェア デザインにソフ ト ウェア アプリ ケーシ ョ ンが 1 つずつ付属しています。 各ソフ ト ウェア アプリ ケーシ ョ ンには、 その作成に必要な手順がコ メン ト と して含まれています。

デザイン 1 — MPSoC_SEM_ICAP_MBoot/design1/SDK/source/sem_icap_mboot_1.c

デザイン 2 — MPSoC_SEM_ICAP_MBoot/design2/SDK/source/sem_icap_mboot_2.c

推奨: これらのアプリ ケーシ ョ ンは 『Zynq UltraScale+ MPSoC テクニカル リ ファレンス マニュアル』 (UG1085) [参照 3] と 『Zynq UltraScale+ MPSoC レジスタ リ ファレンス』 (UG1087) [参照 4] に基づいて作成しています。これらの文書を参考にして ください。

アプリ ケーシ ョ ンの完全なログは、 このアプリ ケーシ ョ ン ノートに付属する ZIP ファ イルに格納されています。

デザイン 1 およびデザイン 2

MPSoC_SEM_ICAP_MBoot/teraterm_sem_icap_mboot.log

MPSoC_SEM_ICAP_MBoot/teraterm_sem_uart.log

ツール フローおよび検証

表 3 に、 リ ファレンス デザインで使用したツール フローおよび検証手順を示します。

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

パラメーター 説明

全般

開発者 ザイ リ ンクス

ターゲッ ト デバイス xczu9eg-ffvb1156

ソース コードの提供 あ り

ソース コードの形式 (提供される場合) VHDL、 C

既存のザイ リ ンクス アプリ ケーシ ョ ン ノート / リ ファレンス デザイン、 サードパーティ、 Vivado ツールからデザインへのコード /IP の使用 (使用した場合はその詳細)

UltraScale Soft Error Mitigation (ベータ )

SEM UART

Zynq UltraScale+ MPSoC

Utility Buffer

Constant

Concat

Slice

シミ ュレーシ ョ ン

論理シ ミ ュレーシ ョ ンの実施 なし

タイ ミ ング シ ミ ュレーシ ョ ンの実施 なし

論理シ ミ ュレーシ ョ ンおよびタイ ミ ング シ ミ ュレーシ ョ ン用テス トベンチの提供

なし

テス トベンチの形式

使用したシ ミ ュレータ /バージ ョ ン

SPICE/IBIS シ ミ ュレーシ ョ ンの実施 なし

インプリ メンテーシ ョ ン

使用した合成ツール/バージ ョ ン Vivado Design Suite 2016.2

Page 8: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

必要な環境

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 8japan.xilinx.com

必要な環境

このデザインは次のハードウェアと ソフ ト ウェアを使用して開発されています。 SEM コン ト ローラー、 およびその他のバージ ョ ンのソフ ト ウェアをターゲッ ト とする場合の詳細は、 「制限事項と検討事項」 を参照してください。

ハードウェア

• HW-Z1-ZCU102 Rev B 以降

• ZU9EG シ リ コン

• JTAG プログラ ミ ング ケーブル

• JTAG 接続用の USB ケーブル

• UART 接続用の USB ケーブル

ソフ トウェア

• Vivado Design Suite 2016.2

• ソフ ト ウェア開発キッ ト (SDK) 2016.2

• シ リ アル UART 接続用の Tera Term 4.83

リファレンス デザイン ファイル

最上位のリ ファレンス デザイン ファ イル xapp1298-integrating-sem-ip.zip には 2 つのリ ファレンス デザインが含まれます。 各リ ファレンス デザインのディ レク ト リ構造を次に示します。

使用したインプリ メンテーシ ョ ン ツール/バージ ョ ン Vivado Design Suite 2016.2

スタティ ッ ク タイ ミ ング解析の実施 あ り

ハードウェア検証

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

使用したプラ ッ ト フォーム Zynq UltraScale+ MPSoC ZCU102 評価ボード

表 3: リファレンス デザインの詳細 (続き)

パラメーター 説明

Page 9: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

必要な環境

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 9japan.xilinx.com

ディ レク ト リ構造

MPSoC_SEM_ICAP_MBoot |-- teraterm_sem_icap_mboot.log | - Full log file from running the SW Application |-- teraterm_sem_uart.log.log | - Full log file from SEM controller |-- readme.txt | - This file |-- design1 | |-- SDK | | |-- boot_img | | | |-- BOOT.bin | | | |-- fsbl_a53_0.elf | | | |-- output.bif | | | |-- sem_icap_mboot_a53_0.elf | | | `-- zu9eg_sem_wrapper.bit | | `-- source | | `-- sem_icap_mboot_1.c | `-- Vivado | `-- hdl | `-- constraints | `-- zu9eg_sem.xdc |-- design2 | |-- SDK | | |-- boot_img | | | |-- BOOT.bin | | | |-- fsbl_a53_0.elf | | | |-- output.bif | | | |-- sem_icap_mboot_a53_0.elf | | | `-- zu9eg_sem_wrapper.bit | | `-- source | | `-- sem_icap_mboot_2.c | `-- Vivado | `-- hdl | `-- constraints | `-- zu9eg_sem.xdc |-- ip | `-- sem_ultra_v3_1 <-- Packaged IP required for ZU9EG support |-- sem_uart_src | `-- project_1 | `-- sem_ultra_0_example | `-- sem_ultra_0_example.srcs | `-- sources_1 | `-- imports | `-- example_design | `-- support | |-- sem_ultra_0_uart.v | |-- sem_ultra_0_uart_fifo.v | |-- sem_ultra_0_uart_piso.v | `-- sem_ultra_0_uart_sipo.v `-- Vivado `-- tcl |-- board_repository.tcl |-- ip_repository.tcl `-- uart.tcl

Page 10: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

必要な環境

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 10japan.xilinx.com

design1

このディ レク ト リには、 ソフ ト ウェア アプリ ケーシ ョ ンの実行およびソフ ト ウェア アプリ ケーシ ョ ンを一から生成するのに必要なすべての SDK イ メージ ファ イルと ソースが含まれます。 SDK で生成されたファイルのうち、 アプリ ケーシ ョンの実行に必要なものはすべて boot_img ディ レク ト リに格納されます。 デザイン制約は Vivado ディ レク ト リにあ り ます。

• SDK/boot_img

° BOOT.bin - ELF および BIT ファ イルを含むブート イ メージ ファ イル

° fsbl_a53_0.elf - FSBL (First Stage Boot Loader) ソフ ト ウェア アプリ ケーシ ョ ン データを含む

° output.bif - BOOT イ メージの作成に必要なファイルの参照先を記述した、 SDK で生成されるファ イル

° sem_icap_mboot_a53_0.elf - SEM ICAP およびマルチブート ソフ ト ウェア アプリ ケーシ ョ ン データを含む

° zu9eg_sem_wrapper.bit - PL コンフ ィギュレーシ ョ ン ファ イル

• SDK/source - ソフ ト ウェア アプリ ケーシ ョ ンのソース コード

• Vivado/hdl/constraints - Vivado デザイン用の制約ファイルを格納

design2

このディ レク ト リには、 ソフ ト ウェア アプリ ケーシ ョ ンの実行およびソフ ト ウェア アプリ ケーシ ョ ンを一から生成するのに必要なすべての SDK イ メージ ファ イルと ソースが含まれます。 SDK で生成されたファイルのうち、 アプリ ケーシ ョンの実行に必要なものはすべて boot_img ディ レク ト リに格納されます。 デザイン制約は Vivado ディ レク ト リにあ り ます。

• SDK/boot_img

° BOOT.bin - ELF および BIT ファ イルを含むブート イ メージ ファ イル

° fsbl_a53_0.elf - FSBL (First Stage Boot Loader) ソフ ト ウェア アプリ ケーシ ョ ン データを含む

° output.bif - BOOT イ メージの作成に必要なファイルの参照先を記述した、 SDK で生成されるファ イル

° sem_icap_mboot_a53_0.elf - SEM ICAP およびマルチブート ソフ ト ウェア アプリ ケーシ ョ ン データを含む

° zu9eg_sem_wrapper.bit - PL コンフ ィギュレーシ ョ ン ファ イル

• SDK/source - ソフ ト ウェア アプリ ケーシ ョ ンのソース コード

• Vivado/hdl/constraints - Vivado デザイン用の制約ファイルを格納

ip

このディ レク ト リには、 ZCU102 ボード上の ZU9EG デバイスをサポート した SEM UltraScale+ ファ ミ リ パッケージ済みデザイン (sem_ultra_v3_1) が格納されます。

sem_uart_src

このディ レク ト リには SEM UART のソース コードが格納されます。 このソースは、 SEM コン ト ローラーをサポート した UltraScale+ デバイスをターゲッ トにして生成したものです。 詳細は、 「SEM UART ソース コードを生成する」 を参照してください。

project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/

• sem_ultra_0_uart.v

• sem_ultra_0_uart_fifo.v

• sem_ultra_0_uart_piso.v

• sem_ultra_0_uart_sipo.v

Vivado

参考と して、 3 つの Tcl ファ イルを格納しています。 リ ファレンス デザインを一から作成する場合、 これらのファイルを実際のディ レク ト リ構造に合わせて編集してから Vivado Tcl コンソールで実行してください。

Page 11: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 11japan.xilinx.com

• tcl/board_repository.tcl - Zynq UltraScale+ ZCU102 HeadStart ウェブサイ トからダウンロード したボード ファイルのパスを設定するために使用します。

• tcl/ip_repository.tcl - SEM コン ト ローラーのビルドの結果を含める リポジ ト リ をローカル リ ポジ ト リに設定するために使用します。

• tcl/uart.tcl - SEM UART ファ イルをデザインに追加およびインポートするために使用します。

ライセンス

SEM コン ト ローラー のライセンス

このザイ リ ンクス LogiCORE IP モジュールは、 ザイ リ ンクス エンドユーザー ライセンス規約のも とザイ リ ンクス Vivado Design Suite を使用して追加コス ト なしで提供されています。

この IP およびその他のザイ リ ンクス LogiCORE IP モジュールに関する情報は、 IP コアのウェブサイ トから入手できます。その他のザイ リ ンクス LogiCORE IP モジュールおよびツールの価格や提供状況については、 ザイ リ ンクス販売代理店にお問い合わせください。

リファレンス デザインの実行手順

セッ トアップ

こ こではセッ ト アップ手順について説明します。 リ ファレンス デザインを一から作成する場合は、 「 リ ファレンス デザインの作成」 へ進んでください。 付属の ZIP ファ イルから リ ファレンス デザインを実行する場合は、 44 ページの 「リ ファレンス デザインの実行」 へ進んでください。 このセクシ ョ ンでは、 リ ファレンス デザインの実行に必要なその他のセット アップ情報についても説明します。

リ ファレンス デザインを作成する場合はこ こからの手順に従ってください。

リファレンス デザインの作成

Vivado Design Suite 2016.2 用の ZCU102 ボード ファイルをダウンロードする

注記: ZCU102 ボード ファ イルは Vivado Design Suite 2016.2 に付属しておらず、 このアプリ ケーシ ョ ン ノートにも含まれません。 ボード ファ イルは Zynq UltraScale+ ZCU102 HeadStart ウェブサイ トからダウンロード して ください。

重要: 登録後、 ファ イルにアクセスできるよ うになるまで 2 日ほどかかるこ とがあ り ます。

1. Zynq UltraScale+ ZCU102 HeadStart ウェブサイ トにアクセスします。

2. [Documentations and Designs] タブをク リ ッ ク します。

3. [ZCU102 ES1 Board Files] が表示されるまでスクロールします。

4. [ZCU102 2016.2 board files] と書かれた リ ンクをク リ ッ ク します。

注記: 必ず 2016.2 ボード ファ イルを使用してください。

5. ラ イセンス契約に同意する場合は、 [I Accept] をク リ ッ ク します。

6. デザイン ファ イルをダウンロード します。

Page 12: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 12japan.xilinx.com

SEM UART ソース コードを生成する

リ ファレンス デザインに必要な SEM UART ソース コード、 ハード ウェア デザイン、 およびソフ ト ウェア アプリ ケーシ ョ ンを生成します。

UART ファ イルはデザイン 1 とデザイン 2 で同じものを使用します。 デザイン 1 とデザイン 2 で別々に UART ファ イルを生成する必要はあ り ません。

注記: こ こからの手順では、 <path> = C:/Projects と します。

1. UART ソース ファ イルは、 SEM コン ト ローラーをサポートするアーキテクチャ ファ ミ リのデバイスをターゲッ トにして Vivado ツールで生成できます。 このアプリ ケーシ ョ ン ノートでは、 xcku9p-ffve900 など SEM コン ト ローラーをサポート した任意の UltraScale+ デバイスを選択できます。

2. IP カタログから [UltraScale Soft Error Mitigation] を選択します。

3. [Mode] を [Mitigation and Testing] に設定し、 [Controller Clock Period (ps)] を 10000 と設定します。

4. [Generate Output Products] ダイアログ ボッ クスで、 [Generate] をク リ ッ ク します。

5. [Project Manager] の [Hierarchy] タブで [sem_ultra_0] を右ク リ ッ ク し、 [Open IP Example Design] をク リ ッ ク して出力先ディ レク ト リ を選択します。 新しい Vivado ウ ィンド ウが開いてサンプル デザインが生成されます。

6. 2 つの Vivado ウ ィンド ウを閉じます。 このデザインは合成もインプリ メン ト も必要あ り ません。

7. このアプリ ケーシ ョ ン ノートでは、 次のディ レク ト リに 4 つの UART ファ イルがあ り ます。<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/

sem_ultra_0_uart

sem_ultra_0_uart_fifo.v

sem_ultra_0_uart_piso.v

sem_ultra_0_uart_sipo.v

デザイン 1 - PL デザインを生成する

こ こでは、 リ ファレンス デザインのデザイン 1 に対する PL ビッ ト ス ト リームを一から生成する方法について説明します。

xapp1298-integrating-sem-ip.zip を解凍します。 MPSoC_SEM_ICAP_MBoot フォルダーの readme.txt ファ イ

ルを参照して ください。

プロジェク ト を作成する

注記: こ こからの手順では、 <path> = C:/Projects と します。

1. ディ レク ト リ を MPSoC_SEM_ICAP_Mboot に移動します。

2. Vivado Design Suite を起動します。

3. プロジェク ト を作成する前に、 Tcl コンソールで ZCU102 ボード リ ポジ ト リ ファ イルのパスを設定します。 次に例を示します。

set_param board.repoPaths C:/Projects/zcu102

4. 新規プロジェク ト を作成して次のよ うに設定します。

a. [Project Name]: zu9eg_sem

b. [Project location]: <path>/MPSoC_SEM_ICAP_MBoot/design1

c. [RTL Project] をオンにし、 [Do not specify sources at this time] をオンにします。

Page 13: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 13japan.xilinx.com

d. [Boards] をク リ ッ ク し、 [Vendor] で [xilinx.com]、 [Display Name] で [Zynq UltraScale+ ZCU102 Evaluation Board] を選択します (図 4 参照)。

e. [Next] をク リ ッ ク し、 [Finish] をク リ ッ ク します。

5. アプリ ケーシ ョ ン ノートの ZIP ファ イルに含まれる ZU3EG SEM コン ト ローラーの IP リ ポジ ト リ パスを設定します。

a. set_property ip_repo_paths C:/Projects/MPSoC_SEM_ICAP_MBoot/ip/sem_ultra_v3_1 [current_project]

Vivado の Tcl コンソールに次を入力します。

b. set_property ip_repo_paths <path>/MPSoC_SEM_ICAP_MBoot/ip/sem_ultra_v3_1 [current_project]

c. update_ip_catalog -rebuild

IP の重複に関する次の警告は無視します。

WARNING: [IP_Flow 19-1663] Duplicate IP found for xilinx.com:ip:sem_ultra:3.1.The one found in IP location ‘c:/Projects/MPSoC_SEM_ICAP_MBoot/ip/sem_ultra_v3_1' will take precedence over the same IP in the Xilinx installed IP.

X-Ref Target - Figure 4

図 4: デザイン 1 - ボードの選択

X18133-022217

Page 14: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 14japan.xilinx.com

ファイルを追加する

1. Vivado Tcl コンソールで制約ファイルを追加します。

a. add_files -fileset constrs_1 -norecurse <path>/MPSoC_SEM_ICAP_MBoot/design1/Vivado/hdl/constraints/zu9eg_sem.xdc

b. import_files -fileset constrs_1 -force <path>/MPSoC_SEM_ICAP_MBoot/design1/Vivado/hdl/constraints/zu9eg_sem.xdc

2. 4 つの SEM UART ファ イルをプロジェク トに追加します。

a. add_files -norecurse -scan_for_includes {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart.v}

b. add_files -norecurse -scan_for_includes {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_fifo.v }

c. add_files -norecurse -scan_for_includes {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_piso.v }

d. add_files -norecurse -scan_for_includes {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_sipo.v}

次に例を示します。

add_files -norecurse -scan_for_includes{C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart.vC:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_fifo.vC:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_piso.vC:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_sipo.v}

3. 4 つの SEM UART ファ イルをプロジェク トにインポート します。

a. import_files -force -norecurse {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart.v}

b. import_files -force -norecurse {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_fifo.v}

c. import_files -force -norecurse {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_piso.v}

d. import_files -force -norecurse {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_sipo.v}

Page 15: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 15japan.xilinx.com

次に例を示します。

import_files -force -norecurse{C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart.v C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_fifo.v C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_piso.v C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_sipo.v}

4. [Create Block Design] をク リ ッ ク して、 [Design name] を 「zu9eg_sem」 と します。

IP を図に追加する

1. Vivado の [Diagram] タブで [Add IP] を右ク リ ッ ク し、 [ZYNQ UltraScale+ MPSoC] をク リ ッ ク します。

a. [Run Block Automation] をク リ ッ ク します (図 5 参照)。

b. [Apply Board Presets] がオンであるこ とを確認します。

X-Ref Target - Figure 5

図 5: デザイン 1 - [Run Block Automation]

X18136-022217

Page 16: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 16japan.xilinx.com

c. Zynq UltraScale+ MPSoC ブロ ッ クの設定で [GPIO EMIO] をオンにします。 [UART 1] をオフにします。 [OK] をクリ ッ ク します (図 6 参照)。

2. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Utility Buffer を見つけてク リ ッ ク します。

b. [Utility Buffer] を右ク リ ッ ク し、 [C Buf Type] で [BUFGCE] をク リ ッ ク します。 [OK] をク リ ッ ク します。

3. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して UltraScale Soft Error Mitigation を見つけてク リ ッ ク します。

b. [Duplicate IP] ウ ィンド ウで [Add Active IP] をク リ ッ ク します。

c. アイコンをダブルク リ ッ ク します。 [Mitigation and Testing] をク リ ッ ク し、 [Controller Clock Period (ps)] を 10000 (100MHz) と設定します。 [OK] をク リ ッ ク します。

d. 図で cap_req ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。status_correction および status_uncorrectable ピンも同様にします。

4. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add Module] をク リ ッ ク します。

a. 検索ボッ クスを使用して sem_ultra_0_uart.v を見つけてク リ ッ ク します。

b. uart_tx および uart_rx ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。

5. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Constant を見つけてク リ ッ ク します。

b. [Const Width] を 1 に設定し、 [Const Val] を 0 に設定します (UltraScale Soft Error Mitigation の command_strobe、aux_error_cr_ne、 aux_error_cr_es、 および aux_error_uc 信号に接続)。

6. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Constant を見つけてク リ ッ ク します。

b. [Const Width] を 44 に設定し、 [Const Val] を 0 に設定します (UltraScale Soft Error Mitigation の command_code 信号に接続)。

X-Ref Target - Figure 6

図 6: デザイン 1 - GPIO EMIO を有効にする

X18138-022217

Page 17: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 17japan.xilinx.com

7. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Constant を見つけてク リ ッ ク します。

b. [Const Width] を 3 に設定し、 [Const Val] を 0 に設定します (In0[2:0] Concat に接続)。

8. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Constant を見つけてク リ ッ ク します。

b. [Const Width] を 89 に設定し、 [Const Val] を 0 に設定します (In4[88:0] Concat に接続)。

9. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 0

- [Din Down To]: 0

- [OK] をク リ ッ ク します。

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 Dout という名前のポートが作成されます。

d. Dout の名前を変更します。 [Diagram] タブで Dout ポート をク リ ッ ク します。 [External Port Properties] の [General] タブで [Dout] の名前を 「bufgce_enabled」 に変更します (図 7 参照)。

X-Ref Target - Figure 7

図 7: デザイン 1 - 外部ポートの設定 - bufgce_enabled

X18146-022217

Page 18: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 18japan.xilinx.com

10. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 1

- [Din Down To]: 1

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 名前を 「gpio_led_1」 に変更します。 ピン名の変更手順は手順 9 手順 d を参照して ください。

11. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 2

- [Din Down To]: 2

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 名前を 「gpio_led_2」 に変更します。 ピン名の変更手順は手順 9 手順 d を参照して ください。

12. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 6

- [Din Down To]: 6

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 名前を 「cap_gnt」 に変更します。 ピン名の変更手順は手順 9 手順 d を参照して ください。

13. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 7

- [Din Down To]: 7

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 名前を 「cap_rel」 に変更します。 ピン名の変更手順は手順 9 手順 d を参照して ください。

14. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Concat を見つけてク リ ッ ク します。

- [Number of Ports] を 5 に設定します (図 8 参照)。

- すべてのポートで [Auto] を [Manual] に変更します。

- [In0 Width] を 3、 [In1 Width] を 1、 [In2 Width] を 1、 [In3 Width] を 1、 および [In4 Width] を 89 に設定します。

- [OK] をク リ ッ ク します。

Page 19: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 19japan.xilinx.com

b. 図 2 を参照し、 Concat IP への残りの接続を完了します。

- In0 を Const dout[2:0] に接続します。

- In1 を UltraScale Soft Error Mitigation の status_correction に接続します。

- In2 を UltraScale Soft Error Mitigation の status_uncorrectable に接続します。

- In3 を UltraScale Soft Error Mitigation の cap_req に接続します。

- In4 を Const dout[88:0] に接続します。

- dout[94:0] を Zynq UltraScale+ MPSoC の emio_gpio_i[94:0] に接続します。

Vivado IP インテグレーターの図で接続を完成させる

1. 図 2 ( 「デザイン 1 の Vivado IP インテグレーター詳細図」 ) のよ うにすべての信号を接続します。

2. zu9eg_sem.bd を右ク リ ッ ク して [Create HDL Wrapper] をク リ ッ ク します。

a. ダイアログ ボッ クスで [Let Vivado manage wrapper and auto-update] をオンにします。

3. zu9eg_sem_wrapper.v を右ク リ ッ ク して [Set As Top] をク リ ッ ク します。

4. ブロ ッ ク デザイン キャンバスの何もないと ころで右ク リ ッ ク して [Validate Design] をク リ ッ ク します。

X-Ref Target - Figure 8

図 8: デザイン 1 - Concat IP の幅を 95 に設定

X18151-022217

Page 20: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 20japan.xilinx.com

ブロック デザインとビッ トス ト リームを生成する

1. Flow Navigator で [Generate Block Design] をク リ ッ ク します。

a. [Generate] をク リ ッ ク します (図 9 参照)。

2. Flow Navigator で [Generate Bitstream] をク リ ッ ク し、 インプ リ メン ト したデザインを開き、 すべてのタイ ミ ング制約が満たされているこ とを確認します。

3. ビッ ト ス ト リームをエクスポートするには、 [File] → [Export] → [Export Hardware] をク リ ッ ク します。 [Include bitstream] をオンにします。

4. [File] → [Launch SDK] をク リ ッ ク します。

これで SDK が起動してソフ ト ウェア アプリ ケーシ ョ ンを作成できるよ うにな り ます。 「デザイン 1 - PS ソフ ト ウェア アプリ ケーシ ョ ンを生成する」 に進みます。

X-Ref Target - Figure 9

図 9: デザイン 1 - 出力ファイルの生成

X18156-022217

Page 21: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 21japan.xilinx.com

デザイン 1 - PS ソフ トウェア アプリケーシ ョ ンを生成する

こ こでは、 リ ファレンス デザインのデザイン 1 に対する PS ソフ ト ウェア アプリ ケーシ ョ ンを一から生成する方法について説明します。

1. [File] → [New] → [Application Project] をク リ ッ ク して、 FSBL アプリ ケーシ ョ ン プロジェク ト を作成します。

a. [Project name] に 「fsbl_a53_0」 と入力します。 [Next] をク リ ッ ク します。

b. [Zynq MP FSBL] を選択します。 [Finish] をク リ ッ ク します (図 10 参照)。X-Ref Target - Figure 10

図 10: デザイン 1 - Zynq MP FSBL テンプレート

X18159-022217

Page 22: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 22japan.xilinx.com

2. [File] → [New] → [Application Project] をク リ ッ ク して、 アプリ ケーシ ョ ン プロジェク ト を作成します。

a. [Project name] に 「sem_icap_mboot_a53_0」 と入力します。 [Next] をク リ ッ ク します。

b. [Hello World] を選択し、 [Finish] をク リ ッ ク します。

c. [Project Explorer] で helloworld.c を右ク リ ッ ク し、 [Delete] をク リ ッ ク して削除します (図 11 参照)。

d. sem_icap_mboot_1.c file をコピーします。コピー元: <path>/MPSoC_SEM_ICAP_MBoot/design1/SDK/source/sem_icap_mboot_1.c コピー先: <path>/MPSoC_SEM_ICAP_MBoot/design1/zu9eg_sem/zu9eg_sem.sdk/sem_icap_mboot_a53_0/src/

X-Ref Target - Figure 11

図 11: デザイン 1 - helloworld.c を削除

X18162-022217

Page 23: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 23japan.xilinx.com

e. src ディ レク ト リ を右ク リ ッ ク します。 [Refresh] をク リ ッ クする と、 コピーしたファイルが表示されます (図 12 参照)。

デザイン 1 - ブート イメージを作成する

1. FSBL の ELF (Executable and Linkable Format) ファ イル fsbl_a53_0.elf をコピーします。

コピー元: <path>/MPSoC_SEM_ICAP_MBoot/design1/zu9eg_sem/zu9eg_sem.sdk/fsbl_a53_0/Debug/

コピー先: <path>/MPSoC_SEM_ICAP_MBoot/design1/SDK/boot_img/

2. BIT ファ イルをコピーします。

コピー元: <path>/MPSoC_SEM_ICAP_MBoot/design1/zu9eg_sem/zu9eg_sem.sdk/zu9eg_sem_wrapper_hw_platform_0/zu9eg_sem_wrapper.bit

コピー先: <path>/MPSoC_SEM_ICAP_MBoot/design1/SDK/boot_img/zu9eg_sem_wrapper.bit

3. sem_icap_mboot_a53_0.elf ファ イルをコピーします。

コピー元: <path>/MPSoC_SEM_ICAP_MBoot/design1/zu9eg_sem/zu9eg_sem.sdk/sem_icap_mboot_a53_0/Debug/sem_icap_mboot_a53_0.elf

コピー先: <path>/MPSoC_SEM_ICAP_MBoot/design1/SDK/boot_img/sem_icap_mboot_a53_0.elf

4. [Xilinx Tools] → [Create Boot Image] をク リ ッ ク します。 3 つのパーティシ ョ ンを次の順に追加します。

a. fsbl_a53_0.elf

b. zu9eg_sem_wrapper.bit

c. sem_icap_mboot_a53_0.elf

5. [Architecture] を [Zynq MP] に変更します。

X-Ref Target - Figure 12

図 12: デザイン 1 - Project Explorer

X18163-022217

Page 24: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 24japan.xilinx.com

6. [Create Boot Image] ダイアログ ボッ クスで [Output BIF file path] を次のよ うに設定します。<path>/MPSoC_SEM_ICAP_MBoot/design1/SDK/boot_img/output.bif

a. [Output BIF file path] と [Output path] が同じであるこ とを確認します (図 13 参照)。

7. [Add] をク リ ッ ク してパーティシ ョ ンを追加します。

a. [Create Boot Image] ダイアログ ボッ クスで [Add] をク リ ッ ク し、 fsbl_a53_0.elf パーティシ ョ ンを追加します。

b. [Add partition] ダイアログ ボッ クスで、 [File path] を次のよ うに設定します。<path>/MPSoC_SEM_ICAP_MBoot/design1/SDK/boot_img/fsbl_a53_0.elf

[OK] をク リ ッ ク します。

X-Ref Target - Figure 13

図 13: デザイン 1 - ブート イメージの作成

X18164-022217

Page 25: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 25japan.xilinx.com

c. [Partition type] が [bootloader]、 [Destination Device] が [PS]、 そして [Destination CPU] が [A53 x64] であるこ とを確認します (図 14 参照)。

8. [Create Boot Image] ダイアログ ボッ クスで [Add] をク リ ッ ク し、2 番目のパーティシ ョ ンに BIT ファイルを追加します。

a. [Add partition] ダイアログ ボッ クスで、 [File path] を次のよ うに設定します。<path>/MPSoC_SEM_ICAP_MBoot/design1/SDK/boot_img/zu9eg_sem_wrapper.bit

[OK] をク リ ッ ク します。

X-Ref Target - Figure 14

図 14: デザイン 1 - FSBL ブート パーティシ ョ ン

X18165-022217

Page 26: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 26japan.xilinx.com

b. [Partition type] が [datafile]、 [Destination Device] が [PL] であるこ とを確認します (図 15 参照)。

9. [Create Boot Image] ダイアログ ボッ クスで [Add] をク リ ッ ク し、 3 番目のパーティシ ョ ンに sem_icap_mboot_a53_0.elf ファ イルを追加します。

a. [Add partition] ダイアログ ボッ クスで、 [File path] を次のよ うに設定します。<path>/MPSoC_SEM_ICAP_MBoot/design1/SDK/boot_img/sem_icap_mboot_a53_0.elf

[OK]をク リ ッ ク します。

X-Ref Target - Figure 15

図 15: デザイン 1 - BIT パーティシ ョ ン

X18166-022217

Page 27: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 27japan.xilinx.com

b. [Partition type] が [datafile]、 [Destination Device] が [PS]、 [Destination CPU] が [A53 0] であるこ とを確認します (図 16 参照)。

X-Ref Target - Figure 16

図 16: デザイン 1 - SEM ICAP マルチブート パーティシ ョ ン

X18167-022217

Page 28: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 28japan.xilinx.com

10. [Boot image partitions] のパスを確認します (図 17 参照)。 [Create Image] をク リ ッ ク します。

デザイン 2 - PL デザインを生成する

こ こでは、 リ ファレンス デザインのデザイン 2 に対する PL ビッ ト ス ト リームを一から生成する方法について説明します。

プロジェク ト を作成する

リ ファレンス デザインのこの部分を最初から生成するには次の手順に従ってください。

注記: こ こからの手順では、 <path> = C:/Projects と します。

1. ディ レク ト リ を MPSoC_SEM_ICAP_Mboot に移動します。

2. Vivado Design Suite を起動します。

3. プロジェク ト を作成する前に、 Tcl コンソールで ZCU102 ボード リ ポジ ト リ ファ イルのパスを設定します。

a. set_param board.repoPaths を ZCU102 ボード ファ イルのパスに設定します。 次に例を示します。

set_param board.repoPaths C:/Projects/zcu102

4. 新規プロジェク ト を作成して次のよ うに設定します。

a. [Project Name]: zu9eg_sem

b. [Project location]: <path>/MPSoC_SEM_ICAP_MBoot/design2

c. [RTL Project] をオンにし、 [Do not specify sources at this time] をオンにします。

X-Ref Target - Figure 17

図 17: デザイン 1 - ブート イメージの作成

X18168-022217

Page 29: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 29japan.xilinx.com

d. [Boards] をク リ ッ ク し、 [Vendor] で [xilinx.com]、 [Display Name] で [Zynq UltraScale+ ZCU102 Evaluation Board] を選択します (図 18 参照)。

e. [Next] をク リ ッ ク し、 [Finish] をク リ ッ ク します。

5. アプリ ケーシ ョ ン ノートの ZIP ファ イルに含まれる ZU3EG SEM コン ト ローラーの IP リ ポジ ト リ パスを設定します。

a. set_property ip_repo_paths C:/Projects/MPSoC_SEM_ICAP_MBoot/ip/sem_ultra_v3_1 [current_project]

Vivado の Tcl コンソールに次を入力します。

b. set_property ip_repo_paths C:/Projects/MPSoC_SEM_ICAP_MBoot/ip/sem_ultra_v3_1 [current_project]

c. update_ip_catalog -rebuild

IP の重複に関する次の警告は無視します。

WARNING: [IP_Flow 19-1663] Duplicate IP found for xilinx.com:ip:sem_ultra:3.1.The one found in IP location c:/Projects/MPSoC_SEM_ICAP_MBoot/ip/sem_ultra_v3_1 will take precedence over the same IP in the Xilinx installed IP.

ファイルを追加する

1. Vivado Tcl コンソールで制約ファイルを追加します。

a. add_files -fileset constrs_1 -norecurse <path>/MPSoC_SEM_ICAP_MBoot/design2/Vivado/hdl/constraints/zu9eg_sem.xdc

b. import_files -fileset constrs_1 -force <path>/MPSoC_SEM_ICAP_MBoot/design2/Vivado/hdl/constraints/zu9eg_sem.xdc

X-Ref Target - Figure 18

図 18: デザイン 2 - ボードの選択

X18133-022217

Page 30: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 30japan.xilinx.com

2. 4 つの SEM UART ファ イルをプロジェク トに追加します。

a. add_files -norecurse -scan_for_includes {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart.v}

b. add_files -norecurse -scan_for_includes {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_fifo.v}

c. add_files -norecurse -scan_for_includes {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_piso.v}

d. add_files -norecurse -scan_for_includes {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_sipo.v}

次に例を示します。

add_files -norecurse -scan_for_includes {C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart.v C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_fifo.v C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_piso.v C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_sipo.v}

3. 4 つの SEM UART ファ イルをプロジェク トにインポート します。

a. import_files -force -norecurse {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart.v}

b. import_files -force -norecurse {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_fifo.v }

c. import_files -force -norecurse {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_piso.v }

d. import_files -force -norecurse {<path>/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_sipo.v}

次に例を示します。

import_files -force -norecurse {C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart.v C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_fifo.v C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_piso.v C:/Projects/MPSoC_SEM_ICAP_MBoot/sem_uart_src/project_1/sem_ultra_0_example/

Page 31: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 31japan.xilinx.com

sem_ultra_0_example.srcs/sources_1/imports/example_design/support/sem_ultra_0_uart_sipo.v}

4. [Create Block Design] をク リ ッ ク して、 [Design name] を 「zu9eg_sem」 と します。

IP を図に追加する

1. Vivado の [Diagram] タブで [Add IP] を右ク リ ッ ク し、 [ZYNQ UltraScale+ MPSoC] をク リ ッ ク します。

a. [Run Block Automation] をク リ ッ ク します (図 19 参照)。

b. [Apply Board Presets] がオンであるこ とを確認します。

c. Zynq UltraScale+ MPSoC ブロ ッ クの設定で GPIO EMIO をオンにします。 [UART 1] をオフにします。 [OK] をクリ ッ ク します (図 20 参照)。

X-Ref Target - Figure 19

図 19: デザイン 2 - [Run Block Automation]

X-Ref Target - Figure 20

図 20: デザイン 2 - GPIO EMIO を有効にする

X18136-022217

X18138-022217

Page 32: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 32japan.xilinx.com

2. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Utility Buffer を見つけてク リ ッ ク します。

b. [Utility Buffer] を右ク リ ッ ク し、 [C Buf Type] で [BUFGCE] をク リ ッ ク します。 [OK] をク リ ッ ク します。

3. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して UltraScale Soft Error Mitigation を見つけてク リ ッ ク します。

b. [Duplicate IP] ウ ィンド ウで [Add Active IP] をク リ ッ ク します。

c. アイコンをダブルク リ ッ ク します。 [Mitigation and Testing] をク リ ッ ク し、 [Controller Clock Period (ps)] を 10000 (100MHz) と設定します。 [OK] をク リ ッ ク します。

d. 図で cap_req ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。

4. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add Module] をク リ ッ ク します。

a. 検索ボッ クスを使用して sem_ultra_0_uart.v を見つけてク リ ッ ク します。

b. uart_tx および uart_rx ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。

5. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Constant を見つけてク リ ッ ク します。

b. [Const Width] を 1 に設定し、 [Const Val] を 0 に設定します (UltraScale Soft Error Mitigation の command_strobe、aux_error_cr_ne、 aux_error_cr_es、 および aux_error_uc 信号に接続)。

6. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Constant を見つけてク リ ッ ク します。

b. [Const Width] を 44 に設定し、 [Const Val] を 0 に設定します (UltraScale Soft Error Mitigation の command_code 信号に接続)。

7. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Constant を見つけてク リ ッ ク します。

b. [Const Width] を 5 に設定し、 [Const Val] を 0 に設定します (In0[4:0] Concat に接続)。

8. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Constant を見つけてク リ ッ ク します。

b. [Const Width] を 2 に設定し、 [Const Val] を 0 に設定します (In2[1:0] Concat に接続)。

9. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Constant を見つけてク リ ッ ク します。

b. [Const Width] を 85 に設定し、 [Const Val] を 0 に設定します (In5[84:0] Concat に接続)。

10. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 0

- [Din Down To]: 0

- [OK] をク リ ッ ク します。

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 Dout という名前のポートが作成されます。

Page 33: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 33japan.xilinx.com

d. Dout の名前を変更します。 [Diagram] タブで Dout ポート をク リ ッ ク します。 [External Port Properties] の [General] タブで [Dout] の名前を 「bufgce_enabled」 に変更します (図 21 参照)。

11. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 1

- [Din Down To]: 1

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 名前を 「gpio_led_1」 に変更します。 ピン名の変更手順は手順 10 手順 d を参照して ください。

12. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 2

- [Din Down To]: 2

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 名前を 「gpio_led_2」 に変更します。 ピン名の変更手順は手順 10 手順 d を参照して ください。

X-Ref Target - Figure 21

図 21: デザイン 2 - 外部ポートの設定 - bufgce_enabled

X18172-022217

Page 34: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 34japan.xilinx.com

13. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 3

- [Din Down To]: 3

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 名前を 「gpio_led_3」 に変更します。 ピン名の変更手順は手順 10 手順 d を参照して ください。

14. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 4

- [Din Down To]: 4

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 名前を 「gpio_led_4」 に変更します。 ピン名の変更手順は手順 10 手順 d を参照して ください。

15. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 6

- [Din Down To]: 6

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 名前を 「cap_gnt」 に変更します。 ピン名の変更手順は手順 10 手順 d を参照して ください。

16. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Slice を見つけてク リ ッ ク します。

b. 次のよ うに設定します (Zynq UltraScale+ MPSoC ブロ ッ クの emio_gpio_o[94:0] に接続)。

- [Din Width]: 95

- [Din From]: 7

- [Din Down To]: 7

c. Dout[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク します。 名前を 「cap_rel」 に変更します。 ピン名の変更手順は手順 10 手順 d を参照して ください。

17. [Diagram] タブの何もない画面上で右ク リ ッ ク して [Add IP] をク リ ッ ク します。

a. 検索ボッ クスを使用して Concat を見つけてク リ ッ ク します。

b. [Number of Ports] を 6 に設定します。 すべてのポートで [Auto] を [Manual] に変更します。 [In0 Width] を 5、 [In1 Width] を 1、 [In2 Width] を 2、 [In3 Width] を 1、 [In4 Width] を 1、 および [In5 Width] を 85 に設定します。 [OK] をク リ ッ ク します (図 22 参照)。

Page 35: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 35japan.xilinx.com

c. 図 3 を参照し、 Concat IP への残りの接続を完了します。

- In0 を Const dout[4:0] に接続します。

- In1 を外部ピン cap_req に接続します。

- In2 を Const dout[1:0] に接続します。

- In3 を SW13_DIP1 に接続します。 手順 10 手順 d と同様の手順で、 In3[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク し、 名前を 「SW13_DIP1」 に変更します。

- In4 を SW13_DIP2 に接続します。 手順 10 手順 d と同様の手順で、 In4[0:0] ピンを右ク リ ッ ク して [Make External] をク リ ッ ク し、 名前を 「SW13_DIP2」 に変更します。

- In5 を Const dout[84:0] に接続します。

- Concat dout[94:0] を Zynq UltraScale+ MPSoC の emio_gpio_i[94:0] に接続します。

X-Ref Target - Figure 22

図 22: デザイン 2 - Concat IP の幅を 95 に設定

X18178-022217

Page 36: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 36japan.xilinx.com

Vivado IP インテグレーターの図で接続を完成させる

1. 図 3 ( 「デザイン 2 の Vivado IP インテグレーター詳細図」 ) のよ うにすべての信号を接続します。

2. zu9eg_sem.bd を右ク リ ッ ク して [Create HDL Wrapper] をク リ ッ ク します。

a. ダイアログ ボッ クスで [Let Vivado manage wrapper and auto-update] をオンにします。

3. zu9eg_sem_wrapper.v を右ク リ ッ ク して [Set As Top] をク リ ッ ク します。

4. ブロ ッ ク デザイン キャンバスの何もないと ころで右ク リ ッ ク して [Validate Design] をク リ ッ ク します。

ブロック デザインとビッ トス ト リームを生成する

1. Flow Navigator で [Generate Block Design] をク リ ッ ク します (図 23 参照)。

a. [Generate] をク リ ッ ク します (図 23 参照)。

2. Flow Navigator で [Generate Bitstream] をク リ ッ ク し、 インプ リ メン ト したデザインを開き、 すべてのタイ ミ ング制約が満たされているこ とを確認します。

3. ビッ ト ス ト リームをエクスポートするには、 [File] → [Export] → [Export Hardware] をク リ ッ ク します。 [Include bitstream] をオンにします。

4. [File] → [Launch SDK] をク リ ッ ク します。

これで SDK が起動してソフ ト ウェア アプリ ケーシ ョ ンを作成できるよ うにな り ます。 「デザイン 2 - PS ソフ ト ウェア アプリ ケーシ ョ ンを生成する」 に進みます。

X-Ref Target - Figure 23

図 23: デザイン 2 - 出力ファイルの生成

X18156-022217

Page 37: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 37japan.xilinx.com

デザイン 2 - PS ソフ トウェア アプリケーシ ョ ンを生成する

こ こでは、 リ ファレンス デザインのデザイン 2 に対する PS ソフ ト ウェア アプリ ケーシ ョ ンを一から生成する方法について説明します。

1. [File] → [New] → [Application Project] をク リ ッ ク して、 FSBL アプリ ケーシ ョ ン プロジェク ト を作成します。

a. [Project name] に 「fsbl_a53_0」 と入力します。 [Next] をク リ ッ ク します。

b. [Zynq MP FSBL] を選択します。 [Finish] をク リ ッ ク します (図 24 参照)。X-Ref Target - Figure 24

図 24: デザイン 2 - Zynq MP FSBL テンプレート

X18159-022217

Page 38: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 38japan.xilinx.com

2. [File] → [New] → [Application Project] をク リ ッ ク して、 アプリ ケーシ ョ ン プロジェク ト を作成します。

a. [Project name] に 「sem_icap_mboot_a53_0」 と入力します。 [Next] をク リ ッ ク します。

b. [Hello World] を選択し、 [Finish] をク リ ッ ク します。

c. [Project Explorer] で helloworld.c を右ク リ ッ ク し、 [Delete] をク リ ッ ク して削除します (図 25 参照)。

d. sem_icap_mboot_2.c をコピーします。コピー元: <path>/MPSoC_SEM_ICAP_MBoot/design2/SDK/source/sem_icap_mboot_2.cコピー先: <path>/MPSoC_SEM_ICAP_MBoot/design2/zu9eg_sem/zu9eg_sem.sdk/sem_icap_mboot_a53_0/src/

X-Ref Target - Figure 25

図 25: デザイン 2 - helloworld.c を削除

X18162-022217

Page 39: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 39japan.xilinx.com

e. src ディ レク ト リ を右ク リ ッ ク します。 [Refresh] をク リ ッ クする と、 コピーしたファイルが表示されます (図 26 参照)。

デザイン 2 - ブート イメージを作成する

1. FSBL の ELF (Executable and Linkable Format) ファ イル fsbl_a53_0.elf をコピーします。

コピー元: <path>/MPSoC_SEM_ICAP_MBoot/design2/zu9eg_sem/zu9eg_sem.sdk/fsbl_a53_0/Debug/

コピー先: <path>/MPSoC_SEM_ICAP_MBoot/design2/SDK/boot_img/

2. BIT ファ イルをコピーします。

コピー元: <path>/MPSoC_SEM_ICAP_MBoot/design2/zu9eg_sem/zu9eg_sem.sdk/zu9eg_sem_wrapper_hw_platform_0/zu9eg_sem_wrapper.bit

コピー先: <path>/MPSoC_SEM_ICAP_MBoot/design2/SDK/boot_img/zu9eg_sem_wrapper.bit

3. sem_icap_mboot_a53_0.elf ファ イルをコピーします。

コピー元: <path>/MPSoC_SEM_ICAP_MBoot/design2/zu9eg_sem/zu9eg_sem.sdk/sem_icap_mboot_a53_0/Debug/sem_icap_mboot_a53_0.elf

コピー先: <path>/MPSoC_SEM_ICAP_MBoot/design2/SDK/boot_img/sem_icap_mboot_a53_0.elf

4. [Xilinx Tools] → [Create Boot Image] をク リ ッ ク します。 3 つのパーティシ ョ ンを次の順に追加します。

a. fsbl_a53_0.elf

b. zu9eg_sem_wrapper.bit

X-Ref Target - Figure 26

図 26: デザイン 2 - Project Explorer

X18604-022217

Page 40: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 40japan.xilinx.com

c. sem_icap_mboot_a53_0.elf

5. [Architecture] を [Zynq MP] に変更します。

6. [Create Boot Image] ダイアログ ボッ クスで [Output BIF file path] を次のよ うに設定します。<path>/MPSoC_SEM_ICAP_MBoot/design2/SDK/boot_img/output.bif

a. [Output BIF file path] と [Output path] が同じであるこ とを確認します (図 27 参照)。X-Ref Target - Figure 27

図 27: デザイン 2 - ブート イメージの作成

X18521-022217

Page 41: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 41japan.xilinx.com

7. [Add] をク リ ッ ク してパーティシ ョ ンを追加します。

a. [Create Boot Image] ダイアログ ボッ クスで [Add] をク リ ッ ク し、 fsbl_a53_0.elf パーティシ ョ ンを追加します。

b. [Add partition] ダイアログ ボッ クスで、 [File path] を次のよ うに設定します。<path>/MPSoC_SEM_ICAP_MBoot/design2/SDK/boot_img/fsbl_a53_0.elf

[OK] をク リ ッ ク します。

c. [Partition type] が [bootloader]、[Destination Device] が [PS]、[Destination CPU] が [A53 x64] であるこ とを確認します (図 28 参照)。

X-Ref Target - Figure 28

図 28: デザイン 2 - FSBL ブート パーティシ ョ ン

X18522-022217

Page 42: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 42japan.xilinx.com

8. [Create Boot Image] ダイアログ ボッ クスで [Add] をク リ ッ ク し、2 番目のパーティシ ョ ンに BIT ファイルを追加します。

a. [Add partition] ダイアログ ボッ クスで、 [File path] を次のよ うに設定します。<path>/MPSoC_SEM_ICAP_MBoot/design2/SDK/boot_img/zu9eg_sem_wrapper.bit

[OK] をク リ ッ ク します。

b. [Partition type] が [datafile]、 [Destination Device] が [PL] であるこ とを確認します (図 29 参照)。X-Ref Target - Figure 29

図 29: デザイン 2 - BIT パーティシ ョ ン

X18523-022217

Page 43: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 43japan.xilinx.com

9. [Create Boot Image] ダイアログ ボッ クスで [Add] をク リ ッ ク し、 3 番目のパーティシ ョ ンに sem_icap_mboot_a53_0.elf ファ イルを追加します。

a. [Add partition] ダイアログ ボッ クスで、 [File path] を次のよ うに設定します。<path>/MPSoC_SEM_ICAP_MBoot/design2/SDK/boot_img/sem_icap_mboot_a53_0.elf

[OK] をク リ ッ ク します。

b. [Partition type] が [datafile]、 [Destination Device] が [PS]、 [Destination CPU] が [A53 0] であるこ とを確認します (図 30 参照)。

X-Ref Target - Figure 30

図 30: デザイン 2 - SEM ICAP マルチブート パーティシ ョ ン

X18530-022217

Page 44: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 44japan.xilinx.com

10. [Boot image partitions] のパスを確認します (図 31 参照)。 [Create Image] をク リ ッ ク します。

作成したデザイン ファ イルを使用して リ ファレンス デザインを実行できます。「 リ ファレンス デザインの実行」 の手順 2 「ボードをセッ ト アップする」 に進んでください。

リファレンス デザインの実行

このセクシ ョ ンでは、 イ メージ ファ イルを JTAG を介して ZCU102 ボードにダウンロードする方法について説明します。また、 PS を使用して SEM コン ト ローラーを初期化し、 SEM コン ト ローラーから PS EMIO GPIO インターフェイスを介してステータスを読み出す方法についても説明します。 SEM コン ト ローラーへのコマンド送信には SEM UART ターミナルを使用します。

1. リ ファレンス デザイン ファ イルを解凍する : xapp1298-integrating-sem-ip.zip を解凍します。MPSoC_SEM_ICAP_MBoot フォルダーの readme.txt ファ イルを参照してください。

X-Ref Target - Figure 31

図 31: デザイン 2 - ブート イメージの作成

X18531-022217

Page 45: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 45japan.xilinx.com

2. ボードをセッ ト アップする : 電源、 USB UART ケーブル、 および JTAG プログラ ミ ング ケーブルをボードに接続します。 MODE[3:0] ピンを ON ON ON ON (SW6) に設定します。 この DIP スイ ッチは、 [ON] と書かれた方へ矢印の向きに動かすと 0 とな り ます。 DIP スイ ッチのラベル 1 ~ 4 は MODE ピン 0 ~ 3 に対応します (図 32 および図 33 参照)。電源をオンにします。

重要: ZCU102 ボードに電源が入っているこ と、 USB UART ケーブルと JTAG ケーブルが接続されているこ と、 JTAG ケーブル ド ラ イバーがインス トールされているこ とを確認してください。 次の手順 3 を参照してください。

X-Ref Target - Figure 32

図 32: ZCU102 ボード

X-Ref Target - Figure 33

図 33: MODE[3:0] DIP スイッチの設定 (ON ON ON ON)

X18124-022217

X18664-022217

Page 46: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 46japan.xilinx.com

3. UART ド ラ イバーをセッ ト アップし、 COM ポート を選択する :

a. Tera Term ターミナルを 2 つ起動し、 次のよ うにシ リ アル接続を設定します。

推奨: この接続を初めて機能させる場合は、 Silicon Labs の USB UART ド ラ イバーのインス トールが必要になるこ とがあ ります。 詳細は、 『Silicon Labs CP210x USB-to-UART インス トール ガイ ド』 (UG1033) [参照 5] を参照してください。

b. Tera Term で PS UART と SEM UART の COM XX ポート を選択します。XX の値はコンピューターによって異なります。 Windows の [デバイス マネージャー ] を開き、 [Silicon Labs Quad CP210x USB to UART Bridge: Interface 0 (COMXX)] の値を PS UART に設定し、 [Silicon Labs Quad CP210x USB to UART Bridge: Interface 2 (COMXX)] の値を SEM UART に設定します (図 34 参照)。

ボー レート 115200

設定 データ ビッ ト 8、 パリ ティなし、 ス ト ップ ビッ ト 1

フロー制御 なし

端末 ID VT100

改行コード (送信) CR (端末は CR を行末と して送信)

改行コード (受信) CR + LF (端末は CR を行末と して受信し、 CR + LF に展開)

ローカル エコー なし

X-Ref Target - Figure 34

図 34: COM ポートの選択

X18123-022217

Page 47: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 47japan.xilinx.com

フラ ッシュ メモリをプログラムする

1. SDK を開きます。

2. [Xilinx Tools] → [Program Flash] をク リ ッ ク します (デザイン 1)。 次のよ うに設定します。

3. [Xilinx Tools] → [Program Flash] をク リ ッ ク します (デザイン 2)。 次のよ うに設定します。

4. プログラムが完了したら、 ボードの電源をオフにします。

5. MODE[3:0] ピンを ON ON OFF ON (SW6) に設定します。 この DIP スイ ッチは、 [ON] と書かれた方へ矢印の向きに動かすと 0 とな り ます。 DIP スイ ッチのラベル 1 ~ 4 は MODE ピン 0 ~ 3 に対応します (図 35 参照)。

6. ボードの電源をオンにします。

7. アプリ ケーシ ョ ンが開始します。 PS UART ターミナルに表示される指示に従って、 SEM コン ト ローラーが正し く動作しているかど うかを SEM UART ターミナルで確認してください。 ソフ ト ウェア アプリ ケーシ ョ ンの詳細は、 「デザイン 1 のアプリ ケーシ ョ ンの結果」 および 「デザイン 2 のアプリ ケーシ ョ ンの結果」 を参照してください。

結果

UART ログはすべて、 このアプリ ケーシ ョ ン ノートの ZIP ファ イルのメ イン ディレク ト リに次のファイルと して格納されています。

• teraterm_sem_icap_mboot.log - PS からの UART 出力のログ ファ イル。

• teraterm_sem_uart.log - SEM コン ト ローラーからの UART 出力のログ ファ イル。

[Image File] MPSoC_SEM_ICAP_MBoot/design1/SDK/boot_img/BOOT.bin

[Offset] 0x00000000

[Flash Type] qspi_quad_parallel

[FSBL File] MPSoC_SEM_ICAP_MBoot/design1/SDK/boot_img/fsbl_a53_0.elf

[Image File] MPSoC_SEM_ICAP_MBoot/design2/SDK/boot_img/BOOT.bin

[Offset] 0x02000000

[Flash Type] qspi_quad_parallel

[FSBL File] MPSoC_SEM_ICAP_MBoot/design2/SDK/boot_img/fsbl_a53_0.elf

X-Ref Target - Figure 35

図 35: MODE[3:0] DIP スイッチの設定 (ON ON OFF ON)

Page 48: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 48japan.xilinx.com

デザイン 1 のアプリケーシ ョ ンの結果

このアプリ ケーシ ョ ンは PS UART を初期化し、 PL コンフ ィギュレーシ ョ ン ロジッ クの制御を PCAP から ICAP へ移します (SEM コン ト ローラーは ICAP を必要とする )。 また、 PS EMIO GPIO ピンを使用します。 このアプリ ケーシ ョ ンには、ユーザーからの入力が必要です。 図 36 に、 このアプリ ケーシ ョ ンの PS UART からの出力の一部と SEM UART のログを示します。

PS が PCAP を無効にし、 ICAP を有効にします。 次に BUFGCE が有効にされ、 SEM ロジッ クへのクロ ッ ク供給が開始します。それと同時に、 GPIO LED 0 が点灯します。 PS は、評価ボードの GPIO LED 1 と GPIO LED 2 を点灯させた後、 SEM コン ト ローラーが ICAP Request をアサート しているかど うかを確認します。 アサート されている場合、 PS は ICAP Grant をアサート して ICAP の制御を SEM コン ト ローラーに渡します。 これで SEM コン ト ローラーは初期化を実行し、 自動的に監視ステートに移行します。 この後、 画面の指示に従って訂正可能エラーを挿入します。 SEM UART ターミナルで次のコマンドを入力します (大文字と小文字を区別するこ と )。

I

N C000A098000

O

これは、 図 36 の一番上の赤い矢印で示した部分に該当します。 監視ステートに移行した後、 SEM コン ト ローラーはエラーを検出して訂正します。 GPIO LED 3 が一瞬点灯します。 この後、 画面の指示に従って訂正可能エラーを挿入します。SEM UART ターミナルで次のコマンドを入力します (大文字と小文字を区別するこ と )。

I

N C000A098000

N C000A098004

O

これは、 図 36 の中央の赤い矢印で示した部分に該当します。 Observation ステートに移行した後、 SEM コン ト ローラーはエラーを検出しますが訂正はできません。 GPIO LED 4 が点灯します。 この LED はデバイスを リ コンフ ィギュレーシ ョ ンするまで点灯したままです。 デバイスを リ コンフ ィギュレーシ ョ ンするには、 PS が PCAP 経由で CAP インターフェイスを制御する必要があるため、 SEM コン ト ローラーが ICAP インターフェイスの制御を解放する必要があ り ます。

PS は ICAP Release (GPIO LED [7]) をアサート し、 SEM コン ト ローラーが ICAP Request (GPIO LED [5]) をディアサートするのを待ちます。 SEM コン ト ローラーは、 ICAP Request をディアサート した後、 自動的にアイ ドル ステートへ移行します。 次に、 PS は BUFGCE ク ロ ッ クを無効にします (GPIO LED [0])。 これで、 SEM コン ト ローラーはリ コンフ ィギュレーシ ョ ン可能な状態になり ます。

Page 49: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 49japan.xilinx.com

PS が PCAP を有効にし、 マルチブート を実行します。 これは、 図 36 の一番下の赤い矢印で示した部分に該当します。 詳細は、 アプリ ケーシ ョ ン コード sem_icap_mboot_1.c を参照してください。

デザイン 2 のアプリケーシ ョ ンの結果

このアプリ ケーシ ョ ンは PS UART を初期化し、 PL コンフ ィギュレーシ ョ ン ロジッ クの制御を PCAP から ICAP へ移します (SEM コン ト ローラーは ICAP を必要とする )。 また、 PS EMIO GPIO ピンおよび評価ボードの DIP スイ ッチによるユーザー入力を使用します。 図 37 に、 このアプリ ケーシ ョ ンの PS UART からの出力の一部と SEM UART のログを示します。

PS が PCAP を無効にし、 ICAP を有効にします。 次に BUFGCE が有効にされ、 SEM ロジッ クへのクロ ッ ク供給が開始します。 それと同時に、 GPIO LED 0 が点灯します。 DIP スイ ッチ 1 をオンにする と、 GPIO LED 1 が点滅します。 次に DIP スイ ッチ 1 をオフにし、 DIP スイ ッチ 2 をオンにします。 GPIO LED 1 ~ 4 が順番に点滅します。 DIP スイ ッチ 2 をオフにします。 する と PS は SEM コン ト ローラーが ICAP Request をアサート したかど うかを確認します。 アサート されている場合、 PS は ICAP Grant をアサート して ICAP の制御を SEM コン ト ローラーに渡します。 これで SEM コン ト ローラーは初期化を実行し、 自動的に監視ステートに移行します。

X-Ref Target - Figure 36

図 36: デザイン 1 - PS UART および SEM UART の出力

X18118-022217

Page 50: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

リファレンス デザインの実行手順

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 50japan.xilinx.com

画面の指示に従い、 SEM コン ト ローラーが正し く動作しているかど うかを確認する簡単なテス ト を手動で実行します。これは、 図 37 の赤い矢印で示した部分に該当します。 この後、 PS は再びマルチブート を実行し、 PL がデザイン 1 のブート イ メージでコンフ ィギュレーシ ョ ンされます。 ただし、 デバイスを リ コンフ ィギュレーシ ョ ンするには、 PS が PCAP 経由で CAP インターフェイスを制御する必要があるため、SEM コン ト ローラーが ICAP インターフェイスの制御を解放する必要があ り ます。

PS は ICAP Release (GPIO LED [7]) をアサート し、 SEM コン ト ローラーが ICAP Request (GPIO LED [5]) をディアサートするのを待ちます。 SEM コン ト ローラーは、 ICAP Request をディアサート した後、 自動的にアイ ドル ステートへ移行します。 次に、 PS は BUFGCE ク ロ ッ クを無効にします (GPIO LED [0])。 これで、 SEM コン ト ローラーはリ コンフ ィギュレーシ ョ ン可能な状態になり ます。

PS が PCAP を有効にし、 マルチブート を実行します。 詳細は、 アプリ ケーシ ョ ン コード sem_icap_mboot_2.c を参照して ください。

X-Ref Target - Figure 37

図 37: デザイン 2 - PS UART および SEM UART の出力

X18119-022217

Page 51: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

デバッグ

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 51japan.xilinx.com

デバッグ

図の接続がすべて図 2 および図 3 と同じであるこ とを確認してください。

制限事項と検討事項

重要: このアプリ ケーシ ョ ンとすべての付属ファイルは、 デモンス ト レーシ ョ ンのみを目的と して提供されています。 また、 すべてのファイルは現状有姿で提供されています。 リ ファレンス デザインは、 ド ロ ップイン ソ リ ューシ ョ ンと しての使用を意図しているものではあ り ません。 新しいデザインにリ ファレンス デザインを統合する場合、 統合後のソリ ューシ ョ ンが機能および信頼性の目標を満たしているかを検証する必要があ り ます。

SEM コン ト ローラー IP最新情報は、『UltraScale Architecture Soft Error Mitigation Controller LogiCORE IP 製品ガイ ド』 (PG187) [参照 2] を参照してください。 次に注意して ください。

• SEM コン ト ローラーは、 ブロ ッ ク メモ リ、 分散メモ リ、 フ リ ップフロ ップのソフ ト エラーに対しては動作しません。 これら メモ リ リ ソースで発生したソフ ト エラーは、 冗長性またはエラー検出/訂正コードなどの予防手段を用いてユーザー ロジッ クで軽減策をと る必要があ り ます。

• SEM コン ト ローラーは、 FPGA シ リ コンに内蔵されたソフ ト エラー軽減機能を初期化および管理します。 これをデザインに含める場合は、 内蔵の検出機能を有効にするデザイン制約またはオプシ ョ ンは含めないでください。 たとえば POST_CRC、 POST_CONFIG_CRC、 またはこれらに関連する制約を設定しないでください。 同様に、 GLUTMASK を変更するオプシ ョ ンは指定しないでください。

• ソフ ト ウェアで計算した ECC および CRC 値はサポート されません。

• SEM コン ト ローラーをインスタンシエートするデザインのシ ミ ュレーシ ョ ンがサポート されます。 ただしシ ミ ュレーシ ョ ンではコン ト ローラーの動作は観察できません。 コン ト ローラーを含むデザインのシ ミ ュレーシ ョ ンはコンパイルできますが、 コン ト ローラーは初期化ステートから遷移しません。 コン ト ローラーの動作はハードウェアで評価する必要があ り ます。

• ビッ ト ス ト リーム セキュ リティ (暗号化と認証) の使用は、 現時点ではコン ト ローラーでサポート されていません。

• コン ト ローラーは SelectMAP の persist をサポート していません。

• 1 つの SEM コン ト ローラーに対してサポート されている ICAP インスタンスは 1 つのみで、 このインスタンスは物理的に最上位に置く必要があ り ます。

UltraScale+ ES1 デバイスをターゲッ ト と し、 GTH および GTY ト ランシーバーの DRP (ダイナミ ッ ク リ コンフ ィギュレーシ ョ ン ポート ) をユーザー ロジッ クまたは IP に接続した場合、 SEM IP はサポート されません。

Page 52: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

参考資料

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 52japan.xilinx.com

その他のバージョ ンのソフ トウェアをターゲッ ト とする場合

SEM IP

ZCU102 ボードは ZU9EG デバイスを使用します。 リ リース 2016.3 よ り前の Vivado に含まれる IP インテグレーターでは、このデバイスは IP カタログの SEM IP でサポート されません。 MPSoC_SEM_ICAP_MBoot/ip ディ レク ト リに含まれる SEM UltraScale+ パッケージ済みデザイン (sem_ultra_v3_1) は、 リ リース 2016.3 よ り前のデザインでのみ必要です。 リリース 2016.3 以降では、 Vivado IP インテグレーターで直接 IP カタログを使用して SEM IP を生成できます。

ZCU102 ボード ファイル

リ リース 2016.4 以降の Vivado ツールには ZCU102 ボード ファ イルが付属します。これらのボード ファイルはボード リ ビジ ョ ン 1.0 用です。 リ リース 2016.4 以降でボード リ ビジ ョ ン 1.0 以降をターゲッ トにする場合、 ボード ファ イルをダウンロードする必要はあ り ません。

次に該当する場合は、 Zynq UltraScale+ ZCU102 HeadStart ウェブサイ トからボード ファ イルをダウンロード して ください。

• Vivado リ リース 2016.4 を使用しており、 ボード リ ビジ ョ ンが 1.0 よ り も前 (Rev D など) の場合

• Vivado がリ リース 2016.4 よ り前の場合

重要: ボード ファ イルは、 使用している Vivado リ リース とボード リ ビジ ョ ンに合ったものをダウンロード して ください。

参考資料

推奨: このアプリ ケーシ ョ ン ノートの開発には Vivado Design Suite 2016.2 を使用しています。 『Zynq UltraScale+ MPSoC テクニカル リ ファレンス マニュアル』 (UG1085) [参照 3] と 『Zynq UltraScale+ MPSoC レジスタ リ ファレンス』 (UG1087) [参照 4] についてもバージ ョ ン 2016.2 を参照するこ とを推奨します。

注記: 日本語版のバージ ョ ンは、 英語版よ り古い場合があ り ます。

1. 『AXI を使用した Zynq UltraScale+ デバイスへの LogiCORE SEM IP の統合』 (XAPP1303: 英語版、 日本語版)

2. 『UltraScale Architecture Soft Error Mitigation Controller LogiCORE IP 製品ガイ ド』 (PG187: 英語版、 日本語版)

3. 『Zynq UltraScale+ MPSoC テクニカル リ ファレンス マニュアル』 (UG1085: 英語版、 日本語版)

4. 『Zynq UltraScale+ MPSoC レジスタ リ ファレンス』 (UG1087)

5. 『Silicon Labs CP210x USB-to-UART インス トール ガイ ド』 (UG1033)

6. 『UltraScale アーキテクチャ ライブラ リ ガイ ド』 (UG974: 英語版、 日本語版)

7. 『Vivado Design Suite ユーザー ガイ ド : IP を使用した設計』 (UG896: 英語版、 日本語版)

8. 『Vivado Design Suite ユーザー ガイ ド : エンベデッ ド プロセッサ ハードウェア デザイン』 (UG898: 英語版、 日本語版)

改訂履歴

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

日付 バージョ ン 内容

2017 年 2 月 10 日 1.0 初版

Page 53: Zynq UltraScale+ デバイスへの ਠLogiCORE SEM IP …...UltraScale+ Architecture SEM Controller を統合して使用する方法は『AXI を使用した Zynq UltraScale+ デバイスへの

法的通知

XAPP1298 (v1.0.2) 2017 年 2 月 27 日 53japan.xilinx.com

法的通知本通知に基づいて貴殿または貴社 (本通知の被通知者が個人の場合には 「貴殿」、 法人その他の団体の場合には 「貴社」。 以下同じ ) に開

示される情報 (以下 「本情報」 といいます) は、 ザイ リ ンクスの製品を選択および使用するこ とのためにのみ提供されます。 適用される

法律が許容する最大限の範囲で、 (1) 本情報は 「現状有姿」、 およびすべて受領者の責任で (with all faults) とい う状態で提供され、 ザイ リ

ンクスは、 本通知をもって、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますがこれらに限られません)、すべての保証および条件を負わない (否認する ) ものと します。 また、 (2) ザイ リ ンクスは、 本情報 (貴殿または貴社による本情報の使用

を含む) に関係し、 起因し、 関連する、 いかなる種類 ・ 性質の損失または損害についても、 責任を負わない (契約上、 不法行為上 (過失の

場合を含む)、 その他のいかなる責任の法理によるかを問わない) ものと し、 当該損失または損害には、 直接、 間接、 特別、 付随的、 結

果的な損失または損害 (第三者が起こした行為の結果被った、 データ、 利益、 業務上の信用の損失、 その他あらゆる種類の損失や損害を

含みます) が含まれるものと し、 それは、 たとえ当該損害や損失が合理的に予見可能であったり、 ザイ リ ンクスがそれらの可能性につい

て助言を受けていた場合であったと しても同様です。 ザイ リ ンクスは、 本情報に含まれるいかなる誤り も訂正する義務を負わず、 本情

報または製品仕様のアップデート を貴殿または貴社に知らせる義務も負いません。 事前の書面による同意のない限り、 貴殿または貴社

は本情報を再生産、 変更、 頒布、 または公に展示してはなり ません。 一定の製品は、 ザイ リ ンクスの限定的保証の諸条件に従う こ と と

なるので、 https://japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売条件を参照して ください。 IP コアは、 ザイ リ ンクスが貴殿

または貴社に付与したライセンスに含まれる保証と補助的条件に従う こ とにな り ます。 ザイ リ ンクスの製品は、 フェイルセーフと して、

または、 フェイルセーフの動作を要求するアプリ ケーシ ョ ンに使用するために、 設計されたり意図されたり していません。 そのよ うな

重大なアプリ ケーシ ョ ンにザイ リ ンクスの製品を使用する場合のリ スク と責任は、 貴殿または貴社が単独で負う ものです。

https://japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売条件を参照してください。

自動車用のアプリケーシ ョ ンの免責条項

オートモーティブ製品 (製品番号に 「XA」 が含まれる ) は、 ISO 26262 自動車用機能安全規格に従った安全コンセプ ト または余剰性の機

能 ( 「セーフティ設計」 ) がない限り、 エアバッグの展開における使用または車両の制御に影響するアプリ ケーシ ョ ン ( 「セーフティ アプリ ケーシ ョ ン」 ) における使用は保証されていません。 顧客は、 製品を組み込むすべてのシステムについて、 その使用前または提供前

に安全を目的と して十分なテス ト を行う ものと します。 セーフティ設計なしにセーフティ アプリ ケーシ ョ ンで製品を使用する リ スクは

すべて顧客が負い、 製品の責任の制限を規定する適用法令および規則にのみ従う ものと します。

© Copyright 2017 Xilinx, Inc. Xilinx、 Xilinx のロゴ、 Artix、 ISE、 Kintex、 Spartan、 Virtex、 Vivado、 Zynq、 およびこの文書に含まれるその

他の指定されたブランドは、 米国およびその他各国のザイ リ ンクス社の商標です。 ARM は、 EU およびその他各国の ARM 社の登録商標

です。 すべてのその他の商標は、 それぞれの保有者に帰属します。

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

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

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

2017 年 2 月 13 日 1.0.1 誤植を訂正。

2017 年 2 月 27 日 1.0.2 「 リ ファレンス デザイン」 セクシ ョ ンと 「制限事項と検討事項」 セクシ ョ ンに注記 (重要) を追加。

日付 バージョ ン 内容