34
XAPP1280 (v1.0.1) 2016 4 15 1 japan .xilinx.com 本資料は表記のバージ ョ ンの英語版を翻訳し たもので、内容に相違が生じ る場合には原文を優先し ます。 資料によっては英語版の更新に対応していないものがあります。 日本 語版は参考用 と し てご使用の上、 最新情報につき ま し ては、 必ず最新英語版を ご参照 く だ さ い。 概要 シリアル NOR フラッシュ メモリ (SPI フラッシュ メモリ ) は、 UltraScale™ FPGA でよく使用されるコンフィギュレーショ ソ リ ューシ ョ ンの 1 つです。 コ ン フ ィ ギ ュ レーシ ョ ン後不揮発性ユーザー データを格納したり、 コンフィギュレー ション イメージをリモートからアップデートする場合、 このソ リューションはさらに有用です。 このアプリケーション ノートとリファレンス デザインでは、 KCU105 評価ボードを使用してコンフィギュレーション後に Kintex® UltraScale FPGA から SPI フラッシュ メモリにアクセスする方法を紹介します。開発環境には、 Vivado® Design Suite 2015.4 以降を使 用します。 このアプリケーション ノートの は、ザイリンクスのウェブサイトからダウンロードでき ます。 デザイン フ ァ イ ルの詳細は、 「リファレンス デザイン」 を参照してください。 はじめに このアプリケーション ノートのリファレンス デザインは、 MicroBlaze® Soft Processor コアを使用して AXI Quad SPI コア STARTUPE3 プ リ ミ テ ィ ブに接続し、 コ ン フ ィ ギ ュ レーシ ョ ン後に専用の SPI インターフェイス経由で評価ボード上の SPI フラッシュ メ モ リ に読み出 し /書き込みアクセスを実行します。 1 に、 コンフィギュレーション後のリファレンス デザインの動作を示します。 重要 : このアプリケーション ノ ー ト は、 更新用イ メ ージがパーシ ャル ビ ッ ト ス ト リ ームの場合には使用でき ません。 パーシャル ビッ トスト リームのプログラム時にはシャッ トダウン コマンドを使用するため、 STARTUPE3 ブロックから USRCCLK0/USRCLKTS 接続が無効にな り 、 SPI フラッシュ メモリにアクセスできないためです。 アプリケーション ノート : UltraScale FPGA XAPP1280 (v1.0.1) 2016 4 15 コンフィギュレーション後に UltraScale FPGA から STARTUPE3 を使用して SPI ラッシュ メモリにアクセスする方法 著者 : Steven HowellShashikant JadhavStephanie Tapp X-Ref Target - Figure 1 1: コンフィギュレーション後のリファレンスデザインのアクセス フロー Wally 0x00000000 0x00F50000

コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  1japan.xilinx.com

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

概要

シ リ アル NOR フラ ッシュ メモ リ (SPI フラ ッシュ メモ リ ) は、UltraScale™ FPGA でよ く使用されるコンフ ィギュレーシ ョン ソ リ ューシ ョ ンの 1 つです。 コンフ ィギュレーシ ョ ン後不揮発性ユーザー データを格納したり、 コンフ ィギュレーシ ョ ン イ メージを リモートからアップデートする場合、 このソ リ ューシ ョ ンはさ らに有用です。 このアプリ ケーシ ョ ン ノート と リ ファレンス デザインでは、 KCU105 評価ボードを使用してコンフ ィギュレーシ ョ ン後に Kintex® UltraScale FPGA から SPI フラ ッシュ メモ リにアクセスする方法を紹介します。開発環境には、 Vivado® Design Suite 2015.4 以降を使用します。

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

はじめに

このアプリ ケーシ ョ ン ノートの リ ファレンス デザインは、 MicroBlaze® Soft Processor コアを使用して AXI Quad SPI コアと STARTUPE3 プリ ミ ティブに接続し、 コンフ ィギュレーシ ョ ン後に専用の SPI インターフェイス経由で評価ボード上の SPI フラ ッシュ メモ リに読み出し /書き込みアクセスを実行します。 図 1 に、 コンフ ィギュレーシ ョ ン後のリ ファレンス デザインの動作を示します。

重要 : このアプ リ ケーシ ョ ン ノートは、 更新用イ メージがパーシャル ビッ ト ス ト リームの場合には使用できません。パーシャル ビッ ト ス ト リームのプログラム時にはシャッ ト ダウン コマンドを使用するため、 STARTUPE3 ブロ ッ クからの USRCCLK0/USRCLKTS 接続が無効になり、 SPI フラ ッシュ メモ リにアクセスできないためです。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日

コンフ ィギュレーシ ョ ン後に UltraScale FPGA から  STARTUPE3 を使用して SPI フラッシュ  メモリにアクセスする方法著者 : Steven Howell、 Shashikant Jadhav、 Stephanie Tapp

X-Ref Target - Figure 1

図 1 : コンフ ィギュレーシ ョ ン後のリファレンス デザインのアクセス フロー

Wally

0x00000000

0x00F50000

Page 2: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

はじめに

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  2japan.xilinx.com

SPI コンフ ィギュレーシ ョ ン モードを使用して FPGA をコンフ ィギュレーシ ョ ンする と、初期ビッ ト ス ト リーム イ メージが SPI フラ ッシュ メモ リから読み込まれます。 FPGA の初期コンフ ィギュレーシ ョ ンが完了する と、 通常は SPI コンフ ィギュレーシ ョ ン インターフェイスは未使用のまま とな り ます。 しかし、 SPI フラ ッシュ メモ リの未使用領域には別のコンフ ィギュレーシ ョ ン イ メージやアプリ ケーシ ョ ン データを格納しておく こ とができます。 こ うすれば、 メモ リの追加によるボード スペースの増大を避け、 コス ト を節約できます。 次に、 図 1 に示した リ ファレンス デザインの実行フローを示します。

• 手順 1 : SPI フラ ッシュ メモ リに格納されたゴールデン ビッ ト ス ト リーム イ メージ (golden.bin) で FPGA をコンフ ィギュレーシ ョ ンします。 ゴールデン ビッ ト ス ト リーム イ メージには、 SPI フラ ッシュ メモ リの未使用領域に対する読み出し /書き込みアクセスを可能にするための STARTUPE3 プリ ミ ティブ、 インターフェイス ロジッ ク、 IP コア、 および制約が含まれます。

• 手順 2 : MicroBlaze Soft Processor でアプリ ケーシ ョ ン コードを実行し、 コンピューターに格納された更新用ビッ ト スト リームを一時的に DDR メモ リに書き込んだ後、 SPI フラ ッシュ メモ リに転送してダウンロード します。 この手順は、 UART/Tera Term インターフェイスで制御します。

• 手順 3 : ゴールデン ビッ ト ス ト リーム イ メージ (golden.bin) で初期コンフ ィギュレーシ ョ ンした FPGA を、 SPI フラ ッシュ メモ リに格納した更新用ビッ ト ス ト リーム イ メージ (update.bin) でリ コンフ ィギュレーシ ョ ンします。

本書の構成

• はじめに : リ ファレンス デザインの全体的な動作について説明します。

• システムの概要 : リ ファレンス デザインのブロ ッ ク図、 ファ イル構造、 IP コアのアドレスについて説明します。

• リ ファレンス デザインの実行 : リ ファレンス デザインの実行に必要なハードウェアと ソフ ト ウェアを示し、 次の各手順について説明します。

° ホス ト コンピューターをセッ ト アップする

° KCU105 ボードをセッ ト アップする

° リ ファレンス デザインのファイルをダウンロードする

° リ ファレンス デザインのプロジェク ト を生成する

° プログラ ミ ング ファ イルを生成する

° golden.bin で FPGA をコンフ ィギュレーシ ョ ンする

° SPI フラ ッシュ メモ リに update.bin をプログラムする

° update.bin で FPGA をコンフ ィギュレーシ ョ ンする

• ハードウェア システムの詳細 : ハードウェアのクロ ッ ク ト ポロジ、 AXI Quad SPI コア、 STARTUPE3 プリ ミ ティブの詳細について説明します。 コアのカスタマイズ、 タイ ミ ング、 制約についても説明します。

• ソフ ト ウェア システムの詳細 : リ ファレンス デザインのソフ ト ウェアおよびフラ ッシュ コマンド セッ トについて説明します。

