我是 FPGA 编程的新手,我对整体执行时间方面的性能有疑问。
我读过延迟是根据周期时间计算的。因此,总执行时间 = 延迟 * 周期时间。
我想优化处理数据所需的时间,我将测量整体执行时间。
假设我有一个计算 a = b * c * d。
如果我让它在两个周期内计算 (result1 = b * c) & (a = result1 * d),则总执行时间将是 2 * 周期时间的延迟(由乘法运算的延迟决定,例如值X) = 2X
如果我在一个周期内进行计算(a = b * c * d)。总执行时间将是 1 * 周期时间的延迟(比如值 2X,因为它有两倍的延迟,因为两次乘法而不是一次)= 2X
因此,似乎为了优化执行时间方面的性能,如果我只专注于减少延迟,则周期时间会增加,反之亦然。是否存在延迟和周期时间都可以减少的情况,从而导致执行时间减少?我什么时候应该专注于优化延迟,什么时候应该专注于周期时间?
另外,当我用 C++ 编程时,似乎当我想优化代码时,我想优化延迟(执行所需的周期)。然而,对于 FPGA 编程,优化延迟似乎是不够的,因为周期时间会增加。因此,我应该专注于优化执行时间(延迟 * 周期时间)。如果我想提高程序的速度,我是否正确?
希望有人能帮助我。提前致谢。