18
XAPP1257 (v1.0) 2015 9 30 japan .xilinx.com 1 本資料は表記のバージ ョ ンの英語版を翻訳し たもので、内容に相違が生じ る場合には原文を優先し ます。 資料によっては英語版の更新に対応していないものがあります。 日本 語版は参考用 と し てご使用の上、 最新情報につき ま し ては、 必ず最新英語版を ご参照 く だ さ い。 概要 このアプリケーション ノ ー ト では、 UltraScale™ FPGA SPI ( シリアル ペリフェラル インターフェイス) コンフィギュレー ション モードで使用するマルチブート デザインを構築する場合の主な概念について説明し ます。 UltraScale FPGA のマル チブー ト 機能は、 FPGA アプ リ ケーシ ョ ンの制御下で複数の FPGA ビ ッ ト ス ト リ ームの読み込みを可能にし ます。 こ こ で は、 ビッ ト ス ト リーム設定を使用してフォールバッ ク機能をインプリ メン トする手順、 フォールバッ クを開始するさまざ まな方法、 さ らにはブー ト ステータス (BOOTSTS) レジスタを使用してフォールバック動作をデバッグおよび検証する方 法について説明し ます。 このアプ リ ケーシ ョ ン ノ ー ト には、 SPI モードを使用する UltraScale FPGA のフォールバック機能 を検証するためのリファレンス デザインが含まれています。 このアプリケーション ノートの リファレンス デザイン ファイル は、ザイリンクスのウェブサイトからダウンロードでき ます。 デザイン フ ァ イ ルの詳細は、 「リファレンス デザイン」 を参照してください。 はじめに UltraScale FPGA のマルチブートおよびフォールバックは、 フィールドでのシステム アップグレードをサポートする機能 です。 フ ィ ール ド で ビ ッ ト ス ト リ ーム イメージをアップグレードできるため、設計者には非常に大きなメ リ ッ ト となりま す。 FPGA のマルチブート機能は、 オンザフライでイ メージを切り替えるこ とができます。 マルチブート コンフィギュ レーシ ョ ン プロセス中にエラーが検出されると、 FPGA はフォールバッ ク機能を開始して、 検証済みのデザイン ( ゴール デン イメージ) をデバイスに読み込むこ とができます。 こ の資料では、 SPI (x1/x2/x4) コンフィギュレーション インターフェイスを使用する UltraScale FPGA のマルチブー ト およ びフォールバッ ク機能について説明し ます。 このアプ リ ケーシ ョ ンでは、 SPI x4 コンフィギュレーション モー ド を使用す るザイリンクスの KCU105 開発ボード上で Micron 社製 N25Q256 シリアル NOR フラッシュ メモリ デバイスを使用してい ます。 SPI x4 コンフィギュレーション インターフェイスの詳細は、 『UltraScale アーキテクチャ コンフィギュレーション ユーザー ガイド』 (UG570) [参照 1] を参照してください。 アプリケーション ノート : UltraScale FPGA XAPP1257 (v1.0) 2015 9 30 UltraScale FPGA SPI フラッシュを使用する マルチブートおよびフォールバック 著者 : Wendy Curran

:UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 1

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

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

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

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

この資料では、 SPI (x1/x2/x4) コンフ ィギュレーシ ョ ン インターフェイスを使用する UltraScale FPGA のマルチブートおよびフォールバッ ク機能について説明します。 このアプリ ケーシ ョ ンでは、 SPI x4 コンフ ィギュレーシ ョ ン モードを使用するザイ リ ンクスの KCU105 開発ボード上で Micron 社製 N25Q256 シ リ アル NOR フラ ッシュ メモ リ デバイスを使用しています。 SPI x4 コンフ ィギュレーシ ョ ン インターフェイスの詳細は、 『UltraScale アーキテクチャ コンフ ィギュレーシ ョ ンユーザー ガイ ド』 (UG570) [参照 1] を参照して ください。

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