• チェッ ク リ ス ト とデバッグのヒン ト : リ ファレンス デザインを正し く動作させるために確認しておくべき設定項目をまとめます。 よ くある設定の間違いと、 その解決方法について説明します。

• ま とめ : コンフ ィギュレーシ ョ ン後に SPI フラ ッシュ メモ リにアクセスするこ との利点についてまとめます。

Page 3: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

システムの概要

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  3japan.xilinx.com

推奨される設計知識

次についての全般的な知識が望まれます。

• UltraScale FPGA の SPI コンフ ィギュレーシ ョ ン モード『UltraScale アーキテクチャ コンフ ィギュレーシ ョ ン ユーザー ガイ ド』 (UG570) [参照 1] 参照

• Vivado Design Suite『Vivado Design Suite ク イ ッ ク スタート ガイ ド』 (UG975) [参照 2] 参照

システムの概要

このリ ファレンス デザインは、 MicroBlaze Soft Processor コア上で動作するソフ ト ウェアで AXI Quad SPI コアを駆動し、STARTUPE3 プリ ミ ティブ経由で SPI フラ ッシュ メモ リに対する読み出し /書き込みを実行します。 このソフ ト ウェアは、AXI UART 16550 コアを経由して Tera Term が動作しているホス ト コンピューターにコマンド メニューを表示します。 このメニューからコマンドを選択して、 SPI フラ ッシュ メモ リの消去、 プログラム、 ベリ ファ イを実行できます。 フラ ッシュ コマンド セッ ト と ソフ ト ウェア フローについては、 「ソフ ト ウェア システムの詳細」 で説明します。

Vivado Design Suite の IP インテグレーター (IPI) を使用して、 コアを使用したブロッ ク図を作成します。 IPI ブロ ッ ク デザインと STARTUPE3 プリ ミ ティブは、 最上位ラ ッパー デザイン ファ イル (design_1_wrapper.vhd) にインスタンシエート されます (図 2)。

X-Ref Target - Figure 2

図 2 : リファレンス デザインのシステム ブロック図

Wally

Page 4: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

システムの概要

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  4japan.xilinx.com

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

プロジェク ト スク リプ ト ファ イル :

• run_kcu105(.bat/.tcl) ( リ ファレンス デザインのプロジェク ト を作成し、 SDK を起動)

• make_download_files(.bat/.tcl) (ダウンロード用 .bin ファ イル (golden.bin、 update.bin) を作成)

• load_golden(.bat/.tcl) (Vivado デバイス プログラマを使用して golden.bin を SPI フラ ッシュ メモ リにプログラム)

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

• design_1_wrapper.vhd (STARTUPE3 プリ ミ ティブを含む最上位ハードウェア ファ イル) : 次を含みます。

° design_1.vhd (ボード デザイン ハードウェア ラ ッパー )

° design_1.bd (ボード記述ファイル)

• kcu105.xdc (STARTUPE3 のタイ ミ ング制約とピン ロケーシ ョ ンを含む制約ファイル)

• バイナリ コンフ ィギュレーシ ョ ン ファ イル :

° golden.bin (生成済みの初期ビッ ト ス ト リーム イ メージ)

° update.bin (生成済みの更新用ビッ ト ス ト リーム イ メージ)

• flash_qspi_rw.c (SDK ソース コード )

• lscript.ld ( リ ンカー スク リプ ト )

• kcu105_qspi_main.elf (生成済みのソフ ト ウェア イ メージ)

IP コア アドレス マップ

表 1 : IP コア アドレス

IP コア バージ ョ ン入力クロック

周波数オフセッ ト  アドレス

範囲 上位アドレス

MicroBlaze Soft Processor 9.5 100MHz N/A N/A

MIG (ddr4_0) 1.1 300MHz 0x8000_0000 1GB 0xBFFF_FFFF

AXI Quad SPI (axi_quad_spi_0) 3.2 100MHz 0x44A0_0000 64KB 0x44A0_FFFF

AXI Block RAM Controller (axi_bram_ctrl_0) 8.3 100MHz 0xC000_0000 256KB 0xC003_FFFF

AXI Timer 2.0 100MHz 0x41C0_0000 64KB 0x41C0_FFFF

AXI UART 16550 (axi_uart16550_0) 2.0 100MHz 0x44A1_0000 64KB 0x44A1_FFFF

AXI Interconnect (axi_mem_intercon) 2.1 100MHz N/A N/A

Processor System Reset Module (proc_sys_reset) 5.0 100MHz N/A N/A

Page 5: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  5japan.xilinx.com

SPI フラ ッシュ  メモリ  マップ

このリ ファレンス デザインは、 SPI フラ ッシュ メモ リに 2 つのイ メージを格納します (図 1 参照)。

• ゴールデン ビッ ト ス ト リームの開始アドレス : 0x00000000

• 更新用ビッ ト ス ト リームの開始アドレス : 0x00F50000

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

このセクシ ョ ンでは、 次の各手順について説明します。

• ホス ト コンピューターをセッ ト アップする

• KCU105 ボードをセッ ト アップする

• リ ファレンス デザインのファイルをダウンロードする

• リ ファレンス デザインのプロジェク ト を生成する

• プログラ ミ ング ファ イルを生成する

• golden.bin で FPGA をコンフ ィギュレーシ ョ ンする (図 1 の手順 「1」 )

• SPI フラ ッシュ メモ リに update.bin をプログラムする (図 1 の手順 「2」 )

• update.bin で FPGA をコンフ ィギュレーシ ョ ンする (図 1 の手順 「3」 )

必要なハードウェアとソフ トウェア

• KCU105 評価ボード (次のデバイスを実装)

° Kintex UltraScale XCKU040-2FFVA1156E FPGA (U1)

° Micron N25Q256A11E 256Mb Quad SPI フラ ッシュ メモ リ (U35)

° Micron EDY4016AABG-DR-F-D DDR4 512MB メモ リ (U60 ~ U63 の 4 個)

• 電源 : 100 ~ 240VAC 入力、 12VDC 5.0A 出力 (KCU105 評価キッ トに付属)

• 2 本の USB ケーブル (標準 A プラグ/micro-B プラグ)

• ホス ト コンピューター (次が必要)

° 2 つの USB ポート

° Vivado Design Suite が動作する Windows オペレーティング システム

• Vivado Design Suite 2015.4 以降、 Design Edition with SDK

• Tera Term (ターミナル エミ ュレーター プログラム)

• Silicon Labs Dual CP210x USB to UART Bridge ド ラ イバー

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

Page 6: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  6japan.xilinx.com

ホスト  コンピューターをセッ トアップする

インス トール済みでない場合は次の手順を実行します。

1. Vivado Design Suite v2015.4 以降をインス トールします。

2. Tera Term をダウンロード してインス トールします。 手順の詳細は、 『Tera Term ターミナル エミ ュレーター インストール ガイ ド』 (UG1036) [参照 3] を参照してください。

3. UART ド ラ イバーをダウンロード してインス トールします。 手順の詳細は、 『Silicon Labs CP210x USB-to-UART インス トール ガイ ド』 (UG1033) [参照 4] を参照してください。

ヒン ト : UART 通信パラ―メーターはこの後の手順で設定します。

KCU105 ボードをセッ トアップする

図 3 について説明します。

1. スイ ッチ SW1 を OFF の位置にして、 J15 に電源を接続します。

2. KCU105 ボードの UART コネク タ (J4) と JTAG コネク タ (J87) に USB ケーブルを挿入してコンピューターに接続します。

3. DIP スイ ッチ SW15-6 (図 3 参照) を OFF の位置にして、FPGA の M2 ピンを 0 に設定します。FPGA の M[1:0] ピンは 01 に接続されているため、 FPGA は SPI コンフ ィギュレーシ ョ ン モード (M[2:0] = 001) に設定されます。

X-Ref Target - Figure 3

図 3 : リファレンス デザインの実行に必要なボードのセッ トアップ

Wally

Page 7: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  7japan.xilinx.com

リファレンス デザインのファイルをダウンロードする

1. リ ファレンス デザイン ファ イルを c:\ にダウンロード して解凍します。 解凍後、 c:\Xapp_QUAD_SPI ディ レク トリには図 4 に示すファイル構造が作成されます。

2. 次のいずれかの手順に進みます。

• SDK プロジェク ト を作成し、 リ ファレンス デザインのコードを詳し く確認したい場合は、 「 リ ファレンス デザインのプロジェク ト を生成する」 に進みます。

