最も近いものはアルテラのC-to-Hardware(C2H)コンパイラですです。あなたが提案していることのいくつかを行うことができます。しかし、反抗的な警告があります。Cコードだけをハードウェアに変えることはできませんし、そうすることもできません。しかし、特定の機能はかなりうまく機能し、パフォーマンスが劇的に向上することがわかります。
通常、NIOS IIソフトコアプロセッサをアルテラFPGAに実装します。次に、他のプロセッサと同様に、ANSI Cコードを作成します。次に、作成したC関数の1つに、いくつかの並列実行からパフォーマンスの面で恩恵を受ける重い計算が含まれるとします。「Implement in Hardware」と言うC2Hコンパイラを起動すると、基本的にその機能がNIOS IIソフトコアプロセッサの周辺機器に変わります。
ここの例 ANSI Cでマンデルブロ演算をコーディングした後、ハードウェアでの実装は:
C2Hコンパイラで高速化されたMandelbrotアルゴリズムは、コンパイラ最適化レベル2(-O2)を使用して最速のNios IIプロセッサで実行される同じアルゴリズムと比較して、少なくとも60倍の速度改善をもたらします。この速度の向上は、ハードウェアが提供できる並列処理と高速の反復速度のためです。これらは汎用の処理ユニットでは不可能です。
例に戻ると、NIOS IIプロセッサはLinuxを実行できます。また、ルーティングタスクの実行に必要な特定の機能は、ハードウェアアクセラレーションの恩恵を受ける可能性があります。ほとんどの場合、純粋なソフトウェアルーターよりもパフォーマンスが高くなります。しかし、特別に設計された専用ASICのパフォーマンスには決して近づきません。