22
cv_54012-1.2 Cyclone V デバイス・ハンドブック Volume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル 2012 年 11 月 Subscribe © 2012 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html . Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. Portions © 2011 Cadence Design Systems, Inc. Used with permission. All rights reserved worldwide. Cadence and the Cadence logo are registered trademarks of Cadence Design Systems, Inc. All others are the property of their respective holders. ISO 9001:2008 Registered 12. クワッド SPI フラッシュ・コント ローラ 雌実詩質寺竺止紫支質斯旨至痔θHPSχ朔腰斯式仔識 NOR 児鹿紫斯自視質飼使旨削 仔屍止旨際傘冴薩削屍宍紫詩昨斯式仔識質時式児史鹿識質使執祉児史実旨θSPIχ児 鹿紫斯自質磁示式質思執詞竺実鹿燦蛬盗裁崎哉擦際甑屍宍紫詩 SPI 児鹿紫斯自質思 執詞竺実鹿歳輪┦削珽磽1視自仔識採皿索屍宍紫詩 SPI 児鹿紫斯自質視飼使旨昨④ ╪ɚ作 SPI 児鹿紫斯自質視飼使旨燦支治実詞裁崎哉擦際甑屍宍紫詩 SPI 児鹿紫斯自質 思執詞竺実鹿朔 Cadence ® Quad SPI Flash ControllerθQSPI_FLASH_CTRLχ削嫻咲哉崎哉 擦際甑 クワッド SPI フラッシュ・コントローラの特長 屍宍紫詩 SPI 児鹿紫斯自質思執詞竺実鹿朔腰逗昨㎏1燦支治実詞裁擦際甑 斯執市識腰視自仔識腰採皿索屍宍紫詩昨 I/O 思爾執詩 鏘彳 108 MHz 擦埼昨視飼使旨昨浪窗豬 私使鴫屍詞質仔屍止旨碕戻蘢仔屍止旨質示実詩 使執私使鴫屍詞昨¹=昨冴薩昨弸使私使鴫屍詞質磁示式質仔屍止旨θDMAχ思執 詞竺実鹿昨支治実詞 こ暼療1作鼬磽腰哲b腰採皿索揭獪 寺竺市鹿爾字識鎬済Ů札鴇つ細参冴坿娵 使執私使鴫屍詞昨¹=昨冴薩昨嗣鹿実ワ塡思実詩θECCχ昨竺施紫屍燦莵肴竺実 始識質飼紫児仕式執市 鏘彳 4 肴昨視飼使旨 eXecute-In-Place θXIPχ児鹿紫斯自質視飼使旨 November 2012 cv_54012-1.2

ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

cv_54012-1.2

Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテ2012 年 11 月

© 2012 Altera Corporation. All rights reserved. ALTERA, ARRIare trademarks of Altera Corporation and registered in the U.Strademarks or service marks are the property of their respectivsemiconductor products to current specifications in accordanceservices at any time without notice. Altera assumes no responsdescribed herein except as expressly agreed to in writing by Alon any published information and before placing orders for pr

Portions © 2011 Cadence Design Systems, Inc. Used with permCadence Design Systems, Inc. All others are the property of the

November 2012cv_54012-1.2

12. クワッド SPI フラッシュ・コントローラ

ハード・プロセッサ・システム(HPS)は、シリアル NOR フラッシュデ・バイスに

アクセスするためにクワッドのシリアル・ペリフェラル・インタフェース(SPI)フ

ラッシュ・メモリ・コントローラを提供しています。クワッド SPI フラッシュ・コ

ントローラが同様に高性能デュアルおよびクワッド SPI フラッシュ・デバイスの標

準的な SPI フラッシュ・デバイスをサポートしています。クワッド SPI フラッシュ・

コントローラは Cadence® Quad SPI Flash Controller(QSPI_FLASH_CTRL)に基づいてい

ます。

クワッド SPI フラッシュ・コントローラの特長クワッド SPI フラッシュ・コントローラは、次の機能をサポートします。

■ シングル、デュアル、およびクワッドの I/O コマンド

■ 大 108 MHz までのデバイスの周波数

■ ダイレクト・アクセスと間接アクセス・モード

■ インダイレクトの転送のための外部ダイレクト・メモリ・アクセス(DMA)コン

トローラのサポート

■ 設定可能な極性、位相、および遅延

■ プログラマブル書き込み保護された地域

■ インダイレクトの転送のためのエラー訂正コード(ECC)のロジックを持つロー

カル・バッファリング

■ 大 4 つのデバイス

■ eXecute-In-Place (XIP)フラッシュ・デバイス

クニカル・リファレンス・マニュアル

Subscribe

A, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos . Patent and Trademark Office and in other countries. All other words and logos identified as e holders as described at www.altera.com/common/legal.html. Altera warrants performance of its with Altera's standard warranty, but reserves the right to make changes to any products and ibility or liability arising out of the application or use of any information, product, or service tera. Altera customers are advised to obtain the latest version of device specifications before relying oducts or services.

ission. All rights reserved worldwide. Cadence and the Cadence logo are registered trademarks of ir respective holders.

ISO 9001:2008 Registered

Page 2: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–2 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラのブロック図とシステム統合

クワッド SPI フラッシュ・コントローラのブロック図とシステム統合

図 12–1 には、クワッド SPI フラッシュ・コントローラのブロック図を示します。

クワッド SPI コントローラには、以下のブロックおよびインタフェースで構成され

ています。

■ レジスタ・スレーブ・インタフェース — コントロール・レジスタとステータス・

レジスタ(CSR)にアクセスを提供するスレーブ・インタフェース

■ データ・スレーブ・コントローラ — 次の機能を提供するスレーブ・インタフェー

スおよびコントローラ

■ レベル 3(L3)インタコネクトへ(またはレベル 3(L3)インタコネクトから)

データ転送を実行する機能

■ 着信アクセスを検証する機能

■ バイトまたはハーフ・ワードのリオーダリングを実行する機能

■ 書込み保護を実行する機能

■ 直接と間接コントローラに転送要求を転送する機能

図12‒1. クワッド SPI フラッシュ・コントローラのブロック図

Quad SPI Flash Controller

FlashCommandGenerator

SRAM

L4 Peripheral Bus

TXFIFO

RXFIFO

SPIControlLogic

SPI PHY

Data SlaveController

CSRs

ECCSignals

Register Slave Interface

SystemManager

L3Interconnect

DMA PeripheralRequest Controller

IndirectAccess

Controller

DirectAccess

Controller

STIG

DMAPeripheralRequestInterface

SPI FlashDeviceInterface

DMAController

Data SlaveInterface

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 3: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

第 12 章 : クワッド SPI フラッシュ・コントローラ 12–3クワッド SPI フラッシュ・コントローラの機能説明

■ ダイレクト・アクセス・コントローラ — フラッシュ・メモリへのメモリ・マップ

されたスレーブのダイレクト・アクセスを提供する。

■ 間接アクセス・コントローラ — ローカル・バッファリングおよびソフトウェア転

送要求を介して、フラッシュ・メモリへの高性能のアクセスを提供する。

■ Software Triggered Instruction Generator(STIG)— フラッシュ・コマンド・レジスタ

(flashcmd)を介してフラッシュ・コマンドを生成し、フラッシュ・メモリへの

低レベル・アクセスを提供する。

■ フラッシュ・コマンドのジェネレータ — 直接およびインダイレクトのアクセ

ス・コントローラまたは STIG からの命令に基づいてフラッシュ・コマンドとア

ドレスの命令を生成する。

■ DMA ペリフェラル・リクエスト・コントローラ — 外部 DMA コントローラと通信す

るための DMA のペリフェラル・リクエスト・インタフェースへの要求を発行す

る。

■ SPI PHY— 外部 SPI フラッシュ・デバイスにデータやコマンドをシリアルに転送し

ます。