• リ ファレンス デザインに付属の生成済みビッ ト ス ト リームを使用してデモをすぐに開始したい場合は、「golden.bin で FPGA をコンフ ィギュレーシ ョ ンする」 に進みます。

リファレンス デザインのプロジェク ト を生成する

1. c:\Xapp_QUAD_SPI ディ レク ト リに移動します。 run_kcu105.bat をダブルク リ ッ ク してバッチ ファ イルを実行します。

Vivado IPI ハードウェア プロジェク ト (project_1.xpr) が生成され、 作成されたハード ウェアが project_1 ディレク ト リの SDK (project_1.sdk) にエクスポート されます。 図 5 に、 新たに追加されるプロジェク ト ディレク トリ を示します。

ヒン ト : ホス ト コンピューターにもよ り ますが、 プロジェク トのビルドには約 90 分かかり ます。

重要 : インプ リ メンテーシ ョ ンに関する重大な警告 ([Constraints 18-515] など) が表示されるこ とがあ り ますが、 これらは無視してかまいません。 警告は STARTUPE3 プリ ミ ティブに関するものです。

X-Ref Target - Figure 4

図 4 : リファレンス デザインのファイル構造

X-Ref Target - Figure 5

図 5 :新たに追加されたプロジェク ト  ディレク ト リ

Page 9: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  9japan.xilinx.com

2. Quad SPI フラ ッシュ メモ リの読み出し /書き込みアクセス用のアプリ ケーシ ョ ンを作成します。

a. [File] → [New] → [Application Project] をク リ ッ ク して New Project ウ ィザードを開きます。

b. [Project Name] に 「QUAD_SPI_RW」 と入力します。

c. その他のフ ィールドは、 図 7 に示すよ うに値を設定します。

d. [Next] をク リ ッ ク して [Templates] ページを開きます。

X-Ref Target - Figure 7

図 7 : アプリケーシ ョ ン  プロジェク トの作成

Page 10: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  10japan.xilinx.com

e. [Available Templates] で [Empty Application] を選択します (図 8)。

f. [Finish] をク リ ッ クする とアプリ ケーシ ョ ン プロジェク トがビルド されます。

g. SDK IDE の [Project Explorer] タブで [QUAD_SPI_RW] フォルダーをダブルク リ ッ ク し、 [src] を選択します。 [src] を右ク リ ッ ク し、 [Import] をク リ ッ ク します。

h. Import ウ ィザードで [General] フォルダーを展開し、 [File System] をク リ ッ ク します (図 9)。

i. [Next] をク リ ッ ク します。

X-Ref Target - Figure 8

図 8 : [Available Templates]

X-Ref Target - Figure 9

図 9 : [Select an import source] で [File System] を選択

Page 11: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  11japan.xilinx.com

j. [Browse] をク リ ッ ク し、 C:\Xapp_QUAD_SPI\source ディレク ト リ を選択して [OK] をク リ ッ ク します。 次に、flash_qspi_rw.c と lscript.ld をオンにします (図 10)。

k. [Finish] をク リ ッ クする と、選択したファイルがプロジェク トに追加されます。 QUAD_SPI_RW\src フォルダーの lscript.ld の上書きを確認するダイアログ ボッ クスが表示されたら [Yes] をク リ ッ ク します。

3. MicroBlaze コードの内容を確認します (省略可)。SDK IDE の [Project Explorer] タブで flash_qspi_rw.c をダブルク リ ッ クして開き、 MicroBlaze コードの内容を確認します。 このコードは、 UART/Tera Term コマンド メニューの制御、 SPI フラ ッシュ メモ リのパラ メーター定義、 メモ リに対する読み出し /書き込みの制御を実行します。

° SPI フラ ッシュ メモ リのコマンド とその定義は、 コード冒頭の 「/** Definitions of the commands shown in this example.*/」 に記述しています。 パラ メーターと コマンドは、 使用する SPI フラ ッシュ メモ リのデータシートに従う必要があ り ます。 コマンド シーケンスの詳細は、 「ソフ ト ウェア システムの詳細」 で説明します。

° フラ ッシュのサイズに関する情報は、 「/** Number of bytes per page in the flash device */」 に記述しています。 こ こには、 フラ ッシュ メモ リのページ サイズ、 セクター数、 セクターあたりのバイ ト数などの情報を定義しています。 これらのパラ メーターには、 使用する SPI フラ ッシュ メモ リのデータシートの値を指定する必要があ り ます。

° 各メニューの動作を構成する関数は、 「/**Function Prototypes */」 に記述しています。 下位関数を詳しく調べるには、 ファイル内で関数名を検索します。 最も下位では、 フラ ッシュ メモ リの操作に必要なコマンドはすべて最初の 6 つの関数 SpiFlashWriteEnable()、 SpiFlashWrite()、 SpiFlashRead()、SpiFlashBulkErase()、 SpiFlashGetStatus()、 SpiFlashQuadEnable() を使用して作成できます。

X-Ref Target - Figure 10

図 10 : ローカル ファイル システムからファイルをインポート

Page 12: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  12japan.xilinx.com

プログラ ミング ファイルを生成する

1. SDK の GUI を終了します。

2. C:\Xapp_QUAD_SPI\Ready_To_Download ディ レク ト リに移動します。 make_download_files.bat をダブルク リ ッ ク してバッチ ファ イルを実行します。 同じディ レク ト リにビッ ト ス ト リーム イ メージの golden.bin と update.bin が生成されます。

ヒン ト : ホス ト コンピューター システムにもよ り ますが、 これらファ イルの生成には約 5 分かかり ます。

golden.bin で FPGA をコンフ ィギュレーシ ョ ンする

この手順は、 図 1 の 「1.」 に該当します。

1. スイ ッチ SW1 (図 3 参照) を ON の位置にして KCU105 ボードに電源を投入します。 ボードに電源が投入され、 電源システムが正常動作を開始する と、 SW1 の近くにある DS3 (パワー グッ ド LED) が緑に点灯します。

2. C:\Xapp_QUAD_SPI\Ready_To_Download ディ レク ト リに移動します。 load_golden.bat をダブルク リ ッ ク してバッチ ファ イルを実行します。

このバッチ ファイルは、golden.bin (リ ファレンス デザインの初期ビッ ト ス ト リーム) を SPI フラ ッシュ メモリのアドレス 0x00000000 にコピーした後に FPGA を リセッ ト し、 SPI フラ ッシュに書き込んだ golden.bin イ メージで FPGA のコンフ ィギュレーシ ョ ンを開始します。

ヒン ト : ホス ト コンピューター システムにもよ り ますが、 SPI フラ ッシュ メモ リの消去、 プログラム、 およびベリ ファイには約 10 分かかり ます。

3. リ ファレンス デザインの初期ビッ ト ス ト リーム (golden.bin) で FPGA のコンフ ィギュレーシ ョ ンが正常に完了する と、 DONE LED が点灯し、 LED 0 が点滅します (図 11)。

X-Ref Target - Figure 11

図 11 : リファレンス デザインの初期ビッ トス ト リーム golden.bin が動作している状態

Page 13: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  13japan.xilinx.com

ヒン ト : golden.bin のイ メージ ヘッダーには、BITSTREAM.CONFIG.NEXT_CONFIG_ADDR プロパティで次のコンフ ィギュレーシ ョ ン アドレス、BITSTREAM.CONFIG.CONFIGFALLBACK プロパティで ENABLE (フォールバッ ク有効) が設定されています。 手順 2 でコンフ ィギュレーシ ョ ンが開始する と、 FPGA はアドレス 0x00000000 から golden.bin イメージの読み込みを開始し、 ヘッダーの読み込みが完了したら BITSTREAM.CONFIG.NEXT_CONFIG_ADDR で指定されたアドレス (0x00F50000) へジャンプして、 コンフ ィギュレーシ ョ ンの継続を試みます。 ただしこの時点では 0x00F50000 には update.bin イ メージはプログラムされておらずブランクであるため、 FPGA はフォールバッ クして golden.bin イ メージを読み込みます。 FPGA を update.bin イ メージでコンフ ィギュレーシ ョ ンするには、 次のセクシ ョ ンで説明する手順に従ってこのイ メージをプログラムしておく必要があり ます。

マルチブートおよびフォールバッ ク機能の詳細は、 [参照 1] および [参照 15] を参照して ください。

SPI フラ ッシュ  メモリに update.bin をプログラムする

この手順は、 図 1 の 「2.」 に該当します。

