MAX II デバイスの UFM の使用 この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用 ください。設計の際には、最新の英語版で内容をご確認ください。 Application Note 489 2007 年 12 月 ver 1.0 はじめに ユーザ・ フラッシュ・ メモリ このアプリケーション・ノートでは、不揮発性情報の保存について説明します。 大部分の CPLD では、不揮発性情報のストレージを実現するためにシリアル EEPROM を使用していますが、MAX® II CPLD はユーザ・フラッシュ・メモリ (UFM)を提供する唯一の CPLD です。この UFM を使用すると、8 K ビットまで の不揮発性情報を保存することができます。UFM は書き込みの他に、シリアル・ インタフェース、パラレル・インタフェース、その他のプロトコルもサポートし ています。このアプリケーション・ノートでは、UFM に対する情報の効率良い 保存方法および読み出し方法と、I2C プロトコルを使用して、MAX II CPLD の UFM に対するインタフェースとアクセスの方法について説明します。 次に、UFM のアプリケーション例と機能を示します。 ■ UFM を使用すると、ASSP またはプロセッサの設定ビットや、ボード製造時 の電子ID情報などの重要な不揮発性情報の保存、またはプロセッサのパワー オン時に LCD に表示する情報の保存を行うことができます。 ■ 機能としては、シリアル・コミュニケーション・インタフェース(SCI)、シ 、 リアル・ペリフェラル・インタフェース(SPI) 、I2C(Inter-Integrated Circuit) Microwire などのパラレルおよびシリアル・インタフェースおよびその他の 独自プロトコルなどがあります。MAX II デバイスは、既製品の EEPROM デ ■ バイスより柔軟性の優れたインタフェースを提供します。 UFM はオシレータを内蔵しているため、外付けクロック回路のために必要 とされるスペースとコストが不要になります。 MAX II CPLD を使用すると、ロジック・デバイスとメモリ・デバイスをデザイ ン・ボードに組み込むことができるため、チップ間遅延、ボード・スペース、トー タル・システム・コストを削減することができます。 UFM は、各 4 K ビットの 2 つのセクションに分けることができます。アドレス・ レジスタは、データ読み書きの対象となる UFM メモリ・ロケーションのアドレ スを指定します。データ・レジスタは、UFM に対して読み書きするデータを保 持します。書き込み消去コントロール・ブロックは、UFM の書き込みまたは消 去に使用され、また内蔵オシレータのイネーブルにも使用されます。図 1 に、UFM のブロック図を示します。 Altera Corporation AN-489-1.0/JP 1 MAX II デバイスの UFM の使用 図 1. ユーザ・フラッシュ・メモリ(UFM)のブロック図 UFM Block PROGRAM RTP_BUSY Program Erase Control ERASE OSC OSC_ENA ARCLK ARSHIFT ARDin DRDin Address Register 9 ÷4 BUSY OSC UFM Sector 1 UFM Sector 0 16 16 Data Register DRDout DRCLK DRSHFT MAX II デバイスの UFM の使用 UFMは、セクタ0とセクタ1の2つのセクタに分割されます。 各セクタは4,096 ビッ トで、それぞれ 000h ∼ 0FFh と 100h ∼ 1FFh のアドレス範囲を持っています。ア ドレス・ロケーションは 9 ビットでアクセスされ、各アドレス・ロケーションは 8 ビットのデータを保存することができます。 Read/Stream Read、Program、Erase の各命令を使用して、UFM 内のデータを ロードおよび変更することができます。Read/Stream Read 命令は、アドレス・ レジスタで指定されたロケーションの値を読み出すときに使用されます。アドレ ス・レジスタをインクリメントすることにより、連続メモリ・ロケーションを読 み出すことができます(Stream Read) 。Program 命令は UFM へデータを書き込 むときに、Erase 命令は UFM の値を変更するときに、それぞれ使用します。ただ し、1 つのアドレス・ロケーションを消去することはできません。この命令は、 UFM(A2A1A0 = 111)全体の消去、または送信されたアドレスの MSB で指定さ れる UFM のセクタの消去を行います。 また、UFM は、イネーブル・コントロール付きオシレータも内蔵しています。こ の信号はロジック・アレイ・ブロック全体に供給可能で、さらに ARCLK と DRCLK へ接続することもできます。 このデザインでは、I2C シリアル・インタフェースを使用して、UFM に対して データを読み書きしています。次に、I2C プロトコルについてまとめます。 2 Altera Corporation 2007 年 12 月 MAX II デバイスの UFM の使用 ■ 2 本の双方向バス・ラインを使用します。SDA ラインはアドレスとデータの 転送に使用され、SCL ラインは I2C クロックとして使用されます。両ライン は、使用されないとき、プルアップ抵抗により High レベルに維持されます。 ■ 通信は、SCLがHighのときのSDAラインのHighからLowへの変化でスター ■ トます。 その後に、スレーブのアドレスが SDA で送信されます。データ転送は、ス レーブによりアドレスがアクノリッジされたときに開始されます。送信デー タは、クロックが High の間 SDA ライン上で安定している必要があります。 ■ 通信のストップ条件は、SCLがHighのときのSDAラインのLowからHighへ の変化となります。 表 1 に、UFM ブロックの信号を示します。 表 1. UFM ブロックで使用される信号の概要 信号 注 (1) 説明 DRDin DRCLK パルス毎に、データをデータ・レジスタへシフト入力します。 DRCLK DRDin から DRDout へのデータのシフト、および UFM からデータ・レジスタへのデータのパラレ ル・ロードを制御します。 DRSHFT High: DRDin から LSB をシフト入力、 DRDout へ MSB をシフト出力。 Low: データを UFM からデータ・レジスタへラッチ。 ARDin メモリ・ロケーション・アドレスを保存するためのシリアル入力です。 ARCLK メモリ・ロケーション・アドレスのシフトとアドレス・レジスタへ入力するアドレスのインクリ メントを制御します。 ARSHFT High: ARDin からアドレス・レジスタへアドレスをシリアル・シフト。 Low: アドレス・レジスタ内のアドレスをインクリメント。 PROGRAM この信号の立ち上がりエッジで、データをデータ・レジスタからアドレス・レジスタで指定され るメモリ・ロケーションへ書き込みます。 ERASE この信号の立ち上がりエッジで、アドレス・レジスタの MSB で指定されるメモリ・セクタを消 去します。 OSC_ENA UFM の内蔵オシレータをイネーブルするときに使用する信号です。 DRDout データ・レジスタの出力。 MSB が最初に取得されます。 BUSY メモリが program 命令または erase 命令のためビジーであることを表示します。 RTP_BUSY リアルタイム ISP 機能をイネーブルした場合に必要です。 表 1 の注 : (1) 詳細は、 「MAX II デバイス・ハンドブック」の「MAX II デバイスにおけるユーザ・フラッシュ・メモリの使用」の章の「UFM イ ンタフェース信号」の表を参照してください。 Altera Corporation 2007 年 12 月 3 MAX II デバイスの UFM の使用 フラッシュ・メモリ・メガファンクションは、UFM をインスタンス化する際に 使用されます。このメガファンクションを使用すると、インタフェース、所要メ モリ・サイズ、UFM 内のデータ書き込み保護オプション、内蔵オシレータをイ ネーブルするオプションを選択し、さらに CPLD のポートへ配線し、また UFM スレーブ・アドレスの先頭 4 ビット(ビット A6 ∼ A3)も設定することができま す。さらに、ボード上の残りのスレーブ・アドレス 3 ビット(A2 ∼ A0)を書込 むオプションも使用することができます。 Quartus II ソフトウェア内での UFM メガファンクションの インスタンス化 UFMメガファンクションをインスタンス化するには、次のステップを実行します。 表 2. 1. Quartus II ソフトウェアを使用して内蔵オシレータをインスタンス化するプロ ジェクトを開きます。 2. ToolsメニューのMegaWizard Plug-In Managerをクリックします。 MegaWizard Plug-In Manager [page 1] ダイアログ・ボックスが表示されます。 3. Create a new custom megafunction variation を選択し、Next をクリックし ます。MegaWizard Plug-In Manager [page 2a] ダイアログ・ボックスが表 示されます。表 2 に、MegaWizard Plug-In Manager [page 2a] ダイアログ・ ボックス内のオプションと設定を示します。 MegaWizard Plug-In Manager [page 2a] のオプション オプション Which device family will you be using? Which megafunction would you like to customize? Which type of output file do you want to create? 設定 MAX II を選択します。 「+」アイコンをクリックして Memory Compiler を展開して、 Flash Memory を選択します。 AHDL、VHDL、または Verilog HDL を選択します。 What name do you want for the output file? ファイル名を入力します。 4 Altera Corporation 2007 年 12 月 MAX II デバイスの UFM の使用 4. 表 3. Next をクリックします。MegaWizard Plug-In Manager ALTUFM [page 3 of 5] ダイアログ・ボックスが表示されます。表 3 に、ALTUFM ウィザード・ ページ 3 内のオプションと設定を示します。 MegaWizard Plug-In Manager [page 3 of 5] のオプション オプション 設定 What is the interface protocol? None その他のオプション Use arclkena port (clock enable for arclk) Use drclkena port (clock enable for drclk) Parallel What is the width of the address bus? What is the width of the data bus? Use the ‘osc’ (oscillator) output port Serial Peripheral Interface (SPI) Base mode (uses 8 bit address and data) Extended mode (uses 16 bit address and data) Use the ‘osc’ (oscillator) output port I2 C What is the MSB of the device address (in binary)? What is the size of the memory? Use the ‘osc’ (oscillator) output port What is the access mode for the user Read/Write または flash memory? Read Only 5. — Next をクリックします。 ● I2C を選択すると、ALTUFM ウィザード・ページ 4 が表示されます。表 4 に、ALTUFM ウィザード・ページ 4 内のオプションと設定を示します。 Nextをクリックします。ALTUFMウィザード・ページ3が表示されます。 表 4. MegaWizard Plug-In Manager [page 4 of 7] のオプション (1 / 2) オプション What is the write configuration for the I2C protocol? Altera Corporation 2007 年 12 月 設定 Single byte write Page write その他のオプション — 8 bytes、16 bytes、32 bytes から選択 5 MAX II デバイスの UFM の使用 表 4. MegaWizard Plug-In Manager [page 4 of 7] のオプション (2 / 2) オプション 設定 Write protect Use the ‘wp’ (write protect) input その他のオプション Write protect applies to the full memory Write protect applies only to the upper half of the memory What erase method should be used in I2C protocol? Device Slave Address Full Erase (3 LSBs are 111) — Sector Erase Triggered by Byte Address (1) Sector 0: Trigger erase when writing to binary address (MSB is always ‘0’) Sector 1: Trigger erase when writing to binary address (MSB is always ‘1’) Sector Erase Triggered by ‘a2’ bit — No Erase — 表 4 の注 : (1) このオプションは、What is the write configuration for the I2C protocol? で Single byte write を選択した場合にのみ使用できます。 ● 表 5. None、Parallel、または Serial Peripheral Interface(SPI)を選択する と、ALTUFM ウィザード・ページ 4 が表示されます。表 5 に、ALTUFM ウィザード・ページ 3 のオプションと設定を示します。 MegaWizard Plug-In Manager [page 4 of 6] のオプション オプション Do you want to specify the initial content of the memory? 設定 No, leave it blank Yes, use this file for File name: を入力 the memory content するか確認します。 What is the oscillator frequency for the User Flash Memory? (for simulation only) 3.33 MHz または 5.56 MHz を選択します。 What is the erase time for the User Flash Memory? (for simulation only) 値を入力します。 What is the program time for the User Flash Memory? (for simulation only) 値を入力します。 6. 6 Next をクリックします。ALTUFM ウィザード・ページ 5 が表示されます。 Altera Corporation 2007 年 12 月 実装 実装 7. ALTUFM ウィザード・ページ 5 で、このオプションを選択すると、そのネッ トリストのファイルも使用可能です。グレーのチェックマークは自動的に生 成されるファイルを示し、赤色のチェックマークはオプションのファイルを 示します。Next をクリックします。 8. ALTUFM ウィザード・ページ 6 には、生成されるファイル・タイプのリス トが表示されます。自動生成されたバリエーション・ファイルには、ページ 2a で指定した言語のラッパー・コードが含まれます。ページ 7 では、生成す るファイルのその他のタイプを指定することができます。AHDL インクルー ド・ファイル (< ファンクション名 >.inc)、VHDL コンポーネント宣言ファ イル(< ファンクション名 >.cmp) 、Quartus II シンボル・ファイル(< ファ ンクション名 >.bsf)、インスタン化テンプレート・ファイル(< ファンク ション名 >.v)、Verilog HDL ブラック・ボックス・ファイル(< ファンク ション名 >_bb.v)から選択します。Finish をクリックします。 本デザイン例は、EPM240 をはじめとする MAX II CPLD を使用して実装できま す。このデザイン例の UFM では、I2C インタフェースを持つように設定されてい ます。MAX II UFM へのアクセスは、PC を利用した I2C バス環境シミュレータ を使用してデモストレーションしています。実装では、このアプリケーション・ ノートに添付されているデザイン例ソース・コードの使用と MAX II の GPIO に 対する UFM の I2C インタフェース・ラインの割り当てを採用しています。次に、 I2C シミュレータを使用して UFM をアクセスし、読み出しまたは書き込みを行い ます。このシミュレータは、PC パラレル・ポートとそれに接続するインタフェー ス・ハードウェアにより、I2C 準拠の 2 線式バスを実現しています。I2C 環境の設 定について詳しくは、Maxim/Dallas Semiconductor のアプリケーション・ノー ト AN3230 を参照してください。 www.maxim-ic.com/appnotes.cfm/an_pk/3230 同様の無償ソフトウェアは、以下からダウンロードすることができます。 http://files.dalsemi.com/system_extension/AppNotes/AN3315/ParDS2W.exe PC のパラレル・ポートを介したインタフェース・ハードウェアと、このユーティ リティ・プログラムにより、MAX II CPLD の UFM との I2C 通信が可能となりま す。すなわち、I2C マスタである PC ユーティリティ・プログラムから、I2C ス レーブである UFM の読み書きが可能となります。 Altera Corporation 2007 年 12 月 7 MAX II デバイスの UFM の使用 表 6 に、このデザイン例の MDN-B2 デモ・ボード上での実装を示します。 表 6. EPM240G のピン・アサインメント 信号 ピン SCLK ピン 39 SDA ピン 40 a1 ピン 37 a2 ピン 38 未使用ピンは、Quartus II ソフトウェアの Device and Pin Options ダイアログ・ ボックスで、As input tri-stated に割り当ててあります。Quartus II ソフトウェア の Assignment Editor で、SCLK ピンと SDA ピンに対し、Auto Open-Drain Pins をイネーブルにしてください。これらの設定の後にコンパイルを行います。 MDN-B2 デモ・ボードで本デザインを実行させるには、以下の手順を実行してく ださい。 ■ デモ・ボードの電源をオンにします(スライド・スイッチ SW1 を使用)。 ■ デモ・ボード上の JTAG ヘッダ JP5 とプログラミング・ケーブル(ByteBlaster II ■ します。 プログラミング・プロセスの起動前と起動中、デモ・ボードの SW4 を押し続 ■ PC 上で、パラレル・ポートで駆動される I2C 環境を次のように設定します。 または USB-Blaster)を使用してデザインを MAX II CPLD へダウンロード けます。完了したら、電源をオフにして JTAG コネクタを取り外します。 ● ● ● 8 I2C で規定されたプロトコルを使用してスレーブと通信するために、 Maxim パラレル・ポート・ユーティリティのようなソフトウェア・ユー ティリティをダウンロードします。パラレル・ポート・ソフトウェアを インストールします。この例では、プログラム ParDS2W.exe を使用し ています。 http://files.dalsemi.com/system_extension/AppNotes/AN3315/Par DS2W.exe このパラレル・ポート・ユーティリティのために、Windows XP または Windows 2000 内でパラレル・ポートをアクセスできるようにするパラ レル・ポート・ドライバをインストールする必要があります。DirectIO(www.direct-io.com)からドライバが提供されており、以下からダ ウンロードすることができます。 www.direct-io.com/Direct-IO/directio.exe インストレーションの後、Direct-IO プログラムを設定する必要があり ます。Windows のコントロール・パネル内で、Direct IO アイコンをク リックします。パラレル・ポートの開始アドレスと終了アドレスを入力 します。ほとんどの場合 378h ∼ 37Fh ですが、以下の設定を調べて、 Altera Corporation 2007 年 12 月 実装 ● ● ● ● ● ● ● PC のパラレル・ポート・アドレスを確認してください。Control Panel/ System/Hardware/Device Manager/Ports/EC P Printer port (LPT)/ Resources パラレル・ポートが ECP 以外のタイプに設定されている場合は、PC 起 動時に BIOS 設定を変更して ECP へ変更してください。 Direct IO コントロール・パネルの Security タブを選択し、ParDS2W.exe プログラムのディレクトリ・パスを調べます。Open をクリックして、 Add を ク リッ ク しま す。この ユ ーテ ィ リテ ィ のパ ス が、Allowed Processes フィールドに表示されます。OK をクリックして、Control Panel ウィンドウを閉じます。 MDN-B2 デモ・ボードに添付されている I2C ドングルをパラレル・ポー トに接続します。必要に応じて拡張コードを使用して、パラレル・ポー ト接続をデモ・ボードの近くまで延ばします。 I2C パラレル・ポート・ドングル上にある 4 ピン・ソケットを、ソケット の赤マークと JP3 ヘッダの pin#1 を合わせて、デモ・ボードの I2C ヘッ ダ(JP3)に接続します。 SW3 (MDN-B2 デモ・ボードの 8 ウェイ DIP スイッチ)のスイッチ 1 とス イッチ 2 を ON にします。 ParDS2W プログラムを開いて、PC の該当するパラレル・ポート・アド レスを選択し(Direct IO 設定時の表示のように)、Address2-Wire Device Address に B0H を設定します。 最後に、Test Circuit タブで I2C の設定をテストして、Status ウィンドウ に Test PASS メッセージが表示されるのを確認してください。これが表 示されると、I2C 環境の設定が完了します。 ■ パラレル・ポート・ユーティリティ・プログラムの 2-Wire Utility セクショ ンで One byte Write/Read セクションを使用し、アドレスとデータ(各々 1 バイト長、16 進の 2 桁)を指定して、任意のメモリ・アドレス・ロケーショ ンへシングル・バイト WRITE 命令を実行します。 ■ 同様に、同じアドレス・ロケーションへ READ 命令を実行して、そのアドレ ス・ロケーションの値を調べます。書き込んだ値と同じ値になっているはず です。書き込みを行わないかぎり、他のすべてのアドレス・ロケーションの 値は FFh となっているはずです。 ■ アドレス・ロケーションへ WRITE を複数回行う場合は、その前に消去を行 ■ う必要があります。 スレーブ・アドレスとして BEh を選択し、FFh の WRITE 動作を行うことによ り、すべての値を消去することができます。この動作により、UFM の値は FF に戻されます。 ■ デモ・ボードにある SW3 (8 ウェイ DIP スイッチ)のスイッチ 1 とスイッチ 2 を 使用して、I2C スレーブ・アドレス(a2、a1)の 5 番目と 6 番目のビットを 設定することができます。フラッシュ・メモリ・メガファンクションのイン スタンス化時に、両ビットが 0 に設定され、I2C スレーブ・アドレスの最初 の 4 ビットの MSB が設定されます(このケースでは 1011 すなわち Bh) 。 Altera Corporation 2007 年 12 月 9 MAX II デバイスの UFM の使用 ソース・ コード このアプリケーション・ノートのデザイン例は、Verilog HDL を使用して作成し ており、MDN-B2 デモ・ボードを使用したデモとなっています。ソース・コード、 テストベンチ、および完成したQuartus IIプロジェクトは、以下から入手可能です。 www.altera.co.jp/literature/an/an489_design_example.zip まとめ MAX II CPLD は独自のユーザ・フラッシュ・メモリを内蔵しているため、不揮 発性メモリのサポートを必要とする広範囲なロジック・ソリューションを実装す るための最適な選択肢になっています。さらに、MAX II デバイスは、低消費電 力、使いやすいパワーオン機能、多電圧機能、および内蔵オシレータを備えてい るため、非常に汎用性の高いプログラマブル・ロジック・デバイスとなっています。 関連情報 以下に、関連資料を示します。 ■ MAX II CPLD ホームページ : www.altera.co.jp/products/devices/cpld/max2/mx2-index.jsp ■ MAX II デバイスの資料ページ : www.altera.co.jp/literature/lit-max2.jsp ■ MAX II パワーダウン・デザイン : www.altera.co.jp/support/examples/max/exm-power-down.html ■ MAX II デバイス・アプリケーション・ノート : 「AN 428: MAX II CPLD のデザイン・ガイドライン」 「AN 422: MAX II CPLD を使用したポータブル・システムにおける消費電力 の管理」 改訂履歴 表 7. 改訂履歴 日付 & バージョン 2007 年 12 月 v1.0 初版 10 表 7 に、このアプリケーション・ノートの改訂履歴を示します。 変更内容 概要 — Altera Corporation 2007 年 12 月 改訂履歴 101 Innovation Drive San Jose, CA 95134 www.altera.com Literature Services: [email protected] Altera Corporation 2007 年 12 月 Copyright © 2007 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. 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 Corporation. 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. 11