Quartus II ソフトウェアでのパラ レル・フラッシュ・ローダの使用 2009 年 12 月 AN386-5.0 FPGA の集積度が増加される場合、より大きいコンフィギュレーション・ストレージ の必要性も高まっています。システムにコモン・フラッシュ・インタフェース(CFI) が内蔵されている場合は、そのシステムを FPGA コンフィギュレーション・ストレー ジにも利用できます。MAX® II デバイスのパラレル・フラッシュ・ローダ(PFL)機 能は、JTAG インタフェースを介して CFI フラッシュ・メモリ・デバイスをプログラ ムする効率的な方法、および Altera® FPGA に対するフラッシュ・メモリ・デバイスか らのコンフィギュレーションを制御するロジックを提供します。 図 1 に、MAX II デバイスの PFL 機能を示します。 図 1. MAX II の PFL 機能 MAX II CPLD Quartus II Software using JTAG PFL Passive Serial or Fast-Passive Parallel Interface (2) Altera FPGA Common Flash Interface CFI Flash Memory (1) 図 1 の注 : (1) サポートされる CFI フラッシュ・デバイスについて詳しくは、4 ページの表 1 を参照してください。 (2) ファスト・パッシブ・パラレル(FPP)およびパッシブ・パラレル(PS)コンフィギュレーション手 法で、コンフィギュレーション・データがターゲット・デバイスにロードされます。FPP コンフィ ギュレーション手法に応じて、クロック・サイクルごとに 8 つのデータ・ビットをロードすることが できますが、PS コンフィギュレーション手法の場合は 1 ビットだけです。FPP および PS コンフィ ギュレーション手法について詳しくは、Configuration Handbook を参照してください。 MAX II PFL MAX II PFL は、以下の機能を備えています。 ■ MAX II JTAG インタフェースを介して CFI フラッシュ・デバイスのプログラミング。 ■ ACEX® 1K、APEX™ 20K(APEX 20K、APEX 20KC、および APEX 20KE を含む )、 APEX II、Arria® シリーズ、Cyclone® シリーズ、FLEX® 10K(FLEX 10KE および FLEX 10KA)、Mercury™、および Stratix® シリーズの FPGA デバイスの CFI フラッシュ からのアルテラ FPGA コンフィギュレーションの制御 CFI フラッシュのプログラミング MAX II デバイスは、JTAG インタフェースおよび CFI フラッシュ・メモリのパラレル・ アドレスまたはデータ・インタフェース間のブリッジとして動作します。アルテラ のコンフィギュレーション・デバイスは、JTAG インタフェースを介し、プログラミ ングをサポートすることにより、イン・システムのプログラミングとアップデート することができます。ただし、標準のフラッシュ・メモリ・デバイスは JTAG インタ フェースおよび JTAG インタフェースを介す直接のプログラミングをサポートしてい 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 2 MAX II PFL ません。MAX II デバイスでの JTAG インタフェースを使用してフラッシュ・メモリ を間接的にプログラムすることができます。特別のテストされていないの JTAG モー ドのとき、MAX II JTAG ブロックはロジック・アレイに直接に接続されます。この モードは、MAX II のバウンダリ・スキャン・セルではなくロジック・アレイを介し て、JTAG チェインを伝達します。PFL 機能は、Quartus II ソフトウェアで提供された JTAG ストリームを変換して、MAX II I/O ピンに接続された CFI フラッシュ・メモリ・デ バイスをプログラムするための JTAG インタフェース・ロジックを提供します。 図 2 に、MAX II デバイスが JTAG インタフェースを介してフラッシュ・メモリをプロ グラムするブリッジとして機能することを示します。 図 2. JTAG インタフェースを使用したフラッシュ・メモリのプログラミング MAX II CPLD Quartus II Software using JTAG Configuration Data Altera FPGA PFL Common Flash Interface Altera FPGA Not Used for Flash Programming CFI Flash Memory CFI フラッシュからアルテラ FPGA コンフィギュレーションの制御 MAX II デバイスはアルテラ FPGA コンフィギュレーションを制御します。専用アルテ ラのコンフィギュレーション・デバイスとは異なり、フラッシュ・メモリ・デバイ スは、コンフィギュレーション・データのみを格納して、FPGA コンフィギュレー ション・プロセスを制御するビルトイン・ロジックが含まれていません。MAX II デ バイスの PFL メガファンクション・ロジックは、コンフィギュレーション・プロセ ス、フラッシュ・メモリからのデータの読み込み、およびアルテラ FPGA コンフィ ギュレーションの起動時を判定します。 図 3 に、MAX II デバイスが FPGA のコンフィギュレーション・ントローラとして機能 することを示します。 図 3. フラッシュ・メモリ・データが備えた FPGA コンフィギュレーション MAX II CPLD PFL Passive Serial or Fast-Passive Parallel Interface Altera FPGA Common Flash Interface CFI Flash Memory Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェア・サポート 3 PFL メガファンクションは、フラッシュ・デバイスをプログラムする機能、または FPGA をコンフィギュレーションする機能、あるいはその両方の機能を柔軟に提供し ます。この機能を個別に実行することによって、より少ないロジック・エレメント が使用されるという利点があります。フラッシュ・データを頻繁に変更しない場合、 または MAX II デバイスへの JTAG/ISP アクセスがある場合には、このオプションを使 用してください。 PFL 機能を作成するには、以下のステップを実行します。 1. Flash Programming Only モードを選択することで、PFL メガファンクションのイン スタンスを作成します。 2. ピンを適切に割り当てます。 3. フラッシュ・デバイスのプログラマ・オブジェクト・ファイル (.pof) をコンパイ ルおよび生成します。すべての未使用 I/O ピンがトライ・ステートされることを 確認します。 4. Configuration Control Only モードを選択することで、その他の PFL メガファンク ションのインスタンスを作成します。 5. 製品デザインに、このコンフィギュレーション・コントローラをインスタンス化 します。 6. フラッシュ・デバイスをプログラムする必要がある場合には、フラッシュ・デバ イスの .pof で MAX II デバイスをプログラムして、フラッシュ・メモリの内容を アップデートします。 7. コンフィギュレーション・コントローラを含む製品デザインの .pof で MAX II デバ イスのプログラムを再プログラムします。 アルテラ以外のデータでフラッシュをプログラムすることは個別機能の利点の一つ です。例えば、フラッシュ・デバイスには、ASSP (Application-Specific Standard Product) の初期化ストレージが備えられています。PFL で初期化データのフラッシュ をプログラムして、自身のデザイン・ソース・コードを作成することにより、MAX II ロジックでリードおよび初期化コントロールを実装できます。 1 すべての未使用ピンは、デフォルトでグランドに設定されます。フラッシュ・プロ グラミングの時に FPGA のコンフィギュレーションのデータを保つすることは必要が ある場合は、フラッシュ・プログラミングのデザイン・ファイルに、MAX II のデバ イス・インタフェースと接続されている FPGA のコモン・コンフィギュレーション・ ピンをトライステートにすることが必要です。 1 CPLD プログラミングのときに、MAX II デバイスは、すべての I/O ピンをトライ・ス テートします。ただし、フラッシュのプログラミング及び FPGA のコンフィギュレー ションの時に、MAX II デバイスが正常に動作して、そして I/O ピンはトライステート していません。 Quartus II ソフトウェア・サポート Quartus II ソフトウェアは、プログラミング・ブリッジとコンフィギュレーションの PFL メガファンクション・ロジックを生成します。オブジェクト・ファイル (.sof) と 16 進ファイル (.hex) を Quartus II ソフトウェアに入力すると、フラッシュ・メモリのプ ログラミング・ファイルが作成されます。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 4 Quartus II ソフトウェア・サポート 表 1 に、PFL メガファンクションでサポートされるフラッシュ・メモリ、データ幅、 コンフィギュレーション・モードおよびファイル・フォーマットのタイプを示しま す。 表 1. Quartus II ソフトウェアでの PFL 機能でサポートされるフラッシュ・メモリ、データ幅、コンフィギュ レーション・モードおよびファイル・フォーマット ( その1 ) サポートされるフラッシュ・メモリ (1) メーカ Numonyx データ幅 (2) 集積度 (M ビット ) コンフィギュレーショ ン・モード (3) ファイル・フォー マット (4) 28F800C3 8 16 ビット PS および FPP 28F160C3 16 28F320C3 32 28F640C3 64 POF、JEDEC STAPL フォーマット (Jam)、および Jam STAPL バイト・ コード (JBC) 28F320J3 32 デバイス名 (1), 28F640J3 64 28F128J3 128 28F640P30 64 28F128P30 128 28F256P30 256 28F512P30 512 28F640P33 64 28F128P33 128 28F256P33 256 28F512P33 512 28F256M29EW 256 8/16 ビット 16 ビット JS29F256J3 M29W256G M29W640F 64 M28W160CT 16 8/16 ビット M28W160CB M29W160FT M29W160FB M29W320E 32 M29W320FT M29W320FB Spansion M29W640G 64 M29W128G 128 M58BW32FB 32 16/32 ビット S29GL128N 128 8/16 ビット S29GL256N 256 S29GL512N 512 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェア・サポート 5 表 1. Quartus II ソフトウェアでの PFL 機能でサポートされるフラッシュ・メモリ、データ幅、コンフィギュ レーション・モードおよびファイル・フォーマット ( その2 ) サポートされるフラッシュ・メモリ (1) データ幅 (2) 集積度 (M ビット ) コンフィギュレーショ ン・モード (3) ファイル・フォー マット (4) S29AL016D 16 8/16 ビット PS および FPP S29AL032D 32 S29AL016M 16 S29JL032H 32 POF, JEDEC STAPL フォーマット (Jam)、および Jam STAPL バイト・ コード (JBC) S29JL064H 64 S29AL016J 16 S29GL64N 65 S29GL128P 128 S29GL256P 256 S29GL512P 512 S29GL01GP 1024 Eon Silicon Solution EN29LV160B 16 EN29LV320B 32 Macronix MX29LV160D 16 MX29LV320D 32 MX29LV640D 64 MX29LV640E 64 MX29GL128E 128 MX29GL256E 256 メーカ Spansion デバイス名 (1), 16 ビット 16 ビット 表 1 の注 : (1) Spansion の S29GL-N フラッシュ・デバイス・ファミリは製造中止されました。アルテラは、このフラッシュを使用するこ とを推奨しません。代替の推奨について詳しくは、Spansion の (www.spansion.com) ウェブサイトを参照してください。 (2) PFL は、フラッシュ・デバイスのトップ及びボトムのブート・ブロックをサポートします。 (3) これは、PFL を介する MAX II デバイスによるアルテラの FPGA コンフィギュレーションです。データ圧縮付きのコンフィ ギュレーションがサポートされます。また、Stratix II と Stratix III デバイス・ファミリのコンフィギュレーションはデータ 暗号化をサポートします。 (4) これは、MAX II デバイスおよびフラッシュ・メモリ・デバイスをプログラムするためのサポートされるファイル・フォー マットです。PFL はロウ・バイナリ・ファイル (.rbf) フォーマットをサポートしません。 PFL のロジック・エレメント (LE) 使用は、PFL と Quartus II ソフトウェア設定にによっ て異なります。正確な LE の使用率を取得する唯一の方法は、Quartus II ソフトウェア で正確な設定で PFL デザインをコンパイルすることです。 フラッシュ .pof でのページの実装 PFL は、CFI フラッシュ・メモリ・ブロックにコンフィギュレーション・データを異な るページに最大 8 ページまで格納します。複数の FPGA(例えば、複数の .sof ファイ ルが 1 ページに保管されている場合)が含まれている単一の FPGA チェーンをコン フィギュアするために、1 ページを使用します。 許容される総ページ数と各ページのサイズはフラッシュの容量に依存します。これ らのページで、異なる FPGA チェインのデザイン、または同じ FPGA チェインの異な るデザインを異なるページに格納できます。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 6 Quartus II ソフトウェア・サポート .sof を .pof に変換するとき、以下のアドレス・モードは、ページ・アドレスを決定す るために利用可能です。 ■ ブロック・モード - ページの開始と終了アドレスを指定できます。 ■ スタート・モード - 開始アドレスしか指定できません。各ページの開始アドレス は 8-K バイトの境界に位置しています。( それは、最初の有効な開始アドレスが 0×000000 の場合に、次の有効な開始アドレスは 0×2000 の増分であることを意味す る )。 ■ 自動モード - Quartus II ソフトウェアは自動的にページの開始アドレスを決定でき ます。Quartus II ソフトウェアは 128-K バイト境界にページを配置します。例え ば、最初の有効な開始アドレスが 0×000000 であれば、次の有効な開始アドレス は 0×20000 の増分です。 オプション・ビット・セクタは各ページの開始アドレスを格納します。Page-Valid ビットは、各ページが正常にプログラムされるかどうかを示します。正常にページ をプログラムした後に、Page-Valid ビットをプログラムしてください。未使用のアド レスの位置に、必ずフラッシュ・メモリでオプション・ビットを格納してください。 オプション・ビット・セクタの開始アドレスは、8-K バイトの境界に位置していま す。.sof を .pof に変換するとき、そして PFL メガファンクションを作成するとき、 オプション・ビット・セクタの開始アドレスを指定しなければなりません。このプ ロセスについて詳しくは、ページの 27「QuartusII ソフトウェア内の PFL メガファ ンクションのインスタンス化」 およびページの 34「フラッシュ・デバイスの .sof を .pof に変換」を参照してください。 図 4 には、CFI フラッシュ・メモリ内のページ・モードおよびオプション・ビットに よる実装を示します。 図 4. フラッシュ・メモリのページ・モードおよびオプション・ビットによる実装 8 Bits End Address (1) Option Bits (2) Configuration Data (Page 2) Configuration Data (Page 1) Configuration Data (Page 0) 32 Bits Page 2 Address + Page-Valid Page 1 Address + Page-Valid Page 0 Address + Page-Valid 0x000000 図 4 の注 : (1) 異なる容量があるデバイスのアドレス範囲について詳しくは、表 2 を参照してください。 (2) オプション・ビット・セクタのバイト・アドレス・ロケーションをを指定する必要があります。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェア・サポート 7 ページ開始アドレスのビット 0 ~ 11 は、すべてゼロに設定され、オプション・ビッ トとして格納されません。 図 5 に、各ページの開始アドレスおよび Page-Valid ビットがオプション・ビット・セ クタに格納される方法を示します。 図 5. ページの開始アドレス、終了アドレスおよび Page-Valid ビットがオプション・ ビットとして格納 0x002000 (1) Bit 7...Bit 1 Bit 0 Page Start Address [19:13] Page-Valid Bit 7...Bit 0 0x002001 Page Start Address [27:20] Bit 7...Bit 1 0x002002 Page End Address [19:13] Bit 7...Bit 0 0x002003 Page End Address [27:20] 図 5 の注 : (1) フラッシュ・バイト・アドレッシング・モード用 表 2 には、異なる集積度の CFI デバイスのバイト・アドレス範囲を示します。 表 2. バイト・アドレス範囲 2009 年 12 月 用 CFI デバイス (M ビット ) アドレス範囲 8 0x0000000 ‒ 0x00FFFFF 16 0x0000000 ‒ 0x01FFFFF 32 0x0000000 ‒ 0x03FFFFF 64 0x0000000 ‒ 0x07FFFFF 128 0x0000000 ‒ 0x0FFFFFF 256 0x0000000 ‒ 0x1FFFFFF 512 0x0000000 ‒ 0x3FFFFFF 1024 0x0000000 ‒ 0x7FFFFFF Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 8 PFL の入力および出力信号 PFL の入力および出力信号 この項では、PFL メガファンクションの入力および出力信号を説明します。 図 6 に、PFL メガファンクションのシンボルがフラッシュ・プログラミングおよび FPGA コンフィグレーションの両方をサポートするのを示します。 図 6. PFL メガファンクションのシンボル 表 3 に、PFL 信号の機能をリストし、コンフィギュレーション・ピンに必要である外 部のプルアップ抵抗を指定します。 f 特定のアルテラ FPGA ファミリのピンのコンフィギュレーションについて詳しくは、 Configuration Handbook を参照してください。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation PFL の入力および出力信号 9 表 3. PFL 信号 ( 注 1) ( その1 ) ピン 説明 ウィーク・ プルアップ 入力 ̶ PFL に対する非同期リセット。FPGA のコ ンフィギュレーションをイネーブルする ために High にプルアップしてください。 それ以外の場合は、PFL を使用しないと き、FPGA のコンフィギュレーションを 防ぐには、いつも Low にプルダウンして ください。このピンは、フラッシュ・プ ログラミングには影響を与えません。 入力 ̶ システムレベルを同期させるために、使 用されます。このピンは、フラッシュへ のアクセスを制御するプロセッサまたは 任意のアービタでドライブされます。 PFL をフラッシュ・マスターとして動作 させる場合は、このアクティブ High ピ ンを永久に High に接続してください。 pfl_flash_access_granted ピンを Low にプルダウンすることにより、JTAG インタフェースがフラッシュおよび FPGA のコンフィギュレーションにアクセ スすることを防ぎます。 入力 ̶ デバイスのユーザー入力クロック。周波 数は、メガファンクションで指定された 周波数に一致する必要があり、コンフィ ギュレーション中に、特定の FPGA で指 定された最大の DCLK 周波数より高いこ とはできません。(1) 入力 ̶ コンフィギュレーションに使用するペー ジを決定します。 入力 10-kΩ のプ ルアップ抵 抗 FPGA の CONF_DONE ピンに接続します。 コンフィギュレーションが成功した場 合、FPGA は High を出力します。 入力 10-kΩ のプ ルアップ抵 抗 FPGA の nSTATUS ピンに接続します。コ ンフィギュレーション中にエラーが発生 した場合は、FPGA はこのピンを Low に プルダウンします。 入力 ̶ FPGA の再コンフィギュレーションを開始 します。このピンは High または Low 入 力を選択するために、使用できるスイッ チに接続されます。Low 入力は FPGA の 再コンフィギュレーションを開始しま す。 入力 ̶ バースト・モードに使用されます。フ ラッシュ・メモリの Wait 出力ピンと接続 します。この信号を使用して、フラッ シュからのデータの読み込みが有効であ ることを示すことができます。接続され ていないとき、High にプルアップしてく ださい。 pfl_nreset pfl_flash_access_granted pfl_clk (2) fpga_pgm[2..0] (2) fpga_conf_done (2) fpga_nstatus (2) pfl_nreconfigure (2) flash_rdy 2009 年 12 月 用 Altera Corporation 機能 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 10 PFL の入力および出力信号 表 3. PFL 信号 ( 注 1) ( その2 ) ピン 説明 ウィーク・ プルアップ 出力 ̶ システム・レベルの同期化に使用されま す。必要な場合、このピンはプロセッサ またはアービタに接続されます。JTAG イ ンタフェースがフラッシュにアクセスす るか、または PFL が FPGA をコンフィ ギュレーションするとき、PFL はこのピ ンを High にドライブします。この出力 ピンは、flash_noe および flash_nwe ピンと連携して動作します。 出力 ̶ メモリ・アドレスの入力アドレス。MSB は flash_data バスの幅と同様にフ ラッシュ・デバイスの容量によって異な ります。 入力または 出力 ̶ パラレルでフラッシュメモリの 8 ビット または 16 ビットのデータの送受信の データバス。(3) 出力 ̶ フラッシュ・デバイスの nCE ピンに接 続します。Low 信号はフラッシュ・メモ リをイネーブルします。複数のフラッ シュ・デバイスを対応させるには、この ピンを使用します。flash_nce ピンは 使用する各フラッシュデバイスの nCE ピンと接続されます。 出力 ̶ フラッシュ・デバイスの nWE ピンに接 続します。Low 信号は、フラッシュ・デ バイスへのライト動作をイネーブルしま す。 出力 ̶ フラッシュ・デバイスの nOE ピンに接 続します。Low 信号はリード動作中にフ ラッシュ・デバイスの出力をイネーブル します。 出力 ̶ バースト・モードに使用されます。フ ラッシュ・デバイスの CLK 入力ピンに 接続します。CLK のアクティブ・エッジ はフラッシュ・デバイスの内部のアドレ ス・カウンタを増分します。 出力 ̶ バースト・モードに使用されます。フ ラッシュ・デバイスのアドレスの有効な 入力ピンに接続します。開始アドレスを ラッチさせるには、この信号を使用しま す。 出力 ̶ フラッシュ・デバイスのリセット・ピン に接続します。Low 信号はフラッシュ・ デバイスをリセットします。 pfl_flash_access_request flash_addr[x..0] (5) flash_data[x..0] (5) ( 双方向ピン ) flash_nce [x..0] flash_nwe flash_noe flash_clk (4) flash_nadv (4) flash_nreset Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 機能 2009 年 12 月 Altera Corporation PFL の入力および出力信号 11 表 3. PFL 信号 ( 注 1) ( その3 ) ピン 説明 ウィーク・ プルアップ 出力 ̶ コンフィギュレーション中のフラッシュ から FPGA デバイスへのデータ出力。PS モードは、fpga_data[0] の 1 ビット バスのデータラインです。そして、FPP モードでは、fpga_data[7..0] の 8 ビットのデータラインです。 出力 ̶ FPGA の DCLK ピンに接続します。コン フィギュレーション中の FPGA デバイス へのクロック入力データ・ピンです。 Open Drain 10-kΩ のプ ルアップ抵 抗 fpga_data[x..0] (2) fpga_dclk (2) fpga_nconfig (2) 出力 機能 FPGA の nCONFIG ピンに接続します。Low パルスにすると、FPGA がリセット状態 になり、コンフィギュレーションが開始 されます。(3) 表 3 の注 : (1) 最大の FPGA コンフィギュレーション DCLK 周波数について詳しくは、Configuration Handbook を参照してください。 (2) PFL メガファンクションのフラッシュ・プログラミング・オプションでは、これらのピンは存在しません。 (3) アルテラは、PFL ピンと MAX II の I/O ピンの間にロジックを挿入することを推奨していません(特に flash_data および fpga_nconfig ピンの上に)。 (4) flash_clk、flash_rdy、および flash_nadv ピンは、バースト・モードにのみ使用します。バースト・モードを使用し ない場合、フラッシュ・デバイスからこれらのピンを MAX II デバイスに接続しないよいにします。 (5) PFL がフラッシュ・デバイスにアクセスしていないとき、PFL MegaWizard™ Plug In Manager トライ・ステートのオプショ ンを選択しないと、flash_addr と flash_data ピンの出力は未使用のピンの設定に依存します。 1 アルテラは、PFL が不定の状態になることを防止するため、Safe State Machine の設定 をイネーブルにしておくことを推奨しています。Assignments メニューからの Settings ダイアログ・ボックスで、Analysis & Synthesis Settings ページの More Settings を クリックして、このオプションを設定できます。 図 7 に、PFL ソリューションの MAX II デバイス、CFI フラッシュ・メモリ、アルテラ FPGA、およびコントローラまたはプロセッサ間のコンフィギュレーション・インタ フェース接続を示しています。Nios® II プロセッサはコントローラまたはプロセッサ として機能します。Nios II プロセッサはアルテラ FPGA に実装されます。 MAX II CPLD と Nios II プロセッサは、個別に CFI フラッシュをプログラムできます。 MAX II CPLD と Nios II プロセッサの flash_access_granted と flash_access_request ピンは一緒に接続されることによって、両方のプロセッ サが同時に CFI フラッシュにアクセスすることが防げられます。 f 2009 年 12 月 用 FPGA コンフィギュレーションについて詳しくは、Configuration Handbook を参照し てください。 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 12 PFL の入力および出力信号 図 7. コントローラと PFL の使用でのシングル・デバイスのコンフィギュレーション VCC (1) VCC (1) VCC (1) VCC CFI Flash VCC nRP nWP 10k MAX II CPLD 10k 10k Altera FPGA pfl_nreset pfl_flash_access_granted pfl_flash_access_request flash_addr fpga_conf_done flash_data fpga_nstatus flash_nwe fpga_nconfig flash_nce fpga_data (2) flash_noe fpga_dclk ADDR DATA nWE nCE nOE WP#/ACC BYTE# CONF_DONE nSTATUS nCONFIG DATA DCLK nCE nCEO NC (3) Nios II Processor Interface (4) flash_access_request flash_access_granted ext_ram_bus_addr ext_ram_bus_data write_n_to_ext_flash chip_n_to_ext_flash output_n_to_ext_flash WP#/ACC BYTE# 図 7 の注 : (1) デバイスの許容入力信号を供給する電源にプルアップ抵抗を接続しなければなりません。VCC は、デバイスの I/O の VIH 仕様を 満たすために十分に高くなければなりません。例えば、Stratix II VIH 仕様は 1.7 ∼ 3.3 V の範囲の場合に、VIH 仕様を満たすた めに、プルアップ抵抗の VCC への電源供給が 1.7 ∼ 3.3 V 以内でなければなりません。 (2) PS コンフィギュレーション・モードで、これは 1 ビットのデータ・ラインです。そして、FPP コンフィギュレーション・モー ドでは、これは 8 ビットのデータ・バスです。 (3) VCC と GND さえではなく、NC ピン ( 接続されていないピン ) に何も接続しないでください。 (4) コンフィギュレーションされている FPGA を除いて、Nios II プロセッサはいかなる他のアルテラ FPGA でも実装されます。 図 8 に、マルチ・デバイス・コンフィギュレーションの接続を示します。 図 8. マルチ・デバイス・コンフィギュレーションの接続 VCC (1) VCC (1) VCC (1) CFI Flash nRP nWP VCC VCC MAX II CPLD 10k 10k 10k Altera FPGA 1 pfl_nreset pfl_flash_access_granted ADDR DATA nWE nCE nOE flash_addr fpga_conf_done flash_data fpga_nstatus flash_nwe fpga_nconfig flash_nce fpga_data (2) flash_noe fpga_dclk CONF_DONE nSTATUS nCONFIG DATA DCLK nCE nCEO Altera FPGA 2 CONF_DONE nSTATUS nCONFIG DATA DCLK nCE nCEO NC 図 8 の注 : (1) デバイスの許容入力信号を供給する電源にプルアップ抵抗を接続しなければなりません。VCC は、デバイスの I/O の VIH 仕様 を満たすために十分に高くなければなりません。例えば、Stratix II VIH 仕様は 1.7 ∼ 3.3 V の範囲の場合に、VIH 仕様を満たす ために、プルアップ抵抗の VCC への電源供給が 1.7 ∼ 3.3 V 以内でなければなりません。 (2) PS コンフィギュレーション・モードで、これは 1 ビットのデータ・ラインです。PS コンフィギュレーション・モードで、こ れは 1 ビットのデータ・ラインです。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation PFL デザイン例 13 PFL デザイン例 PFL メガファンクションは、フラッシュ・プログラミングおよび複数の FPGA コンフィ ギュレーションをサポートする同時に、別のプロセッサをフラッシュ・デバイスに アクセスすることができます。例えば、PFL メガファンクションでフラッシュをプ ログラムして、Nios II プロセッサで FPGA をコンフィギュレーションすることができ ます。コンフィギュレーションされた Nios II プロセッサは同じフラッシュ・デバイ スに格納された非コンフィギュレーション・データを使用します。 このデザインの例は、システムで複数のプロセッサでフラッシュ・デバイスをプロ グラムする方法を示します。フラッシュ・デバイスをプログラムするには、プロ セッサおよび PFL メガファンクションを使用できます。この例で使用されるプロ セッサは Nios II プロセッサです (Nios II プロセッサの代わりに他のプロセッサかマイ クロコントローラも使用可能 )。Nios II プロセッサは、アルテラ FPGA で実装される 汎用 RISC プロセッサ・コアです。Nios II プロセッサは、シングル・チップ上に CPU とペリフェラルおよびメモリを組み合わせて搭載したマイクロ・コントローラまた はコンピュータ・オンチップに相当します。Nios II フラッシュ・プログラマは、 Nios II 開発ツールの一部であり、フラッシュ・デバイスをプログラミングする手軽な 手段です。 この項では、MAX II デバイスの PFL メガファンクションとアルテラ FPGA の Nios II プ ロセッサ間のフラッシュ・プログラミング・インタフェースの実装を説明します。 このデザイン例は、以下の 4 つのセクションで構成されています。 ■ ページの 14「PFL メガファンクション」 ■ ページの 14「Nios II プロセッサ」 ■ ページの 16「フラッシュ・デバイス」 ■ ページの 16 「pfl_flash_access_request および pfl_flash_access_granted ピン」 図 9 に、4 つのセクション間の関係を示します。PFL メガファンクションおよび Nios II プロセッサは Quartus II ソフトウェアで個別に生成されます。以下の項で説明さ れるように、最初に、PFL メガファンクションまたは Nios II システムのいずれかを 作成します。 図 9. デザイン例での 4 つのセクション間の関係 CFI Flash Memory Common Flash Interface MAX II CPLD PFL pfl_flash_ access_ granted pfl_flash_ access_ request Altera FPGA with Nios II Processor 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 14 PFL デザイン例 PFL メガファンクション PFL メガファンクションを作成するには、ページの 27「QuartusII ソフトウェア内の PFL メガファンクションのインスタンス化」を参照してください。PFL MegaWizard Plug-in Manager が使用されていないときは、PFL メガファンクションがドライブされ ないように、Tri-state all flash bus pin のオプションがオンになっていることを確実にし てください。 1 Quartus II ソフトウェア v6.0 およびそれ以前のバージョンを使用する場合は、トライ・ ステート・バッファで PFL メガファンクションからすべての出力を手動でトライ・ ステートする必要があります。 Nios II プロセッサ Quartus II SOPC Builder で、Nios II システムを作成できます。SOPC Builder の Nios II シス テムを生成するには、以下のステップに従います。 1. Tools メニューの SOPC Builder を選択します。 2. SOPC Builder の Nios II システムに必要なコンポーネントを指定します。 1 表 4 には、このデザイン例のコンポーネント設定を記載します。 3. Nios II システムを生成します。 4. Edit メニューの Insert Symbol を選択することにより、ブロック図に作成された Nios II システムを入力します。 5. ライブラリのウィンドウで、Nios II システムを選択します。 6. 図 10 で示される flash_test モジュールは、デザイン例に内蔵された Nios II シ ステムです。 7. Nios II システムへのピン・アサインメントおよび接続が完了したとき、デザイン をコンパイルして、アルテラ FPGA をコンフィギュレーションします。Nios II シ ステムからのアドレス、データ・リード、選択、およびライトの動作は、それぞ れフラッシュ・デバイスのアドレス、データ、出力イネーブル、チップ・イネー ブル、およびライト・イネーブルに接続されます。 表 4 に、PFL のデザイン例のコンポーネント設定を記載します。 表 4. PFL のデザイン例のコンポーネント設定 ( 注 1) コンポーネント 設定 Nios II プロセッサ デバッグ・モジュール・レベル 1 Avalon-MM トライ・ ステート・ブリッ ジ 登録済 CFI フラッシュ・メ モリ AM29LV128MH Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation PFL デザイン例 15 表 4. PFL のデザイン例のコンポーネント設定 ( 注 1) コンポーネント JTAG UART 設定 デフォルト設定(JTAG インタフェースで Nios II プロセッサをア ルテラ FPGA にコンフィギュレーションするには、このコンポー ネントが必要) 表 4 の注 : (1) これらのコンポーネントは、フラッシュ・プログラミングに必要である最小のコンポーネントで す。Nios II システムに必要な追加コンポーネントを追加することができます。 f SOPC Builder のコンポーネント設定について詳しくは、 「Quartus II ハンドブック Volume 4」の「SOPC Builder Components」の章を参照してください。 図 10 には、Nios II プロセッサのデザイン例を示します。 図 10. Nios II プロセッサのデザイン例 Nios II System VHDL Component for reset_acc Nios II プロセッサを作成した後、Nios II フラッシュ・プログラマを実行することがで きます。フラッシュ・プログラマでは、2 つのモードがあります。 ■ 統合開発環境 (IDE) モード ■ コマンド・ライン・モード Nios II IDE モードは、フラッシュ・プログラマ機能に使いやすいインタフェースを提 供します。コマンド・ライン・モードは上級ユーザー向けです。コマンド・ライン・ モードでは、フラッシュ・プログラマ機能を完全に制御できます。 f 2009 年 12 月 用 IDE およびコマン・ドライン・モードについて詳しくは、Nios II Flash Programmer User Guide を参照してください。 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 16 PFL デザイン例 ボードをパワーアップするときに、Nios II プロセッサでアルテラ FPGA をコンフィ ギュレーションする必要があります。ボードのパワーアップのときに Nios II プロ セッサでアルテラ FPGA をコンフィギュレーションするには、フラッシュ・デバイス に Nios II プロセッサ・イメージを保存して、PFL メガファンクションを使用できま す。プログラムする同じフラッシュ・デバイスに Nios II プロセッサ・イメージを保 存する場合に、他のユーザー・データでフラッシュ・デバイスをプログラムすると き、Nios II イメージを上書きしないことを確実してください。別の選択肢は、Nios II イメージを格納すること、例えば、プログラマブル EPC および消去可能なプログラ マブル・コンフィギュレーション・シリーズ (EPCS) です。 f IDE およびコマン・ドライン・モードについて詳しくは、Nios II Processor Reference Handbook を参照してください。 フラッシュ・デバイス バイト・イネーブル・ピンが Low にプルダウンされると、フラッシュ・デバイスが ×8 データ幅モードであります。バイト・イネーブル・ピンが High にプルアップされ ると、フラッシュ・デバイスが ×16 データ幅モードであります。PFL メガファンク ションおよび Nios II プロセッサ・データ・ピンは、選択したデータ幅のモードに よって割り当てられます。 リード、またはライト・アクセス時間はフラッシュ・デバイス・タイプによって決 まります。PFL メガファンクションでは、ライト・アクセス時間は PFL メガファンク ションにエンコードされます。ライト・アクセス時間を指定する必要はありません が、PFL MegaWizard Plug-In Manager でリード・アクセス時間を指定することが必要で す。Nios II システムに関して、Custom Flash オプションを選択すると、リード、また はライト・アクセス時間を指定しなければなりません。 f 1 リード、またはライト・アクセス時間について詳しくは、「Nios II フラッシュ・プ ログラマのユーザー・ガイド」を参照してください。 PFL メガファンクションおよび Nios II システムは、データ・バスが単一方向のデータ のみを許容するため、選択性の Read-During-Write 動作を実行できません。同時双方 向のデータ・フローはサポートされません。 pfl_flash_access_request および pfl_flash_access_granted ピン Nios II プロセッサおよび PFL メガファンクションはフラッシュ・デバイスへの同じバ ス・ラインを共有します。データ競合を防ぐために、フラッシュ・デバイスを同時 にアクセスとプログラムしてはいけません。フラッシュ・デバイスに 1 台のプロ セッサのみがアクセスしていることを確保するには、PFL メガファンクションでの pfl_flash_access_requestおよびpfl_flash_access_grantedピンを使用す ることにより、1 台のプロセッサがフラッシュ・デバイスにアクセスしている間に、 もう 1 台のプロセッサのフラッシュ・デバイスに接続するすべての出力ピンをトラ イ・ステートにする必要があります。 9 ページの表 3 に説明されたとおり : ■ pfl_flash_access_request ピン — アクセスがフラッシュ・デバイスに必要 な場合には、PFL メガファンクションはこのピンを High にドライブします。 ■ pfl_flash_access_grantedピン— このピンにHigh入力信号を受け取る場合に は、PFL メガファンクションはフラッシュ・デバイスに接続します。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation PFL デザイン例 17 表 5 には、両方のプロセッサが同時にフラッシュ・デバイスにアクセスしないこと を確保するための pfl_flash_access_request および pfl_flash_access_granted ピンの使用方法を記載します。 表 5. Nios II および PFL メガファンクションのある pfl_flash_access_request および pfl_flash_access_granted ピン 信号 Nios II プロセッサ PFL メガファンクション pfl_flash_access_request での高出力信号 フラッシュ・デバイス にすべての出力ピンを トライ・ステートしま す。 pfl_flash_access_granted ピンが高入力 を受信すると、すべての入出力ピンをフラッ シュ・デバイスに接続します。 pfl_flash_access_request での低出力信号 フラッシュ・デバイス にすべてのピンを再接 続します。 pfl_flash_access_granted ピンが低入力 を受信すると、すべての入出力ピンをフラッ シュ・デバイスにトライ・ステートします。 このデザイン例では、pfl_flash_access_request ピンが High になる場合、 reset_acc VHDL コードを使用して、 Nios II プロセッサの reset_n ピンを Low にプル ダウンします。reset_n ピンが Low になる場合、Nios II プロセッサがディセーブル されて、Nios II プロセッサからのすべての出力ピンがトライ・ステートされます。 Nios II システムの pfl_flash_access_granted ピンに pfl_flash_access_request 信号を配線するには、 pfl_flash_access_requestおよびpfl_flash_access_grantedピンの入出力 ピンを作成することが必要です。pfl_flash_access_granted ピンの上に高入力 信号を受信するとき、PFL メガファンクションはフラッシュ・デバイスにアクセスし 始めます。reset_acc VHDL コード・コンポーネントはデザイン例に接続されま す。Nios II プロセッサへの reset_acc VHDL コード・コンポーネントの接続および pfl_flash_access_requestとpfl_flash_access_grantedピンの接続に関す る詳しい情報については、15 ページの図 10 を参照してください。 pfl_flash_access_granted ピンが低入力を受信するとき、PFL メガファンク ションの Tri-state all flash bus pin when not in use オプションは PFL メガファンクション をディセーブルします。このオプションは Quartus II ソフトウェア v6.0 以降にのみ利 用可能です。Quartus II ソフトウェア v6.0 およびそれ以前のバージョンを使用する場 合に、トライ・ステート・バッファで PFL メガファンクションからのすべての出力 を手動でトライ・ステートする必要があります。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 18 PFL およびフラッシュ・アドレスのマッピング 説明されるようにシステムをコンフィギュレーションした後に、 pfl_flash_access_request および pfl_flash_access_granted ピンは、同時 にフラッシュ・デバイスを 1 つのプロセッサしかアクセスしないことを確保します ( 図 11 を参照 )。 図 11. フラッシュ・デバイスをアクセスする Nios II プロセッサおよび PFL メガファンクション Nios II processor connects to the flash device By default, the Nios II processor is connected to the flash device. All PFL megafunction output pins are tri-stated. PFL megafunction requests access to flash device The PFL megafunction pulls the pfl_flash_access_request pin high to request access to the flash device. Nios II processor receives the PFL megafunction The Nios II processor tri-states all output pins to the flash device and routes the output of pfl_flash_access_request to pfl_flash_access _granted. PFL megafunction accesses the flash device The PFL megafunction accesses the flash device after receiving a high input at the pfl_flash_access_granted input pin. The pfl_flash_access_request pin stays high as long as the PFL is connected to the flash device. PFL megafunction releases the flash device The PFL megafunction pulls the pfl_flash_access_request output pin low after accessing the flash device. Nios II システム以外のプロセッサまたはコントローラの使用 Nios II システムの代わりにプロセッサまたはコントローラを使用するには、PFL の pfl_flash_access_granted および pfl_flash_access_request ピンが、ペー ジの 16「pfl_flash_access_request および pfl_flash_access_granted ピン」で説 明されるようの同じ方法を使用して、プロセッサに接続されることを確保します。 また、プロセッサまたはコントローラでフラッシュ・デバイスのリードまたはライ トのアクセス時間を指定する必要があります。PFL メガファンクションがフラッ シュ・デバイスにアクセスしているとき、データ競合を防止するため pfl_flash_access_request 信号が High になるときに、プロセッサからの出力ピ ンをトライ・ステートします。 PFL およびフラッシュ・アドレスのマッピング 図 12 ~図 15 に、PFL およびフラッシュ・デバイスとのアドレス接続を示します。ア ドレス接続は、フラッシュ・ベンダーおよびデータ・バス幅によって異なります。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation PFL およびフラッシュ・アドレスのマッピング 19 図 12. 8 ビット・モードの Numonyx J3 フラッシュ・メモリ ( 注 1) PFL address: 24 bits 23 22 21 2 1 0 Flash Memory address: 24 bits 23 22 21 2 1 0 図 12 の注 : (1) PFL とフラッシュ・メモリとのアドレス接続は同じです。 図 13. 16 ビット・モードの Numonyx J3、P30、および P33 フラッシュ・メモリ ( 注 1) PFL address: 23 bits 22 21 20 2 1 0 Flash Memory address: 23 bits 23 22 21 3 2 1 図 13 の注 : (1) PFL のフラッシュ・アドレスと比べると、Numonyx J3、P30、および P33 の 16 ビット・フラッシュ のフラッシュ・メモリ・アドレスは、1 ビットにシフト・ダウンされます。例えば、フラッシュ・ア ドレス・ビットはビット 0 ではなく、ビット 1 から始めます。 図 14. 8 ビット・モードの Spansion および Numonyx M28、M29 フラッシュ・メモリ ( 注 1) PFL address: 24 bits 23 22 21 2 1 0 Flash Memory address: 24 bits 22 21 20 1 0 D15 図 14 の注 : (1) Spansion の 8 ビット・フラッシュのフラッシュ・メモリ・アドレスは、1 ビットにシフト・アップ されます。例えば、PFL のアドレス・ビット 0 はフラッシュ・メモリのデータ・ピン D15 に接続され ます。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 20 PFL コンフィギュレーション時間 図 15. 16 ビット・モードの Spansion および Numonyx M28、M29 フラッシュ・メモリ ( 注 1) PFL address: 23 bits Flash Memory address: 23 bits 22 21 20 2 1 0 22 21 20 2 1 0 図 15: (1) PFL とフラッシュ・メモリとのアドレス接続は同じです。 PFL コンフィギュレーション時間 この項では、PFL メガファンクションで FPGA をコンフィギュレーションする必要な 時間の見積もりの方程式を提供します。これらの方程式から得られた時間は、 Quartus II ソフトウェア v7.2 以降にしか利用できません。 表 6 には、PFL v7.2 に関する方程式を記載し、以下の表現を使用します。 ■ Cflash は、フラッシュ・メモリから読み出す必要なクロック周期の数を表します。 ■ Ccfg は、データをクロック・アウトする入力クロック・サイクル数を表します ( フ ラッシュ・データ・バス幅かつ FPP か PS モードの選択に応じて、1 ~ 16 DCLK サイクルを生産する )。フラッシュから読み出しおよびコンフィギュレーション のデータ・クロック・アウトのプロセスは、パラレルに実行されます。したがっ て、Cflash および Ccfg の間では、より大きい数だけが重要です。 ■ Fclk は入力クロック周波数を PFL に表します。 ■ Taccess はフラッシュ・アクセス・タイムを表します。 ■ Caccess はフラッシュからのデータが準備される前に、必要なクロック周期数を表 します。 ■ Tpage_access は、Spansion フラッシュ・デバイスのページ・リード時間を表して、 ページ・モードにのみアクセスできます。Tpage_access は PFL に 30 ns に設定されま す。 ■ N は、クロック・アウトされるためのバイト数を表します。この値は、特定の FPGA の .rbf により得られます。. Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation PFL コンフィギュレーション時間 21 表 6. PFL v7.2 用の方程式 ( その1 ) フラッ シュ・ア クセス・ モード データ・オプ ションのコン フィギュレー ション フラッ シュ・ データ幅 ノーマル 8 ビット 圧縮および / または暗号 化 DCLK 比率 = 2 Cflash = Caccess Ccfg = 2 Coverhead = 5*C access Cflash = Caccess Ccfg = 3 Coverhead = 5*Caccess Cflash = Caccess Ccfg = 8 Coverhead = 5*Caccess Cflash = Caccess Ccfg = 16 Coverhead = 5*Caccess Cflash = Caccess/2 Ccfg = 1.5 Coverhead = 3*C access Cflash = Caccess/2 Ccfg = 2.5 Coverhead = 3*Caccess Cflash = Caccess/2 Ccfg = 8 Coverhead = 3*Caccess Cflash = Caccess/2 Ccfg = 16 Coverhead = 3*Caccess Cflash = Caccess Ccfg = 5 Coverhead = 5*C access Cflash = Caccess Ccfg = 8 Coverhead = 5*Caccess Cflash = Caccess Ccfg = 8 Coverhead = 5*Caccess Cflash = Caccess Ccfg = 16 Coverhead = 5*Caccess Cflash = Caccess/2 Ccfg = 4.5 Coverhead = 3*C access Cflash = Caccess/2 Ccfg = 8 Coverhead = 3*Caccess Cflash = Caccess/2 Ccfg = 8 Coverhead = 3*Caccess Cflash = Caccess/2 Ccfg = 16 Coverhead = 3*Caccess 8 ビット Cflash = 2 Ccfg = 1 Coverhead = 22*Caccess + 8 Cflash = 2 Ccfg = 2 Coverhead = 22*Caccess + 8 Cflash = 2 Ccfg = 8 Coverhead = 22*Caccess + 8 Cflash = 2 Ccfg = 16 Coverhead = 22*Caccess + 8 16 ビット Cflash = 1 Ccfg = 1 Coverhead = 20*Caccess + 8 Cflash = 1 Ccfg = 2 Coverhead = 20*Caccess + 8 Cflash = 1 Ccfg = 8 Coverhead = 20*Caccess + 8 Cflash = 1 Ccfg = 16 Coverhead = 20*Caccess + 8 8 ビット Cflash = 2 Ccfg = 4 Coverhead = 22*Caccess + 8 Cflash = 2 Ccfg = 8 Coverhead = 22*Caccess + 8 Cflash = 2 Ccfg = 8 Coverhead = 22*Caccess + 8 Cflash = 2 Ccfg = 16 Coverhead = 22*Caccess + 8 16 ビット Cflash = 1 Ccfg = 4 Coverhead = 20*Caccess + 8 Cflash = 1 Ccfg = 8 Coverhead = 20*Caccess + 8 Cflash = 1 Ccfg = 8 Coverhead = 20*Caccess + 8 Cflash = 1 Ccfg = 16 Coverhead = 20*Caccess + 8 8 ビット 16 ビット ノーマル バース ト・モー ド 2009 年 12 月 用 圧縮および / または暗号 化 PS モード DCLK 比率 = 1 16 ビット ノーマ ル・モー ド FPP モード Altera Corporation DCLK 比率 = 1 DCLK 比率 = 2 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 22 PFL コンフィギュレーション時間 表 6. PFL v7.2 用の方程式 ( その2 ) フラッ シュ・ア クセス・ モード ページ・ モードの アクセス (1) ■ データ・オプ ションのコン フィギュレー ション フラッ シュ・ データ幅 ノーマル 8 ビット ノーマル 16 ビット 圧縮 8 ビット 圧縮 16 ビット FPP モード PS モード DCLK 比率 = 1 DCLK 比率 = 2 DCLK 比率 = 1 DCLK 比率 = 2 Cflash = Caccess Ccfg = 2 Coverhead = 5*Caccess Cflash = Caccess Ccfg = 3 Coverhead = 5*Caccess Cflash = Caccess Ccfg = 8 Coverhead = 5*Caccess Cflash = Caccess Ccfg = 16 Coverhead = 5*C access Cflash = Caccess / 2 Ccfg = 1.5 Coverhead = 3*Caccess Cflash = Caccess / 2 Ccfg = 2.5 Coverhead = 3*Caccess Cflash = Caccess / 2 Ccfg = 8 Coverhead = 3*Caccess Cflash = Caccess / 2 Ccfg = 16 Coverhead = 3*Caccess Cflash = Caccess Ccfg = 5 Coverhead = 5*Caccess Cflash = Caccess Ccfg = 8 Coverhead = 5*Caccess Cflash = Caccess Ccfg = 8 Coverhead = 5*Caccess Cflash = Caccess Ccfg = 16 Coverhead = 5*Caccess Cflash = Caccess / 2 Ccfg = 4.5 Coverhead = 3*Caccess Cflash = Caccess / 2 Ccfg = 8 Coverhead = 3*Caccess Cflash = Caccess / 2 Ccfg = 8 Coverhead = 3*Caccess Cflash = Caccess / 2 Ccfg = 16 Coverhead = 3*Caccess ノーマルおよびバースト・ボードには、 Caccess = Taccess*Fclk+1 クロック・サイクルの合計 (High に アサートされた nRESET からクロック・アウトされたデータの N バイト ) = Coverhead + max(Cflash, Ccfg )*N コンフィギュレーション時間の合計 = クロック・サイクルの合計 / PFL 入力クロック ■ ページ・モードには、 Caccess =[(Taccess*Fclk+1) + (Tpage_access*Fclk*15)]/16 クロック・サイクルの合計 (High に アサートされた nRESET からクロック・アウトされたデータの N バイト ) = Coverhead + max (Cflash , Ccfg )*N コンフィギュレーション時間の合計 = クロック・サイクルの合計 / PFL 入力クロック 表 6 の注 : (1) Spansion ページ・モードのサポートは、QuartusII ソフトウェア v.8.0 以降にしか使用できません。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation PFL コンフィギュレーション時間 23 次は、ノーマル・モード、ページ・モードおよびバースト・モードのコンフィギュ レーション時間の計算の例です。 ■ ノーマル・モードのコンフィギュレーション時間の計算 : EP2S15 の .rbf サイズ = 577KB = 590,848 バイト コンフィギュレーション・モード = データ圧縮および暗号化なしの FPP フラッシュ・アクセス・モード = ノーマル・モード フラッシュ・データ・バス幅 = 16 ビット フラッシュ・アクセス時間 = 100 ns PFL 入力・クロック = 100 MHz DCLK 比率 = 2 次の式は、この計算に使用されます。 Caccess = Taccess*Fclk + 1 ノーマル・モードの Cflash = Caccess / 2 Ccfg = 2.5 Coverhead = 3*Caccess クロック・サイクルの合計 = Coverhead + max (Cflash, Ccfg)*N コンフィギュレーション時間の合計 = クロック・サイクルの合計 / PFL 入力 クロック 式に値を入力します。 Caccess = (100 ns * 100 MHz) + 1 = 11 Cflash = 11/2 = 5.5 Ccfg = 2.5 Coverhead = 3*11 = 33 クロック・サイクルの合計 = 33 + 5.5 * 590848 = 3249697 100 MHz でのコンフィギュレーション時間の合計 = 9453571 / 100 × 106 = 32.5 ms 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 24 PFL コンフィギュレーション時間 ■ ページ・モードのコンフィギュレーション時間の計算 : EP2S15 の .rbf サイズ = 577 KB = 590,848 バイト コンフィギュレーション・モード = データ圧縮および暗号化なしの FPP フラッシュ・アクセス・モード = ページ・モード フラッシュ・データ・バス幅 = 16 ビット フラッシュ・アクセス時間 = 100 ns PFL 入力クロック = 100 MHz DCLK 比率 = 2 次の式は、この計算に使用されます。 Tpage_access = 30 ns Caccess = [(Taccess*Fclk+1) + (Tpage_access*Fclk *15)] / 16 ページ・モードの Cflash = Caccess / 2 Ccfg = 2.5 Coverhead = 3*Caccess クロック・サイクルの合計 = Coverhead + max (Cflash, Ccfg)*N コンフィギュレーション時間の合計 = クロック・サイクルの合計 / PFL 入力 クロック 式に値を入力します。 Caccess = [((100ns *100 MHz) + 1) + (30ns*100 MHz*15)] / 16 = 3.5 ページ・モードの Cflash = 3.5 / 2 = 1.75 = 2 Ccfg = 2.5 Coverhead = 3*3.5 = 10.5 クロック・サイクルの合計 = 10.5 + 2.5*590848 = 1477130.5 100 MHz でのコンフィギュレーション時間の合計 = 1477130.5 / 100 × 106 = 14.77 ms Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェアに PFL の使用 ■ 25 バスと・モードのコンフィギュレーション時間の計算 : EP2S15 の .rbf サイズ = 577KB = 590,848 バイト コンフィギュレーション・モード = データ圧縮および暗号化なしの FPP フラッシュ・アクセス・モード = バスと・モード フラッシュ・データ・バス幅 = 16 ビット フラッシュ・アクセス時間 = 100 ns PFL 入力クロック = 100 MHz DCLK 比率 = 2 次の式は、この計算に使用されます。 Caccess = Taccess*Fclk + 1 Cflash for Burst Mode = 1 Ccfg = 2 Coverhead = 20*Caccess + 8 クロック・サイクルの合計 = Coverhead + max (Cflash, Ccfg)*N コンフィギュレーション時間の合計 = クロック・サイクルの合計 / PFL 入力 クロック 式に値を入力します。 Caccess = (100ns *100 MHz) + 1 = 11 Cflash = 1 Ccfg = 2 Coverhead = (20*11) + 8 = 228 クロック・サイクルの合計 = 228 + 2*590848 = 1181924 100 MHz でのコンフィギュレーション時間の合計 = 1181924 / 100 × 106 = 11.82 ms Quartus II ソフトウェアに PFL の使用 この項では、Quartus II ソフトウェアで提供された PFL の機能を使用するためのプロ セスを説明します。そのプロセスは、次を含めます。 1 ■ デザインにおける PFL メガファンクションのインスタンス化。 ■ アルテラ FPGA のコンフィギュレーション・データを含む .sof をフラッシュ・デバ イス向けに設計された .pof に変換するプロセス。 ■ MAX II デバイスを介して Quartus II Programmer でフラッシュ・デバイスに .pof をプ ログラムするプロセス。 すべての未使用ピンは、デフォルトでグランドに設定されます。アルテラは、すべ ての未使用ピンをトライ・ステートに設定することを推奨します。そうしないと、 干渉を起こす可能性があります。 すべての未使用ピンをトライ・ステートに設定するには、以下のステップを実行し ます。 1. Assignments メニューでは、Device をクリックします。次に、Device and Pin Options を選択します。 2. Unused Pins をクリックし、Reserve all unused pins のプルダウン・リストからの項 目を選択します ( 図 16 を参照 )。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 26 Quartus II ソフトウェアに PFL の使用 図 16. すべての未使用ピンの予約 図 17 では PFL を使用する方法を示します。Quartus II ソフトウェアは、JTAG ピンの シミュレーションまたは MAX II かフラッシュ・デバイスのプログラミング・プロセ スをサポートしません。ただし、シミュレーションは、FPGA コンフィギュレーショ ンに使用可能ですが、適切なフラッシュ・ベクトルおよび FPGA 応答が必須です。 flash_addr および flash_data は、フラッシュ・ベクトルの例です。FPGA 応答の 例は、fpga_conf_done および fpga_nstatus です。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェアに PFL の使用 27 図 17. Quartus II ソフトウェアの PFL ステップ Create new FPGA designs Create a new MAX II design, instantiate the PFL Megafunction in the MAX II design, and set Pin Assignments Compile and obtain the FPGA .sof(s) Compile and obtain MAX II .pof Add the .sof(s) for conversion to .pof Add the MAX II .pof to the Quartus II Programmer Convert to .pof for the Targeted Flash Add the flash .pof in the Quartus II Programmer Create the optional Jam programming file Program the MAX II and Flash Devices MAX II configures the FPGA with the configuration data from the Flash Device QuartusII ソフトウェア内の PFL メガファンクションのインスタンス化 PFL メガファンクションのインスタンス化を生成するには、以下のステップを実行し ます。 1 アルテラは、MAX II トップ・レベル・デザインでメガファンクションをイ ンスタンス化することを推奨しています。 1. Tools メニューの MegaWizard Plug-In Manager を選択します。 2. Create a new custom megafunction variation を選択して、Next をクリックします。 3. MAX II デバイス・ファミリを選択します。 4. メガファンクション・リストの Parallel Flash Loader を選択します。 5. Hardware Description Language (HDL) の出力ファイル・タイプを選択します。そし て、Next をクリックします (Verilog HDL はこの例に選択 )。 6. ディレクトリおよび出力ファイル名を指定します。ダイアログ・ボックスは、示 された図 18 と同様です。次に、Next をクリックします。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 28 Quartus II ソフトウェアに PFL の使用 図 18. PFL メガファンクションの選択 7. 表 7、31 ページの図 19、31 ページの図 20、および 32 ページの図 21 に示されて いるように、メガファンクション設定を指定します。 表 7. PFLPLL メガファンクションのオプション設定 ( その1 ) メガファンクション・オ プション Operating mode Number flash device connected 説明 フラッシュ・プログラミングおよび FPGA のコンフィギュレーションのオペレー ティング・モードです。一個のメガファンクションで制御するかまたは個別のブ ロックで機能によって制御します。 接続したフラッシュ・デバイスの数 PFL に接続されたフラッシュ・デバイスの数を指定します。許容されるフラッ シュ・デバイスの最大数は 16 個です。 Largest flash density FPGA コンフィギュレーションにプログラムされる、または使用されるフラッ シュ・デバイスの集積度。1 個以上のフラッシュ・デバイスが PFL に接続される 場合、最大のフラッシュ集積度を指定します。 Flash interface data width 使用するフラッシュ・デバイスによって、フラッシュ・データ幅は、8、16、ま たは 32 ビットとなります。複数のフラッシュ・デバイス・サポートには、すべ ての接続されているフラッシュ・デバイスに、データ幅は同じでなければなりま せん。 Tri-state flash bus PFL がフラッシュにアクセスする必要はないときに、フラッシュ・デバイスに接 続するすべてのピンをトライ・ステートします。 flash_nreset フラッシュ・デバイスのリセット・ピンに接続するには、PFL で flash_nreset ピンを作成します。Low 信号は、フラッシュ・デバイスをリセットします。バー スト・モードで、このピンはデフォルトで使用可能です。 Flash programming IP optimization フラッシュ・プログラミング IP は、速度または面積に最適化されます。速度に最 適化された IP は、より速いフラッシュ・プログラミング時間を許容しますが、メ ガファンクションは、より多くのロジック・エレメントを使用するようになりま す。面積に最適化された IP は、IP がより少ない LE を使用することを意味します が、フラッシュ・プログラミング時間は長くなります。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェアに PFL の使用 29 表 7. PFLPLL メガファンクションのオプション設定 ( その2 ) メガファンクション・オ プション 説明 FIFO size フラッシュ・プログラミング IP が速度に最適化されるときに、PFL は、フラッ シュ・プログラミングのとき、FIFO をプログラミング・データの一時的な保存と して実装するには、追加の LE を使用します。より大きい FIFO サイズで、プログ ラミング時間は短かくなります。 External clock frequency メガファンクションが FPGA をコンフィギュアするために、ユーザーが提供した クロックの周波数。コンフィギュレーションにおいて、PFL は入力クロック周波 数を最大 2 に分割できますので、指定されたクロック周波数は FPGA に対応でき る最大クロック周波数 (DCLK) の 2 倍を超えてはいけません。 Flash access time フラッシュのアクセス時間。フラッシュ・デバイスで必要な最大のアクセス時間 は、フラッシュのデータシートに記載しています。アルテラは、必要な時間より 同じフラッシュ・アクセス時間、または長いフラッシュ・アクセス時間を指定す ることを推奨しています。 Option-bit byte address オプション・ビットがフラッシュ・デバイスに格納される開始アドレス。開始ア ドレスは 8-K バイト境界にある必要があります。 FPGA configuration scheme PS または FPP のいずれかかの FPGA のコンフィギュレーション手法。 コンフィギュレーション失敗後のコンフィギュレーションの動作。3 つのオプ ションがあります : Configuration failure options ■ Halt — FPGA コンフィギュレーションは失敗の後に完全に停止します。 ■ Retry same page — 失敗の後に、PFL がコンフィギュレーションの失敗した同じ ページから FPGA の再コンフィギュレーションを開始します。 ■ Retry from fixed address — PFL は失敗の後に次のオプション・フィールドで指定 された既定アドレスからのデータを FPGA の再コンフィギュレーションを開始 します。 Byte address to retry from on configuration failure コンフィギュレーション障害オプションが Retry from fixed address に設定される場 合、PFL のフラッシュ・アドレスを指定することにより、コンフィギュレーショ ン障害が発生したとき、再コンフィギュレーションから読み出すことができま す。 Include input to force reconfiguration FPGA の再コンフィギュレーションをイネーブルするためのオプション・ピン。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 30 Quartus II ソフトウェアに PFL の使用 表 7. PFLPLL メガファンクションのオプション設定 ( その3 ) メガファンクション・オ プション 説明 入力クロックおよび DCLK 間の 1、2、4、または 8 の比率。 Ratio between input clock and DCLK output clock ■ 比率 8 は、8 つの外部クロックごとに、 pfl_clk が 1 個の fpga_dclk を生成する ことを意味します。 ■ 比率 4 は、4 つの外部クロックごとに、 pfl_clk が 1 個の fpga_dclk を生成する ことを意味します。 ■ 比率 2 は、2 つの外部クロックごとに、 pfl_clk が 1 個の fpga_dclk を生成する ことを意味します。 ■ 比率 1 は、1 つの外部クロックごとに、 pfl_clk が 1 個の fpga_dclk を生成する ることを意味します。 FPGA コンフィギュレーションのときにリードのプロセスに総合的なフラッシュ・ アクセス時間を向上するオプション。 Use advance read mode ■ Burst mode — Numonyx P30 および P33 フラッシュ・デバイスのみに使用できま す。シーケンシャル・リード・アクセス時間を減少します。 ■ Page mode — Spansion GL フラッシュ・デバイスのみに使用できます。 ■ Numonyx burst mode — Numonyx M58BW フラッシュ・デバイスのみに使用できま す。 ■ Normal mode— すべてのフラッシュ・デバイスに使用できます。 フラッシュ・デバイスのリード・アクセス・モードについて詳しくは、それぞれ のフラッシュ・デバイスのウェブサイトを参照してください。 8. Next をクリックします。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェアに PFL の使用 31 図 19、図 20、および図 21 には、メガファンクションの設定を示します。 図 19. PFL メガファンクションの設定 図 20. PFL メガファンクションの設定 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 32 Quartus II ソフトウェアに PFL の使用 図 21. PFL メガファンクションの設定 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェアに PFL の使用 33 図 22 には、メガファンクションに必要なシミュレーション・ファイルを示します。 PFL は、シミュレーション・ファイルを持っていなくて、シミュレーションできない 理由で、PFL メガファンクションのシミュレーション・ファイルがこのページにリス トされません。ただし、適切なフラッシュ・ベクトルおよび FPGA 応答があるという 条件で、FPGA コンフィギュレーションのシミュレーションは可能です。詳しくは、 ページの 43「PFL コンフィギュレーションのシミュレーション」を参照します。 図 22. 必要なシミュレーション・ファイルのリスト 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 34 Quartus II ソフトウェアに PFL の使用 図 23 には、メガファンクションのために作成されるファイルを示します。作成した い追加ファイルのタイプを選び、そして、Finish をクリックします。Quartus II ソフ トウェアは指定した HDL ファイルで PFL メガファンクションを生成します ( 指定さ れる場合 )。 図 23. PFL メガファンクション用の出力ファイル・タイプを選択 フラッシュ・デバイスの .sof を .pof に変換 FPGA デバイスが生成した .sof を使用して、フラッシュ・デバイス .pof を作成します。 また、フラッシュ・デバイス .pof を作成するときのデータを含む .hex を選択するこ とにより、他の非コンフィギュレーション・データを .pof に追加することができま す。 .sof を .pof に変換するには、これらのステップを実行します : 1. File メニューの Convert Programming Files を選択します。 2. プログラミング・ファイルのタイプとしては、Programmer Object File(.pof) を指定 します。そして、ファイルに名前をつけます ( 図 24 を参照 )。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェアに PFL の使用 35 図 24. 変換プログラミング・ファイルのタブ 3. コンフィギュレーション・デバイスの正しい集積度の CFI デバイスを選択します ( 例えば、CFI_32Mb は 32-M ビットの容量のある CFI デバイスを意味する )。 4. コンフィギュレーション・データを追加するには、Input files to convert の下で SOF Data を選択します。Add File をクリックします。そして、追加したい .sof にブ ラウズします。 FPGA のチェーンをコンフィギュレーションする場合、1 個以上の .sof を同じページ に配置することができます。.sof の順序は、チェーンにおけるデバイスの順序に ならないとはいけません。 他の .sof からのデータをほかのページに保存する場合、Add .sofs Data をクリック します。新しいページに .sof を追加します。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 36 Quartus II ソフトウェアに PFL の使用 5. ページ番号と名前を設定するには、SOF Data を選択し、Properties をクリックし ます。図 25 には、SOF Data Properties のダイアログ・ボックスを示します。 図 25. SOF Data Properties 6. Address mode for selected pages の Auto を選択して、Quartus II ソフトウェアにその ページ開始アドレスを自動的に設定させます。 7. Block を選択して開始アドレスと終端アドレスを指定するか Block を選択して、ま たは Start を選択して開始アドレスだけを指定します。OK をクリックします。 8. また、フラッシュ・デバイスに .hex ユーザー・データを保存できます。 a. Convert Programming Files(35 ページの図 24) ウィンドウの Input files to convert ウィンドウで Add Hex Data を選択します。 b. Add Hex Data ダイアログ・ボックスで、絶対、または、相対アドレッシング・ モード ( 図 26 を参照 ) を選びます。 ■ 絶対アドレッシング・モードを選択する場合、.hex のデータは .hex に記載され た同じアドレスの位置でフラッシュ・デバイスにプログラムされます。 ■ 相対アドレッシング・モードを選択する場合、開始アドレスを指定できます。 .hex データは特定の開始アドレスでフラッシュにプログラムされ、そして、ア ドレスの差は保たれます。アドレスが指定されない場合、Quartus II ソフト ウェアはアドレスを選択します。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェアに PFL の使用 37 図 26. Add Hex Data 9. Options をクリックして、オプション・ビットが格納される開始アドレスを指定 します。この開始アドレスは、PFL メガファンクションを作成するとき指定され たアドレスと同じにすることが必要です。オプション・ビット・セクターがコン フィギュレーション・データ・ページに重なり合うがが全くないこと、そして開 始アドレスが 8-K バイト境界にあることを確実します。 10.圧縮および暗号化されたデータのいずれか、またはその両方でプログラミング・ ファイルを生成するには、SOF Data の下で .sof を選択します。そして、 Properties をクリックします。Compression または Generate encrypted bitstream の チェック・ボックスいずれか、またはその両方をオンにします。 f 暗号化されたコンフィギュレーション・ファイルは Stratix II および Stratix III デバイス・ファミリでサポートされます。Stratix II デバイス・ ファミリのデザイン・セキュリティ機能について詳しくは、AN 341: Using the Design Security Feature in Stratix II and Stratix II GX Devices を参照します。 11.OK をクリックして、.pof を作成します。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 38 Quartus II ソフトウェアに PFL の使用 MAX II およびフラッシュ・デバイスのプログラミング Quartus II Programmer で、シングル・ステップまたは別々のステップで MAX II デバイ スおよびフラッシュ・デバイスをプログラムできます。シングル・ステップで、以 下のように、まずは MAX II デバイス、そして、フラッシュ・デバイスをプログラム します : 1. Quartus II Programmer ウィンドウを開き、そして、Add File をクリックして、 MAX II デバイスのための .pof を追加します。 2. MAX II .pof を右クリックし、そして、図 27 に示されているように、Attach Flash Device をクリックします。 図 27. フラッシュ・デバイスの接続 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation Quartus II ソフトウェアに PFL の使用 39 3. Flash Device のポップアップ・メニュー ( 図 28 参照 ) でプログラムされるフラッ シュ・デバイスの集積度を選択します。 図 28. フラッシュ・デバイスの選択 4. 追加されたフラッシュ・デバイスの集積度を右クリックし、そして、Change File( 図 29 を参照 ) をクリックします。 5. フラッシュ・デバイス用の生成された .pof を選択します。フラッシュ・デバイス 用の .pof は MAX II デバイスの .pof に接続されます。 図 29. フラッシュ .pof の接続 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 40 Quartus II ソフトウェアに PFL の使用 6. 他のプログラミング・ファイルを追加します(チェーンに他のデバイスがある場 合)。 7. 追加された .pof( 図 30 を参照 ) の Program/Configure カラムのボックスをチェッ クします。そして、Start をクリックして、MAX II デバイスおよびフラッシュ・デ バイスをプログラムします。 Quartus II Programmer を使用することにより、MAX II デバイスに PFL メガファンクショ ンが含まれている場合は、コンフィギュレーション・データ・ページ、ユーザー・ データ・ページとオプション・ビット・セクタを独立してプログラム、検証、消去、 ブランク・チェックまたは確認することができます。 1 フラッシュ .pof がプログラミングの前に選択されると、Quartus II Programmer は全体 のフラッシュ・デバイスを消去します。Quartus II Programmer がフラッシュ・デバイ スで他のセクタを消去しりのを防止するには、ページ、.hex データ、およびオプ ション・ビットだけを選択します。 1 フラッシュ・デバイスを使用して、ユーザー・データだけを保存するとき、FPGA の コンフィギュレーションを防ぐには、いつも pfl_nreset ピンを Low にプルダウン します。 図 30. MAX II およびフラッシュ・デバイスのプログラミング Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation 複数のフラッシュ・プログラミング 41 複数のフラッシュ・プログラミング PFL は、複数のフラッシュが最大 16 個のフラッシュ・デバイスのプログラミングをサ ポートします。この機能で、フラッシュ・プログラミングを連続して実行するため に、PFL は複数のフラッシュ・デバイスに接続できます。PFL の複数のフラッシュ・ プログラミングは、速度と面積モードの両方のフラッシュ・プログラミングをサ ポートします。FPGA コンフィギュレーションでは、nCE[0] ピンに接続されたフ ラッシュ・デバイスの内容だけがコンフィギュレーション・データとして使用され ます。 複数のフラッシュ・プログラミング機能を使用するには、以下のステップを実行し ます : 1. PFL MegaWizard Plug-In Manager ( 図 31 を参照 ) では、MAX II デバイスに接続され たフラッシュ・デバイスの数を選択します。 図 31. PFL Megawizard 2. ブロック図で、PFL の nCE ピンをフラッシュ・デバイスの nCE ピンに接続しま す。デザインをコンパイルします。 3. Quartus II Programmer の Auto Detect をクリックします。MAX II デバイスは主要項 目として表示され、次にはデバイス・ツリーに二次項目として CFI フラッシュ・ デバイスのリストが表示されます ( 図 32 を参照 )。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 42 複数のフラッシュ・プログラミング 図 32. Auto Detect のフラッシュ・デバイス 4. それぞれのフラッシュ・デバイス ( 図 33 を参照 ) にフラッシュ・デバイスの .pof をロードします。 図 33. .pof のあるフラッシュ・デバイス 5. Quartus II Programmer で必要な動作のボックスをチェックします。そして、Start をクリックします。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation MAX II およびフラッシュ・デバイス・プログラミングの .jam ファイルの作成 43 MAX II およびフラッシュ・デバイス・プログラミングの .jam ファイルの作成 MAX II デバイスとフラッシュ・デバイスをプログラムして、Jam™ Standard Test and Programming Language (STAPL) (.jam) プログラミング・ファイルを使用するには、以 下のステップを実行してください。 1. Quartus II Programmer を開いて、MAX II.pof とフラッシュ .pof を追加します ( ペー ジの 38「MAX II およびフラッシュ・デバイスのプログラミング」のステップ 1 ~ 6 に従います )。 2. File メニューでは、Create/Update をポイントして、そして、Create JAM, SVF, or ISC File をクリックします。 3. ファイル名を入力して、そして、ファイルのフォーマット (.jam) を選択します。 OK をクリックします Quartus II Programmer または quartus_jli 実行コマンドで .jam を使用します。 f quartus_jli 実行コマンドについて詳しくは、AN 425: Using Command-Line Jam STAPL Solution for Device Programming を参照してください。 PFL コンフィギュレーションのシミュレーション 正しいシミュレーション・ベクトルで、Quartus II Simulator で PFL のコンフィギュ レーション部分のシミュレーションをして、PFL のコンフィギュレーション動作を把 握できます。その Quartus II Simulator のあるシミュレーションは、Vector Waveform File (.vwf) およびフラッシュ・デバイスを表すシンプル VHDL ファイルを使用します。こ の VHDL ファイルはこのアプリケーション・ノートで利用可能です。PFL の入力に正 しい入力ベクトルを供給することにより、シミュレーション波形のメガファンク ションから正しい出力が見られます。 この項では、PFL コンフィギュレーションのシミュレーションについて説明します。 図 34 および図 35 はこのシミュレーションのための PFL メガファンクション・セッ トアップを示します。 シミュレーションを開始する前に、デザイン・エントリとしてブロック図を使用す る場合、まず PFL メガファンクションをインスタンス化して、デザインの VHDL ファ イルのフラッシュ・デバイス用のシンボルを作成する必要があります。このシミュ レーションは、デザイン・エントリとしてブロック図を使用します。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 44 PFL コンフィギュレーションのシミュレーション 図 34. PFL メガファンクションのセットアップ 図 35. PFL メガファンクションのセットアップ Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation PFL コンフィギュレーションのシミュレーション 45 フラッシュ・デバイス VHDL ファイルは、以下の設定が含まれています : ■ フラッシュ・デバイス集積度 : 64 M ビット ■ オプション・ビット : 0x1FE000 ■ データ幅 : 8 ビット 手動で VHDL ファイルを編集することにより、フラッシュ・デバイスの集積度を変更 することができます。File メニューでは、Create/Update をポイントして、Create Symbol Files for Current File をクリックすると、ファイルのシンボルが作成できます。 シンボルの作成中には、VHDL ファイルが開いているのを確実します。フラッシュ・ デバイス・シンボルは Symbol ウィンドウに表示されます。 1 フラッシュ・メモリ VHDL ファイルは、コンフィギュレーションのノーマル・モード にしか使用できません。 Quartus II ソフトウェアの Block Diagram/Schematic File では、図 36 に示されるように addr、do、および nread ピンを PFL メガファンクションの flash_addr、 flash_data、および noe に接続します。 図 36. PFL の接続 メガファンクションのインスタンス化、そして入力、出力、または双方向ピンにす べてのポートの接続、およびデザインのコンパイルが完了した後、.vwf を作成し始 めることができます。新しい .vwf は、少なくとも 200 µs の終了時間が必要です。 f 2009 年 12 月 用 「Quartus II ハンドブック v3」の 新しい .vwf を作成する方法について詳しくは、 「Quartus II シミュレータ」の章を参照してください。 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 46 PFL コンフィギュレーションのシミュレーション 表 8 は、このシミュレーションに .vwf 内の PFL の入力ポートへの割り当てられる入 力ベクトルを記載します。 表 8. 入力ベクトルの設定 入力 設定 pfl_clk 36-MHz のクロック入力。 fpga_conf_done 入力が Low のとき、コンフィギュレーションは完全ではありませ ん。 fpga_nstatus 入力が High のとき、デバイスはコンフィギュレーション可能な状 態となります。 fpga_pgm[2:0] PFL が 0 ページから読み出すときには、入力を 000 に設定します。 pfl_flash_access_granted 入力が High のとき、PFL はフラッシュにアクセスできます。 pfl_nreset 入力が High のとき、PFL のリセット状態を終了します。 pfl_nreconfigure 入力が High のとき、FPGA 再コンフィギュレーションを開始します。 flash_data オプション・ビットおよび FPGA コンフィギュレーション・データ のデータ読み出しを含む双方向バス。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation PFL コンフィギュレーションのシミュレーション 47 図 37 には、このシミュレーションの入力ベクタを示します。 図 37. シミュレーションの入力ベクトル オプション・ビット開始アドレスは 0x1FE000 です (PFL メガファンクションがイン スタンス化されると、0x1FE000 は指定されている )。PFL は、アドレス 0x1FE0080 か ら読み込みます(0x1FE0080 はオプション・ビット・セクタの最後のアドレスであ る)。このアドレスは、フラッシュをプログラムするための使用される .pof のバー ジョン情報を格納して、コンフィギュレーション・プロセスには影響しません。 fpga_pgm[2..0] が 000 に設定されるため、 ページ 0 および Page-Valid ビットの開始、 終了アドレスを取得するには、PFL はアドレス 0x1FE000 から 1FE003 まで読み取りま す (LSB はアドレス 0x1FE000 にある )。 Page-Valid ビットは、コンフィギュレーションが続行するためには 0 でなければなりま せん。PFL がフラッシュから読み出すとき、PFL は、flash_nce および flash_noe が Low、そして pfl_flash_access_request 信号が High にアサートします。 2009 年 12 月 用 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 48 PFL コンフィギュレーションのシミュレーション 図 38 には、コンフィギュレーションが始まる前に、PFL フラッシュからオプショ ン・ビットを読み込むことを示します。 図 38. PFL のオプション・ビットの読み出し 0 ページのオプション・ビットを読み込んだ後に、コンフィギュレーションが始まる 前に、待ち時間があります。オプション・ビットが読み込まれた後に、 flash_data バスに 0xZZ が含まれるので、フラッシュから読み出すコンフィギュ レーション・データは 0xZZ です。fpga_dclk がトグルし始めるとき、コンフィ ギュレーションは開始します。そして、fpga_data[0] は、FPGA に送信されるコ ンフィギュレーション・データです。フラッシュの MSB にはコンフィギュレーショ ン・データの LSB が含まれているため、シミュレーション波形は、コンフィギュ レーション・データが 8 つの fpga_dclk パルスに伴うフラッシュ・データのトグ ル・データであることを示しています。コンフィギュレーションの間、PFL は、 flash_nce および flash_noe を Low、そして pfl_flash_access_request を High にアサートします。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation PFL コンフィギュレーションのシミュレーション 49 図 39 には、コンフィギュレーションの開始を示します。コンフィギュレーションが 開始するときに、flash_data バスは 0×11 を含んでいます。コンフィギュレーショ ン・データは flash_data の 0×88 のトグルです。 図 39. PFL コンフィギュレーションの開始 コンフィギュレーションのプロセスは、fpga_conf_done 信号を High に設定する まで続きます(コンフィギュレーションが完成であることを示す)。また、PFL は flash_nce およびflash_noe をHigh、そして pfl_flash_access_request を Low にアサートします(PFL がフラッシュから読み込まないことを示す)。 1 2009 年 12 月 用 図 39 に示されているのは、nconfig 信号の実際の動作ではありません。nconfig 信 号は、外部抵抗で High にプルアップすることが必要です。詳しくは、FPGA ハンド ブックの Configuration の章を参照してください。 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 50 参考資料 参考資料 ■ AN 341: Using the Design Security Feature in Stratix II and Stratix II GX Devices ■ AN 425: Using Command-Line Jam STAPL Solution for Device Programming ■ Configuration Handbook ■ Nios II Flash Programmer User Guide ■ Nios II Processor Reference Handbook ■ Quartus II ハンドブック v3 の「Quartus II Simulator」の章 ■ Quartus II ハンドブック v4 の「SOPC Builder Components」の章 改訂履歴 表 3 に、このアプリケーション・ノートの改訂履歴を示します。 表 9. 改訂履歴 ( その1 ) 日付およびリ ビジョン 2009 年 12 月、 v5.0 変更内容 ■ 表 1、表 3、表 7、および 表 8 を更新。 ■ 図6、図19、図 21、図 28、図 31、および図34を更 新。 ■ テキストのマイナーな編集。 ■ 表 1、表 3、表 6、および表 7 を更新。 ■ 「PFL 概要 ̶ ̶ コンフィギュレーション時間」の項を更 新。 ■ 「Quartus II ソフトウェア内での PFL メガファン クションのインスタンス化」の項を更新。 2009 年 4 月、 v4.2 ■ 図 19、図 22、図 23、および図 34 を取り替 え。 ■ 図 20、図 21、および図 35 を追加。 ■ 「MAX II デバイスおよびフラッシュ・デバイス のプログラミング」の項を更新。 ■ 新しい項「複数のフラッシュ・プログラミン グ」を追加。 ■ 表 1 を更新。 ̶ ■ 「ページ・モードの実装」から「フラッシュ .pof のページ実装」にタイトルを変更。 2008 年 5 月、 v4.1 ■ 表 3 の注を追加。 ■ 図 14 および 図 15 のタイトルに ST ミクロを追 加。 ■ 表 7 を更新。 ■ 図 19 を更新。 ■ 図 29 を更新。 ■ 図 33 に脚注を追加。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation 改訂履歴 51 表 9. 改訂履歴 ( その2 ) 日付およびリ ビジョン 2007 年 10 月、 v4.0 変更内容 概要 ■ 表 1 を更新。 ■ 表 2 を削除。 ■ 図 4 を更新。 ■ 図 5 に ( 注 1) を追加。 ■ 図 6、図 10、図 12 ~図 15、および図 17 を 更新。 ■ 表 3 のピン順序を更新と再編成。( 注 4) を追 加。 ■ 「PFL ■ ■ Quartus II ソフトウェア v7.2 のド キュメントを更新。 ■ 「PFL デザイン例」項を追加。 デザイン例」および「MAX II お よびフラッシュ・デバイス・プログ ラミングの .jam ファイルの作成」 の項を追加。 表 6 の方式を更新。 ■ 「Quartus II ソフトウェアの PFL の使用」の項 で、図 17 ~図 23、および図 25 を更新。 ■ 「MAX II およびフラッシュ・デバイス・プログ ラミングの .jam ファイルの作成」の項を追加。 ■ 「PFL コンフィギュレーションのシミュレーショ ン」の項で、図 29 および図 30 を更新。 ■ 表 7 のピン順序を更新再編成。 ■ 図 1 を更新。 ■ 表 1 および表 2 を更新。 ■ 「CFI ■ 図 6 を更新。 ■ 「PFL ■ 2007 年 5 月、 v3.0 フラッシュのプログラミング」の項を更新 デザイン例」の項を追加。 表 3 を更新し、3 つの PFL 信号おとび表の注を追 加。 ■ 表 6 を更新し、表の注を更新。 ■ 図 18 を更新。 Quartus II ソフトウェア v7.1 のド キュメントを更新。 ■ 「PFL ■ 「Quartus II ソフトウェア内の PFL メガファンク ションのインスタンス化」の項のステップ 7 に 表 7 を追加。 ■ ■ コンフィギュレーションのシ ミュレーション」の項を追加。 図 19、図 20、図 21、および図 22 を更新。 ■ 「フラッシュ・デバイス用の .sof を .pof に変換」 の項のステップ 7 を更新。 ■ 2009 年 12 月 用 図 24 を追加。 Altera Corporation Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使 52 改訂履歴 表 9. 改訂履歴 ( その3 ) 日付およびリ ビジョン 変更内容 ■ 表 1、表 2、および表 3 を更新。 概要 ̶ ■ 「フラッシュ .pof のページ実装」の項の「自動 モード」の情報を更新。 ■ 図 5 および図 6 を更新。 ■ 「PFL コンフィギュレーション時間」の項を追 加。 ■ 「PFL およびフラッシュ・アドレスのマッピン グ」の項を追加。 ■ 「Quartus 2006 年 12 月、 v2.1 II ソフトウェア内の PFL メガファンク ションのインスタンス化」の項のステップ 7 を 更新。 ■ 「Quartus II ソフトウェア内の PFL メガファンク ションのインスタンス化」の項の図 19、 図 20、および図 21 を更新。 ■ 「MAX II およびフラッシュ・デバイスのプログ ラミング」の項のステップ 2 を更新し、ステッ プ 3 と 4 を追加。 ■ 「MAX II およびフラッシュ・デバイスのプログ ラミング」の項の図 25 を更新し、図 26 と 図 27 追加。 ■ 「MAX II およびフラッシュ・デバイスのプログ ラミング」を更新。 ■ 表 1 および注を更新。 ■ 図 5 および図 16 を更新。 ■ 表 2 を更新。 ̶ ■ 「ページ・モードの実装」 項を更新。 2006 年 10 月、 v2.0 ■ 「Quartus II ソフトウェアの PFL の使用」の項を 更新。 ■ 「Quartus II ソフトウェア内の PFL メガファンク ションのインスタンス化」項を更新。 ■ 「フラッシュ・デバイス用の .sof を .pof に変換」 の項のステップ 7 d を更新。 ■ 「MAX II およびフラッシュ・デバイスのプログ ラミング」項を更新。 Quartus II ソフトウェアでのパラレル・フラッシュ・ローダの使用 2009 年 12 月 Altera Corporation 改訂履歴 101 Innovation Drive San Jose, CA 95134 www.altera.com Technical Support www.altera.com/support Copyright © 2009 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.