golden.bin イ メージでコンフ ィギュレーシ ョ ンした FPGA が動作を開始したら、 update.bin をホス ト コンピューターからダウンロード して SPI フラ ッシュのアドレス 0x00F50000 に書き込み、 このイ メージを使用して FPGA を リ コンフ ィギュレーシ ョ ンできます。

1. ホス ト コンピューターと KCU105 評価ボードが図 3 のよ うに接続されているこ とを確認します。

2. Tera Term を起動し、 図 12 のよ うに設定します。 ポートは標準 COM ポート (Starndard COM Port) を選択します。 詳細は 「チェッ ク リ ス ト とデバッグのヒン ト 」 の手順 3 を参照してください。

X-Ref Target - Figure 12

図 12 : Tera Term のシリアル ポート設定

Page 14: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  14japan.xilinx.com

3. KCU105 の PROG プッシュボタン (SW4) をパルスして golden.bin コードを読み込みます。 シ リ アル接続が正し く設定されていれば、 Tera Term にリ ファレンス デザインのメニューが表示されます (図 13)。

4. Tera Term に表示されたメニューで 1 を入力して SPI フラ ッシュのベンダー情報を表示し、ボードが正し くセッ ト アップされているこ とを確認します (図 14)。

ヒン ト : メニューの [3: Blank Check Quad SPI flash] と [5: Read Quad SPI flash] も実行できます。 どちらのコマンド も、 バイト数を入力する必要があ り ます。 実行結果は、 最も近いページ境界 (256 バイ ト ) に揃えて表示されます。 バルク消去を実行するには、 [2: Erase Quad SPI flash] を選択し、 次のプロンプ トで 1 を選択します。

5. 4 を入力して SPI フラ ッシュ メモ リのオフセッ ト 0x00F50000 に対して消去および update.bin イ メージのプログラム/ベリ ファ イを実行します (図 15)。

X-Ref Target - Figure 13

図 13 : リファレンス デザインのフラッシュ  メモリ  コマンド  メニュー

X-Ref Target - Figure 14

図 14 : メニュー 1 : SPI フラ ッシュ  メモリ情報の読み出し

• • • • • • •• • • • • •

X-Ref Target - Figure 15

図 15 : メニュー 4 : 消去、 プログラム、 ベリファイ

Page 15: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  15japan.xilinx.com

6. メニュー バーで [File] → [Send file] をク リ ッ ク します (図 16)。

7. C:\Xapp_QUAD_SPI\Ready_To_Download ディ レク ト リの update.bin を選択します。 [Binary] をオンにして [Open] をク リ ッ ク します (図 17)。

X-Ref Target - Figure 16

図 16 : [Send file] コマンド

X-Ref Target - Figure 17

図 17 : update.bin を選択

Page 16: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

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

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  16japan.xilinx.com

update.bin で FPGA をコンフ ィギュレーシ ョ ンする

この手順は、 図 1 の 「3.」 に該当します。

こ こまでの手順で、 update.bin (更新用ビッ ト ス ト リーム イ メージ) が SPI フラ ッシュ メモ リのアドレス 0x00F50000 に転送されました。 FPGA を リ コンフ ィギュレーシ ョ ンするには、 次の手順を実行します。

1. PROG プッシュボタン (SW4) をパルスします。 FPGA はリセッ トの後、 アドレス 0x00000000 から動作を開始し、golden.bin イ メージ ヘッダーを読み出します。 このヘッダーには、 BITSTREAM.CONFIG.NEXT_CONFIG_ADDR プロパティで 0x00F50000 が設定されています。 FPGA はこのアドレスへジャンプし、 update.bin イ メージで FPGA をコンフ ィギュレーシ ョ ンします。

2. FPGA が update.bin リ ファレンス デザインで正し く コンフ ィギュレーシ ョ ンされる とDONE LED が点灯し、LED 1 が点滅します (図 18)。 golden.bin の場合とは点滅する LED が異なるこ とに注意してください。

ヒン ト : update.bin で FPGA をコンフ ィギュレーシ ョ ンする と、 SPI フラ ッシュに対する動作は実行できなくな り ます。このデモを再度実行するには、 「golden.bin で FPGA をコンフ ィギュレーシ ョ ンする」 の手順から実行してください。

X-Ref Target - Figure 18

図 18 : リファレンス デザインの更新用ビッ トス ト リーム update.bin が動作している状態

Page 17: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ハードウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  17japan.xilinx.com

ハードウェア システムの詳細

このリ ファレンス デザインには、 update.bin ファ イルのダウンロードを実行するために必要な MicroBlaze Soft Processor コアとペリ フェラル IP コアが含まれます。 このセクシ ョ ンでは、 コンフ ィギュレーシ ョ ン後に SPI フラ ッシュ メモ リにアクセスするためのシステムのクロ ッ ク ト ポロジ、 AXI Quad SPI コアの設定、 STARTUPE3 プリ ミ ティブの使用方法、 および制約について説明します。

クロック  トポロジ

このリ ファレンス デザインは、 KCU105 ボード上の Silicon Labs Si5335A クワ ッ ド ク ロ ッ ク ジェネレーター /バッファーからの 300MHz 差動クロ ッ ク入力を使用します。 図 19 に、 このク ロ ッ ク分配を示します。

この差動クロ ッ クは DDR4 SDRAM インターフェイス内の MMCM (Mixed-Mode Clock Manager) に供給され、 こ こから 1,200MHz、 300MHz、 100MHz のクロ ッ クが出力されます。 1,200MHz ク ロ ッ クは外部 DDR4 メモ リに供給され、 300MHz ク ロ ッ クは AXI Block RAM Controller および AXI Interconnect モジュールに供給されます。100MHz ク ロ ッ クは MicroBlaze 割り込みコン ト ローラー、 JTAG-to-AXI コン ト ローラー、 ローカル メモ リ コン ト ローラー、 AXI Timer、 AXI UART 16550、 AXI ペリ フェラル インターコネク ト モジュール、 AXI Quad SPI コン ト ローラーに供給されます。

AXI Quad SPI コン ト ローラー コアは、 受信した 100MHz ク ロ ッ クを使用して AXI インターフェイス上の ト ランザクシ ョンを駆動します。 ext_spi_clk ピンに供給されたクロ ッ クは、 AXI Quad SPI コアのカスタマイズで設定した値で分周してから STARTUPE3 ブロ ッ ク経由で SPI フラ ッシュ メモ リのクロ ッ ク入力 (C) へ送信できます。 このリ ファレンス デザインでは、 ext_spi_clk ピンに接続された 100MHz ク ロ ッ クを 2 分周した 50MHz ク ロ ッ クを SPI フラ ッシュ メモ リに供給します。

重要 : この リ ファレンス デザインは、 KCU105 評価ボードに実装された Micron N25Q256A11E SPI フラ ッシュ メモ リでの使用を想定しています。 これ以外の SPI フラ ッシュ メモ リでは、 MicroBlaze システムに供給するクロ ッ ク周波数と、STARTUPE3 ブロ ッ ク経由で SPI フラ ッシュ メモ リに供給するクロ ッ ク周波数の調整が必要な場合があ り ます。

X-Ref Target - Figure 19

図 19 : リファレンス デザインのクロック  トポロジ

Page 18: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ハードウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  18japan.xilinx.com

AXI Quad SPI コアと  STARTUPE3 プリ ミテ ィブ

図 20 に、 コンフ ィギュレーシ ョ ン後のアクセスに必要な AXI Quad SPI コア、 STARTUPE3 プリ ミ ティブ、 FPGA の SPI インターフェイス ピン、 外部 SPI フラ ッシュの接続を示します。

X-Ref Target - Figure 20

図 20 : AXI Quad SPI コアと  STARTUPE3 の接続

Page 19: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ハードウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  19japan.xilinx.com

AXI Quad SPI コアのカスタマイズ

AXI Quad SPI コアは、 KCU105 評価ボードに実装された Kintex UltraScale XCKU040-2FFVA1156E FPGA および Micron N25Q256A11E SPI フラ ッシュ メモ リ用に設定されています。 コアのカスタマイズには、 図 21 に示した IP インテグレーターのダイアログ ボッ クスを使用します。

このアプリ ケーシ ョ ン ノートの リ ファレンス デザインでは、 図の [Re-customize IP] ダイアログ ボッ クスに示した設定を使用します。 各項目の設定値とその理由を次に示します。

