19
XAPP1247 (v1.0) 2015 8 13 1 japan .xilinx.com この資料は表記のバージ ョ ンの英語版を翻訳し たもので、 内容に相違が生じ る場合には原文を優先し ます。 資料によっては英語版の更新に対応していないものがあります。 日本語版は参考用 と し てご使用の上、 最新情報につき ま し ては、 必ず最新英語版を ご参照 く だ さ い。 概要 このアプリケーション ノ ー ト では、 SPI ( シリアル ペリフェラル インターフェイス) コンフィギュレーション モー ド で、 7 シリーズ FPGA を使用して有効なマルチブー ト デザイ ンを構築する場合の主な概念について説明し ます。 7 シリーズの マルチブー ト 機能は、 FPGA アプ リ ケーシ ョ ンの制御下で複数の FPGA ビ ッ ト ス ト リ ームの読み込みを可能にし ます。 こ こでは、 FPGA ビ ッ ト ス ト リ ーム設定を使用し てマルチブー ト 機能を イ ンプ リ メ ン ト する手順、 フ ォールバッ ク を開始す る方法、 および FPGA ステータス レジスタを使用してフォールバッ ク動作をデバッグおよび検証する方法について説明 し ます。 このアプ リ ケーシ ョ ン ノ ー ト には、 SPI コンフィギュレーション モード を使用する 7 シリーズ FPGA のマルチ ブート機能とフォールバック機能を検証するためのリファレンス デザインが含まれています。 こ こ では、 Kintex®-7 FPGA および N25Q128 Micron Quad SPI シリアル フラッシュを搭載した KC705 評価ボー ド と 、 Vivado® Design Suite 2015.1 を使用してデザイン フ ローを示し ます。 マルチブー ト 機能に関する追加情報および SPI コン フィギュレーション モー ド の詳細は、『7 シリーズ FPGA コンフィギュレーション ユーザー ガイド』 (UG470) [参照 1] を参 照してください。 このアプリケーション ノートの は、ザイリンクスのウェブサイトからダウンロードでき ます。 デザイン フ ァ イ ルの詳細は、 「リファレンス デザイン」 を参照してください。 はじめに 7 シリーズ FPGA のマルチブートおよびフォールバックは、 フィールドでのシステム アップデート をサポートする機能で す。 ビ ッ ト ス ト リ ーム イメージは、 フィールドで動的にアップグレードできます。 FPGA のマルチブー ト は、 オンザフ ラ イでイ メージを切り替える機能です。マルチブート コンフィギュレーション プロセス中にエラーが検出されると、 FPGA はフォールバッ ク機能を開始して、 検証済みのデザイン ( ゴールデン イメージ) をデバイスに読み込むこ とができます。 フォールバッ クが実行される と、 内部生成されたパルスによって、 専用のマルチブート ロジック、 ウォーム ブー ト 開始 アドレス レジスタ (WBSTAR)、 およびブート ステータス (BOOTSTS) レジスタを除くコンフィギュレーション ロジック 全体が リ セ ッ ト さ れ ま す。 こ の リ セ ッ ト パルスで INIT_B および DONE Low になり、 コンフィギュレーション メモリ がクリアされ、フラッシュ メモリ デバイスのアドレス 0 からコンフィギュレーション プロセスが再開します。 アプリケーション ノート :7 シリーズ FPGA XAPP1247 (v1.0) 2015 8 13 7 シリーズ FPGA および SPI を使用するマルチ ブート 著者: Bryan LiKiran K Gakhal

:7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

  • Upload
    others

  • View
    84

  • Download
    0

Embed Size (px)

Citation preview

Page 1: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

XAPP1247 (v1.0) 2015 年 8 月 13 日  1japan.xilinx.com

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

概要

このアプリ ケーシ ョ ン ノートでは、 SPI (シ リアル ペリ フェラル インターフェイス) コンフ ィギュレーシ ョ ン モードで、7 シ リーズ FPGA を使用して有効なマルチブート デザインを構築する場合の主な概念について説明します。 7 シ リーズのマルチブート機能は、 FPGA アプリ ケーシ ョ ンの制御下で複数の FPGA ビッ ト ス ト リームの読み込みを可能にします。 ここでは、 FPGA ビッ ト ス ト リーム設定を使用してマルチブート機能をインプリ メン トする手順、 フォールバッ クを開始する方法、 および FPGA ステータス レジスタを使用してフォールバッ ク動作をデバッグおよび検証する方法について説明します。 このアプリ ケーシ ョ ン ノートには、 SPI コンフ ィギュレーシ ョ ン モードを使用する 7 シ リーズ FPGA のマルチブート機能とフォールバッ ク機能を検証するためのリ ファレンス デザインが含まれています。

こ こでは、 Kintex®-7 FPGA および N25Q128 Micron Quad SPI シ リ アル フラ ッシュを搭載した KC705 評価ボード と、Vivado® Design Suite 2015.1 を使用してデザイン フローを示します。 マルチブート機能に関する追加情報および SPI コンフ ィギュレーシ ョ ン モードの詳細は、『7 シ リーズ FPGA コンフ ィギュレーシ ョ ン ユーザー ガイ ド』 (UG470) [参照 1] を参照して ください。

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

はじめに

7 シ リーズ FPGA のマルチブートおよびフォールバッ クは、 フ ィールドでのシステム アップデート をサポートする機能です。 ビッ ト ス ト リーム イ メージは、 フ ィールドで動的にアップグレードできます。 FPGA のマルチブートは、 オンザフライでイ メージを切り替える機能です。マルチブート コンフ ィギュレーシ ョ ン プロセス中にエラーが検出される と、 FPGA はフォールバッ ク機能を開始して、 検証済みのデザイン (ゴールデン イ メージ) をデバイスに読み込むこ とができます。