クワッド SPI フラッシュ・コントローラの機能説明この項では、クワッド SPI フラッシュ・コントローラの機能を説明します。

概要

1 この項で使用される用語は、次の項で詳細に定義されます。

クワッド SPI フラッシュ・コントローラは、動作モードを選択し、データ転送用の

データ・スレーブ・インタフェースを設定するレジスタのスレーブ・インタフェー

スを使用しています。クワッド SPI フラッシュ・コントローラは直接および間接ア

クセスのためにデータ・スレーブ・インタフェースを使用しています。また、STIG動作および SPI レガシー・モード・アクセスのためにレジスタ・スレーブ・インタ

フェースを使用しています。

データ・スレーブへのアクセスは、直接または間接的にアクセス・コントローラに

転送されます。アクセス・アドレスが設定されたインダイレクト・アドレスの範囲

内にある場合、アクセスが間接アクセス・コントローラに送信されます。

データ・スレーブ・インタフェースクワッド SPI フラッシュ・コントローラは、直接、間接、および SPI のレガシー・

モードのアクセスのためのデータ・スレーブ・インタフェースを使用しています。

これらのモードについて詳しくは、次の各項を参照してください。

データ・スレーブは 32 ビット幅です。バイト、ハーフワード、およびワード・アク

セスは許可されています。

ライト・アクセスの場合は、のみインクリメントバーストがサポートされており、

サイズのみ 1、4、8、16 の転送。リード・アクセスの場合は、すべてのバーストタ

イプとサイズがサポートされています。

2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 4: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–4 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラの機能説明

レジスタ・スレーブ・インタフェースクワッド SPI フラッシュ・コントローラは、クワッド SPI コンフィギュレーション・

レジスタを介しクワッド SPI コントローラを設定するために、そして STIG で

flashcmdレジスタを介してソフトウェア・コントロールの下でフラッシュ・メモリ

にアクセスするために、レジスタのスレーブ・インタフェースを使用しています。

ダイレクト・アクセス・モードダイレクト・アクセス・モードで、データ・スレーブへのアクセスは、フラッシュ・

メモリにコマンドを読み出しまたは書き込みがトリガされます。ダイレクト・アク

セス・モードを使用するには、クワッド SPI コンフィギュレーション・レジスタ

(cfg))のイネーブル・ダイレクト・アクセス・コントローラ・ビット(endiracc))でダイレクト・アクセス・コントローラをイネーブルします。

外部マスタ(例えばプロセッサ)は、データのスレーブ・インタフェースにリード

またはライトとダイレクト・アクセス・コントローラをトリガします。データ・ス

レーブには、フラッシュ・デバイスに 1 MB のウィンドウを公開しています。フラッ

シュ・デバイス内の任意の 1 MB の位置にこのウィンドウをリマッピングすることが

できます。

図 12–2 は、リマッピングの例を示しています。

フラッシュ・デバイスの他の 1 MB の領域にアクセスするためのデータ・スレーブを

リマッピングするには、アドレス・リマッピングは cfgレジスタのイネーブル AHBアドレス・リマッピング・フィールド(enahbremap)にリマッピングできます。す

べての着信データ・スレーブはリマッピング・アドレス・レジスタ(remapaddr)に

指定されたオフセットのリマッピングをアクセスします。

着信アドレスの 20 個の LSB は 1 MB の領域をアクセスするために使用され、上位

ビットは無視されます。

1 クワッド SPI コントローラは接続されたフラッシュ・メモリ・スペースの外にあるア

クセスに対して任意のエラー・ステータスを発行しません。

図12‒2. データ・スレーブのリマッピングの例

1 MBAddress Range

Data Slave 16-MB Flash Memory

Map to Offset 0

Map to Offset0x00200000

0x01000000

0x00300000

0x00200000

0x00100000

0x00000000

DataSlave

Access

Offsets

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 5: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

第 12 章 : クワッド SPI フラッシュ・コントローラ 12–5クワッド SPI フラッシュ・コントローラの機能説明

間接アクセス・モード間接アクセス・モードで、フラッシュ・データは一時的に SRAM のクワッド SPI コントローラ内にバッファされています。ソフトウェアは、レジスタ・スレーブ・イ

ンタフェースを介して間接アクセスをコントロールおよびトリガします。コント

ローラは、データ・スレーブ・インタフェースを介してデータを転送します。

インダイレクト・リード動作インダイレクトのリード動作では、フラッシュ・メモリからデータを読み出し、

SRAM にデータを配置し、データ・スレーブ・インタフェースを介して外部マスタに

データを転送します。インダイレクト・リード動作は、以下のレジスタによって制

御されます。

■ Indirect read transfer register (indrd)

■ Indirect read transfer watermark register (indrdwater)

■ Indirect read transfer start address register (indrdstaddr)

■ Indirect read transfer number bytes register (indrdcnt)

■ Indirect address trigger register (indaddrtrig)

これらのレジスタは、インダイレクトのリード動作を発行する前に設定する必要が

あります。開始アドレスは indrdstaddrレジスタで定義されると、フェッチされる

バイト数の合計が indircntレジスタで指定されている必要があります。indrdレジ

スタのスタート・インダイレクト・リード・ビット(start)に 1 を書き込むと、返

されたデータを SRAM に移入するために、フラッシュ・メモリからのインダイレク

トのリード動作をトリガーします。

SRAM にフラッシュ・デバイスからデータを読み込むには、外部マスタは、データ・

スレーブ・インタフェースに 32 ビット・リード・トランザクションを発行します。

リード・アクセスのアドレスはインダイレクト・アドレスの範囲内になければなり

ません。indaddrtrigレジスタを通じてインダイレクト・アドレスを設定することが

できます。外部マスタがインダイレクト転送の 後のワードになるまで 32 ビット・

リードをみ発行することができます。 後のリードに転送を完了するために外部マ

スタが 32 ビット、16 ビット、または 8 ビット・リードを発行することができます。

後の転送で読み出すデータが 4 バイト未満の場合、外部マスタは 32 ビット・リー

ドを発行して、クワッド SPI コントローラはゼロで応答データの上位ビットをパッ

ドします。

要求されたデータは、データ・スレーブ・リードがクワッド SPI コントローラに

よって受信された時点で、SRAM 内に存在すると仮定すると、データは、SRAM から

フェッチされ、リード・バーストに対する応答は 小レイテンシで実現されます。

要求されたデータは、直ちに SRAM 内存在しない場合、データが SRAM にフラッ

シュ・メモリから読み込まれるまで、データ・スレーブ・インタフェースは待ち状

態になります。外部マスタでデータが SRAM から読み出された後は、クワッド SPIコントローラは SRAM に関連付けられたリソースを解放します。 SRAM がフルになっ

た場合、SPI インタフェースは SRAM 内でスペースが使用可能になるまでバックプ

レッシャされています。クワッド SPI コントローラは、現在のリード・バーストを

完了して、SRAM を解放するまで待って、前のバーストが終了されたアドレスで新し

いリード・バーストを発行します。

また、プロセッサは、SRAM からデータをフェッチするときを制御する SRAM フィ

ル・レジスタ(sramfill)の SRAM フィル・レベルを使用することができます。

2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 6: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–6 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラの機能説明

もうひとつの代替は、indrdwaterレジスタに設定する SRAM フィル・レベルの

ウォーターマークを使用することです。 SRAM のフィル・レベルがウォーターマー

ク・レベルを通過すると、インダイレクト転送のウォーターマーク割り込みが発生

します。indrdwaterレジスタにゼロを書き込むことによって、ウォーターマーク機

能をディセーブルできます。

クワッド SPI コントローラによって読み込まれ、SRAM に配置されたデータの 後の

バイトは、ウォーターマーク・レベルがゼロより大きい場合、インダイレクト転送

のウォーターマーク割り込みが実際の SRAM フィル・レベルがウォーターマークを

上回っていない場合でも発生します。