• [Enable Performance Mode] = オン : このチェッ ク ボッ クスをオンにする と、デフォルトの AXI4-Lite インターフェイスではなく完全な AXI4 インターフェイスが選択されます。 詳細は、 『AXI Quad SPI 製品ガイ ド』 (PG153) [参照 14] を参照して ください。

• [ID_WIDTH (Auto)] = 3 : Quad モードでは、SPI フラ ッシュ メモ リは Multiple I/O Read ID コマンドに 3 つの有効バイ トでのみ応答します。

• [Mode] = Quad : この設定では x4 データ バス幅を使用するため、 デフォルト (シ リ アル x1) よ り も動作速度が向上します。

クワッ ド モードを選択する と、 次のデフォルト値が選択されます。

° [Transaction Width] = 8 : データ バス ト ランザクシ ョ ン幅を標準命令に合わせて設定します。

° [Frequency Ratio] = 2 : ext_spi_clk ピンの 100MHz ク ロ ッ クを 2 分周します。

X-Ref Target - Figure 21

図 21 : AXI Quad SPI コアの設定

Page 20: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ハードウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  20japan.xilinx.com

° [Enable Master Mode] = オン : AXI Quad SPI コアが SPI マスターとな り ます。

° [Enable FIFO] = オン : クワ ッ ド モードでは FIFO がバッファ リ ングが必要です。

• [No. of Slaves] = 1 : SPI フラ ッシュ メモ リが唯一のスレーブ デバイス とな り ます。

• [Slave Device] = Micron (Numonyx) : KCU105 ボードに実装された SPI フラ ッシュ メモ リのタイプを選択します。

• [Use STARTUP Primitive External to IP] = オン : STARTUPE3 プリ ミ ティブへの接続を AXI Quad SPI コアの外部に可視化します。

ヒン ト : STARTUPE3 プリ ミ ティブを複数のコアに対して使用するデザインの場合、 このリ ファレンス デザインのよ うに STARTUPE3 を外部にインスタンシエート して ください。 外部にインスタンシエート した方が柔軟性が向上します。 ユーザー デザインで STARTUPE3 ポートにアクセスするのが AXI Quad SPI コアのみの場合は、[Use STARTUP Primitive Internal to IP] をオンにするこ と もできます。

STARTUPE3 プリ ミテ ィブ

UltraScale FPGA の SPI インターフェイス専用信号 (RDWR_FCS_B_0、 CCLK_0、 D03_0、 D02_0、 D01_DIN_0、D00_MOSI_0) はバンク 0 にあり ます。 デフォルトでは、 コンフ ィギュレーシ ョ ン後にこれらのピンにはアクセスできないため、 SPI フラ ッシュ メモ リへはアクセスができなくなり ます。 これらの専用ピンにアクセスできるよ うにするため、 デザインに STARTUPE3 プリ ミ ティブをインスタンシエート します。 表 2 に、 専用の各コンフ ィギュレーシ ョ ン ピンに関連する内部ロジッ ク信号名と、 それぞれの STARTUPE3 の接続先ポート、 および対応する FPGA 出力ピン位置を示します。

デザインを STARTUPE3 の適切なポートに接続する と、ユーザー デザインは FPGA 出力をこれらの専用ピンに駆動するかト ラ イステートにできます。 また、 D[03:00] は入力と して読み出すこ とができます。 ユーザー デザインは、 STARTUPE3 ブロ ッ クの .USRCCLKO、 .USRCCLKTS、 .DO、 .DTS、 .FCSBO、 .FCSBTS ポート を介して専用の FPGA ピンにアクセスします。 SPI フラ ッシュからのデータ信号は、 .DI ポート経由でユーザー デザインに戻されます。 UltraScale FPGA の CCLK、 D00_MOSI_0、 D01_DIN_0、 D02_0、 D03_0、 RDWR_FCS_B_0 ピンは専用ピンであ り、 物理ロケーシ ョ ンを変更できないため、 制約ファイル内では割り当てられません。

たとえば、 spi_0_sck_o を外部フラ ッシュに転送するには、 インスタンシエート した STARTUPE3 の USRCCLKO ポートに接続します。 FPGA の CCLK 出力は STARTUPE3 ブロ ッ クに接続しないとアクセスできないため、 デザインの最上位では sck の明示的なポート宣言はあ り ません。CCLK 信号が常に外部 SPI フラ ッシュ メモ リへアクティブに駆動されるよ うに、USRCCLKO のイネーブルを制御する STARTUPE3 の USRCCLKTS ポートは 0 に接続しています。 内部ロジッ クから STARTUPE3 ブロ ッ クを経由して FPGA の専用外部ピンへ到達する信号はデザインの最上位ポート と しては現れず、.xdc ファ イルには含まれません。

表 2 : STARTUPE3 の SPI インターフェイス専用ピン

ロジック信号 STARTUPE3 ポート 専用ピン名FPGA (U1)

ピン位置

spi_0_ss_o_0(0) FCSBO RDWR_FCS_B_0 U7

spi_0_sck_o USRCCLKO CCLK_0 AA9

flash_dq_o(3) DO[3] D03_0 Y7

flash_dq_o(2) DO[2] D02_0 AA7

flash_dq_o(1) DO[1] D01_DIN_0 AB7

flash_dq_o(0) DO[0] D00_MOSI_0 AC7

flash_dq_i(3) DI[3] D03_0 Y7

flash_dq_i(2) DI[2] D02_0 AA7

flash_dq_i(1) DI[1] D01_DIN_0 AB7

flash_dq_i(0) DI[0] D00_MOSI_0 AC7

Page 21: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ハードウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  21japan.xilinx.com

AXI Quad SPI コアと STARTUPE3 プリ ミ ティブは最上位ラ ッパーの design_1_wrapper.vhd 内部で接続されるため、STARTUPE3 ブロ ッ クは IP インテグレーターのブロ ッ ク デザインには表示されません。 STARTUPE3 のインスタンシエーシ ョ ンは次のとおりです。

-- STARTUPE3: STARTUP Block-- Kintex UltraScale+-- Xilinx HDL Language Template, version 2015.4STARTUPE3_inst : STARTUPE3 ----------------------- generic map ( PROG_USR => "FALSE", -- Activate program event security feature.Requires encrypted bitstreams. SIM_CCLK_FREQ => 0.0 -- Set the Configuration Clock Frequency (ns) for simulation ) port map ( USRCCLKO => spi_0_sck_o, -- 1-bit input: User CCLK input ---------- CFGCLK => open, -- 1-bit output: Configuration internal oscillator clock output CFGMCLK => open, -- 1-bit output: Configuration internal oscillator clock output EOS => startupe3_eos, -- 1-bit output: Active-High output signal indicating the End Of Startup PREQ => open, -- 1-bit output: PROGRAM request to fabric output ---------- DO => flash_dq_o, -- 4-bit input: Allows control of the D pin output DI => flash_dq_i, -- 4-bit output: Allow receiving on the D input pin DTS => flash_dq_t, -- 4-bit input: Allows tristate of the D pin FCSBO => spi_0_ss_o_0(0),-- 1-bit input: Controls the FCS_B pin for flash access FCSBTS => spi_0_ss_t, -- 1-bit input: Tristate the FCS_B pin GSR => '0', -- 1-bit input: Global Set/Reset input (GSR cannot be used for the port) GTS => '0', -- 1-bit input: Global 3-state input (GTS cannot be used for the port name) KEYCLEARB => '1', -- 1-bit input: Clear AES Decrypter Key input from Battery-Backed RAM (BBRAM) PACK => PACK_int, -- 1-bit input: PROGRAM acknowledge input USRCCLKTS => spi_0_sck_t, -- 1-bit input: User CCLK 3-state enable input USRDONEO => '1', -- 1-bit input: User DONE pin output control USRDONETS => '1' -- 1-bit input: User DONE 3-state enable output );-- End of STARTUPE3_inst instantiation

STARTUPE3 のタイ ミング制約

STARTUPE3 ブロ ッ クの出力ピンは最上位ラ ッパーの design_1_wrapper.vhd には現れませんが、 STARTUPE3 ブロ ック との入力および出力信号のパス遅延全体がタイ ミ ング要件を満たしているこ とを確認する必要があ り ます。