フォールバッ クが実行される と、 内部生成されたパルスによって、 専用のマルチブート ロジッ ク、 ウォーム ブート開始アドレス レジスタ (WBSTAR)、 およびブート ステータス (BOOTSTS) レジスタを除く コンフ ィギュレーシ ョ ン ロジッ ク全体がリセッ ト されます。 このリセッ ト パルスで INIT_B および DONE が Low になり、 コンフ ィギュレーシ ョ ン メモ リがク リ アされ、 フラ ッシュ メモ リ デバイスのアドレス 0 からコンフ ィギュレーシ ョ ン プロセスが再開します。

アプリケーシ ョ ン ノート : 7 シリーズ FPGA

XAPP1247 (v1.0) 2015 年 8 月 13 日

7 シリーズ FPGA および SPI を使用するマルチブート著者: Bryan Li、 Kiran K Gakhal

Page 2: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

マルチブートの基本

XAPP1247 (v1.0) 2015 年 8 月 13 日  2japan.xilinx.com

このアプリ ケーシ ョ ン ノートは、 主に次のセクシ ョ ンで構成されています。

• 「マルチブートの基本」

• 「ビッ ト ス ト リームに組み込まれる内部プログラム (IPROG) コマンド」

• 「FPGA SPI フラ ッシュ コンフ ィギュレーシ ョ ンのインターフェイス」

• 「Vivado ツールのフロー」

• 「ハード ウェア検証」

• 「デバッグおよびチェッ ク リ ス ト 」

• 「付録 A: 高度なアプリ ケーシ ョ ン」

° 「タ イムアウ ト エラーを使用したフォールバッ ク」

マルチブートの基本

FPGA のマルチブート機能は、 リモート アップデート用のイ メージをオンザフライで切り替えるこ とができます。 マルチブート コンフ ィギュレーシ ョ ン プロセス中にエラーが検出される と、 FPGA はフォールバッ クを開始して、 検証済みのデザイン (ゴールデン イ メージ) をデバイスに読み込むこ とができます。 このソ リ ューシ ョ ンでは、 次のコンポーネン トを格納するための予約領域を持つフラ ッシュ メモ リ を使用します。

• フォールバッ ク、 または 「ゴールデン ビッ ト ス ト リーム」

• マルチブート、 または 「アップデート ビッ ト ス ト リーム」

リモート プログラム方法をインプリ メン ト し、 これを用いて新規または改良したビッ ト ス ト リームをアップデート ビット ス ト リーム領域に書き込みます。 FPGA は、 このアップデート ビッ ト ス ト リームでコンフ ィギュレーシ ョ ンを試みます。

リモート アップデートがエラーになるか中断した場合は、 フォールバッ クしてゴールデン ビッ ト ス ト リームから確実にコンフ ィギュレーシ ョ ンする必要があ り ます。

マルチブートは、 フラ ッシュ メモ リ内の特定のアドレスを指定してビッ ト ス ト リームを選択的に読み込む機能です。 内部生成パルス (IPROG) によ り コンフ ィギュレーシ ョ ン ロジッ クが開始され、 ゴールデン ビッ ト ス ト リーム WBSTAR (ウォーム ブート開始アドレス) レジスタで指定されたアドレス位置のアップデート ビッ ト ス ト リームにジャンプし、アップデート ビッ ト ス ト リームを読み込みます。 アップデート ビッ ト ス ト リームの読み込み中にコンフ ィギュレーシ ョン エラーが検出される と、 フォールバッ クが ト リガーされてゴールデン ビッ ト ス ト リームが読み込まれます。 図 1 は、このアプリ ケーシ ョ ン ノートで例示する一般的なマルチブートおよびフォールバッ クのフローを示しています。

Page 3: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

ビッ トス ト リームに組み込まれる内部プログラム (IPROG) コマンド

XAPP1247 (v1.0) 2015 年 8 月 13 日  3japan.xilinx.com

マルチブート イベン トの準備と して、 内部プログラム (IPROG) コマンドおよび次のイ メージ開始アドレス (WBSTAR) コマンドが、 ゴールデン ビッ ト ス ト リーム内に設定されます。

マルチブート をインプリ メン トする方法と しては、 次の 2 つがあ り ます。

1. ビッ ト ス ト リームへの PROG の組み込み (このアプリ ケーシ ョ ン ノートで取り上げる )。 IPROG は、NEXT_CONFIG_ADDR ビッ ト ス ト リーム オプシ ョ ンを使用して有効にします。

2. ICAPE2 を使用した IPROG (このアプ リ ケーシ ョ ン ノートでは取り上げない)。 レジスタ書き込みコマンドを ICAPE2 プリ ミ ティブに適用します。

ビッ ト ス ト リームへの IPROG 組み込みは自動化されたオプシ ョ ンであ り、 マルチブート設定はビッ ト ス ト リームに組み込まれます。 それに対して ICAPE2 を使用する 2 番目のオプシ ョ ンはユーザー アプリ ケーシ ョ ン固有であ り、 発生するイベン トに応じてデザインがマルチブート を ト リガーします。

ビッ トス ト リームに組み込まれる内部プログラム (IPROG) コマンド

ウォーム ブート開始アドレス (WBSTAR) および内部プログラム (IPROG) コマンドは、 ビッ ト ス ト リームに組み込むこ とができます。

ゴールデン ビッ ト ス ト リームは、 フラ ッシュ アドレス 0 に格納されます。 アップデート ビッ ト ス ト リームは、 ゴールデン ビッ ト ス ト リームの WBSTAR (next_config_addr) レジスタで指定されたフラ ッシュ アドレスに格納されます。WBSTAR にデフォルト以外のアドレス値が設定されている場合は、 IPROG は自動的にビッ ト ス ト リームに組み込まれます。

X-Ref Target - Figure 1

図 1: マルチブートおよびフォールバックのフロー

X1247_01_060215

Page 4: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

ビッ トス ト リームに組み込まれる内部プログラム (IPROG) コマンド

