正しいシミュレーション・ベクトルで、Quartus II SimulatorでPFLのコンフィギュ レーション部分のシミュレーションをして、PFLのコンフィギュレーション動作を把 握できます。そのQuartus II Simulatorのあるシミュレーションは、Vector Waveform File (.vwf) およびフラッシュ・デバイスを表すシンプルVHDLファイルを使用します。こ のVHDLファイルはこのアプリケーション・ノートで利用可能です。PFLの入力に正 しい入力ベクトルを供給することにより、シミュレーション波形のメガファンク ションから正しい出力が見られます。
この項では、PFLコンフィギュレーションのシミュレーションについて説明します。
図 34および図 35はこのシミュレーションのためのPFLメガファンクション・セッ トアップを示します。
シミュレーションを開始する前に、デザイン・エントリとしてブロック図を使用す る場合、まずPFLメガファンクションをインスタンス化して、デザインのVHDLファ イルのフラッシュ・デバイス用のシンボルを作成する必要があります。このシミュ レーションは、デザイン・エントリとしてブロック図を使用します。
44 PFL コンフィギュレーションのシミュレーション
図 34. PFL メガファンクションのセットアップ
図 35. PFL メガファンクションのセットアップ
フラッシュ・デバイス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に接続します。
メガファンクションのインスタンス化、そして入力、出力、または双方向ピンにす べてのポートの接続、およびデザインのコンパイルが完了した後、.vwfを作成し始 めることができます。新しい.vwfは、少なくとも200 µsの終了時間が必要です。
f 新しい.vwfを作成する方法について詳しくは、「Quartus II ハンドブック v3」の
「Quartus II シミュレータ」 の章を参照してください。
図 36. PFL の接続
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コンフィギュレーション・データ
のデータ読み出しを含む双方向バス。
図 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にアサートします。
図 37. シミュレーションの入力ベクトル
48 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にアサートします。
図 38. PFL のオプション・ビットの読み出し
図 39には、コンフィギュレーションの開始を示します。コンフィギュレーションが 開始するときに、flash_dataバスは0×11を含んでいます。コンフィギュレーショ ン・データはflash_dataの0×88のトグルです。
コンフィギュレーションのプロセスは、fpga_conf_done信号をHighに設定する まで続きます(コンフィギュレーションが完成であることを示す)。また、PFLは flash_nceおよびflash_noeをHigh、そしてpfl_flash_access_requestをLow にアサートします(PFLがフラッシュから読み込まないことを示す)。
1 図 39に示されているのは、nconfig信号の実際の動作ではありません。nconfig信 号は、外部抵抗でHighにプルアップすることが必要です。詳しくは、FPGAハンド
ブックのConfigurationの章を参照してください。
図 39. PFL コンフィギュレーションの開始
50 参考資料