XAPP1257 (v1.0) 2015 年 9 月 30 日

UltraScale FPGA の SPI フラッシュを使用するマルチブートおよびフォールバック著者 : Wendy Curran

Page 2: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブートおよびフォールバックの基本

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2

マルチブートおよびフォールバックの基本UltraScale アーキテクチャは、 SPI x1、 x2、 および x4 でのマルチブート をサポート しており、 FPGA は複数のビッ ト ス トリームが格納されている SPI フラ ッシュ デバイスからビッ ト ス ト リームを読み込むこ とができます。 このモードの場合、FPGA アプリ ケーシ ョ ンがマルチブート動作を開始して、 別のビッ ト ス ト リームで FPGA を リ コンフ ィギュレーシ ョ ンします。 マルチブート動作が開始される と、 FPGA は通常どおりにコンフ ィギュレーシ ョ ン プロセスを再開し、 専用のマルチブート ロジッ ク、 ウォーム ブート開始アドレス (WBSTAR) レジスタ、 および BOOTSTS レジスタ以外のコンフ ィギュレーシ ョ ン メモ リ を消去します。 その後、 SPI フラ ッシュ デバイスからの新しいビッ ト ス ト リームでリ コンフ ィギュレーシ ョ ンを実行します。

フォールバックが開始される条件

コンフ ィギュレーシ ョ ン中に次のエラーが生じる とフォールバッ クが開始されます。

• IDCODE エラー

• 巡回冗長検査 (CRC) エラー

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

フォールバッ クは、 ビッ ト ス ト リーム オプシ ョ ンの ConfigFallback でも有効にできます。 フォールバッ ク リ コンフ ィギュレーシ ョ ン中は、ウォッチド ッグ タイマーが無効になり ます。フォールバッ ク リ コンフ ィギュレーシ ョ ンでエラーが発生する と、 コンフ ィギュレーシ ョ ンが停止し、 INIT_B と DONE の両方が Low に維持されます。

ゴールデン イ メージ

FPGA デバイスに電源が投入される と、 アドレス ロケーシ ョ ン 0 からゴールデン イ メージが読み込まれます (図 1)。 ゴールデン イ メージには、WBSTAR (next_config_addr) レジスタで指定される上位アドレス空間があ り ます。WBSTAR にデフォルト以外のアドレス値が設定されている場合は、 IPROG が自動的にビッ ト ス ト リームに組み込まれます。電源が投入される と、ゴールデン イ メージの読み込みが開始され、この上位アドレス空間からマルチブート イ メージのブートが開始されます。マルチブート イ メージは複数用意しておく こ とが可能で、任意のデザインからほかのイ メージの読み込みを開始できます。マルチブート イ メージのブート中にエラーが発生し、コンフ ィギュレーシ ョ ンを完了できなかった場合は、フォールバッ ク回路がアドレス 0 からゴールデン イ メージの読み込みを開始します。

Page 3: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブートおよびフォールバックの基本

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 3

マルチブート イメージ

電源が投入される と、上位アドレス空間に格納されているマルチブート イ メージが 初に読み込まれます。 このイ メージのコンフ ィギュレーシ ョ ンが正常に終了しなかった場合は、 フォールバッ クが自動的に開始され、 アドレス 0 に格納されているゴールデン イ メージが読み込まれます。フォールバッ ク機能は、マルチブート イ メージの読み込みが正常終了しなかった場合にシステムを回復し、ゴールデン イ メージの読み込みを可能にします。この段階でゴールデン イ メージを読み込むこ とで、フラ ッシュ内のエラーを修正でき、マルチブート イ メージから別のコンフ ィギュレーシ ョ ンを開始できます。

X-Ref Target - Figure 1

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

Page 4: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 4

マルチブート フォールバック リファレンス デザインこのセクシ ョ ンでは、 マルチブート フォールバッ ク リ ファレンス デザインの生成および検証方法について説明します。