XAPP1247 (v1.0) 2015 年 8 月 13 日  4japan.xilinx.com

コンフ ィギュレーシ ョ ン ロジッ クは、 フラ ッシュ アドレス 0 に格納されているゴールデン ビッ ト ス ト リーム内のコマンドの実行を正常に開始します。 制御は IPROG コマンドに達する と、 ゴールデン ビッ ト ス ト リームの WBSTAR レジスタで指定されたフラ ッシュのアドレス 位置にジャンプし、 コンフ ィギュレーシ ョ ン ロジッ クはアップデート ス ト リームを読み込みます。 エラー条件が原因でコンフ ィギュレーシ ョ ン ロジッ クがアップデート イ メージの読み込みに失敗した場合は、 フォールバッ クが実行され、 コンフ ィギュレーシ ョ ン ロジッ クによ り INIT_B および DONE が Low になり、 コンフ ィギュレーシ ョ ン メモ リがク リ アされ、 フラ ッシュ アドレス 0 でゴールデン ビッ ト ス ト リームが読み込まれてコンフ ィギュレーシ ョ ン プロセスが再開します。 フォールバッ ク中、 FPGA は WBSTAR コマンドおよび IPROG コマンドを無視します。 詳細は、 『7 シ リーズ FPGA コンフ ィギュレーシ ョ ン ユーザー ガイ ド』 (UG470) [参照 1] の第 7 章 「リ コンフ ィギュレーシ ョ ンおよびマルチブート 」 を参照して ください。 フラ ッシュ メモ リのコンポーネン トおよびコンフ ィギュレーシ ョ ン手順は、 図 2 を参照して ください。

X-Ref Target - Figure 2

図 2: マルチブート とフォールバックのフラッシュ  メモリ  コンポーネン トおよびコンフ ィギュレーシ ョ ン手順

Page 5: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

FPGA SPI フラ ッシュ  コンフ ィギュレーシ ョ ンのインターフェイス

XAPP1247 (v1.0) 2015 年 8 月 13 日  5japan.xilinx.com

FPGA SPI フラッシュ  コンフ ィギュレーションのインターフェイス

図 3 は、 7 シ リーズ FPGA と SPI フラ ッシュ間の x1 データ幅での基本的な接続を示しています。読み出しおよびアドレス命令は、 MOSI (Master-Out-Slave-In) ピンを介して FPGA から SPI フラ ッシュへ送られます。 その後、 データが MISO (Master-In-Slave-Out) ピンを介して SPI フラ ッシュから戻り ます。 SCK はクロ ッ ク ピンで、 SS はアクティブ Low のスレーブ セレク ト ピンです。

詳細は、 『7 シ リーズ FPGA コンフ ィギュレーシ ョ ン ユーザー ガイ ド』 (UG470) [参照 1] または 『SPI フラ ッシュを使用した 7 シ リーズ FPGA のコンフ ィギュレーシ ョ ン』 (XAPP586) [参照 2] を参照してください。

Vivado ツールのフロー

マルチブート  アプリケーシ ョ ン用のビッ トス ト リームの準備

このセクシ ョ ンでは、 マルチブート アプリ ケーシ ョ ン用のゴールデン ビッ ト ス ト リームとアップデート ビッ ト ス ト リームを作成するために必要なビッ ト ス ト リーム プロパティについて概説します。 示されていないビッ ト ス ト リーム オプシ ョ ンには、 デフォルトの設定を使用して ください。

表 1 に、 ゴールデン ビッ ト ス ト リームとアップデート ビッ ト ス ト リームを生成するための基本的なマルチブート ビッ トス ト リーム プロパティ と、 各プロパティの説明を示します。 これらのプロパティの詳細は、 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908) [参照 3] を参照して ください。

X-Ref Target - Figure 3

図 3: FPGA フラ ッシュ  インターフェイス

表 1: マルチブート  ビッ トス ト リーム プロパティ

ビッ トス ト リーム プロパティ 値 ゴールデンアップデート

説明

BITSTREAM.CONFIG.CONFIGFALLBACK Enable √ √ コンフ ィギュレーシ ョ ンが正常に完了しなかった場合、 デフォルトのビッ ト ス ト リームの読み込みを有効にします。

BITSTREAM.CONFIG.NEXT_CONFIG_ADDR Addr A1 √ N/A 次のコンフ ィギュレーシ ョ ン イ メージの開始アドレスを、 ウォーム ブート開始アドレス (WBSTAR[28:0] ビッ ト ) レジスタに設定します。

BITSTREAM.GENERAL.COMPRESS(1) Enable √ √ FPGA ビッ ト ス ト リーム ファ イルの圧縮の有効/無効を指定します。

注記:1. BITSTREAM.GENERAL.COMPRESS はオプシ ョ ンですが、 プログラム時間やコンフ ィギュレーシ ョ ン時間が短縮されるため選択しています。

Page 6: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

Vivado ツールのフロー

XAPP1247 (v1.0) 2015 年 8 月 13 日  6japan.xilinx.com

推奨: Vivado グラフ ィカル ユーザー インターフェイス (GUI) フローを使用する場合は、 Vivado Design Suite でデザインの合成およびインプリ メンテーシ ョ ンを実行する前に、 ゴールデンおよびアップデート デザインの XDC ファ イル内にマルチブート プロパティを含めます。 これによ り、 合成と インプリ メンテーシ ョ ンは 1 回のみ実行すればよいので、 時間を節約できます。 これに対し、 プロパティをデザインのインプリ メンテーシ ョ ン後に Vivado ビッ ト ス ト リーム設定 GUI で追加した場合は、 インプリ メンテーシ ョ ン フロー全体を再実行する必要があ り ます。

Vivado でゴールデン デザイン インプリ メンテーシ ョ ン用の制約ファイル (.xdc) を開きます。 次の内容を制約ファイルにコピー アンド ペース ト して、 .xdc ファ イルに加えた変更を保存します。