リード・アクセスのアドレスが間接トリガー・アドレスの範囲外である場合、次の

いずれかのアクションが発生します。

■ ダイレクト・アクセス・モードがイネーブルされる場合、読み出しはダイレク

ト・アクセス・モードを使用します。

■ ダイレクト・アクセス・モードがイネーブルされる場合、スレーブがマスタを要

求しにエラーを返します。

indrdレジスタのキャンセル・インダイレクト・リード・ビット(cancel)を 1 に設

定することでインダイレクトの動作を取り消すことができます。詳細について

は、12–17 ページの「インダイレクト・リード動作」に参照してください。

間接ライト動作インダイレクトのライト動作は SRAM からフラッシュ・メモリにデータをプログラ

ムします。インダイレクトのライト動作は、以下のレジスタによって制御されます。

■ Indirect write transfer register (indwr)

■ Indirect write transfer watermark register (indwrwater)

■ Indirect write transfer start address register (indwrstaddr)

■ Indirect write transfer number bytes register (indwrcnt)

■ indaddrtrig レジスタ

これらのレジスタは、インダイレクトのライト動作を発行する前に設定する必要が

あります。開始アドレスは indwrstaddrレジスタで定義される必要があります。ま

た、書き込まれるバイトの総数は indwrcnt レジスタで指定されている必要がありま

す。indwrレジスタのスタート・インダイレクトのライト・ビット(start)は、フ

ラッシュ・メモリに SRAM からのインダイレクトのライト動作をトリガします。

フラッシュ・デバイスに SRAM からのデータを書き込むために、外部マスタはデー

タ・スレーブに 32 ビットのライト・トランザクションを発行します。ライト・アク

セスのアドレスはインダイレクト・アドレスの範囲内になければなりません。

indaddrtrigレジスタを通じてインダイレクト・アドレスを設定することができま

す。外部マスタはインダイレクト転送の 後のワードまで 32 ビット・ライトを発行

することができます。 後のライトでは、外部マスタは転送を完了するために 32ビット、16 ビット、または 8 ビット・ライトを発行することができます。 後の転

送に書き込むデータは 4 バイト未満の場合、外部マスタは 32 ビット・ライトを発行

することができます・そして、クワッド SPI コントローラは余分なバイトを破棄し

ます。

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 7: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

第 12 章 : クワッド SPI フラッシュ・コントローラ 12–7クワッド SPI フラッシュ・コントローラの機能説明

SRAM のサイズは、クワッド SPI コントローラが外部マスタから受信できるデータの

量を制限することができます。 SRAM がライト・アクセスの時点でフルになっていな

い場合、データは 小レイテンシで SRAM にプッシュされます。外部マスタが SRAMが受け可能なより多くの SRAM にデータをプッシュすると、クワッド SPI コント

ローラはウェイト・ステートとの外部マスタをバックプレッシャーします。 SRAM の

リソースがフラッシュ・メモリに SRAM からのデータをプッシュすることで解放さ

れたときに、SRAM は外部マスタからのデータを受信するができます。 SRAM はフ

ラッシュ・ページのサイズより大きい、または同じバイト数がある場合、または

SRAM が現在のインダイレクト転送のすべての残りのバイトを保持する場合、クワッ

ド SPI コントローラはフラッシュ・メモリへのライト動作を開始します。

また、SRAM に多くのデータを書き込むタイミングを制御するために、sramfillレ

ジスタ内のプロセッサは SRAM のフィル・レベルを使用することができます。

また、indwrwaterレジスタで SRAM のフィル・レベルのウォーターマークを設定す

ることができます。SRAM のフィル・レベルがウォーターマーク・レベル以下にある

場合、インダイレクト転送ウォーターマーク割り込みは SRAM にデータの次のペー

ジを書き込むようにソフトウェアに指示するために生成されます。SRAM がデータの

フル・フラッシュ・ページが含まれているときだけクワッド SPI コントローラがフ

ラッシュ・メモリに non-end-of-data ライトを開始するので、システムのストールを

回避するために、ウォーターマーク・レベルの値を 1 より大きいフラッシュ・ペー

ジに設定する必要があります。indwrwaterレジスタにゼロを入力することによって、

ウォーターマーク機能をディセーブルことができます。

ライト・アクセスのアドレスがインダイレクト・トリガ・アドレスの範囲外である

場合、次のいずれかのことが発生します。

■ ダイレクト・アクセス・モードがイネーブルされると、書き込みは、ダイレク

ト・アクセス・モードを使用します。

■ ダイレクト・アクセス・モードがディセーブルされる場合、スレーブが要求マス

タにエラーを返します。

indwrレジスタのキャンセル・インダイレクト・ライト・ビット(cancel)を 1 に設

定することにより、インダイレクトの動作を取り消すことができます。

詳細については、12–18 ページの「間接ライト動作」に参照してください。

連続読み出しと書き込み短い連続で indrdまたは indwr レジスタの startビットを 2 回トリガすることによ

り、一度に 2 つのインダイレクト動作をトリガすることが可能である。 初の動作

の進行中に第二動作がトリガされることがあります。例えば、インダイレクトのラ

イト動作の進行中に、ソフトウェアは動作をインダイレクト・リードまたはライト

をトリガすることができます。ソフトウェアは、各転送動作をトリガする前に対応

するスタート・レジスタとカウント・レジスタを正しく設定する必要があります。

このアプローチは、第 1 回目のインダイレクト動作の完了および第 2 回目動作のス

タートとの間の短いターンアラウンド・タイムを可能にします。2 つの動作以上を

キューにするとインダイレクト・リードのリジェクト割り込みを生成します。

2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 8: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–8 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラの機能説明

ローカル・メモリ・バッファSRAM のローカル・メモリ・バッファは、128 経由の 32 ビット(総数 512 バイト)

のメモリでであり、ECC のためのサポートが含まれています。 ECC ロジックは、シン

グル・ビットの訂正可能なエラーが検出されたとき(また補正されたとき)、および

ダブル・ビット訂正不可能なエラーが検出されたときにシステム・マネージャに通

知するために出力を提供します。 ECC ロジックは、テストのために、シングルおよび

ダブル・ビット・エラーの注入を可能にします。

f 詳細は、「Cyclone V デバイス・ハンドブック Volume 3」の「 System Manager」の章を

参照してください。

SRAM は 2 つのパーティションがあります:インダイレクトのリード動作のための上

部パーティション、およびインダイレクトのライト動作のための下部パーティショ

ン。パーティションのサイズは、32 ビットのワード・サイズに基づいて SRAM の

パーティション・レジスタ(srampart)で指定されています。たとえば、ストレー

ジの 4 バイトを指定するには、値の 1 を入力してください。インダイレクトのリー

ド・パーティションのサイズ・フィールド(ADDR)に書き込まれた値は、インダイ

レクト・リードの動作用に予約されたエントリの数を定義します。例えば、32(0x20)の値を入力して、128 エントリ SRAM をリードの使用率に 32 エントリ

(25%)、そしてライトの使用率に 96 エントリ(75%)にパーティションします。

DMA のペリフェラル・リクエスト・コントローラバースト・リクエストで指定されたバイト数によってバイトの総数を分割すること、

そしてシングル要求でバイト数で残りを分割することにより、DMA のペリフェラ

ル・リクエスト・コントローラは DMA バーストとシングル要求の数に転送される

データの総量を分割します。

DMA のペリフェラル・リクエスト・インタフェースは 2 つがあります:インダイレ

クト・リード用とインダイレクト・ライト用です。DMA のペリフェラル・リクエス

ト・コントローラは 2 つの DMA リクエストのタイプ(シングルまたはバースト)を

外部 DMA に発行できます。シングルまたはバースト・リクエストのためのバイト数

は、DMA ペリフェラル・レジスタ(dmaper

)のシングル・バイト(numsglreqbytes)およびバースト・バイト