マルチブート デザインの生成

マルチブート リファレンス デザインのビッ トス ト リーム設定

表 1 に、 マルチブート デザインに必要なビッ ト ス ト リーム設定を示します。 この表には、 デフォルト値、 設計可能な値、およびリ ファレンス デザインで使用されるオプシ ョ ンが含まれています。

注記 : その他に利用できるビッ ト ス ト リーム オプシ ョ ンについては、 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908) [参照 2] を参照してください。

ビッ ト ス ト リームの設定は、 Tcl コンソールから設定できますが、 XDC ファ イルで直接設定するこ と も可能です。 このリファレンス デザインに特有の設定については、 後続のセクシ ョ ンを参照してください。

表 1 : ビッ トス ト リーム設定

設定デフォルト

値設定可能な

値ゴールデン イメージ

マルチブート イメージ

説明

BITSTREAM.CONFIG.NEXT_CONFIG_ADDR None <文字列> 0x0400000 N/A マルチブー ト セッ ト ア ップで、 次の コ ン フ ィ ギ ュ レーシ ョ ンの開始アドレスを設定する。

BITSTREAM.CONFIG.NEXT_CONFIG_REBOOT Enable Enable、Disable

Enable N/A Disable に設定し た場合、IPROG コマン ド がビ ッ トファ イルから削除される。

BITSTREAM.CONFIG.SPI_32BIT_ADDR No No、 Yes Yes Yes SPI 32 ビ ッ ト ア ド レス形式を有効にする。256Mb またはそれよ り 大規模なス ト レージを持つ SPI デバイ スの場合に必要。

BITSTREAM.CONFIG.SPI_BUSWIDTH None NONE、1、 2、 4

4 4 サードパーティの SPI フラ ッシ ュ デバイ スからのマスター SPI コ ンフ ィ ギ ュ レーシ ョ ンの場合には、 SPI バスをデュアル (x2) またはクワッド (x4) モードに設定する。

BITSTREAM.CONFIG.CONFIGFALLBACK Enable Enable、Disable

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

BITSTREAM.GENERAL.COMPRESS False True、False

複数のフレームをビッ ト ス トリームに一度に書き込む機能を使用して、 ビッ ト ス ト リーム (.bit) フ ァ イルだけでなく、 ビッ ト ス ト リームのサイズを小さ くする。 Compress オプシ ョ ンを使用しても、 ビット ス ト リ ーム サイズが小さくなる とは限らない。

Page 5: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 5

XDC ファイルを使用して設定

このセクシ ョ ンでは、 XCD ファ イルを使用した場合のビッ ト ス ト リームの設定を示します。

ゴールデン イメージ

set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x0400000 [current_design]set_property BITSTREAM.CONFIG.NEXT_CONFIG_REBOOT ENABLE [current_design]set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

マルチブート イメージ

set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

注記 :

• ターゲッ ト SPI デバイスは、 Micron 社製 N25Q256 シ リ アル NOR フラ ッシュ デバイスであるため、BITSTREAM.CONFIG.SPI_32BIT_ADDR が設定されています。

• BITSTREAM.GENERAL.COMPRESS はオプシ ョ ンですが、コンフ ィギュレーシ ョ ン時間を短縮する目的で使用されています。

write_cfgmem を使用して SPI フラ ッシュ ファイルを生成

コンフ ィギュレーシ ョ ン メモ リ デバイスをプログラムするには、MCS ファ イルが必要です。Vivado® Design Suite で MCSファ イルを生成する場合は、 write_cfgmem Tcl コマンドを使用します。 次に例を示します。

write_cfgmem -force -format MCS -size 32 -interface SPIx4 -loadbit "up 0x00000000 Golden.bit up 0x00400000 Update.bit" KCU105_multiboot_spix4.mcs

