私は現在、チップレベルの設計で実装した場合にどのアルゴリズムが優れているかを見つけようとしているプロジェクトに取り組んでいます。これらを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ボードに実装した場合の正確な最悪のタイミングを知りたいので、機能の向上を試みることができます。また、これらの計算にはナノ秒かかることも理解していますが、それを改善しようとしています。
より高速なアルゴリズムを持っていると主張するジャーナル出版物をいくつか見ました。ただし、ザイリンクスとシンセシスレポートを使用して同じものを実装すると、異なる結果が得られました。
消費電力と最悪のタイミングを計算するソフトウェアはありますか?または、誰かが私をここで助けることができるいくつかの記事を指摘することができますか?