(numburstreqbytes)フィールドの数で指定されています。 バースト・リクエストで

指定されたバイト数によってバイトの総数を分割すること、そしてシングル要求で

バイト数で残りを分割することにより、DMA のペリフェラル・リクエスト・コント

ローラは DMA バーストとシングル要求の数に転送されるデータの総量を分割しま

す。

1 DMA コントローラをプログラミングする場合、バースト・リクエスト・サイズは急

速にオーバーフローまたはアンダーフロー状態にならないようにクワッド SPI コン

トローラで設定されたバースト・リクエストサイズと一致する必要があります。

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 9: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

第 12 章 : クワッド SPI フラッシュ・コントローラ 12–9クワッド SPI フラッシュ・コントローラの機能説明

インダイレクト・リードの場合、データがフラッシュ・メモリーから検索され、そ

して SRAM に書き込まれた後、DMA のペリフェラル・リクエスト・コントローラは

単に DMA リクエストを発行します。発行されるレートでは、DMA 要求がウォーター

マーク・レベルによって異なります。indrdwaterレジスタは、DMA のペリフェラ

ル・リクエスト・コントローラが DMA 要求を発行することができるバイト数で 小

のフィル・レベルを定義します。この数値が高いほど、外部 DMA がデータを移動す

る前に、より多くのデータが SRAM 内にバッファリングされている必要があります。 SRAM のフィル・レベルがウォーターマーク・レベルを通過すると、転送ウォーター

マーク達成割り込みが生成されます。

例えば、以下の条件を考慮してください。

■ 間接モードを使用する読み込まれるデータの総量は 256 バイト

■ SRAM のウォーターマーク・レベルが 128 バイトに設定されている

■ ソフトウェアは、64 バイトまでのバースト・タイプの転送サイズを設定する

これらの条件下で、DMA のペリフェラル・リクエスト・コントローラは SRAM フィ

ル・レベルが 128 バイト(ウォーターマーク・レベル)を渡す 初の DMA バース

ト・リクエストを発行します。バースト・タイプの要求を実行するための SRAM 内

に十分なデータがある限り、DMA ペリフェラル・リクエスト・コントローラが連続

した DMA バースト・リクエストをトリガします。この例で、DMA のペリフェラル・

リクエスト・コントローラは 128 バイトの合計を転送するには、少なくとも 2 つの

連続した DMA バースト・リクエストを発行できます。 SRAM 内に十分なデータがあ

る場合、DMA のペリフェラル・リクエスト・コントローラは第 3 目の DMA バースト

を直ちに要求します。 それ以外の場合、DMA のペリフェラル・リクエスト・コント

ローラーは、SRAM フィル・レベルが次のバースト・リクエストを引き起こすために

再びウォーターマーク・レベルを超えるまで待ちます。ウォーターマーク・レベル

がトリガされると、全体のトランザクションを完了するために、第 3 および第 4 の

バースト・リクエストを実行するための SRAM 内の十分なデータがあります。

インダイレクト・ライトでは、全てのインダイレクト・ライト・トランスファーが

後まで転送がトリガーし続き、その直後に DMA のペリフェラル・リクエスト・コ

ントローラーは DMA リクエストを発行します。 DMA 要求が発行されるレートでは、

ウォーターマーク・レベルによって異なります。 indwrwaterレジスタは、コント

ローラが 初の DMA バーストまたはシングル・リクエストを発行できるバイト数で

大フィル・レベルを定義します。 SRAM のフィル・レベルがウォーターマーク・レ

ベル以下になると、転送ウォーターマーク達成割り込みが生成されます。 SRAM での

データの一つのフラッシュ・ページがある場合、クワッド SPI コントローラは SRAMからフラッシュ・メモリにライト動作を開始します。

ソフトウェアは、CFG レジスタの endmaフィールドで DMA のペリフェラル・リクエ

スト・インタフェースをイネーブルすることができます。 DMA 以外のマスタはイン

ダイレクトの動作のためのデータ転送を実行する場合、DMA のペリフェラル・リク

エスト・インタフェースをイネーブルする必要があります。デフォルトでは、イン

ダイレクトのウォーターマーク・レジスタはゼロに設定され、その DMA のペリフェ

ラル・リクエスト・コントローラは、すぐに DMA リクエストを発行できることを意

味します。

f HPS の DMA コントローラについて詳しくは、「Cyclone V デバイス・ハンドブックVolume 3」の「 DMA Controller」の章を参照してください。

2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 10: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–10 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラの機能説明

STIG 動作STIG は、ソフトウェアのフラッシュ・デバイス・レジスタにダイレクト・アクセス

するためのメソッドを提供します。flashcmdレジスタは、フラッシュ・デバイスに

対して発行されるコマンドを定義するには、次のパラメータを使用します。

■ Instruction opcode

■ Number of address bytes

■ Number of dummy bytes

■ Number of write data bytes

■ Write data

■ Number of read data bytes

アドレスがフラッシュ・コマンド・アドレス・レジスタ(flashcmdaddr)によって

指定されます。これらの設定が指定されていると、そのソフトウェアは、flashcmdレジスタのコマンド・フィールド(execcmd)を実行し、flashcmdレジスタのコマ

ンド実行ステータス・ビット(cmdexecstat)をポーリングすることにより、その完

了を待って、コマンドをトリガすることができます。 大 8 つのデータ・バイトは、

コマンドごとにフラッシュ・コマンド・リード・データ下位(flashcmdrddatalo)およびフラッシュ・コマンド・リード・データ上位(flashcmdrddataup)レジスタ

から読み出し、またはコマンドごとにフラッシュ・コマンド・データ下位

(flashcmdwrdatalo)およびフラッシュ・コマンド・ライト・データ上位

(flashcmdwrdataup)レジスタに書き込むことがあります。

STIG を通じて発行されたコマンドは、他のすべてのリード・アクセスよりも高い優

先順位を持っているため、ダイレクトまたはインダイレクトのコントローラによっ

て要求されるすべてのリード・コマンドを中断します。しかし、STIG は、ダイレク

トまたはインダイレクトのアクセス・コントローラを介して発行されている可能性

があり、ライト・シーケンスが中断されることはありません。これらのケースでは、

動作が完了したことを示す flashcmdレジスタの cmdexecstatビットのために長い時

間がかかる場合があります。

1 アルテラは、フラッシュ・デバイスのレジスタにアクセスし、消去動作を実行する

ために STIG の代わりに SPI のレガシー・モードを使用することを推奨します。

SPI レガシー・モードSPI のレガシー・モードで、ソフトウェアがダイレクト、インダイレクト、および

STIG コントローラをバイパスして、直接的に内部 TX FIFO および RX FIFO バッファに

アクセスすることができます。ソフトウェアは、レガシー・モードがイネーブルさ

れる一方、データ・スレーブによって任意のアドレスに任意の値を書き込むことに

より、TX FIFO および RX FIFO バッファにアクセスします。cfgレジスタのレガシー IPモード・イネーブル・ビット(enlegacyip)を使用してレガシー・モードをイネー

ブルすることができます。

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 11: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

第 12 章 : クワッド SPI フラッシュ・コントローラ 12–11クワッド SPI フラッシュ・コントローラの機能説明

レガシー・モードでは、ユーザーがフラッシュ・デバイスに任意のフラッシュ命令

を発行することができますが、効果的に FIFO バッファのフィル・レベルを管理する

ために多いソフトウェアのオーバーヘッドを課しています。チップ・セレクトがイ

ネーブルされるときに、レガシー SPI モードは本質的に双方向で、データが連続的

に両方向に転送されます。ドライバがフラッシュ・デバイスからデータを読み込む

必要がある場合、ダミー・データはチップ・セレクトがアクティブのまま(またラ

イト・トランザクションに対しても同じ)に書き込まれる必要があります。

たとえば、3 つのアドレス・バイトを持つフラッシュ・デバイスに 4 バイトの基本的

