我是FPGA编程的新手,我对整体执行时间方面的性能有疑问。FPGA时序问题
我已经读过,延迟是按周期计算的。因此,总体执行时间=延迟*周期时间。
我想优化处理数据所需的时间,我会测量整个执行时间。
假设我有一个计算a = b * c * d。
如果我在两个周期(result1 = b * c)&(a = result1 * d)中进行计算,总体执行时间将为2 *周期时间的延迟(这是由乘法运算说价值X)= 2X
如果我在一个周期(a = b * c * d)进行计算。总体执行时间将是1 *周期时间的延迟(比如值2X,因为它具有两倍的延迟,因为两次乘法而不是一次)= 2X
因此,似乎为了优化执行方面的性能如果我只关注延迟时间,则周期时间会增加,反之亦然。是否存在潜伏期和周期时间缩短的情况,导致执行时间减少?我应该什么时候专注于优化延迟以及我应该在什么时候关注周期时间?另外,当我用C++编程时,似乎当我想优化代码时,我想优化延迟(执行所需的周期)。但是,对于FPGA编程来说,优化延迟并不充分,因为周期时间会增加。因此,我应该专注于优化执行时间(延迟*周期时间)。如果我想提高程序的速度,我是否正确?
希望有人能帮助我。提前致谢。
嗨乔治,真的很感激你的回复。当你在一个周期中提到10个项目时,这10个项目是指什么?你如何在第一种情况下使用20t,在第二种情况下使用11t?不好意思问这样一个简单的问题,因为我浏览了网络和很多书籍,没有太多资源讨论如何计算和提高性能。谢谢。 – Steveng 2011-04-04 15:44:14
我用一些时序图更新了答案。 – George 2011-04-05 09:43:20