set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x0400000 [current_design]set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design]

注記: BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x0400000 は、 リ ファレンス デザインからの例です。 このアドレスは、 SPI フラ ッシュ サイズに応じてほかの値に設定できます。

注記:デフォルトでは SPI_BUSWIDTH は x1 です。デフォルトの x1 モードを使用しない場合は、必ずこのプロパティをほかの値に設定して ください。

次に、 アップデート デザインの制約ファイル (.xdc) を開いて、 次のビッ ト ス ト リーム プロパティを制約ファイルに追加し、 保存できます。

set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design]

注記:デフォルトでは SPI_BUSWIDTH は x1 です。デフォルトの x1 モードを使用しない場合は、必ずこのプロパティをほかの値に設定して ください。

マルチブート プロパティを追加したら、 ゴールデン デザインとアップデート デザインのビッ ト ス ト リームを、write_bitstream Tcl コマンドを使用して生成します。 ビッ ト ス ト リームを生成するには、 プロジェク トでインプリ メン ト済みのデザインを開いておく必要があ り ます。 -verbose スイ ッチを write_bitstream と共に用いる と、 使用されているすべてのビッ ト ス ト リーム オプシ ョ ンの要約を出力できます。 詳細なヘルプを参照するには、write_bitstream -help コマンドを使用してください。

write_bitstream -verbose <file_name>

SPI フラ ッシュ  プログラム ファイルの生成 

フラ ッシュ プログラム ファ イル (.mcs) を作成するには、 write_cfgmem Tcl コマンドを使用します。 write_cfgmem は、 FPGA ビッ ト ス ト リーム (.bit) を使用し、 SPI フラ ッシュのプログラムに使用できるフラ ッシュ ファ イル (.mcs) を生成します。

たとえば、 次のよ うに 2 つの FPGA ビッ ト ス ト リーム (.bit ファ イル) で、 1 つのフラ ッシュ プログラ ミ ング ファ イル (.mcs) を生成します。

write_cfgmem -format mcs -interface SPIX1 -size 16 -loadbit "up 0 <path>/golden.bit up 0x0400000 <path>/update.bit" <path>/filename.mcs

注記: アドレス値 0x0400000 は、 リ ファレンス デザインで使用しているサンプル値です。 ゴールデン イ メージに設定された値 Addr A1 (アップデート イ メージの開始アドレス) を使用する必要があ り ます (表 1 を参照)。

Page 7: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

ハードウェア検証

XAPP1247 (v1.0) 2015 年 8 月 13 日  7japan.xilinx.com

各 write_cfgmem コマンド オプシ ョ ンの詳細は、 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908) [参照 3] を参照するか、 または Vivado で -help コマンドを使用してください。

write_cfgmem -help

ハードウェア検証

リ ファレンス デザインには、 ク イ ッ ク検証に使用できるフラ ッシュ プログラ ミ ング ファ イル (.mcs) が含まれています。

FPGA ブートがゴールデン イ メージからなのかアップデート イ メージからなのかを確認するには、 GPIO (汎用入出力) の LED のステータスを確認します。 GPIO の LED は、 KC705 ボード上の電源スイ ッチの近くにあ り ます。

° ゴールデン イ メージの場合、 GPIO の LED [7:0] は右から左に点滅します。

° アップデート イ メージの場合、 GPIO の LED [7:0] は左から右に点滅します。

1. KC705 ボード上のスイ ッチ SW13 で適切なコンフ ィギュレーシ ョ ン モード (マスター SPI) が選択されているこ とを確認します (図 4 を参照)。 SPI コンフ ィギュレーシ ョ ン モードの場合、 モード ピン M[2:0] は 001 に設定されます。

2. JTAG ケーブルを接続し、 KC705 ボードの電源を投入します。

3. Vivado ハードウェア マネージャーを起動して、 デモ ボードに接続します。 次に、 前のセクシ ョ ンで生成したフラ ッシュ イ メージ (.mcs) をプログラムするか、 またはリ ファレンス デザインと共に提供される ready_to_download ファ イルに含まれている kc705_multiboot_spi.mcs ファ イルを使用します。 KC705 ボード上で Quad SPI フラ ッシュをプログラムする手順については、 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908) [参照 3] を参照して ください。

4. SPI フラ ッシュのプログラムが正常に完了したら、 PROGRAM_B ピン (PROG_B ボタン、 SW14) をパルスして、FPGA をフラ ッシュからブート します。 別の方法と して、 ハード ウェア マネージャーでデバイスを右ク リ ッ ク して、Vivado の GUI オプシ ョ ン [Boot from Configuration Memory Device] を使用するこ と もできます (図 5 を参照)。

X-Ref Target - Figure 4

図 4: KC705 SW13: モード  ピンの設定

1 2 3 4 5M

2M

1M

0OFF Position = 0

ON Position = 1

X1247_04_052615

A24

A25

SW

13

Page 8: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

ハードウェア検証

XAPP1247 (v1.0) 2015 年 8 月 13 日  8japan.xilinx.com

5. ボード上で DONE ピンのステータスを確認します。 SPI フラ ッシュから FPGA のコンフ ィギュレーシ ョ ンが正常に完了する と、 DONE は High になり ます。

6. KC705 ボード上の GPIO の LED [7:0] が、 左から右に連続して点滅しているこ とを確認します。 LED[7] > LED[6] > LED[5] > LED[4] > LED[3] > LED[2] > LED[1] > LED[0] という連続の点滅は、アップデート イ メージが正常に読み込まれたこ とを示します。

さ らに、 [Hardware Device Properties] から [REGISTER] 下の [BOOT_STATUS] レジスタを調べて、 マルチブート を開始した INTERNAL_PROG (IPROG) フラグがアップデート ビッ ト ス ト リームにジャンプするこ とを確認できます (図 6 を参照)。 BOOTSTS レジスタの詳細は、 『7 シ リーズ FPGA コンフ ィギュレーシ ョ ン ユーザー ガイ ド』 (UG470) [参照 1] を参照して ください。

