任何学FPGA的人都跑不掉的一个问题就是进行静态时序分析。静态时序分析的公式,老实说很晦涩,而且总能看到不同的版本,内容又不那么一致,为了彻底解决这个问题,我研究了一天,终于找到了一种很简单的解读办法,可以看透它的本质,而且不需要再记复杂的公式了。
静态时序分析(Static Timing Analysis, STA)是FPGA设计中的关键步骤,它用于确保电路在给定的时钟速度下正确无误地工作。在本文中,我们将深入理解静态时序分析的基本概念,以及如何简化其公式以揭示其本质。
我们需要了解几个关键术语:
1. 时钟周期(Tperiod):时钟信号从高电平到低电平再到高电平所需的时间,是系统中最基本的时间单位。
2. D触发器采样瞬间到输出时间(Tcko):数据从D触发器采样后到其输出稳定的时间。
3. 组合逻辑延迟(Tlogic):电路中逻辑门延迟的总和。
4. 走线延迟(Tnet):信号在布线中传播所用的时间,通常很小但不可忽视。
5. 建立时间(Tsetup):数据必须在触发器采样沿之前稳定的时间。
6. 时钟偏移(Tclk_skew):由于时钟信号到达不同位置的触发器的时间差异。
通常,静态时序分析涉及建立时间和保持时间的计算,以确保满足时序约束。建立时间是保证数据在时钟上升沿到来前稳定的时间,保持时间是保证数据在时钟上升沿之后保持不变的时间。
公式(1)和(2)是最全面的建立时间和保持时间公式,它们考虑了所有可能的延迟因素。但为了简化理解,我们可以忽略较小的Tnet和相对高级的概念Tclk_skew,得到简化公式(3)和(4)。
公式(3)表明,数据从源触发器到目的触发器的传输时间不能超过一个时钟周期,否则将导致数据丢失。而公式(4)强调,即使考虑到建立时间,数据传输时间也不能小于保持时间,否则可能导致触发器在采样期间遇到不稳定状态。
通过将Tsetup加到(4)式两边,我们得到(5),进而推导出(6)。这个关键的等式(6)表明,数据传输延时应位于时钟周期和触发器采样窗口之间。左边表示传输延时不应小于采样窗口,否则数据可能会在采样窗口内改变,导致亚稳态。右边则意味着传输延时不应超过时钟周期,否则数据无法在下一个时钟周期的采样时刻到达。
静态时序分析的目标是确保数据在正确的时间到达触发器,并且在触发器的采样窗口内保持稳定。理解这些概念和简化公式,可以帮助我们更好地把握FPGA设计中的时序约束,从而避免潜在的时序错误。通过这种直观的解读,我们无需记忆复杂的公式,也能理解静态时序分析的核心原理。