なリードを実行するために、ソフトウェアは TX FIFO バッファに 8 バイトの合計を書

き込むする必要があります。 初のバイトは命令オペコードとなり、次の 3 バイト

はアドレスであります。そして、 後の 4 バイトは、リード・データがリターンさ

れている間、チップ・セレクトがアクティブに保証するためのダミー・データです。 同様に、8 バイトは、TX FIFO バッファに書き込まれているため、ソフトウェアは、

RX FIFO バッファにリターンされる 8 バイトを想定する必要があります。この 初の

4 バイトは、 終の 4 バイトにデバイスから読み出されたデータを保持させておいて

廃棄されます。

それぞれの TX FIFO および RX FIFO バッファは 4 バイトの深さがあるので、ソフト

ウェアは、TX FIFO バッファがアンダーフローしないように、そして RX FIFO バッ

ファがオーバーフローしないように FIFO バッファのレベルを維持することが必要で

す。割り込みは、フィル・レベルが TX スレッショルド・レジスタ(txtresh)およ

び RX スレッショルド・レジスタ(rxtresh)を使用して構成可能なウォーターマー

ク・レベルを達成することを示すために用意されています。

フラッシュ・デバイスのコンフィギュレーションリード・アクセスおよびライト・アクセスで、ソフトウェアはデバイス・リード命

令レジスタ(devrd)およびデバイス・ライト命令レジスタ(devwr)を初期化する

必要があります。これらのレジスタは、命令タイプと同様に使用される命令オペ

コードを初期化するためのフィールドが含まれております。また、アドレスとデー

タ転送のために、シングル、デュアル、またはクワッドのピンを使用する命令も含

まれています。クワッド SPI コントローラがリセット状態から動作可能なことを確

認するには、オペコード・レジスタはシングル I/O フラッシュ・デバイスに準拠する

オペコードにリセットします。

クワッド SPI フラッシュ・コントローラは、リードおよびライトの両方の命令転送

幅を設定する devrdレジスタの命令転送幅フィールド(instwidth)を使用します。 devwrレジスタには instwidthフィールドはありません。アドレスとデータ・タイプ

が指示タイプに基づくので、命令のタイプはデュアルまたはクワッド・モードに設

定されている場合、両方のレジスタのアドレス転送幅(addrwidth)およびデータ転

送幅(datawidth)フィールドが冗長化されています。したがって、ソフトウェア

は、オペコード、アドレス、およびデータが 2 つまたは 4 つのレーン上で送信され、

もっとまれなフラッシュ命令をサポートすることができます。ほとんどの命令では、

2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 12: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–12 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラの機能説明

オペコードは、デュアルとクワッド命令でもフラッシュ・デバイスにシリアルで送

信されています。 2 つまたは 4 つのレーン上にオペコードを送信可能な命令をサポー

トするフラッシュ・デバイスの一つは、Micron N25Q128 です。参考のために、

表 12–1 には、ソフトウェアが Micron N25Q128 デバイスにサポートされた個々の特定

のリードおよびライト命令のクワッド SPI コントローラの構成する方法を示します。

XIP モードフラッシュ・デバイスが XIP モードをサポートすると、クワッド SPI コントローラも

XIP モードをサポートしています。フラッシュ・デバイスに応じて、XIP のモードで

は、コマンド・オーバーヘッドを低減し、読み出し専用モードでのフラッシュ・デ

バイスを置きます。

クワッド SPI コントローラはモード・ビットを送信することによって、XIP モードを

開始するには、フラッシュ・デバイスに指示する必要があります。 cfgレジスタの

enter XIP mode on next read bit (enterxipnextrd)は 1 に設定される場合、クワッド

SPI コントローラとフラッシュ・デバイスは、次の読み出し命令に XIP モードを開始

することができます。 cfgレジスタの enter XIP mode immediately bit(enterxipimm)は

1 に設定される場合、クワッド SPI コントローラおよびフラッシュ・デバイスは直ち

に XIP・モードを開始します。

表12‒1. Micron N25Q128 デバイス用のクワッド SPI コンフィギュレーション

命令オペコードで使用するレーン

 アドレスを送信するレーン

 データを送信するレーン

instwidth の値

addrwidth の値

datawidth の値

リード命令Read 1 1 1 0 0 0

Fast read 1 1 1 0 0 0

Dual output fast read (DOFR) 1 1 2 0 0 1

Dual I/O fast read (DIOFR) 1 2 2 0 1 1

Quad output fast read (QOFR) 1 1 4 0 0 2

Quad I/O fast read (QIOFR) 1 4 4 0 2 2

Dual command fast read (DCFR) 2 2 2 1 任意の値 任意の値

Quad command fast read (QCFR) 4 4 4 2 任意の値 任意の値

ライト、英霊Page program 1 1 1 0 0 0

Dual input fast program (DIFP) 1 1 2 0 0 1

Dual input extended fast program (DIEFP) 1 2 2 0 1 1

Quad input fast program (QIFP) 1 1 4 0 0 2

Quad input extended fast program (QIEFP) 1 4 4 0 2 2

Dual command fast program (DCFP) 2 2 2 1 任意の値 任意の値

Quad command fast program (QCFP) 4 4 4 2 任意の値 任意の値

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 13: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

第 12 章 : クワッド SPI フラッシュ・コントローラ 12–13クワッド SPI フラッシュ・コントローラの機能説明

CFG レジスタの enterxipnextrdまたは enterxipimmビットを 0 に設定すると、ク

ワッド SPI コントローラおよびフラッシュ・デバイスは次の読み出し命令での XIPモードを終了します。

詳細については、12–19 ページの「XIP モードの動作」を参照してください。

ライト保護フラッシュ・デバイスの特定の領域の書き込みを保護するためにコントローラをプ

ログラムすることができます。保護された領域は、開始と終了のブロックで指定さ

れたブロックの集合として定義されます。保護されたフラッシュ領域のメモリに書

き込むと、エラーが生成され、割り込みをトリガします。

device size register(devsz)の bytes per block field(bytespersubsector)の数を介して

ブロックごとのバイト数を指定することにより、ブロック・サイズを定義します。

lower write protection register(lowwrprot)は保護された領域内の 初のフラッシュ・

ブロックを指定します。upper write protection register(uppwrprot)は保護された領域

の 後のフラッシュ・ブロックを指定します。

ライト・プロテクトは、write protection register(wrprot)の write protection enable bit (en)は、保護をイネーブルとディセーブルします。 wrprotレジスタの write

protection inversion bit(inv)は lowwrprtと uppwrprtで指定された領域が保護されず

に、その領域外のすべてのフラッシュ・メモリが保護されているので、保護の定義

を反転させます。

データ・スレーブのシーケンシャル・アクセスの検出クワッド SPI フラッシュ・コントローラは、以前のアクセスと現在のアクセスを比

較することによって、データのスレーブ・インタフェースにシーケンシャル・アク

セスを検出します。以下の条件を満たす場合、シーケンシャル・アクセスとなりま

す。

■ 現在のアクセスのアドレスはシーケンシャルに前のアクセスのアドレスが続きま

す。

■ 現在のアクセスの方向は(リードまたはライト)は前回のアクセスと同じです。

■ 現在のアクセスのサイズ(バイト、ハーフワード、またはワード)は、以前のア

クセスと同じです。

シーケンシャルではないアクセスが検出された場合、フラッシュ・デバイスへの

シーケンシャル・アクセスが終了し、新たなシーケンシャル・アクセスが開始され

ます。アルテラは、シーケンシャルにデータのスレーブにアクセスすることを推奨

します。シーケンシャル・アクセスは、より少ないコマンド・オーバーヘッドがあ

るので、データのスループットを増加することができます。

クロッククワッド SPI コントローラに 2 つのクロック入力(l4_mp_clkと qspi_clk)と 1 つ

のクロック出力(sclk_out)があります。クワッド SPI フラッシュ・コントローラ