注記:デバイスのプロパティを確認する前に、 ウ ィンド ウで FPGA を右ク リ ッ ク して、 デバイスを リ フレッシュします。

X-Ref Target - Figure 5

図 5: Vivado ハードウェア マネージャー ‐ コンフ ィギュレーシ ョ ン メモリ  デバイスからのブート

X1247_05_052615

Page 9: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

ハードウェア検証

XAPP1247 (v1.0) 2015 年 8 月 13 日  9japan.xilinx.com

CRC エラーにより ト リガーされるフォールバック

ゴールデン イ メージへのフォールバッ クは、 さまざまな方法で ト リガーされます。 詳細は、 UG470 [参照 1] の 「リ コンフ ィギュレーシ ョ ンおよびマルチブート 」 の章を参照して ください。

このアプリ ケーシ ョ ン ノートでは、 CRC エラーによって ト リガーされるフォールバッ クを示します。 CRC エラーは、アップデート ビッ ト ス ト リームを手動で破損させて誘発できます。 RESET CRC コマンド と CRC コマンド間の多くの位置で、 ビッ ト を反転させるこ とができます。 図 7 と図 8 に例を示します。 ビッ ト ス ト リーム形式の詳細は、 UG470 [参照 1] の 「ビッ ト ス ト リームの構成」 セクシ ョ ンを参照して ください。

1. アップデート ビッ ト ス ト リーム (.bit) を任意の HEX エディ ターで開いて、 ビッ ト ス ト リームの中ほどで一部のデータ バイ ト を反転させます。 たとえば、 図 7 と図 8 で強調表示しているよ うに 00 から 11 にします。

X-Ref Target - Figure 6

図 6: STATUS_VALID フラグおよび INTERNAL_PROG フラグを示すアップデート  イメージ読み込み後の BOOT_STATUS

X1247_06_060415

Page 10: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

ハードウェア検証

XAPP1247 (v1.0) 2015 年 8 月 13 日  10japan.xilinx.com

2. 破損させたアップデート ビッ ト ス ト リームを保存して、 新しいフラ ッシュ プログラム ファ イル (.mcs) を、 この破損させたビッ ト ス ト リームで生成します (write_cfgmem コマンドの説明は、 6 ページの 「SPI フラ ッシュ プログラム ファ イルの生成」 を参照)。

write_cfgmem -format mcs -interface SPIX1 -size 16 -loadbit "up 0 <path>/golden.bit up 0x0400000 <path>/corruputed_update.bit" <path>/filename.mcs

注記: CRC は、 Reset CRC (RCRC) コマンド と EOS (スタート アップ終了) 前の 終 CRC チェッ ク間のビッ ト ス ト リーム内のデータ と コマンドをチェッ ク します。 詳細は、 UG470 [参照 1] の 「ビッ ト ス ト リームの構成」 セクシ ョ ンを参照して ください。 したがって、 コンフ ィギュレーシ ョ ン ロジッ クで CRC エラーを検出できるのは、 ビッ ト ス ト リーム内の RCRC コマンド と CRC コマンド間でデータまたはコマンドが破損している場合のみです。

3. 新しいフラ ッシュ イ メージ ファ イル (.mcs) を作成した場合は、 7 ページの 「ハード ウェア検証」 の手順 1 ~ 6 を繰り返して、 破損させたイ メージで SPI フラ ッシュをプログラムします。

手順 3 では、 リ ファレンス デザインの ready_to_download ディ レク ト リ内に含まれている kc705_multiboot_corrupted_spi.mcs ファ イルを検証用に使用できます。

4. フォールバッ ク操作が正常に実行され、 ゴールデン イ メージが FPGA に読み込まれたこ とは GPIO の LED [7:0] で確認できます。 LED は、 LED[0] → LED[1] → LED[2] → LED[3] → LED[4] → LED[5] → LED[6] → LED[7] の順で右から左に連続的に点滅します。

X-Ref Target - Figure 7

図 7:元のアップデート  イメージ (Top_MultiBoot_Module_B.bit)

X-Ref Target - Figure 8

図 8:破損させたアップデート  イメージ (Top_MultiBoot_Module_B_corrupted.bit)

X1247_07_052615

X1247_08_060215

Page 11: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

ハードウェア検証

XAPP1247 (v1.0) 2015 年 8 月 13 日  11japan.xilinx.com

また、 Vivado ツール内で BOOT_STATUS レジスタを表示して、 デザインのフォールバッ クが正常に完了していることを確認できます。

a. BIT10_1 フラグおよび BIT13_1 フラグは、 IPROG が実行され、 CRC_ERROR が検出されたこ とを示しています。

b. BIT01_0 フラグは、 フォールバッ ク ビッ ト ス ト リームが正常に読み込まれたこ とを示しています。 X-Ref Target - Figure 9

図 9: フォールバックおよび CRC フラグを示す BOOT_STATUS レジスタ

X1246_09_052615

Page 12: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

デバッグおよびチェ ックリス ト

XAPP1247 (v1.0) 2015 年 8 月 13 日  12japan.xilinx.com

デバッグおよびチェ ックリス ト

ファイル生成

1. Vivado グラフ ィカル ユーザー インターフェイス (GUI) を使用してマルチブート プロパティを設定する場合は、 マルチブート プロパティを適用する前に、 ゴールデン デザインとアップデート デザインが正常に合成およびインプリ メン ト されているこ とを確認します。

2. ゴールデン イ メージとアップデート イ メージの両方に対して、 マルチブート ビッ ト ス ト リーム プロパティが適切に設定されているこ とを確認します。