write_cfgmem コマンドの詳細およびすべての有効なオプシ ョ ンについては、 『Vivado Design Suite ユーザー ガイ ド : プログラムおよびデバッグ』 (UG908) [参照 2] および 『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835) [参照 3] を参照するか、 Tcl コンソールで write_cfgmem コマンドのヘルプを実行してください。

ハードウェアでデザインを検証

このセクシ ョ ンでは、ハード ウェアでマルチブート フォールバッ ク リ ファレンス デザインを検証する方法を説明します。

ハードウェア要件

• KCU105 評価ボード

• KCU105 Digilent USB-to-JTAG モジュールへプラグインするための USB A-to-micro-B ケーブルまたはザイ リ ンクスのプラ ッ ト フォーム ケーブル USB II

ソフ トウェア要件

• Vivado Design Suite 2015.1

予想されるイメージの動作

リ ファレンス デザインにはゴールデン イ メージとアップデート イ メージが含まれており (BIT ファ イルと MCS ファ イルの両方を提供)、 これらを使用して各イ メージの動作を検証できます。

• ゴールデン イ メージは、 GPIO LED [3:0] を左から右 (ボード上の 3 から 0) へ順番に点灯します。

Page 6: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 6

• アップデート イ メージは、 GPIO LED [3:0] を右から左 (ボード上の 0 から 3) へ順番に点灯します。

ボードのセッ トアップ

SPI コンフ ィギュレーシ ョ ンを正常に実行するには、 SW15 が正しい SPI コンフ ィギュレーシ ョ ン モードを示しているかを確認する必要があ り ます。 FPGA モード ピン M1 および M0 は、 それぞれロジッ ク 0 およびロジッ ク 1 へ接続するよ うに配線されます。 FPGA モード ピン M2 は SW15 の位置 6 に接続され、 M2 ネッ トがロジッ ク 0 にプルダウンされて QuadSPI (QSPI) モードの選択が可能にな り ます (図 2)。 SW15.6 は、 デュアル QSPI フラ ッシュにプログラムされたビッ ト ス トリームを使用して、 UltraScale FPGA のコンフ ィギュレーシ ョ ンを実行します。

フラ ッシュのプログラム

フラ ッシュ デバイスをプログラムする場合、 まず 初に Vivado IDE (統合設計環境) でハードウェア ターゲッ トへの接続が必要になり ます。 次の手順にしたがって、 Vivado IDE でハードウェア ターゲッ トへ接続します。

1. Vivado IDE の左側にある Flow Navigator の [Program and Debug] セクシ ョ ンで [Open Hardware Manager] をク リ ッ ク します。

2. Hardware Manager が表示され、 [Open Target] をク リ ッ ク します。

3. [Auto Connect] をク リ ッ ク して、 デフォルト設定を使用してボードへの自動接続を実行します (図 3)。

X-Ref Target - Figure 2

図 2 : KCU105 SW15

X-Ref Target - Figure 3

図 3 : Hardware Manager でボードへ自動接続

Page 7: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 7

4. Hardware Manager コンソールに FPGA が表示される と、 その FPGA を右ク リ ッ ク して [Add Configuration MemoryDevice] をク リ ッ ク します (図 4)。

X-Ref Target - Figure 4

図 4 : Vivado IDE でコンフ ィギュレーシ ョ ン メモリ デバイス オプシ ョ ンを追加

Page 8: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 8

5. このリ ファレンス デザイン用のデバイス (例 : N25Q256-1.8v-spi-x1_x2_x4) をク リ ッ ク して [OK] をク リ ッ ク します (図 5)。

6. コンフィギュレーション メモリ デバイスのプログラムを求めるプロンプトが表示されたら [OK] をク リ ックします。

X-Ref Target - Figure 5

図 5 : Vivado IDE でコンフ ィギュレーシ ョ ン メモリ デバイスを追加

Page 9: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 9

7. 以前に生成された MCS ファ イル (.../ready_to_download/KCU105_multiboot_spix4.mcs) を選択し、 [OK]をク リ ッ ク してプログラムを開始します (図 6)。

