こんにちは。梅おにぎりです。

前回は、コンフィギュレーション・データのサイズを圧縮することで、AS モードでのコンフィギュレーション時間を短くすることに成功しました。

しかし欲張りな梅おにぎりは、"もっとコンフィギュレーション時間を短くできないか" と考えていました。

 

いろいろと探していると、何とも速そうな名前のコンフィギュレーション・モードを見つけました。

Fast Passive Parallel (FPP) モード!

今回は、FPP モードでコンフィギュレーション時間をどれくらい短縮できるかを見てみましょう。

FPP モード

FPP モードは、以下のような構成となっています。

※ 図内の注釈は、Cyclone IV のドキュメントをご覧ください。

前回の AS モードと異なる点は、2点あります。

 

1点目は、コンフィギュレーション・データの幅が 8bit であること。

AS モードの 1bit に比べて、1/8 のクロック数でコンフィギュレーションが完了します。

 

2点目は、Cyclone® IV E がコンフィギュレーション用のクロックを受信していること。

AS モードでは FPGA 内部のオシレータを使用していましたが、外部からクロックを入れることで、より速いクロックでデータ転送をすることができます。

 

ここで疑問が湧きました。

「データ転送クロックの速度に上限はないのだろうか?」

データシートで確認してみると、上限は 133MHz までいけるようです(Cyclone IV E のコア電圧が1.0V の場合は66MHz)。

AS モードのデータ転送クロックが 20~40MHz であるのと比べると、かなり速くできそうです。

では実際に計算してみましょう。

DCLK が 133MHz (7.5ns) として計算したのが次の式です。

 

データ・サイズ   DCLK 周期  データ幅

(2,944,088 bits X 7.5 ns )  ÷  8bit  = 2.7 ms

 

AS モードでは、圧縮後でも 33.1~95.6ms であったのに対して

FPP モードでは、 2.7ms と大幅に短縮されました。

まとめ

FPP モードを使用することで、コンフィギュレーション時間を大幅に短縮することができました。

 

もう これ以上のコンフィギュレーション時間の短縮は無理かな、と考えていた梅おにぎり。

しかし、デバイスに電源を入れてからユーザモードになるまでの時間を考慮すると

まだまだ短縮する術があるのだった。 (次回に続く)