は、クロック・データ・スレーブ転送およびレジスタ・スレーブ・アクセスをク

ロックするために l4_mp_clkを使用します。 qspi_clkクロックはクワッド SPI コン

トローラ用のレファランス・クロックであり、データをシリアライズして外部の SPIインタフェースを駆動するために使用されています。sclk_outクロックが接続され

たフラッシュ・デバイス用のクロック・ソースです。

2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 14: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–14 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラの機能説明

qspi_clkクロックは l4_mp_clkの 2 倍 より大きくなければなりません。 sclk_outク

ロックは cfgレジスタの the baud rate divisor field(bauddiv)による qspi_clkクロッ

クを分周することによって導出されます。

f 詳細については、「Cyclone V デバイス・ハンドブック Volume 3」の「 Clock Manager」の章を参照してください。

リセットクワッド SPI コントローラへの入力として single reset signal(qspi_flash_rst_n)が

提供されています。リセット・マネージャはコールドまたはウォーム・リセット時

に信号を駆動します。

f 詳細については、「Cyclone V デバイス・ハンドブック Volume 3」の「 Reset Manager 」の章を参照してください。

割り込みすべての割り込み要因は、シングル・レベル・センシティブの active-high interrupt

(qspi_intr_in)を作成するために結合されます。ソフトウェアは、interrupt status register(irqstat)を読み込むことにより、割り込みの原因を判別することができま

す。デフォルトの設定では、ソフトウェアが割り込みステータ・スレジスタに書き

込む場合、割り込みソースがクリアされます。割り込みは、interrupt mask register(irqmask)を介して個別にマスクできます。表 12–2 には、irqstatレジスタの割り

込みソースが一覧表示されます。

表12‒2. irqstat レジスタでの割り込みソース

割り込みソース 説明

アンダーフローが検出される

0 の場合、何アンダーフローが検出されていません。 1 の場合、データはスレーブ・ライト・データが遅すぎるが供給されています。要求されたライト動作維持するための供給されているデータ・スレーブ・ライト・データが遅すぎると、この状況が発生する可能性があります。 このビットは、システム・リセットによってのみリセットされ、レジスタに書き込まれている場合にのみゼロにクリアされます。

コントローラは、トリガされたインダイレクト動作を完了しています。

インダイレクト動作が完了される

コントローラは、トリガされたインダイレクト動作を完了しています。

インダイレクト・リード・リジェクト

インダイレクト動作が要求されましたが、2 つのインダイレクトの動作は、キューに既に実行されているので、受け入れられません

保護された領域のライト攻撃保護された領域へのライトが試みと拒否されました。

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 15: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

第 12 章 : クワッド SPI フラッシュ・コントローラ 12–15クワッド SPI フラッシュ・コントローラの機能説明

インタフェース信号クワッド SPI コントローラは 大 4 外部クワッド SPI フラッシュ・デバイスをコント

ロールするように 4 チップ・セレクト出力を提供します。デバイスがシングル、

デュアル、またはクアッド動作モードで使用されることに応じて、出力は、異なる

目的を果たします。表 12–3 は、各動作モードのクワッド SPI コントローラ・インタ

フェース信号の I/O ピンの使用を示しています。

不正なデータ・スレーブ・アクセスが検出される

不正なデータ・スレーブ・アクセスが検出されました。データ・スレーブのラッピング・バーストとスプリットのリトライ・アクセスは、この割り込みが発生することがあります。これは通常、FPGA ファブリック内のソフト・マスタがサポートされていない方法で HPS をアクセスしようとしている指標です。

転送透ウォーターマークは達成される

インダイレクト転送ウォーターマーク・レベルに達成しました。

オーバーフローが受信される

この条件は、レガシー SPI モードにのみ発生します。 0 のとき、オーバーフローが検出されていませんが、 1 のとき、RX FIFO バッファへのオーバーフローが発生しました。このビットは、システム・リセットによってのみリセットされ、このレジスタの書き込みの場合にのみゼロにクリアされます。レジスタが読み出されるときに RX FIFO バッファへの新しいライトが同時に発生した場合、このフラグが 1に設定されたままです。

TX FIFO がフルではないこの条件は、レガシー SPI モードで発生します。 0の場合、TX FIFO バッファはフルですが、 1 の場合、TX FIFO バッファはフルではありません。

TX FIFO がフルこの条件は、レガシー SPI モードで発生します。0の場合、TX FIFO バッファはフルではありませんが、 1 の場合、TX FIFO バッファはフルです。

RX FIFO が空ではないこの条件は、レガシー SPI モードで発生します。 0の場合、RX FIFO バッファが空ですが、 1 の場合、RX FIFO バッファが空ではありません。

RX FIFO がフルこの条件は、レガシー SPI モードで発生します。0の場合、RX FIFO バッファはフルではありませんが、 1 の場合、RX FIFO バッファはフルです。

イダイレクト・リード・パーティションオーバーフロー

SRAM のインダイレクト・リード・パーティションが完全かつ即時にインダイレクトの動作を完了できません。

表12‒2. irqstat レジスタでの割り込みソース

割り込みソース 説明

表12‒3. インタフェース信号

信号 モード 入力 / 出力 機能

data[0]シングル 出力 データ出力 0

デュアル、またはクアッド

双方向 データ I/O 0

2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 16: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–16 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラのプログラミング・モデル

クワッド SPI フラッシュ・コントローラのプログラミング・モデル

この項では、クワッド SPI コントローラ用のプログラミング・モデルについて説明

します。

クワッド SPI フラッシュ・コントローラの設定次のステップでは、クワッド SPI コントローラの設定方法について説明します。

1. 保留中の動作が完了するまで待ちます。

2. cfgレジスタのクワッド SPI イネーブル・フィールド(en)を備えたクワッド

SPI コントローラをディセーブルします。

3. ダイレクトおよびインダイレクトのライトとリードに使用する命令タイプを持つ

devrdレジスタの instwidthフィールドを更新します。

4. devrdレジスタの mode bit enable bit(enmodebits)がイネーブルされる場合、

モード・レジスタ(modebit)を更新します。

5. 必要に応じ devszレジスタを更新します。このレジスタの一部またはすべてが初

期化後にアップデートされている可能性があります。アドレス・バイト数のリー

ドおよびライトを実行するために必要なキー・コンフィギュレーションです。

ページあたりのバイト数は、すべてのライトを実行するために必要です。ライト

の保護機能を使用する場合、デバイスのブロックごとのバイト数のみ必要となり

ます。

data[1]シングル 入力 データ出力 0

デュアル、またはクアッド

双方向 データ I/O 1

data[2]シングル、またはデュアル

出力 アクティブ Low ライト保護

クアッド 双方向 データ I/O 2

data[3]シングル、デュアル、またはクアッド

双方向 データ I/O 3

ss_n[0]

シングル、デュアル、またはクアッド

出力

アクティブ Low スレーブ・セレクト 0ss_n[1] アクティブ Low スレーブ・セレクト 1ss_n[2] アクティブ Low スレーブ・セレクト 2ss_n[3] アクティブ Low スレーブ・セレクト 3sclk シリアル・クロック

表12‒3. インタフェース信号

信号 モード 入力 / 出力 機能

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 17: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

第 12 章 : クワッド SPI フラッシュ・コントローラ 12–17クワッド SPI フラッシュ・コントローラのプログラミング・モデル

6. device delay register(delay)を更新します。このレジスタで、各フラッシュ・ア

クセスした後にチップ・セレクトの駆動される方法を調整することができます。

各デバイスは、異なるタイミング要件があるかもしれません。シリアル・クロッ

ク周波数が増加すると、これらのタイミング要件がより重要になります。このレ

ジスタで指定された番号は qspi_clkクロックの周期に基づいています。

たとえば、それがディアサートされた後にセレクト・スレーブがリアサートされ

