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

 

コンフィギュレーション時間を短くすること"に夢中になっている梅おにぎりは

ある日次のようなことに気が付きました。

"コンフィギュレーション・モードを FPP モードにしてデータ圧縮をすれば、コンフィギュレーション時間はさらに短くなるのではないか。

これこそ、コンフィギュレーション時間を短縮する最強の組み合わせなのではないか。"

 

しかし、何とも残念な事実が発覚。

なんと Cyclone IV は FPP モードではデータ圧縮には対応していません!

ハンドブックに以下のように記載されていました。

Cyclone® IV E ではデータ圧縮に対応していませんが 、Cyclone® V では対応しているようです。

じゃあ Cyclone V であれば FPP モードとデータ圧縮の合わせ技で、コンフィギュレーション時間は大幅に短縮できるだろう、と思った梅おにぎり。

 

ところが、Cyclone V で FPP モードとデータ圧縮の合わせ技を使ったところで、コンフィギュレーション時間が短縮されるのは、限られたケースである事実が発覚しました。

 

データ圧縮した際の FPP モードにおけるタイミング波形を確認すると、1 Word 転送するのに、複数周期のクロックが必要になっているのがわかります。

1 Word を転送するのに必要なクロック数は、データ転送の bit 幅によって変わります。

ここでは rbf  ファイル・サイズが 21,061,120 bits である場合を考えましょう。

データ転送レートが 8bit の場合

・ データ圧縮なし

 転送に必要なクロック数は 21,061,120 ÷ 8 = 2,632,640 クロック

 

・ データ圧縮あり (30% 減少)

 転送に必要なクロック数は 21,061,120 X 0.7 X 2 ÷ 8 = 3,685,696 クロック

 

・ データ圧縮あり (55% 減少)

 転送に必要なクロック数は 21,061,120 X 0.45 X 2 ÷ 8 = 2,369,376 クロック

 

圧縮率によっては、圧縮なしの場合よりもデータ転送に必要なクロック数は増加します。

そのため、コンフィギュレーション時間も増加してしまいます。

圧縮によりデータ・サイズが元のサイズの 50% 未満になるのであれば、コンフィギュレーション時間は短縮できます。

 

ちなみに、データ・サイズは圧縮により 30%~55% 減少します。(※ デザインに依存して変わります)

データ転送レートが 16bit の場合

・ データ圧縮なし

 転送に必要なクロック数は 21,061,120 ÷ 16 = 1,316,320 クロック

 

・ データ圧縮あり (30% 減少)

 転送に必要なクロック数は 21,061,120 X 0.7 X 4 ÷ 16 = 3,685,696 クロック

 

・ データ圧縮あり (55% 減少)

 転送に必要なクロック数は 21,061,120 X 0.45 X 4 ÷ 16 = 2,369,376 クロック

 

最大の圧縮率でも、圧縮なしの場合の方がデータ転送に必要なクロック数が少なくなりました。

このケースでは、データ圧縮をすると確実にコンフィギュレーション時間は長くなってしまうようです。

まとめ

FPP モードでは、データ圧縮を行っても、確実にコンフィギュレーション時間が短縮されるわけではありません。

"データ圧縮さえすればコンフィギュレーション時間は短くなる” と安易な考えを持っていたが、

今回の経験により、コンフィギュレーションの奥深さを感じた梅おにぎりであった。