タイ ミ ング ツールの解析では、 STARTUPE3 プリ ミ ティブの固定遅延が自動的には考慮されないため、 この遅延を考慮したユーザー制約を記述する必要があ り ます。 タイ ミ ング ツールはユーザー デザインのタイ ミ ングが USRCCLKO ポートで終了するこ とを前提と しているため、 外部 CCLK ピンには生成クロ ッ クを指定できません。 STARTUPE3 の遅延、 ボード遅延、 SPI フラ ッシュのセッ ト アップ タイム要件を考慮に入れた生成クロ ッ クが USRCCLKO ポートに定義されます。図 22 に、 考慮が必要なタイ ミ ング パスを示します。

Page 22: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ハードウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  22japan.xilinx.com

デザイン ロジッ クから USRCCLKO ピンまでのクロ ッ ク遅延を抑えるには、 set_max_delay 制約を使用します。STARTUPE3 プリ ミ ティブとの間のデータおよびト ラ イステート信号パスには、 USRCCLKO ピンの生成クロ ッ クを基準にした set_output_delay および set_input_delay 制約を与えます。 制約の作成手順と しては、 まず STARTUPE3 ブロ ッ クの遅延および SPI フラ ッシュ メモ リのセッ ト アップ タイム要件を 『Kintex UltraScale FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS892) [参照 5] と 『Micron Serial NOR Flash Memory N25Q256A11E Data Sheet』 [参照 6] から求めます。 制約に使用するパラ メーターの例を表 3 と表 4 に示します。

X-Ref Target - Figure 22

図 22 :  STARTUPE3 のタイ ミング遅延

表 3 : Kintex UltraScale のタイ ミング パラメーター

シンボル 説明

VCCINT 動作電圧 = 0.95V 単位

‐2 スピード  グレード

STARTUPE3 ポート

TUSRCCLKO STARTUPE3 USRCCLKO 入力ポートから CCLK ピンまでの出力遅延 1.00/6.70 ns、 最小/最大

TDO DO[3:0] ポートから D03 ~ D00 ピンまでの出力遅延 1.00/7.70 ns、 最小/最大

TDTS DTS[3:0] ポートから D03 ~ D00 ピンまでの ト ライステート遅延 1.00/8.30 ns、 最小/最大

TFCSBO FCSBO ポートから FCS_B ピンまでの出力遅延 1.00/8.00 ns、 最小/最大

TFCSBTS FCSBTS ポートから FCS_B ピンまでの ト ラ イステート遅延 1.00/8.00 ns、 最小/最大

TDI D03 ~ D00 ピンから DI[3:0] ポート までの入力遅延 0.5/3.1 ns、 最小/最大

Page 23: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ハードウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  23japan.xilinx.com

KCU105 ボードの制約例を次に示します。 ボードおよび Micron N25Q256A11E フラ ッシュ メモ リのタイ ミ ング遅延は、 実測およびフラ ッシュのデータシートから得るこ とができます。

##### STARTUPE3 parametersset cclk_delay 6.7 # Tusrcclko maximum value

##### SPI device parametersset tco_max 8 # MAX Tcoset tco_min 1 # MIN Tco set tsu 2 # SPI setup time requirementset th 3 # SPI hold time requirement

#### BOARD parameters-assumes data trace lengths are matchedset tdata_trace_delay_max 0.25set tdata_trace_delay_min 0.25set tclk_trace_delay_max 0.2set tclk_trace_delay_min 0.2#### Constraints# Define a SCK Clock for the Quad SPI IP.Following command creates a divide by 2 clock.#It also takes into account the delay added by STARTUP block to route the CCLK

create_generated_clock -name clk_sck -source [get_pins -hierarchical *axi_quad_spi_0/ext_spi_clk] -edges {tsu th tco_max} -edge_shift [list $cclk_delay $cclk_delay $cclk_delay] [get_pins -hierarchical *USRCCLKO]set_multicycle_path -setup -from clk_sck -to [get_clocks -of_objects [get_pins -hierarchical */ext_spi_clk]] 2set_multicycle_path -hold -end -from clk_sck -to [get_clocks -of_objects [get_pins -hierarchical */ext_spi_clk]] 1set_multicycle_path -setup -start -from [get_clocks -of_objects [get_pins -hierarchical */ext_spi_clk]] -to clk_sck 2set_multicycle_path -hold -from [get_clocks -of_objects [get_pins -hierarchical */ext_spi_clk]] -to clk_sck 1

# Max delay constraints are used to instruct the tool to place IP near the STARTUPE3 #primitive.If needed adjust the delays appropriately.The data path is defined by the #clock source of ext_spi_clk and is connected from the DDR MMCM UI Clock output #design_1_ddr4_0_1_c0_ddr4_ui_clk

set_max_delay -from [get_pins -hier {*STARTUP*_inst/DI[*]}] 1.000 -datapath_onlyset_max_delay -from [get_clocks design_1_ddr4_0_1_c0_ddr4_ui_clk] -to [get_pins -hier {*STARTUP*_inst/USRCCLKO}] 1.000 -datapath_onlyset_max_delay -from [get_clocks design_1_ddr4_0_1_c0_ddr4_ui_clk] -to [get_pins -hier {*STARTUP*_inst/DO[*] {*STARTUP*_inst/DTS[*]}] 1.000 -datapath_only

これらの制約で、 AXI Quad SPI ロジッ ク との間のパス遅延、 SPI フラ ッシュ メモ リのセッ ト アップおよびホールド要件、FPGA の I/O ポート遅延、 STARTUPE3 プリ ミ ティブの遅延、 ボードの ト レース遅延が指定されます。 リ ファレンス デザインのタイ ミ ング制約は、 制約ファイル kcu105.xdc に含まれます。

表 4 : Micron N25Q256A11E SPI フラ ッシュ  メモリのタイ ミング パラメーター

シンボル XDC 名 説明 単位

TCLQX (min) Tco_min 出力ホールド タイム (ク ロ ッ ク LOW) 1ns

TCLQV (max) Tco_max ク ロ ッ ク LOW から出力有効まで (30pF) (DTR) 8ns

TDVCH (min) Tsu データ入力セッ ト アップ タイム 2ns

TCHDX (min) Th データ入力ホールド タイム 3ns

Page 24: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ソフ トウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  24japan.xilinx.com

SPI コンフ ィギュレーシ ョ ン モードの制約

マスター SPI x4 コンフ ィギュレーシ ョ ンを正し く実行するには、 golden.bin ファ イルの生成時に適切なプロパティを使用する必要があ り ます。KCU105 評価ボードの 1.8V SPI フラ ッシュをサポート した リ ファレンス .xdc 制約ファイルには、 次に示すプロパティが含まれます。 これらオプシ ョ ンの詳細は、 『UltraScale アーキテクチャ コンフ ィギュレーシ ョン ユーザー ガイ ド』 (UG570) [参照 1] および 『UltraScale FPGA での SPI コンフ ィギュレーシ ョ ンおよびフラ ッシュ プログラ ミ ング』 (XAPP1233) [参照 7] を参照して ください。

set_property BITSTREAM.CONFIG.CONFIGRATE 33 [current_design]set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]set_property BITSTREAM.CONFIG.SPI_FALL_EDGE YES [current_design]set_property CONFIG_VOLTAGE 1.8 [current_design]set_property CFGBVS GND [current_design]set_property CONFIG_MODE SPIx4 [current_design] set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]set_property BITSTREAM.CONFIG.CONFIGFALLBACK Enable [current_design]set_property BITSTREAM.CONFIG.TIMER_CFG 0x00050000 [current_design]set_property BITSTREAM.CONFIG.NEXT_CONFIG_REBOOT Enable [current_design]set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x00F50000 [current_design]

ソフ トウェア システムの詳細

このリ ファレンス デザインは、 MicroBlaze Soft Processor コア上で動作するソフ ト ウェアで AXI Quad SPI コアを駆動し、STARTUPE3 プリ ミ ティブへのハードウェア接続を使用して SPI フラ ッシュ メモ リに対する読み出し /書き込みを実行します。 このリ ファレンス デザインには、 下位のソフ ト ウェア読み出し /書き込み動作の例を記述した flash_qspi_rw.c ファ イルが付属します。 これらの読み出し /書き込み関数を使用して、 Micron フラ ッシュ メモ リの動作を実装しています (このフラ ッシュ メモ リのコマンドは 『Micron Serial NOR Flash Memory N25Q256A11E Data Sheet』 [参照 6] を参照)。 このメモ リは、 KCU105 評価ボードの U35 の位置に実装されています (図 3 参照)。

