C2H コンパイラのマンデルブロー・デザイン例

このマンデルブロー・デザイン例は、Nios® II C2H (C-to-Hardware)アクセラレーション・コンパイラの使用法を示しています。この例では、C2H コンパイラは、マンデルブロー・アルゴリズムの C ベース実装をハードウェアに変換します。このデザインには、計算されたピクセル値のフルモーション・ビデオを表示するためのビデオ・コントローラが含まれています。

マンデルブロー・パターンは、パターンが複雑でプロセッサを多用する実装であるため、最もよく知られたフラクタルの 1つとなりました。このアルゴリズムは、x 軸が実際のコンポーネントを表し、y 軸が仮想コンポーネントを表す複雑なプレーンで動作します。この例では、プレーンの異なる領域への移動や拡大/縮小を実行し、フルモーション・ビデオを作成します。

この例では、ハードウェア・アクセラレータの使用中にソフトウェアで座標計算を実行させ並列処理をフルに活用しています。これはビデオ・データを DDR SDRAM でトリプル・バッファリングする事と、Nios II エンベデッド・プロセッサを使用してデータ・フローを調整することにより行われます。ハードウェア・アクセラレータがフル・フレーム・バッファを生成するたびに、プロセッサによってデータが管理され、そのデータが上書きされて、ビデオ・コントローラに新しいバッファを表示する準備ができたことを通知します。


このデザイン例の使用について

このデザイン例は、以下のキットをターゲットにしています。


Nios II C2H マンデルブロー デザイン例 (.zip ファイル)

Nios II C2H マンデルブロー デザイン例 README (.txt ファイル)

このデザインの使用は、アルテラのハードウェア・リファレンス・デザイン・ライセンス契約 の条件で定められており、その条件に同意する必要があります。

ZIP ファイルには、このデザイン例を再現するのに必要なすべてのソフトウェア・ファイルと readme.txt ファイルが含まれています。 readme.txt ファイルには、既存のハードウェア・デザインをターゲットにしてデザインを再構築するための方法が収められています。


ブロック図

図 1 に C2H コンパイラのマンデルブロー・デザイン例のブロック図を示します。


図 1. C2H コンパイラのマンデルブロー・デザイン例

Figure1. C2H Compiler Mandelbrot Design Example
画像を拡大して表示 >>


C2H コンパイラでの高速化の結果

C2H コンパイラで高速化されたマンデルブロー・アルゴリズムは、コンパイラ最適化レベル 2(-O2)を使用し、最速 なNios II プロセッサで動作する同じアルゴリズムと比較して、60 倍以上のスピード向上を達成します。このスピードの向上は、ハードウェアが提供可能な並列処理と迅速なイタレーションスピードによるものであり、このような並列処理とイタレーションスピードは、汎用処理ユニットでは実現できません。


デザイン例の免責条項

アルテラの Web サイトに掲載されたこれらのデザイン例はアルテラが所有権を保有しており、アルテラ・デバイスでのみ使用できます。これらのデザイン例は、便宜的に「現状のまま」で提供されているものであり、商品性、権利の非侵害、または特定目的への適合に関する保証を含め、いかなる種類の条件、表明、または保証(明示 的、暗示的、または法令による)もすべて無制限に否認されます。アルテラは明確に、これらのデザイン例をアルテラ以外のメーカが販売する製品と組み合わせて使用することを推奨、提案、または要求しません。