时钟相关概念
图1所示,理想的时钟模型是一个占空比为50%且周期固定的方波。 Tclk为一个时钟周期, T1为高脉冲宽度, T2为低脉冲宽度,Tclk = T1 + T2 。占空比定义为高脉冲宽度与周期之比,即 T1 / Tclk 。
图1 理想时钟波形
所谓建立时间Tsu,是指在时钟上升沿到来之前数据必须保持稳定的时间;所谓保持时间Th,是指在时钟上升沿到来以后数据必须保持稳定的时间。一个数据需要在时钟的上升沿被锁存,那么这个数据就必须在这个时钟上升沿的建立时间和保持时间内保持稳定。
图2 建立和保持时间
上面列举的是一个理想的时钟波形,而实际的时钟信号的分析却要比这复杂的多。时钟本身也具有一些不确定性,如时钟抖动(jitter)和时钟偏斜(skew)等。时钟的边沿变化不可能总是理想的瞬变,它会有一个从高到低或者从低到高的变化过程,实际的情况抽象出来就如图3所示,时钟信号边沿变化的不确定时间我们称之为时钟偏斜(Clock skew)。再回到之前定义的建立时间和保持时间,严格的说,建立时间就应该是Tsu + T1 ,而保持时间也就应该是 Th + T2 了。
图3 时钟抖动模型
时序分析的起点是源寄存器(reg1),终点是目的寄存器(reg2)。时钟和其它信号的传输一样会有延时的。图4中,时钟信号从时钟源传输到源寄存器的延时定义为Tc2s,传输到目的寄存器的延时定义为Tc2d。时钟网络延时就定义为Tc2d与Tc2s之差,即Tskew = Tc2d - Tc2s。
图4 时钟偏斜的寄存器传输模型
图5是时钟偏斜模型的波形表示,在FPGA设计中,设计者不仅需要熟悉逻辑电路的寄存器模型,而且也需要看懂相应的波形图。
图5 时钟偏斜的波形图