別のベンダーのフラ ッシュ メモ リ を使用する際はメモ リ動作の作成が必要な場合があ り、 flash_qspi_rw.c の関数をこれに使用できます。 ただし制御ロジッ クからフラ ッシュ アレイに対する読み出し /書き込み/消去の実行、 およびフラ ッシュ メモ リの動作を制御するレジスタへのアクセスに使用するコマンドは、 ほとんどの SPI フラ ッシュ メモ リでほぼ共通しています。 このリ ファレンス デザインは、 KCU105 評価ボードに実装された Micron N25Q256A11E SPI フラ ッシュ メモ リのコマンド セッ ト を使用しています。 サポート される命令セッ トは、 [参照 6] を参照してください。

Page 25: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ソフ トウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  25japan.xilinx.com

フラッシュ  コマンド  セッ ト

フラ ッシュ アレイへのアクセスや SPI フラ ッシュ メモ リに対するその他の動作を実行するコマンドは数多く存在します。マスター モードで実行できる SPI ト ランザクシ ョ ンは、 AXI Quad SPI コアに接続されたスレーブ デバイスがサポート しているコマンドに限られます。 サポート されるコマンドについては、 使用する SPI フラ ッシュ メモ リのデータシート を参照して ください。 Micron N25Q256A11E SPI フラ ッシュ メモ リのコマンドは、 [参照 6] に記載されています。 このリファレンス デザインでユーザーが実行できるのは、 図 13 のメニューに表示されたコマンドのみです。 図 23 および図 24 に、 KCU105 の SPI フラ ッシュに対するコマンドのフローチャート を示します。

X-Ref Target - Figure 23

図 23 : フラ ッシュ  コマンド  セッ トのフローチャート

Page 26: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ソフ トウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  26japan.xilinx.com

次に、 プログラム/ベリ ファ イ (図 15 の Tera Term メ イン メニュー番号 4 ) のフローチャート を示します。

フローチャートに示したサポート される各動作には、 それぞれ特定のコマンド シーケンスがあ り ます。 次に、 主要な動作のコマンド シーケンスを示します。

書き込みイネーブル コマンド  シーケンス : フラ ッシュに対する書き込みト ランザクシ ョ ン (フラ ッシュの消去/データ プログラムおよびレジスタ書き込み) コマンドの前には、 必ず書き込みイネーブル コマンドを発行する必要があ り ます。SPI 制御レジスタ (SPICR) のマスター禁止ビッ ト をアサート してマスター ト ランザクシ ョ ンを無効にし、 SPICR で RX および TX FIFO を リセッ ト します。 例 : SPICR に 0x1E6 を書き込みます。

1. SPI データ送信レジスタ (SPIDTR) に 0x06 を書き込んで書き込みイネーブル コマンドを発行します。

2. SPI スレーブ セレク ト レジスタ (SPISSR) に 0x00 を書き込んでチップ セレク ト を発行します。

3. SPICR のマスター禁止ビッ ト をディアサート してマスター ト ランザクシ ョ ンを有効にします。

4. SPISSR に 0x01 を書き込んでチップ セレク ト をディアサート します。

5. SPICR のマスター禁止ビッ ト をアサート してマスター ト ランザクシ ョ ンを無効にします。

消去コマンド  シーケンス :

1. SPICR に書き込んで RX および TX FIFO を リセッ ト します。

2. フラ ッシュ全体を消去する場合はバルク消去コマンド とフラ ッシュ ベース アドレスを SPIDTR に書き込みます。例 : SPIDTR に 0xC7 を書き込みます。

3. SPISSR に 0x00 を書き込んでチップ セレク ト を発行します。

4. SPICR のマスター禁止ビッ ト をディアサート してマスター ト ランザクシ ョ ンを有効にします。

5. SPISSR に 0x01 を書き込んでチップ セレク ト をディアサート します。

6. SPICR のマスター禁止ビッ ト をアサート してマスター ト ランザクシ ョ ンを無効にします。

X-Ref Target - Figure 24

図 24 : メニュー番号 4 (プログラム/ベリファイ) のフローチャート

Page 27: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

ソフ トウェア システムの詳細

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  27japan.xilinx.com

データ  プログラム コマンド  シーケンス :

1. SPICR に書き込んで RX および TX FIFO を リセッ ト します。

2. データ書き込みコマンド と書き込み先のフラ ッシュ セクター アドレスを SPIDTR に書き込みます。 フラ ッシュに書き込むデータを SPIDTR に書き込みます。 最大データ サイズは、 QSPI FIFO サイズの設定によ り ます。

3. SPISSR に 0x00 を書き込んでチップ セレク ト を発行します。 SPICR のマスター禁止ビッ ト をディアサート してマスター ト ランザクシ ョ ンを有効にします。

4. SPISSR に 0x01 を書き込んでチップ セレク ト をディアサート します。

5. SPICR のマスター禁止ビッ ト をアサート してマスター ト ランザクシ ョ ンを無効にします。

データ読み出しコマンド  シーケンス :

1. SPICR に書き込んで RX および TX FIFO を リセッ ト します。

2. データ読み出しコマンド と読み出し元のフラ ッシュ セクター アドレスを SPIDTR に書き込みます。 フラ ッシュから必要なデータを読み出すために、 SPIDTR にダ ミー データを書き込みます。

3. SPISSR に 0x00 を書き込んでチップ セレク ト を発行します。

4. SPICR のマスター禁止ビッ ト をディアサート してマスター ト ランザクシ ョ ンを有効にします。

5. SPISSR に 0x01 を書き込んでチップ セレク ト をディアサート します。

6. SPICR のマスター禁止ビッ ト をアサート してマスター ト ランザクシ ョ ンを無効にします。

7. SPIDRR を読み出して SPI から受信した読み出しデータを取得します。

リ ファレンス デザインのメニュー番号 4 を選択する と、 プログラムと検証が実行されます (図 24 参照)。 検証は、 .bin ファ イル全体を読み出して元の .bin ファ イルの内容と比較します。 エラーが検出される と、 エラーの発生したアドレスが表示されます。

「SPI フラ ッシュ メモ リに update.bin をプログラムする」 の手順 5 ではメニュー番号 4 を選択していますが、Tera Term のメ イン メニューには単独の動作を実行するオプシ ョ ンもあ り ます。 単独の動作を実行するオプシ ョ ン (図 15 のメニュー番号 1、 2、 3、 5) を選択した場合、 開始アドレス と終了アドレスまたはバイ ト数を指定する必要があ り ます。 図 25 に、 読み出しコマンドの実行例を示します。

Page 28: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

チェ ックリス ト とデバッグのヒン ト

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  28japan.xilinx.com

チェ ックリス ト とデバッグのヒン ト

1. このデモでは、 「AXI Quad SPI コアのカスタマイズ」 のセクシ ョ ンで [Use STARTUP Primitive External to IP] をオンにする必要があ り ます (図 21 参照)。

2. リ ファレンス デザインのデモを実行する前に、 「KCU105 ボードをセッ ト アップする」 で説明した手順をすべて実行しておく必要があ り ます。 これには、 次の事項が含まれます。

° ボードに電源が正し く接続され、 電源スイ ッチ SW1 が ON の位置にあるこ とを確認します。

° モード ピンを M[2:0] = 001 にしてマスター SPI コンフ ィギュレーシ ョ ン モードを選択します。 DIP スイ ッチ SW15 を図 3 のよ うに設定します。

° KCU105 評価ボードの UART コネクタ と JTAG コネクタに USB ケーブルを挿入してコンピューターに接続します (図 3 参照)。

X-Ref Target - Figure 25

図 25 : Quad SPI フラッシュ読み出し  (メニュー番号 5) の出力例

Page 29: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

チェ ックリス ト とデバッグのヒン ト

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  29japan.xilinx.com

3. Tera Term にリ ファレンス デザインのメ イン メニュー (図 13 参照) が表示されない場合、 またはホス ト コンピューターと KCU105 ボード (J4) の間で UART 通信ができない場合は、Tera Term と コンピューターの COM ポートが正し く設定されているこ とを確認して ください。

° Windows デバイス マネージャーで COM ポート ド ラ イバーが正し く選択されているこ とを確認します。「Enhanced」 ではなく 「Standard」 と書かれたド ライバーを選択します (図 26)。 COM 番号はコンピューターによって異なり ます。 Tera Term に KCU105 System Controller Main Menu が表示される場合は、 拡張 COM ポート (Enhanced COM Port) が選択されています。 標準 COM ポート (Standard COM Port) に変更してください。

