1

私は現在、チップレベルの設計で実装した場合にどのアルゴリズムが優れているかを見つけようとしているプロジェクトに取り組んでいます。これらをFPGAボードにプッシュしています。私はVerilogでコードを書いています。必要なのは比較するルーブリックです

a)2つの関数の時間計算量。

b)最悪の場合のタイミング

c)消費電力

たとえば、

方法1:prod = mult1 * mult2;

ここで、mult1とmult2は2つの8ビット入力です。

方法2:prod =((mult1 + mult2-100)* 100)+((100-mult1)*(100-mult2))

ここで、mult1とmult2は2つの8ビット入力です。

したがって、2つの入力が渡されて積が計算されるときから、チップが積を計算するのにかかる合計時間を知りたいと思います。

私が扱っているアルゴリズムは両方ともO(n)です。だから私はそれが漸近的に重要ではないことを知っています。ただし、FPGAまたはASICボードに実装した場合の正確な最悪のタイミングを知りたいので、機能の向上を試みることができます。また、これらの計算にはナノ秒かかることも理解していますが、それを改善しようとしています。

より高速なアルゴリズムを持っていると主張するジャーナル出版物をいくつか見ました。ただし、ザイリンクスとシンセシスレポートを使用して同じものを実装すると、異なる結果が得られました。

消費電力と最悪のタイミングを計算するソフトウェアはありますか?または、誰かが私をここで助けることができるいくつかの記事を指摘することができますか?

4

1 に答える 1

3

時間の複雑さと最悪の場合のタイミングに関しては、アルゴリズムの記述方法と、使用しているターゲット fpga に依存します。

計算の実行にかかる時間は、FPGA のクロック周波数と、アルゴリズムの実行にかかるクロック サイクル数によって異なります。乗算アルゴリズムが単一サイクルの場合、計算にかかる時間は単純に fpga のクロック周期になります。ただし、大規模な乗算回路は通常、その複雑さのために単一サイクルではありません。得られるものは、入力コード、シンセサイザー、および使用している fpga の種類によって異なります。

通常、FPGA 合成ツールは、合成後のレポートで、デザインのワースト ケースのタイミングを教えてくれます。ワースト ケースのタイミングを改善したい場合は、パイプライン ステージを乗算に追加して作業を分割し、クロック周波数を増やすことができます。

消費電力の測定は、使用する fpga とロードする合成済みネットリストにも大きく依存します。AlteraXilinxは、fpgas (おそらく他のベンダーも同様) の電力推定器を提供していますが、ベンダーにとらわれない電力推定器があるかどうかはわかりません。

簡単に言えば、必要なメトリックを取得するには、使用する予定の FPGA の合成ツールを使用する必要があります。

于 2013-02-19T00:56:00.260 に答える