FPGAプログラミングは初めてですが、全体的な実行時間の観点からパフォーマンスについて質問があります。
レイテンシーはサイクルタイムで計算されることを読みました。したがって、全体的な実行時間=レイテンシー*サイクル時間。
データの処理に必要な時間を最適化したいので、全体の実行時間を測定します。
a = b * c*dの計算があるとしましょう。
2サイクル(result1 = b * c)&(a = result1 * d)で計算すると、全体の実行時間は2 *サイクル時間のレイテンシーになります(これは、乗算演算の遅延によって決定されます。 X)= 2X
1サイクルで計算すると(a = b * c * d)。全体的な実行時間は、1 *サイクル時間のレイテンシーになります(1つではなく2つの乗算のために2倍の遅延があるため、値2Xと言います)= 2X
したがって、実行時間の観点からパフォーマンスを最適化するために、レイテンシーの短縮のみに焦点を当てると、サイクル時間が増加し、その逆も同様であるように思われます。レイテンシーとサイクルタイムの両方が減少し、実行時間が減少する可能性はありますか?レイテンシーの最適化にいつ焦点を合わせる必要があり、サイクルタイムにいつ焦点を合わせる必要がありますか?
また、C ++でプログラミングしているとき、コードを最適化したいときは、レイテンシー(実行に必要なサイクル)を最適化したいようです。ただし、FPGAプログラミングの場合、サイクル時間が長くなるため、レイテンシの最適化は適切ではないようです。したがって、実行時間(レイテンシー*サイクル時間)の最適化に焦点を当てる必要があります。プログラムの速度を上げたい場合、これは正しいですか?
誰かがこれを手伝ってくれることを願っています。前もって感謝します。