° Tera Term が正し く インス トールされているこ とを確認します ( リ ファレンス デザインのテス トにはバージ ョ ン 4.87 を使用)。

° Tera Term の [Port Settings] タブで COM ポートが図 12 と同じ値に設定されているこ とを確認します。

4. FPGA がコンフ ィギュレーシ ョ ンされていないと考えられる場合

° SPI フラ ッシュ メモ リに有効なビッ ト ス ト リーム イ メージが書き込まれているこ とを確認します。

° FPGA PROG プッシュボタン (SW4) を短く押すか、 SW1 でパワー サイクルを実行して FPGA のプログラムを開始します (スイ ッチの位置は図 3 参照)。

5. バッチ ファ イルが正し く実行されない場合

° Vivado Design Suite 2015.4 以降がインス トールされ、 パスが正し く設定されているこ とを確認します。

6. DIP スイ ッチ SW15 でマスター SPI コンフ ィギュレーシ ョ ン モードを正し く設定していて DONE LED が点灯しない場合

° JTAG インターフェイス (J87) を使用して FPGA の golden.bin を直接プログラムできるこ とを確認します。

° リードバッ クを実行して、 SPI メモ リの別のアドレスにプログラムした内容をチェッ ク します。

° ユーザー デザインで write_bitstream 制約が SPI モードに正し く インプリ メン ト されているこ とを確認します ( 「ハード ウェア システムの詳細」 参照)。

° ご く稀に update.bin のダウンロード中にエラーが発生して LED0 が点滅するこ とがあ り ます。 この場合、update.bin をも う一度ダウンロード します。

° DONE LED が点灯しているが、 LED 0/LED 1 が正し く点滅していない場合は、 プログラマを実行する際に正しいイ メージが選択されているこ とを確認します。 初期イ メージ (golden.bin) を読み込んだ場合は LED0 が点滅し、 更新用イ メージ (update.bin) を読み込んだ場合は LED1 が点滅します。

7. このリ ファレンス デザインは、 Micron N25Q256A11E SPI フラ ッシュ メモ リのコマンドを使用しています。 この リファレンス デザインで別のフラ ッシュ メモ リ を使用する場合は、 使用するフラ ッシュ メモ リに合わせてデザインを一部変更する必要があ り ます。 使用するフラ ッシュ メモ リのデータシート を参照してください。

X-Ref Target - Figure 26

図 26 :標準 COM ポート  ド ライバー

Page 30: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

チェ ックリス ト とデバッグのヒン ト

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  30japan.xilinx.com

8. メニュー番号 1 の [Read Quad SPI flash ID] を選択しても動作しない場合、 Xilinx Microprocessor Debugger (XMD) を使用して JTAG 経由で IDCODE をチェッ ク して ください。

a. SDK IDE で [Xilinx Tools] → [XMD Console] をク リ ッ ク して、 XMD のコマンド プロンプ ト を開きます。

b. コマンド ライン プロンプ ト XMD% で次のコマンドを入力します。

XMD% fpga -f ./source/Golden.bitXMD% stopXMD% rstXMD% connect mb mdm

次のよ うな出力が表示されます。

JTAG chain configuration--------------------------------------------------Device ID Code IR Length Part Name 1 13822093 6 xcku040

MicroBlaze Processor Configuration :-------------------------------------Version............................9.5Optimization.......................PerformanceInterconnect.......................AXI-LEMMU Type...........................No_MMUNo of PC Breakpoints...............1No of Read Addr/Data Watchpoints...0No of Write Addr/Data Watchpoints..0Instruction Cache Support..........onInstruction Cache Base Address.....0x80000000Instruction Cache High Address.....0xffffffffData Cache Support.................onData Cache Base Address............0x80000000Data Cache High Address............0xffffffffExceptions Support................offFPU Support.......................offHard Divider Support...............offHard Multiplier Support............offBarrel Shifter Support.............offMSR clr/set Instruction Support....offCompare Instruction Support........offData Cache Write-back Support......offFault Tolerance Support............offStack Protection Support...........off

Connected to "mb" target. id = 0Starting GDB server for "mb" target (id = 0) at TCP port no 1234

c. コマンド ライン プロンプ ト XMD% で次のコマンドを入力します。

XMD% source ./source/xmd_idcode.tclXMD% idcode

次のよ うな出力が表示されます。

Mfg ID: 44A0006C: 00000020Memory Type:44A0006C: 000000BBMemory Size:44A0006C: 00000019Device ID 1:44A0006C: 00000010Device ID 2:44A0006C: 00000000

Page 31: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

まとめ

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  31japan.xilinx.com

9. XMD を使用せずに、 リ ファレンス デザインで JTAG-to-AXI IP を使用する方法もあ り ます。 JTAG-to-AXI IP を使用する と、 下位の JTAG コマンドを Vivado ハードウェア マネージャーから JTAG ケーブル経由で送信できます。 SPI フラ ッシュ メモ リに対して IDCODE チェッ クを実行するには、 次の Tcl コマンド シーケンスを使用します。

a. Vivado ハードウェア マネージャーを開始します。 Tcl コンソールに次のコマンドを入力します。

Connect_hw_serverOpen_hw_target -jtag_mode 1Set current_hw_jtag [get_property hw_jtag [lindex [get_hw_targets] 0]]source jtag_to_qspi.tcl

まとめ

このアプリ ケーシ ョ ン ノートでは、 コンフ ィギュレーシ ョ ン後に UltraScale FPGA から SPI フラ ッシュ メモ リに簡単にアクセスする方法を説明しました。 SPI フラ ッシュ メモ リにアクセスして複数のビッ ト ス ト リームを格納したり リモートからアップデート した りできるよ うになる と、 ボード スペースを節約するだけでなく メモ リ ス ト レージ ソ リ ューシ ョ ンのコス ト も削減できる可能性があ り ます。

Page 32: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

リファレンス デザイン

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  32japan.xilinx.com

リファレンス デザイン

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

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

パラメーター 説明

全般

開発者 Steven Howell、 Shashikant Jadhav、 Stephanie Tapp

ターゲッ ト デバイス Kintex UltraScale FPGA (XCKU040-2FFVA1156E)

ソース コードの提供 あ り

ソース コードの形式 VHDL (Verilog は次のフェーズ)

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

Vivado Design Suite

シミ ュレーシ ョ ン

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

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

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

なし

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

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

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

インプリ メンテーシ ョ ン

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

使用したインプリ メンテーシ ョ ン ツール/バージ ョ ン Vivado Design Suite および SDK 2015.4

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

ハードウェア検証

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

使用したハード ウェア プラ ッ ト フォーム KCU105 評価ボード

Page 33: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

参考資料

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  33japan.xilinx.com

参考資料

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

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

2. 『Vivado Design Suite ク イ ッ ク スタート ガイ ド』 (UG975 : 英語版、 日本語版)

3. 『Tera Term ターミナル エミ ュレーター インス トール ガイ ド』 (UG1036)

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

5. 『Kintex UltraScale FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS892 : 英語版、 日本語版)

6. 『Micron Serial NOR Flash Memory N25Q256A11E Data Sheet』 (www.micron.com)

7. 『UltraScale FPGA での SPI コンフ ィギュレーシ ョ ンおよびフラ ッシュ プログラ ミ ング』 (XAPP1233)

8. KCU105 評価キッ トのウェブ ページ (japan.xilinx.com/kcu105)

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

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

11. 『KCU105 評価キッ ト ク イ ッ ク スタート ガイ ド』 (XTP391)

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

13. 『KCU105 ソフ ト ウェア インス トールおよびボード セッ ト アップ チュート リ アル』 (XTP352)

14. 『AXI Quad SPI 製品ガイ ド』 (PG153)

15. 『UltraScale FPGA の SPI フラ ッシュを使用するマルチブートおよびフォールバッ ク』 (XAPP1257 : 英語版、 日本語版)

改訂履歴

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

日付 バージョ ン 内容

2016 年 4 月 5 日 1.0 初版

2016 年 4 月 15 日 1.0.1 誤字などの細かな誤り を訂正。

Page 34: コンフィギュレーション後に UltraScale FPGA から …...XAPP1280 (v1.0.1) 2016 年 4 月 15 日 1 japan.xilinx.com 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。

法的通知

XAPP1280 (v1.0.1) 2016 年 4 月 15 日  34japan.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、 およびこの文書に含まれるその

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

します。

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

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

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