る前に、一部のデバイスは 50 ns の 小時間を必要としています。デバイスが

100 MHz で動作している場合、クロック周期は 10 ns であるので、また 40 ns が必

要です。 qspi_clkクロックが 400 MHz(2.5 ns の周期)で実行されている場合、

delayレジスタのチップ・セレクト・ディアサート・フィールド(nss)に少なく

とも 16 値を指定します。

7. 必要に応じ remapaddrレジスタを更新します。このレジスタは、ダイレクト・ア

クセス・モードに影響を与えます。

8. アップライト保護レジスタ(wrprot、lowwrprot、および uppwrprot)を設定お

よびイネーブルすると、保護を作成するときに必要です。

9. irqmaskレジスタで必要な割り込みをイネーブルします。

10. cfgレジスタの bauddivフィールドを設定して、ターゲット・デバイスの必要な

クロック周波数を定義します。

11. 必要に応じて read data capture register(rddatacap)を更新します。このレジスタ

は、リード・データがキャプチャされるときに遅延され、デバイスからクワッド

SPI コントローラへのリード・データパスが長いとき、またはデバイスのクロッ

ク周波数が高い場合に役立ちます。

12. cfgレジスタの enフィールドとのクワッド SPI コントローラををイネーブルしま

す。

インダイレクト・リード動作次のステップでは、DMA をディセーブルされるインダイレクト・リード動作のため

のクワッド SPI コントローラを設定するための一般的なソフトウェア・フローを説

明します。

1. 12–16 ページの「クワッド SPI フラッシュ・コントローラの設定」で説明するス

テップを実行します。

2. indrdstaddrレジスタ内のフラッシュ・メモリのスタート・アドレスを設定しま

す。

3. indrdcntレジスタに転送されるバイト数を設定します。

4. indaddrtrig レジスタにインダイレクト転送のトリガ・アドレスを設定します。

5. irqmaskレジスタを介して必要な割り込みを設定します。

6. ウォーターマーク・レベルが使用されている場合、indrdwaterレジスタを経由し

て SRAM のウォーターマーク・レベルを設定します。

7. indrdレジスタの startフィールドを 1 に設定することにより、インダイレクト

のリード動作を開始します。

8. SRAM 内の十分なデータが存在するを決定するために、ウォーターマーク・レベ

ル割り込みを使用するか、または sramfillレジスタの SRAM フィル・レベルを

ポーリングします。

2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 18: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–18 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラのプログラミング・モデル

9. SRAM をアクセスするためのインダイレクト・アドレスにリード・トランザク

ションを発行します。もっとリード・トランザクションがインダイレクト・リー

ド転送を完了するために必要な場合、ステップ 8 を繰り返します。

10. インダイレクト・リード動作が完成したを断定するためにインダイレクトの完了

割り込みを使用するか、あるいは indrdレジスタの indirect completion status bit(ind_ops_done_status)によってインダイレクト・リード動作の完成ステータス

を使用します。

次のステップでは、DMA がイネーブルされるインダイレクトのリード動作用のク

ワッド SPI コントローラを設定するための一般的なソフトウェア・フローを説明し

ます。

1. 12–16 ページの「クワッド SPI フラッシュ・コントローラの設定」で説明するス

テップを実行します。

2. indrdstaddrレジスタ内のフラッシュ・メモリのスタート・アドレスを設定しま

す。

3. indrdcntレジスタに転送されるバイト数を設定します。

4. indaddrtrig レジスタにインダイレクト転送のトリガ・アドレスを設定します。

5. dmaperレジスタのシングルおよびバースト・タイプ DMA 転送バイト数を設定し

ます。

6. 必要に応じて DMA 要求が発行されるレートを制御するためにレジスタ

indrdwaterの SRAM ウォーターマーク・レベルを設定します。

7. indrdレジスタの startフィールドを 1 に設定することにより、インダイレクト

のリード・アクセスを開始します。

8. インダイレクト・リード動作が完成したを断定するためにインダイレクトの完了

割り込みを使用するか、あるいは indrdレジスタの ind_ops_done_statusによっ

てインダイレクト・リード動作の完成ステータスを使用します。

間接ライト動作次のステップでは、DMA がディセーブルされるインダイレクトのリード動作用のク

ワッド SPI コントローラを設定するための一般的なソフトウェア・フローを説明し

ます。

1. 12–16 ページの「クワッド SPI フラッシュ・コントローラの設定」で説明するス

テップを実行します。

2. indwrstaddrレジスタ内のフラッシュ・メモリのスタート・アドレスを設定しま

す。

3. indwrcntレジスタに転送されるバイト数を設定します。

4. indaddrtrig レジスタにインダイレクト転送のトリガ・アドレスを設定します。

5. irqmaskレジスタを介して必要な割り込みを設定します。

6. 必要に応じて DMA 要求が発行されるレートをコントロールするために

indwrwater レジスタの SRAM のウォーターマーク・レベルを設定します。値の

セットは、1 つのフラッシュ・ページより大きくなければなりません。詳細につ

いては、12–6 ページの「間接ライト動作」を参照してください。

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 19: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

第 12 章 : クワッド SPI フラッシュ・コントローラ 12–19クワッド SPI フラッシュ・コントローラのプログラミング・モデル

7. indwrレジスタの startフィールドを 1 に設定することにより、インダイレクト

のライト動作を開始します。

8. SRAM 内で十分なスペースがあることを判断するには、ウォーターマーク・レベ

ル割り込みを使用するか、または sramfillレジスタの SRAM フィル・レベルを

ポーリングします。

9. SRAM へのデータの一つのフラッシュ・ページを書き込むためのインダイレク

ト・アドレスにライト・トランザクションを発行します。もっとライト・トラン

ザクションはインダイレクト・ライト転送を完了するために必要な場合、ステッ

プ 8 を繰り返します。 終のライトは 1 ページ未満のデータになる場合がありま

す。

次のステップでは、DMA がイネーブルされるインダイレクト・ライト動作用にク

ワッド SPI コントローラを設定するための一般的なソフトウェア・フローを説明し

ます。

1. 12–16 ページの「クワッド SPI フラッシュ・コントローラの設定」で説明するス

テップを実行します。

2. indwrstaddrレジスタ内のフラッシュ・メモリのスタート・アドレスを設定しま

す。

3. indwrcntレジスタに転送されるバイト数を設定します。

4. indaddrtrig レジスタにインダイレクト転送のトリガ・アドレスを設定します。

5. dmaperレジスタのシングルおよびバースト・タイプ DMA 転送バイト数を設定し

ます。必要に応じて DMA 要求が発行されるレートをコントロールするための

indwrwaterレジスタの SRAM のウォーターマーク・レベルを設定します。値の

セットは、1 つのフラッシュ・ページより大きくなければなりません。詳細につ

いては、12–6 ページの「間接ライト動作」を参照してください。

6. indwrレジスタの startフィールドを 1 に設定することにより、インダイレクト

のライト動作を開始します。

7. インダイレクト・ライト動作が完成したを断定するためにインダイレクトの完了

割り込みを使用するか、あるいは indwrレジスタの ind_ops_done_statusによっ

てインダイレクト・ライト動作の完成ステータスを使用します。

XIP モードの動作この項では、XIP モードの入出力について説明します。 XIP のモードはほとんどの SPIフラッシュ・デバイスでサポートされています。ただし、フラッシュ・デバイス・

メーカーは、一貫性のある標準的なアプローチを使用しないでください。ほとんど

のフラッシュ・デバイス・メーカーは、アドレス・バイトの直後にデバイスに送信

されるシグネチャ・ビットを使用します。一部のデバイスでは、XIP モードをイネー

ブルにするためにシグネチャ・ビットを使用し、フラッシュ・デバイス・コンフィ

ギュレーションのレジスタ・ライトを必要としています。

XIP モードの実行次の項では、ソフトウェアがフラッシュ・デバイスの様々なタイプの XIP モードに