3. ConfigRate オプシ ョ ンが、 ターゲッ ト フラ ッシュによ りサポート されている 大周波数を超えていないこ とを確認します。 UG470 [参照 1] の 「 大コンフ ィギュレーシ ョ ン ク ロ ッ ク周波数の決定」 セクシ ョ ンを参照して ください。

4. MCS ファ イルの生成時に、 データ バス幅の -interface オプシ ョ ンが正し く設定されているこ とを確認します。

5. アップデート イ メージの開始アドレスが、 ゴールデン デザインの NEXT_CONFIG_ADDR プロパティに指定したアドレス と同じであるこ とを確認します。 これを下位アドレスに設定する と、 FPGA プログラム時間は長くなり ます。

コンフ ィギュレーシ ョ ン

1. マルチブート プロパティを追加しなくても、 デザインが予期したとおりに動作するこ とを確認します。 これは、 考えられるすべてのプログラム エラーの問題をデバッグするための有効な確認方法であ り、 問題がデザイン自体にあるのかマルチブートの設定にあるのか根本原因を判断するのに役立ちます。

2. 新しいフラ ッシュ プログラム ファ イル (.mcs) でプログラムする前に、 フラ ッシュ デバイスを完全に消去します。 ブランク チェッ クを実行して、 消去動作を確認します。

3. 追加のデバッグ情報を得るために、 BOOT_STATUS と CONFIG_STATUS の レジスタ データをキャプチャします。 デバイス プロパティをキャプチャする前に、 デバイスを リ フレッシュします。

4. フラ ッシュのゴールデン イ メージ領域が常時保護され、 変更されるこ とがないよ うにします。 アップデートおよび変更できるのはアップデート イ メージ領域のみです

Page 13: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

リファレンス デザイン

XAPP1247 (v1.0) 2015 年 8 月 13 日  13japan.xilinx.com

リファレンス デザイン

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

まとめ

このアプリ ケーシ ョ ン ノートは、 7 シ リーズ FPGA でマルチブート機能を有効にして、 SPI フラ ッシュに格納されているさまざまなビッ ト ス ト リームで FPGA をコンフ ィギュレーシ ョ ンする方法を示しています。 マルチブート機能とフォールバッ ク機能を示すための詳細な リ ファレンス デザインと ク イ ッ ク検証ファイルが提供されています。

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

パラメーター 説明

全般

開発元 ザイ リ ンクス

ターゲッ ト デバイス 7 シ リーズ FPGA

ソース コードの提供 あ り

ソース コードの形式 VHDL

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

なし

シミ ュレーシ ョ ン

論理シ ミ ュレーシ ョ ンの実施 N/A

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

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

N/A

テス ト ベンチの形式 N/A

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

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

インプリ メンテーシ ョ ン

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

使用したインプリ メンテーシ ョ ン ソフ ト ウェア ツール/バージ ョ ン Vivado Design Suite バージ ョ ン 2015.1

スタティ ッ ク タイ ミ ング解析の実施 なし

ハードウェア検証

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

使用したハード ウェア プラ ッ ト フォーム KC705 ボード と 128Mb Micron Quad-SPI フラ ッシュ

Page 14: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

付録 A: 高度なアプリケーシ ョ ン

XAPP1247 (v1.0) 2015 年 8 月 13 日  14japan.xilinx.com

付録 A: 高度なアプリケーシ ョ ン

タイムアウト  エラーを使用したフォールバック

次のエラーによってフォールバッ クが ト リガーされるこ とがあ り ます。

• CRC エラー

• IDCODE エラー

• ウォ ッチド ッグ タイマーのタイムアウ ト エラー

CRC エラーで ト リガーされるフォールバッ クは、 7 ページの 「ハード ウェア検証」 で説明されています。 フォールバッ ク エラーの詳細は、 『7 シ リーズ FPGA コンフ ィギュレーシ ョ ン ユーザー ガイ ド』 (UG470) [参照 1] を参照してください。

信頼性の高いインシステム アップデート ソ リ ューシ ョ ンをインプリ メン トするには、 フラ ッシュ メモ リ内でゴールデン イ メージは常時保護され、 アップデート イ メージのみが変更されるよ うにする必要があ り ます。

マルチブート動作時に、 ゴールデン ビッ ト ス ト リームに組み込まれた IPROG コマンドは、 WBSTAR レジスタで指定されたアドレス位置へジャンプし、 コンフ ィギュレーシ ョ ン ロジッ クは、 ビッ ト ス ト リームを読み込むための次の同期ワードを検索します。 SYNC ワードが検出される と、 コンフ ィギュレーシ ョ ン ロジッ クは、 FPGA をコンフ ィギュレーシ ョ ンするために同期ワードに続く コマンド とデータを待機します。 next_config_addr の位置にアップデート イ メージがないか、またはアップデート イ メージ内の同期ワードが破損している場合、 コンフ ィギュレーシ ョ ン ロジッ クはフラ ッシュ メモリ全体をスキャンして、 有効な同期ワードを検索します。

シ リ アル フラ ッシュ内でアップデート領域が破損している というシナリオでは、 ゴールデン領域へのフォールバッ クをト リガーするために、 ウォ ッチド ッグ タイマーを設定する手段が必要になり ます。 詳細は、 UG470 [参照 1] の 「ウォッチド ッグ タイマー」 セクシ ョ ンを参照してください。

ウォッチド ッグ タイマーの設定

1 つの方法と して、 BITSTREAM.CONFIG.TIMER_CFG プロパティをゴールデン イ メージとアップデート イ メージの両方で使用して、 ビッ ト ス ト リームでタイマー値を有効にできます。 ゴールデン イ メージとアップデート イ メージの XDC ファ イル内で次のビッ ト ス ト リームの Timer プロパティを、 5 ページの表 1 にリ ス ト されているプロパティ と共に設定します。

set_property BITSTREAM.CONFIG.TIMER_CFG <Timer Value> [current_design]

7 シ リーズ FPGA の場合、 ウォッチド ッグ タイマーは専用内部クロ ッ ク CFGMCLK を分周したものを使用します。 タイマー値には、 スタート アップが完了するまでの FPGA コンフ ィギュレーシ ョ ン全体の時間を十分にカバーできる値を指定する必要があ り ます。 スタート アップでの待機時間 (DCI の一致、 MMCM のロ ッ ク、 DONE) も含めるよ う注意して ください。 つま り、 これらの条件に基づき正しいタイマー値を計算するには、 いく らかの労力を必要と します。

このアプリ ケーシ ョ ン ノートでは、 ビッ ト ス ト リーム プロパティを使用する代わりに、 独立したバリ ア イ メージまたはタイマー イ メージを使用してウォッチド ッグ タイマーを有効にするソ リ ューシ ョ ンを提供しています。 バリ ア イ メージやタイマー イ メージを使用する と、 TIMER_CFG ビッ ト ス ト リーム プロパティのタイマー値を計算する必要がなくな ります。

Page 15: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

付録 A: 高度なアプリケーシ ョ ン

XAPP1247 (v1.0) 2015 年 8 月 13 日  15japan.xilinx.com

リ ファレンス デザインに付属する Tcl スク リプ ト を使用して、 バリ ア イ メージと、 そのイ メージをゴールデン イ メージやアップデート イ メージと共にフラ ッシュ メモ リ内に配置するためのアドレス マップを生成できます。 図 10 では、 フラ ッシュ メモ リ コンポーネン ト と、 マルチブート アプリ ケーシ ョ ンでタイマー イ メージをインプリ メン トするコンフ ィギュレーシ ョ ン手順を示しています。

重要: SPI フラ ッシュ メモ リ内のゴールデン、 timer1、 および timer2 領域は、 常時保護しておく必要があ り ます。 変更できるのはアップデート イ メージ領域のみです。

図 10 に概要が示されている、 バリ ア イ メージを使用するデザイン インプリ メンテーシ ョ ンの基本プロセスは、 次のとおりです。

1. コンフ ィギュレーシ ョ ン ロジッ クは、 フラ ッシュのアドレス 0 に格納されている、 ゴールデン ビッ ト ス ト リーム内のコマンドの実行を開始します。 ゴールデン ビッ ト ス ト リームに組み込まれている IPROG コマンドは、 ゴールデンの WBSTAR レジスタに格納されているアドレス位置へのジャンプを制御します。 この例では、 WBSTAR は timer1 の開始アドレスを指します。

X-Ref Target - Figure 10

図 10: マルチブート、 フォールバック、 バリアのフラッシュ  メモリ  コンポーネン ト、およびコンフ ィギュレーシ ョ ン手順

Page 16: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

付録 A: 高度なアプリケーシ ョ ン

XAPP1247 (v1.0) 2015 年 8 月 13 日  16japan.xilinx.com

2. アップデート イ メージの前の timer1 またはバリ ア イ メージでは、 コンフ ィギュレーシ ョ ン ロジッ クを検証済みの同期ワードに同期するために役立つ短時間のタイマーが有効になっており、 破損したアップデート イ メージによ り正常な同期が損なわれる可能性が小さ くな り ます。

3. a. 検証済みのアップデート イ メージが timer1 の後に存在します。 この場合、 アップデート イ メージの読み込みは正常です。

b. アップデート イ メージの先頭で破損があるか、 データのセクターが消去されていて同期ワード (AA995566) があ りません。 コンフ ィギュレーシ ョ ン ロジッ クは、 同期ワード (AA995566) を確認後にビッ ト ス ト リームの確認を開始します。 同期ワードが破損しているかまたは消去されている場合、 データまたはコマンドは無視され、 コンフ ィギュレーシ ョ ン ロジッ クはフラ ッシュ全体のスキャンを続行して有効な同期ワードを検索します。 このシナリオでは、 timer1 に設定されているタイマー値がウォッチド ッグ タイムアウ ト エラーによってフォールバッ クをト リガーし、 フェイルセーフ イ メージまたはゴールデン イ メージが読み込まれます (手順 5 に続きます)。

4. a. 検証済みのアップデート イ メージが timer1 の後に存在する場合、 timer2 は無視されます。

b. アップデート領域が破損しているか、 アップデート イ メージの終わり部分でデータのセクターが消去されています。 このシナリオでは、 コンフ ィギュレーシ ョ ン ロジッ クはコンフ ィギュレーシ ョ ンを終了するための EOS (スタート アップ終了) を確認できません。 timer2 が有効になり、 アドレス 0 (ゴールデン イ メージの位置) へのフォールバッ クがウォッチド ッグ タイムアウ ト エラーによって ト リガーされます。

5. タイムアウ ト エラーによ り ト リガーされるフォールバッ クの結果と して、 ゴールデン フェイルセーフ イ メージが読み込まれます。

バリアの構成

スク リプ ト を使用して作成されるバリ アまたはタイマー イ メージは、 コンフ ィギュレーシ ョ ン ロジッ クを同期し、 コンフ ィギュレーシ ョ ン タイマー値を設定するための一連のコマンドです。 表 3 に、 TIMER レジスタを有効にするバリ ア イメージに含まれている基本コマンドを示します。

アドレス テーブルとバリア イメージを作成する  Tcl スクリプ ト  

Tcl スク リプ ト multiboot_address_table.tcl が、 ダウンロード可能な xapp1247.zip ファ イルで提供されています。

表 3:バリア イメージの構成

FFFFFFFF ダ ミー パッ ド ワード

000000BB バス幅自動検出、 ワード 1

11220044 バス幅自動検出、 ワード 2

FFFFFFFF ダ ミー パッ ド ワード

FFFFFFFF ダ ミー パッ ド ワード

AA995566 同期ワード

20000000 NOOP

20000000 NOOP

30022001 パケッ ト タイプ 1 コマンド : TIMER レジスタに書き込みます。