マルチブート動作の検証

フラ ッシュ デバイスのプログラムが正常に完了する と、 Vivado IDE に図 7 と同じウインド ウが表示されます。

次のいずれかの方法で、 フラ ッシュ デバイスにプログラムされたイ メージを使用して FPGA を起動します。

1. KCU105 ボードの SW4 をパルスして、 PROGRAM_B をパルスします。

2. boot_hw_device TCL コマンド (boot_hw_device [lindex [get_hw_devices] 0]) を使用します。

3. Vivado IDE でデバイスを右ク リ ッ ク して [Boot from Configuration Memory Device] をク リ ッ ク します (図 8)

X-Ref Target - Figure 6

図 6 : Vivado IDE でコンフ ィギュレーシ ョ ン ファイルを追加

X-Ref Target - Figure 7

図 7 : フラ ッシュのプログラ ミング完了を示すウインドウ

Page 10: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 10

次の方法で、 FPGA が SPI フラ ッシュのアップデート ビッ ト ス ト リームで正常にコンフ ィギュレーシ ョ ンされているかを検証します。

• ボード上の DONE ピン LED が点灯しているかを確認します。

• GPIO LEDs [3:0] が右から左へ順番に点灯し、 アップデート ビッ ト ス ト リームが正常に読み込まれたこ とを示しているかを確認します。

• Vivado IDE で FPGA を右ク リ ッ ク して [Hardware Device Properties] をク リ ッ ク し、 デバイスを リ フレッシュします (図 9)。

X-Ref Target - Figure 8

図 8 : Vivado Hardware Manager の [Boot from Configuration Memory Device] オプシ ョ ン

Page 12: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 12

• Vivado IDE の [Properties] ウ ィンド ウで、 [REGISTER] の下にある [BOOT_STATUS] と [CONFIG_STATUS] を展開表示し ます。 BOOT_STATUS レジス タでは、 ア ッ プデー ト ビ ッ ト ス ト リ ームへのジ ャ ンプを も た ら し た IPROG(INTERNAL_PROG) フラグが High であるこ とを確認します。 CONFIG_STATUS レジスタでは、 DONE_PIN が High を示しています (図 10)。

X-Ref Target - Figure 10

図 10 : IPROG および DONE_PIN が High であることを示す BOOT_STATUS

Page 13: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 13

フォールバックの例 - IDCODE エラー

フォールバッ クが正常に機能しているこ とを確認する有効な方法と して、 アップデート イ メージの IDCODE を故意に変更する方法があ り ます。 『UltraScale アーキテクチャ コンフ ィ ギュレーシ ョ ン ユーザー ガイ ド』 (UG570) [参照 1] から、XCKU040 デバイスの IDCODE は X3822093 であるこ とがわかり ます。

• リ ファレンス デザインの KCU105_multiboot_spix4.mcs ファイルをエディ ター ウインドウで開きます (図 11)。X-Ref Target - Figure 11

図 11 : オリジナルのマルチブート イメージ

Page 14: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 14

• アップデート イ メージの IDCODE は MCS ファ イル内に格納されています。 X3822093 を X3823093 に変更して、.../ready_to_download/KCU105_multiboot_corrupt_idcode_spix4.mcs と してファ イルを保存します (図 12)。

• 「フラ ッシュのプログラム」 で説明した手順に従って、 新し く作成された MCS ファ イルで SPI フラ ッシュをプログラムします。

• FPGA が SPI フラ ッシュのゴールデン ビッ ト ス ト リームで正常にコンフ ィギュレーシ ョ ンされているかを検証します。 検証方法は次のとおりです。

° ボード上の DONE ピン LED が点灯しているかを確認します。

° GPIO LEDs [3:0] が左から右へ順番に点灯し、 ゴールデン ビッ ト ス ト リームが正常に読み込まれたこ とを示しているかを確認します。