入るためのステップについて説明します。

2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 20: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–20 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラのプログラミング・モデル

Basic-XIP のためのサポート付きのMicron クワッド SPI フラッシュ・デバイスBasic-XIP のサポート付きの Micron クワッド SPI フラッシュ・デバイス内の XIP モー

ドに入るには、次のステップを実行します。

1. 終了時に値を復元する場合、モード・ビットの値を保存します。

2. フラッシュ・デバイスにリード・アクセスまたはライト・アクセスが送信されな

いように、ダイレクト・アクセス・コントローラおよびインダイレクト・アクセ

ス・コントローラをディセーブルします。

3. modebitレジスタの XIP モード・ビットを 0x80 に設定します。

4. cfgレジスタの enterxipnextrdビットを 1 に設定することによって、クワッド

SPI コントローラの XIP モードををイネーブルします。

5. 必要に応じて、ダイレクト・アクセス・コントローラおよびインダイレクト・ア

クセス・コントローラをリイネーブルします。

Basic-XIP のためのサポートなしのMicron クワッド SPI フラッシュ・デバイスBasic-XIP のサポートなしで Micron クワッド SPI フラッシュ・デバイス内の XIP モー

ドを開始するには、次のステップを実行します。

1. 終了時に値を復元する場合、モード・ビットの値を保存します。

2. フラッシュ・デバイスにリード・アクセスまたはライト・アクセスが送信されな

いように、ダイレクト・アクセス・コントローラおよびインダイレクト・アクセ

ス・コントローラをディセーブルします。

3. 不揮発性コンフィギュレーション・レジスタ(VCR)のビット 3 を 1 に設定する

ことにより、 フラッシュ・デバイスで XIP モードがイネーブルされることを確

認します。VCR のライト・コマンドを発行する flashcmdレジスタを使用します。

4. modebitレジスタの XIP のモード・ビットを 0x00 に設定します。

5. cfgレジスタの enterxipnextrdビットを 1 に設定することによって、クワッド

SPI コントローラの XIP モードををイネーブルします。

6. 必要に応じて、ダイレクト・アクセス・コントローラおよびインダイレクト・ア

クセス・コントローラをリイネーブルします。

Winbond クワッド SPI フラッシュ・デバイスWinbond クワッド SPI フラッシュ・デバイスの XIP モードを開始するには、次のス

テップを実行します。

1. 終了時に値を復元する場合、モード・ビットの値を保存します。

2. フラッシュ・デバイスにリード・アクセスまたはライト・アクセスが送信されな

いように、ダイレクト・アクセス・コントローラおよびインダイレクト・アクセ

ス・コントローラをディセーブルします。

3. modebitレジスタの XIP のモード・ビットを 0x20 に設定します。

4. cfgレジスタの enterxipnextrdビットを 1 に設定することによって、クワッド

SPI コントローラの XIP モードををイネーブルします。

5. 必要に応じて、ダイレクト・アクセス・コントローラおよびインダイレクト・ア

クセス・コントローラをリイネーブルします。

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 21: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

第 12 章 : クワッド SPI フラッシュ・コントローラ 12–21クワッド SPI フラッシュ・コントローラのプログラミング・モデル

Spansion クワッド SPI フラッシュ・デバイスXIP モード Spansion のクワッド SPI フラッシュ・デバイスを開始するには、次のス

テップを実行します。

1. 終了時に値を復元する場合、モード・ビットの値を保存します。

2. フラッシュ・デバイスにリード・アクセスまたはライト・アクセスが送信されな

いように、ダイレクト・アクセス・コントローラおよびインダイレクト・アクセ

ス・コントローラをディセーブルします。

3. modebitレジスタの XIP のモード・ビットを 0xA0 に設定します。

4. cfgレジスタの enterxipnextrdビットを 1 に設定することによって、クワッド

SPI コントローラの XIP モードををイネーブルします。

5. 必要に応じて、ダイレクト・アクセス・コントローラおよびインダイレクト・ア

クセス・コントローラをリイネーブルします。

XIPモードの終了XIP モードを終了するには、次のステップを実行します。

1. ダイレクト・アクセス・コントローラおよびインダイレクト・アクセス・コント

ローラを使用不可に新しい読み出しを保障しない、またはフラッシュ・デバイス

に送信されるアクセスを記述するためのをディセーブルします。

2. フラッシュ・デバイスおよびメーカーによって、XIP モードに入る前の値にモー

ド・ビットを復元します。

3. cfgレジスタの enterxipnextrdビットを 0 に設定します。

フラッシュ・デバイスは、内部の XIP モード状態をイネーブルする前に、リード命

令を受けなければなりません。このように、次のリード命令が処理されるまで、XIPモードは内部的にアクティブなままとなります。任意のリード・シーケンスの終点

の前にその XIP のモードがディセーブルすることを確認してください。

パワー・オン・リセットでのXIP モードいくつかのフラッシュ・デバイスは、フラッシュ・デバイスがパワー・オン・リ

セット(POR)ソフトウェアの介入なしでの XIP モードを入力する不揮発性コンフィ

ギュレーションの設定として XIP をイネーブルにすることができます。 XIP をイネー

ブルにしたフラッシュ・デバイス XIP のリード動作でのみアクセスすることができ

るため、ソフトウェアはフラッシュ・ステータス・レジスタ・リードを通して PORの XIP ステートを検出することはできません。デバイスが POR 時の XIP モードに開

始することがわかっている場合、 初のブート・ソフトウェアは modebitレジスタ

を設定し、cfgレジスタの enterxipimmのビットは 1 に設定してください。

デバイスが POR 時 XIP モードを開始するかどうかを事前に知らない場合、XIP モー

ド終了コマンドは flashcmdレジスタを介して 初のブート・ソフトウェアを発行し

て、12–19 ページの「XIP モードの実行」でのステップに従ってください。 XIP モード

のエントリとエクスィットはデバイスによって異なりますので、ソフトウェアは、

デバイスのモード・ビットの要件を認識する必要があります。

2012 年 11 月 Altera Corporation Cyclone V デバイス・ハンドブックVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル

Page 22: ハード・プロセッサ・システム (HPS)のテクニカル …cv_54012-1.2 12–2 第12章:クワッドSPIフラッシュ・コントローラ クワッドSPIフラッシュ・コントローラのブロック図とシステム統合

12–22 第 12章 : クワッド SPI フラッシュ・コントローラクワッド SPI フラッシュ・コントローラのアドレス・マップおよびレジスタの定義

クワッド SPI フラッシュ・コントローラのアドレス・マップおよびレジスタの定義

f アドレス・マップとレジスタ定義は、このハンドブックのボリュームに hps.htmlファイルに格納されています。ファイルを開くためにリンクをクリックしてくださ

い。

モジュールの説明とベース・アドレスを表示しするために、次のモジュール・イン

スタンスのリンクをスクロールおよびクリックします。

■ qspiregs

■ qspidata

次に、レジスタとフィールドの説明を表示するには、レジスタ名をスクロールとク

リックします。レジスタ・アドレスは、各モジュール・インスタンスのベース・ア

ドレスへの相対的なオフセットです。

f すべてのモジュールのベース・アドレスも X に記載されています。すべてのモジュー

ルのベース・アドレスは、「Cyclone V デバイス・ハンドブック Volume 3」の「 Introduction to the Hard Processor System」にもリストされています。

改訂履歴表 12–4 に、本資料の改訂履歴を示します。

表12‒4. 改訂履歴

日付 バージョン 変更内容 2012 年 11月

1.2 マイナーな更新。

2012 年 5 月 1.1 ブロック図とシステム統合、機能説明、プログラミング・モデル、およびアドレス・マップとレジスタ定義セクションを追加します。

2012 年 1 月 1.0 初版。

Cyclone V デバイス・ハンドブック 2012年 11 月 Altera CorporationVolume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル