时序分析是FPGA设计中一个永恒的主题,对于FPGA开发者来说,这是提升设计水平的必经之路。接下来,我们将逐步介绍时序分析的一些基本概念。
1. 时钟相关性
时钟的时序特性主要包括抖动(Jitter)、偏移(Skew)和占空比失真(Duty Cycle Distortion)三方面。对于低速设计,这些特性通常可以忽略不计;但在高速设计中,由于时钟本身的特性,时序问题较为常见,因此必须加以关注。
2. 时钟抖动
理想的时钟信号应呈现完美的方波形,但实际中,时钟的边沿变化并非瞬时,而是经历一个从低到高或从高到低的过程。抖动的常见参数有三种:
- 周期抖动(Period Jitter):测量时钟输出相较于理想位置的最大偏移,代表周期差抖动的上下限。
- 周期差抖动(Cycle-to-Cycle Jitter):指两个相邻周期之间的时间偏差,通常小于周期抖动。
- 长期抖动(Long-term Jitter):定义为某一时钟沿与基准时钟沿在经过一段时间后的偏离情况,能够捕捉到低频的周期变化,对图形、串行通讯和打印等应用至关重要。
时钟抖动的主要成因是噪声。当抖动水平与时钟周期相当时,会对设计产生影响,这种抖动是不可接受的。
3. 时钟偏斜
时钟信号需覆盖整个电路的时序单元,时钟线通常较长,并形成分布式RC网络。其延迟与时钟线的长度、时序单元的负载电容及数量相关,因此会产生时钟偏移。时钟偏移是指同一时钟信号到达两个不同寄存器之间的时间差,依据差值可分为正偏移和负偏移。
时钟偏移的计算公式为:Tskew = Tclk2 - Tclk1。当偏移达到一定程度时,会影响电路的时序。为了解决这一问题,FPGA设计时应采用全局时钟网络,该网络采用全铜工艺和树状结构,专门设计了时钟缓冲和驱动网络,使得所有IO单元、CLB和块RAM的偏移可以忽略不计。
4. 占空比失真(DCD)
当时钟信号不对称时,脉冲宽度会发生变化,DCD会严重消耗时序裕量,导致数字信号失真,过零区间偏离理想位置。DCD通常由信号的上升沿和下降沿之间的时序差异引起。
5. 信号扇入/扇出
扇出是指一个输出设备能够驱动的电路数量。大多数TTL逻辑门可驱动约10个其他数字门或驱动器。在一些数字系统中,单个TTL逻辑门可能需要驱动超过10个其他门,这时可以使用缓冲器来解决。逻辑反向器在许多数字电路中也能辅助这一功能。
模块的扇出指的是其直接下层模块的数量。理想情况下,系统的平均扇出应为3或4,过大的扇出会使管理复杂化,通常认为扇出的上限不超过7。适当增加中间层次可有效解决扇出过大的问题。相应地,模块的扇入是指有多少个上级模块调用它,扇入越大表明模块被更多上级共享,但不应为追求高扇入而牺牲模块的内聚性。
6. 启动边沿(Launch Edge)
时序分析的起点是第一级寄存器数据变化的时钟边沿,也是静态时序分析的起点。
7. 锁存边沿(Latch Edge)
时序分析的终点是数据锁存的时钟边沿,也是静态时序分析的终点。
8. 时钟到输出延迟(Clock-to-Output Delay)
该延迟指的是时钟有效边沿变化后,数据从输入端到输出端的最小时间间隔。
9. 寄存器建立/保持时间(Setup/Hold Time)
建立时间指的是触发器的时钟信号上升沿到来前,数据保持稳定的时间。输入信号应在时钟上升沿之前保持稳定。