° GUI で FPGA を右ク リ ッ ク して [Hardware Device Properties] をク リ ッ ク し、 デバイスを リ フレッシュします。

X-Ref Target - Figure 12

図 12 : IDCODE が不正なマルチブート イメージ

Page 15: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

マルチブート フォールバック リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 15

° Vivado GUI の [Properties] ウ ィンド ウで、 [REGISTER] の下にある [BOOT_STATUS] と [CONFIG_STATUS] を展開表示します。 BOOT_STATUS レジスタでは、 アップデート ビッ ト ス ト リームへのジャンプをもたら した IPROG(INTERNAL_PROG) フラグが High であるこ とを確認します。CONFIG_STATUS レジスタでは、DONE_PIN が Highを示しています (図 13)。

フォールバック - ウォッチド ッグ タイマー

場合によっては、コンフ ィギュレーシ ョ ンが開始されない (おそら く、next_config_addr にイ メージがないこ とが原因) またはコンフ ィギュレーシ ョ ンは開始されたが完了しない (おそら く、 アップデート イ メージの SYNC ワードが破損、 またはコンフ ィギュレーシ ョ ン ソースの一部が破損しているこ とが原因) こ とがあ り ます。このよ うな場合には、ビッ ト ス ト リーム オプシ ョ ンでウォッチド ッグ タイマーを使用する と、一定時間の経過後にコンフ ィギュレーシ ョ ンの再試行が可能になり ます。 つま り、 ウォ ッチド ッグ タイマーがタイム アウ トになる と、 コンフ ィギュレーシ ョ ン ロジッ クがフォールバック ビ ッ ト ス ト リ ームを読み込みます。 ウ ォ ッ チ ド ッ グ タ イマーは、 ビ ッ ト ス ト リ ーム プロパテ ィBITSTREAM.CONFIG.TIMER_CFG で設定できます。 この設定は、 ゴールデン イ メージとアップデート イ メージの両方で必要です。

TIMER レジスタはビッ ト ス ト リームの先頭からカウン ト ダウンを開始し、 スタート アップ シーケンスが完了する と無効になり ます。 カウン トが 0 に達する と、 フォールバッ クが開始されます。 考慮する必要がある遅延は、 スタート アップ時のすべての待機時間 (MMCM のロ ッ ク、 DCI の一致、 DONE 信号) です。 TIMER レジスタの動作周波数は約 50MHz です。公称周波数が 50MHz の専用の内部ク ロ ッ ク CFGMCLK を使用します。 このク ロ ッ クは、 256 分周して供給されるため、ウォ ッチド ッグ タイマーのクロ ッ ク周期は約 5,120ns とな り ます。 ウォ ッチド ッグ カウンターは 30 ビッ ト幅のため、 このタイマーを 大で約 5,500 秒までカウン トできます。

X-Ref Target - Figure 13

図 13 : フォールバックと ID_ERROR を示す BOOT_STATUS

Page 16: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

デザインのデバッグ

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 16

デザインのデバッグこのセクシ ョ ンでは、SPI フラ ッシュを使用するマルチブート の一般的な問題をデバッグする場合に役立つ手順を示します。

ファイル生成

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

• SPI ビッ ト ス ト リームのすべてのプロパティが適切に設定されているこ とを確認します (表 1 参照)。

• 「write_cfgmem を使用して SPI フラ ッシュ ファ イルを生成」 で説明したとおりに、 フラ ッシュ プログラ ミ ング ファ イルを生成するためのコマンドに適切なオプシ ョ ンがすべて含まれているこ とを確認します。

• アップデート イ メージの開始アドレスがビッ ト ス ト リーム プロパティ NEXT_CONFIG_ADDR に指定したアドレスと同じであるこ とを確認します。

コンフ ィギュレーシ ョ ン