xxxxxxxx TIMER レジスタ値。 TIMER_CFG を有効にし、 TIMER 値を設定します。

20000000 NOOP

20000000 NOOP

Page 17: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

付録 A: 高度なアプリケーシ ョ ン

XAPP1247 (v1.0) 2015 年 8 月 13 日  17japan.xilinx.com

アドレス テーブルとバリ ア イ メージを作成するには、 リ ファレンス デザイン ファ イルを任意のディ レク ト リに解凍します。 Vivado コマンド プロンプ ト を開いて、 ディ レク ト リ を、 リ ファレンス デザイン ディ レク ト リ内のスク リプ トの場所を指すよ うに変更します。 リ ファレンス デザインには、 multiboot_address_table.tcl スク リプ トが格納された multiboot_address_table フォルダーがあ り ます。

次の構文を使用して、 スク リプ ト を実行します。

>> tclsh multiboot_address_table.tcl <flash_type> <data_width> <freq_mhz> < flash_size_mbit> <bitstream_size>

説明 :

flash_type: テス ト されるフラ ッシュ タイプは spi、 bpi

data_width: フラ ッシュのデータ幅 = 1、 2、 4、 16

freq_mhz: CCLK の周波数 = ConfigRate の設定値

flash_size_mbit: フラ ッシュ デバイスのサイズ (Mb 単位)

bitstream_size: ビッ ト ス ト リームのサイズ (バイ ト単位)

注記: ビッ ト ス ト リームのサイズについては、 UG470 [参照 1] を参照してください。 圧縮が有効である場合は、 圧縮後のビッ ト ス ト リーム サイズを入力します。 圧縮されたビッ ト ス ト リームの場合は、 後続のビルドのサイズが大きく異なる可能性があ り、 このスク リプ ト を再実行する必要があるこ とに注意してください。

Tcl スク リプ ト を実行する と、 timer1 と timer2 の 2 つのタイマー イ メージが生成されます。 これらのファイルは、 スク リプ ト を実行したのと同じディ レク ト リ内に格納されます。 このスク リプ トはさ らに、 シ リ アル フラ ッシュ内でのファイルの場所を示すアドレス マップの位置と、 4 つのファイルを結合する write_cfgmem コマンド も出力します。 次に示すのは、 スク リプ トの実行後にWindows コマンド プロンプ トに表示されるサンプル出力です。

c:\xapp1247\multiboot_address_table>tclsh multiboot_address_table.tcl spi 1 3 12 8 1132000Flash type : SPIFlash width (bits) : 1CCLK frequency (MHz) : 3Flash density (Mbits) : 128Bitstream size (B) : 1132000

Writing Timer: timer1.binWriting Timer: timer2.bin

Golden bitstream address : 0x00000000Timer1 image address : 0x0013FC00Multiboot image address : 0x00140000Timer2 image address : 0x00280000

write_cfgmem command: write_cfgmem -format mcs -size 16 -interface SPIx1 -loadbit “up 0x00000000 <golden>up 0x00140000 <multiboot>“ -loaddata “up 0x0013FC00 timer1.bin up 0x00280000 timer2.bin“ <output_mcs>

Page 18: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

参考資料

XAPP1247 (v1.0) 2015 年 8 月 13 日  18japan.xilinx.com

ゴールデン デザインのインプリ メンテーシ ョ ンで、 NEXT_CONFIG_ADDR の設定 (5 ページの表 1 の Addr A1) が、 スクリプ トの実行後に表示される timer1 イ メージの開始アドレス出力を指しているこ とを確認します。 たとえば、 前のページに示すサンプルのアドレス マップの場合、 ゴールデン イ メージの WBSTAR レジスタには、 ビッ ト ス ト リーム プロパティ NEXT_CONFIG_ADDR で設定される 0x0013FC00 が格納されます。

set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x0013FC00 [current_design]

マルチブート を有効にするアップデート デザインの制約は、 未変更のままです。

サンプル出力で、 timer1 と timer2 の .bin ファ イルには write_cfgmem コマンド と共に -loaddata スイ ッチが使用されており、 ゴールデンおよびアップデートの .bit ファ イルには -loadbit スイ ッチが使用されているこ とに注意してください。 シリ アル フラ ッシュ プログラム ファ イルの生成中は、 各ファイルの開始アドレス シーケンスに注意を払ってください。

write_cfgmem コマンドの各オプシ ョ ンの詳細は、 Vivado ツールで次のよ うに -help コマンドを実行して確認できます。

write_cfgmem -help

参考資料

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

1. 『7 シ リーズ FPGA コンフ ィギュレーシ ョ ン ユーザー ガイ ド』 (UG470: 英語版、 日本語版)

2. 『SPI フラ ッシュを使用した 7 シ リーズ FPGA のコンフ ィギュレーシ ョ ン』 (XAPP586: 英語版、 日本語版)

3. 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908: 英語版、 日本語版)

4. 『Kintex-7 FPGA データシート : DC 特性およびスイ ッチ特性』 (DS182: 英語版、 日本語版)

5. 『Kintex-7 FPGA 用 KC705 評価ボード ユーザー ガイ ド』 (UG810)

6. Kintex-7 FPGA KC705 評価キッ ト ウェブサイ ト

改訂履歴

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

日付 バージョ ン 内容

2015 年 8 月 13 日 1.0 初版

Page 19: :7 FPGA 7 FPGA SPI - Xilinx...マルチブートの基本 XAPP1247 (v1.0) 2015 年 8 月 13 日 2 japan.xilinx.com このアプリケーション ノートは、主に次のセクションで構成されています。•

法的通知

XAPP1247 (v1.0) 2015 年 8 月 13 日  19japan.xilinx.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

他の指定されたブランドは、 米国およびその他各国のザイ リ ンクス社の商標です。 すべてのその他の商標は、 それぞれの保有者に帰属

します。