• マルチブート プロパティを取り入れる前に、 ゴールデン イ メージとアップデート イ メージを両方含むデザインが予想どおりに動作するこ とを確認して ください。 これによって、 問題の根本的原因がデザインにあるか、 またはマルチブート プロパテ ィにあるかを判断できます。 リ ファレンス デザインに含まれる次の MCS ファ イルを使用してコンフ ィギュレーシ ョ ンを実行するこ とで、 動作を確認できます。

° KCU105_golden_spix4.mcs

° KCU105_update_spix4.mcs

これらにはマルチブート プロパティが含まれていませんが、 各イ メージの動作を示すこ とは可能です。

° ゴールデン イ メージは、 GPIO LED [3:0] を左から右へ順番に点灯します。

° アップデート イ メージは、 GPIO LED [3:0] を右から左へ順番に点灯します。

• デザインでフラ ッシュのプログラ ミ ングを実行する前に、フラ ッシュ デバイスが完全に消去されているこ とを確認します。 消去されたかは、 ブランク チェッ ク オプシ ョ ンで確認できます。

• マルチブート デザインのデバッグでは、 BOOT_STATUS および CONFIG_STATUS レジスタを使用してエラーや動作の問題を確認します。 レジスタを読み出す前に、 デバイスのリ フレッシュが完了しているこ とを確認してください。

まとめこのアプ リ ケーシ ョ ン ノー トは、フ ィールドでのシステム アップデート をサポートする UltraScale FPGA のマルチブート機能を使用する方法を説明し、 SPI (x4) コンフ ィギュレーシ ョ ン インターフェイスでこの機能を実装する際のガイダンスを提供しています。 また、 マルチブート機能の動作を検証するための リ ファレンス デザインも提供しています。

Page 17: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

リファレンス デザイン

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 17

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

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

参考資料1. 『UltraScale アーキテクチャ コンフ ィギュレーシ ョ ン ユーザー ガイ ド』 (UG570 : 英語版、 日本語版)

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

3. 『Vivado Design Suite Tcl コマンド リ ファレンス ガイ ド』 (UG835 : 英語版、 日本語版)

4. 『KCU105 ボード ユーザー ガイ ド』 (UG917)

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

パラメーター 説明

全般

開発者 Wendy Curran

ターゲッ ト デバイス Kintex UltraScale FPGA

ソース コードの提供 あ り

ソース コードの形式 VHDL

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

N/A

シ ミ ュレーシ ョ ン

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

タイ ミ ング シ ミ ュレーシ ョ ンの実施 N/A

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

N/A

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

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

SPICE/IBIS シ ミ ュレーシ ョ ンの実施 N/A

インプリ メンテーシ ョ ン

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

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

スタティ ッ ク タイ ミ ング解析の実施 N/A

ハードウェア検証

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

使用したハード ウェア プラ ッ ト フォーム KCU105 評価ボード、256Mb Micron 社製シ リ アル NOR フラ ッシュ メモ リ (N25Q256A)

Page 18: :UtlraScael FPGA UltraScale FPGA の SPI フラッ …...マルチブートおよびフォールバックの基本 XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 2 マルチブートおよびフォールバックの基本

改訂履歴

XAPP1257 (v1.0) 2015 年 9 月 30 日 japan.xilinx.com 18

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

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

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

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

クスは、 本通知をもって、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますがこれらに限られません)、 す

べての保証および条件を負わない (否認する ) ものと します。 また、 (2) ザイ リ ンクスは、本情報 (貴殿または貴社による本情報の使用を含

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

にある [フ ィードバッ ク送信] ボタンをク リ ッ クする と表示されるフォームからお知らせください。フ ィードバッ クは日本語で入力可能で

す。いただきましたご意見を参考に早急に対応させていただきます。なお、 このメール アドレスへのお問い合わせは受け付けており ませ

ん。 あらかじめご了承ください。

日付 バージョ ン 内容

2015 年 9 月 30 日 1.0 初版